Hi, my name is MOFF. I was designed to predict off-target effects for CRISPR/Cas9!
I have three major functions: 1). Predict off-target effects for any given gRNA-target pair.
2). Predict genome-wide off-target effects for any sgRNA.
3). Select best sgRNAs for allele-specific knockout.
Hope you enjoy playing with me ^o^!
Any questions or bugs, please contact hwkobe.1027@gmail.com or whe3@mdanderson.org
- Python>=3.4
- numpy==1.19.5, scipy>=1.0
- tensorflow==2.6.2, keras>=2.6.0
Step1: Install Anaconda (highly recomended)
wget https://repo.continuum.io/archive/Anaconda2-2018.12-Linux-x86_64.sh
bash Anaconda2-2018.12-Linux-x86_64.sh
Step2: Install MOFF through pip
pip install MOFF
Step3: OR you can install MOFF through git clone
git clone https://github.com/MDhewei/MOFF.git
cd MOFF
python setup.py install
MOFFscore requires the user to provide .csv or .txt file containing sgRNA sequences and corresponding DNA target sequences. Each line should have one gRNA(20bp+PAM) and one target(20bp+PAM) sequence. Note that MOFF is designed for mismatch-only off-target prediction, not for indel mutations. See example file here.
Arguments of the program:
-i/--inputfile (required):
Input files containing sgRNA sequences and corresponding DNA target sequences.
-p/--prefix (Optional):
Prefix of the file to save the outputs, default: ScoreTest.
-o/--outputdir (Optional):
Directory to save output files, if no directory is given a folder named MOFF_scores
will be generated in current working directory.
MOFF score -i MOFFscore_test.txt
- crRNA: the sgRNAs designed to target specific DNA sequence
- DNA: the DNA sequence of the off-target site
- MDE: predicted mismatch-dependent off-target effect
- CE: predicted combinatorial effect
- MMs: the number of mismatches between sgRNA and off-target
- GMT: predicted guide-intrinsic mismatch tolerence
- MOFF: the final MOFF score predicted for given gRNA-target pair
MOFF aggregation can directly take the outputs of CRISPRitz and Cas-OFFinder as inputs. Output table files generated by any genome-wide off-target searching methods are also supported in theory, but the columns of outputs for different methods are different, therefore, it is required to modify the column name of sgRNA(20bp+PAM) and target(20bp+PAM) to 'crRNA' and 'DNA' respectively. Note that MOFF only supports mismatch-only off-target predictions, indel mutations are not applicable. File formats including .csv and .txt are accepted. See examplefile here.
Arguments of the program:
-i/--inputfile (required):
Input files containing all the potential off-target sites in the genome for given sgRNA(s).
-p/--prefix (Optional):
Prefix of the file to save the outputs, default: AggregationTest.
-o/--outputdir (Optional):
Directory to save output files, if no directory is given a folder named MOFF_aggregation
will be generated in current working directory.
MOFF aggregate -i MOFFaggregation_test.txt
- sgRNA: the sgRNAs selected to predict genome-wide off-target
- GMT: aggregated guide-intrinsic mismatch tolerence
- MDE.sum: aggregated mismatch-dependent off-target effect
- MOFF.sum: aggregated MOFF score for specific sgRNA
MOFF allele requires the users to input local DNA sequences of a wild-type allele and a mutant allele. The two DNA sequences should be of the same length. There should be at least one hit of 20bp+PAM(NGG) in the DNA sequence for knockout and the mutation point should be included within the hit. If you want to design the sgRNA to specifically target the WT allele, just input DNA sequence of WT as mutant and mutant sequence as wildtype.
Arguments of the program:
-m MUTANT, --mutant MUTANT
Local DNA sequence of mutant allele, at least one hit of 20bp (mutation sites included)
followed by PAM (NGG) should be included, if more than one hit is found, MOFF will
design sgRNAs based on all possible PAMs.
-w WILDTYPE, --wildtype WILDTYPE
Local DNA sequence of wild type allele paired with the mutant allele, which should be
the same length as the mutant allele DNA sequence.
-p PREFIX, --prefix PREFIX
Prefix of the file to save the outputs, in the format PREFIX + _allele_specific_knockouts,
default: AlleleTest.
-o OUTPUTDIR, --outputdir OUTPUTDIR
Directory to save output files, if no directory is given, a output folder named
MOFF_Allele will be generated in current working directory.
For example two mutant for DNMT3a:
ACTGACGTCTCCAACATGAGC|CGC|TTGGCGAGGCAGAGACTGCT (WT)
ACTGACGTCTCCAACATGAGC|tGC|TTGGCGAGGCAGAGACTGCT (R882C)
ACTGACGTCTCCAACATGAGC|CaC|TTGGCGAGGCAGAGACTGCT (R882H)
1). To knockout R882C allele
MOFF allele -m ACTGACGTCTCCAACATGAGCTGCTTGGCGAGGCAGAGACTGCT -w ACTGACGTCTCCAACATGAGCCGCTTGGCGAGGCAGAGACTGCT -p R882C
2). To knockout R882H allele
MOFF allele -m ACTGACGTCTCCAACATGAGCCACTTGGCGAGGCAGAGACTGCT -w ACTGACGTCTCCAACATGAGCCGCTTGGCGAGGCAGAGACTGCT -p R882H
3). To knockout WT in R882C cell
MOFF allele -m ACTGACGTCTCCAACATGAGCCGCTTGGCGAGGCAGAGACTGCT -w ACTGACGTCTCCAACATGAGCTGCTTGGCGAGGCAGAGACTGCT -p WTinR882C
4). To knockout WT in R882H cell
MOFF allele -m ACTGACGTCTCCAACATGAGCCGCTTGGCGAGGCAGAGACTGCT -w ACTGACGTCTCCAACATGAGCCACTTGGCGAGGCAGAGACTGCT -p WTinR882H
- sgRNA: all the possible sgRNAs selected for allele-specific knockouts
- DNA_KO: DNA target of allele you want to knockout, usually it is the mutant allele
- DNA_NA: DNA target of allele you want to keep, usually it is the wild-type allele
- GMT: Guide-intrinsic mismatch tolerence for the designed sgRNA
- MOFF_KO: the predicted MOFF score to target the DNA-KO
- MOFF_NA: the predicted MOFF score to target the DNA-NA
- MOFF_ratio: the ratio between MOFF_NA/MOFF_KO
To knockout desired allele, please select sgRNA with a high MOFF_KO score to knockout (MOFF_KO > 0.5 is suggested)
To maintain specificity of sgRNA, please select sgRNA with low MOFF_NA relative to MOFF_KO (MOFF_ratio < 0.2 is suggested)