pinellolab / CRISPResso2

Analysis of deep sequencing data for rapid and intuitive interpretation of genome editing experiments
Other
263 stars 92 forks source link

Possible to provide two guides for one HDR donor in one amplicon? #66

Closed rebjoh closed 3 years ago

rebjoh commented 3 years ago

Hi CRISPResso team,

Firstly, thank you for providing this useful software!

I am analysing 300 bp paired end reads from a CRISPR/Cas9 experiment targeting the exon of a single gene. I have successfully used CRISPResso2 to analyse HDR events when specifying a single guide and donor combination, but I cannot get CRISPResso2 to run when specifying two guides.

In detail, samples were transfected with two guides (20 bp each, 56 bp apart) plus a donor with sequence homology to the 5' end of the first guide's DSB and the 3' end of the second guide's DSB, i.e. the expected HDR amplicon sequence (369 bp) is shorter than the reference amplicon sequence (421 bp). I would like to quantify the HDR and NHEJ outcomes in these samples.

I am running CRISPResso version 2.0.30 with the command:

CRISPResso --fastq_r1 $fastqR1 --fastq_r2 $fastqR2 \
--amplicon_seq $ref \
--guide_seq $grna3, $gnra4 --expected_hdr_amplicon_seq $hdr \
--name $sample \
--max_paired_end_reads_overlap 243 \
--exclude_bp_from_left 21 --exclude_bp_from_right 24 \
--plot_window_size 50 --min_frequency_alleles_around_cut_to_plot 0.01 \
--dump --debug

I have obtained the following errors:

  1. Running the above command (where --exclude_bp_from_left and --exclude_bp_from_right equal the length of respective primer + 1) I obtained:

    • Traceback (most recent call last): File "/software/CRISPResso2/CRISPResso2-venv/lib/python2.7/site-packages/CRISPResso2-2.0.30-py2.7-linux-x86_64.egg/CRISPResso2/CRISPRessoCORE.py", line 596, in main args.quantification_window_size,this_quant_window_coordinates,args.exclude_bp_from_left,args.exclude_bp_from_right,args.plot_window_size) File "/software/CRISPResso2/CRISPResso2-venv/lib/python2.7/site-packages/CRISPResso2-2.0.30-py2.7-linux-x86_64.egg/CRISPResso2/CRISPRessoShared.py", line 689, in get_amplicon_info_for_guides raise BadParameterException('The quantification window has been partially exluded by the --exclude_bp_from_left or --exclude_bp_from_right parameters. Given: ' + str(given_include_idxs) + ' Pre: ' + str(pre_exclude_include_idxs) + ' Post: ' + str(this_include_idxs)) BadParameterException: The quantification window has been partially exluded by the --exclude_bp_from_left or --exclude_bp_from_right parameters.
  2. I then changed both --exclude_bp_from_left and --exclude_bp_from_right to 0, but obtained the error:

    • Traceback (most recent call last): File "/software/CRISPResso2/CRISPResso2-venv/lib/python2.7/site-packages/CRISPResso2-2.0.30-py2.7-linux-x86_64.egg/CRISPResso2/CRISPRessoCORE.py", line 596, in main args.quantification_window_size,this_quant_window_coordinates,args.exclude_bp_from_left,args.exclude_bp_from_right,args.plot_window_size) File "/software/CRISPResso2/CRISPResso2-venv/lib/python2.7/site-packages/CRISPResso2-2.0.30-py2.7-linux-x86_64.egg/CRISPResso2/CRISPRessoShared.py", line 700, in get_amplicon_info_for_guides raise BadParameterException('Offset around cut would extend to the left of the amplicon. Please decrease plot_window_size parameter. Cut point: ' + str(cut_p) + ' window: ' + str(window_around_cut) + ' reference: ' + str(ref_seq_length)) BadParameterException: Offset around cut would extend to the left of the amplicon. Please decrease plot_window_size parameter. Cut point: -4 window: 50 reference: 421
  3. I then changed --plot_window_size to 0 (in addition to changing --exclude_bp_from_left and --exclude_bp_from_right to 0), but obtained the error:

    • Traceback (most recent call last): File "/software/CRISPResso2/CRISPResso2-venv/lib/python2.7/site-packages/CRISPResso2-2.0.30-py2.7-linux-x86_64.egg/CRISPResso2/CRISPRessoCORE.py", line 633, in main this_gap_incentive[cut_point+1] = args.needleman_wunsch_gap_incentive IndexError: index 422 is out of bounds for axis 0 with size 422

Is this type of analysis possible using CRISPResso2? If so, what parameters do I need to add/adjust?

Please let me know if I need to provide any further information.

Many thanks in advance, Rebecca

kclem commented 3 years ago

Hmm.. This is appears to be a complicated case or a bug (in 2, the cut point shouldn't be negative). Would you mind sending the amplicon and guide sequences? Either here or to me at kclement@mgh.harvard.edu.

I'm guessing that the problem is that CRISPResso tries to align the reference sequence to the HDR sequence to infer the positions of the quantification window, and because the size difference is so big, it may align the sequences with a large gap on the left or right side of the amplicon instead of a gap in the middle between the two guides as intended. If you can send me the sequences, I can look into this.

As an aside, are your reads long enough to cover the 421bp unmodified fragment?

rebjoh commented 3 years ago

Thanks so much for your reply. Yes I agree this is a complicated experiment!

As you suggest, I will send the amplicon and guide sequences to your personal email. And yes, reads are 2 x 301 bp (Illumina) so we expect 181 bp to overlap when the fragment is unmodified.