rraadd88 / beditor

A Computational Workflow for Designing Libraries of sgRNAs for CRISPR-Mediated Base Editing, and much more
GNU General Public License v3.0
17 stars 4 forks source link

Weird case: Designing gRNA to revert a SNP #12

Closed herrroaa closed 4 years ago

herrroaa commented 4 years ago

Hi, I am trying to design gRNA to revert a SNP. I realized that the designed gRNA has the wild-type allele of the SNP. I guess that this mismatch will not affect the gRNA binding to the target locus as it is located the 5' end of the gRNA, which is usually more tolerable as compared to mismatches on the 3' end. Is this the reason why the algorithm keeps the wilt type allele in the designed gRNA sequence.

For example, I have a SNP T>C in the sequence below, that I want o revert from C to T reference sequence is TTAATGTCATTGTCTGCTCACCTACTGTTTCTGCCATCTATGGCT

Beditor designed a gRNA (that have the wild-type allele, T) that work with "Target-AID" base editor (activity window 2-4). The sequence of the gRNA is
5'-CCTACTGTTTCTGCCATCT-3' CCTACTGTTTCTGCCATCT-3’

rraadd88 commented 4 years ago

Hi @herrroaa , sorry for the late reply. So, for reverting the SNP I assume that you are using the option
reverse_mutations: True in the command line mode or
selecting remove mutations in the GUI. Are you?

herrroaa commented 4 years ago

Hi @rraadd88 Yes I do

rraadd88 commented 4 years ago

Hi @herrroaa , Thanks. I will let you know if find the issue in beditor. Could you also let me know the version of beditor you are working with?

Meanwhile, as a quick fix, I would suggest reverting the SNP in the designed gRNA using the location of the SNP from the PAM. The location of the SNP from the PAM can be identified from the guide id (located in the column called guide: id in the output table). For example, location of the SNP from the PAM is shown in bold in following guide id: YAL002W_mRNA|I|+|143754|143799|24|(Target-AID;-;@19;NG;GCT:ACT;A:T;)

I hope this temporary fix helps.

herrroaa commented 4 years ago

Hi @rraadd88 , I am using v1.1.9, is it the most updated version. I found your algorithm very helpful, however for some reasons I can not get the maximum benefit out of it. I tried to design some gRNA to edit a SNP, and although I can see that there areadequate pam sequences for some base editors and the SNP is located within the activity window of these base editor, it ends up with no gRNA in the output. When I check the /chunks/chunk00000001/03_guides/dguides_noflt.tsv I can see these gRNA which I kind of manually designed or designed by other online tools, but they were excluded for the beditor output.

Here is one example; SNP is rs2229774 (C>T) on the reverse strand. I want to model the SNP, i.e change the C to T in my sample. In the input.tsv file, I tried several permutations (please find the input file attach) as well as the config file. I also attached the /chunks/chunk00000001/03_guides/dguides_noflt.tsv [file.](url dguides_noflt.txt

configuration_rs2229774_copy.txt input_copy.txt

I had to change the extension of the files to .txt to be able to attach them. Whenever you have some time please have a look at this. Thanks T

> $ beditor --cfg configuration_rs2229774_copy.yml
> Namespace(cfg='configuration_rs2229774_copy.yml', force=False, step=None, test=False)
> start. log file: .log_beditor_2019_09_10_11_47_56_254348_configuration_rs2229774_copy.yml_None_False_False.log
> /Users/tarekmagdyshehatamohamed/miniconda3/envs/beditor/lib/python3.6/site-packages/beditor/pipeline.py:245: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
>   cfg=yaml.load(open(cfgp, 'r'))
> 2019_09_10_11_48_01_180879: processing: configuration_rs2229774_copy
> 2019_09_10_11_48_02_363593: processing: 1 chunks.
> /Users/tarekmagdyshehatamohamed/miniconda3/envs/beditor/lib/python3.6/site-packages/beditor/pipeline.py:34: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
>   cfg=yaml.load(open(cfgp, 'r'))
> 2019_09_10_11_48_02_475106: processing: chunk00000001
> 2019_09_10_11_48_04_816450: collecting chunks
> 2019_09_10_11_48_04_868522: generating outputs
> [2019-09-10 11:48:04,883] ERROR   from pipeline.py in make_outputs(..):215: output of step 2 or 3 are missing.
> (beditor) 
rraadd88 commented 4 years ago

Hi @herrroaa , Thanks for your message. I have taken note of your issue. It is quite unfortunate as other users. I am not sure why that is happening. I will come back with a solution as soon as possible.

rraadd88 commented 4 years ago

Hi @herrroaa , sorry for the late reply again. I had a look into your files. Unfortunately, I could't do much with it because I spotted some errors in there, which would have definitely created outputs that seemed unexpected/weird.

Firstly, as I presumed in earlier messages above, for your purpose, the option reverse_mutations should be set to true. But in fact (contrary to what you had said above), I found that it was set to False.

reverse_mutations: FALSE                                      | reverse_mutations: true

below are some other unfortunate errors in the configuration files that may have additionally confounded your analysis.

mutation_type: else                                           | mutation_type: both
BEs: [SA(KKH)-BE3','BE-PLUS']                                 | BEs: ['SA(KKH)-BE3','BE-PLUS']

The applicability of beditor workflow mainly lies in the design of large scale gRNA libraries (against >50 targets).

Therefore, in conclusion, because you intend to design gRNAs against handful of targets, as a help, I would suggest using the benchling tool https://www.benchling.com/2016/07/18/base-editor/, which in my opinion, is best suited for what you want to do. best wishes, Rohan