CLD Manual

May 27, 2022 ยท View on GitHub

cld can be called either with --version, printing its version number and copyrights, --help printing a more elusive help documentation, or with --task.

EXAMPLE to execute from the path containing all needed files:

docker run -v ${PWD}:/data boutroslab/cld_docker cld --task=end_to_end --output-dir=/data --parameter-file=/data/params.txt --gene-list=/data/gene_list.txt	

NOTE

The output directory defaults to /data within the Docker container. You can overwrite this by setting --output-dir to any other directory within the container. Make sure that you mount your local directory to the output directory when use run the Docker container: e.g. -v ${PWD}:/data


cld can run 2 distinct tasks: database creation and library design.

Database Creation

Database creation is called using the --task=make_database command giving the organism name of interest, as it is denoted in ENSEMBLs ftp folder structure e.g. homo_sapiens, and the rsync url to the current ftp server of ENSEMBL, examples can be found when cld --help is called. After calling this function CLD will automatically download the latest toplevel FASTA, GFF and GTF files for the organism of interest and compile a database containing bowtie indexes, mygff files and reformatted sequence files. This may take several hours (~ 20 hours) to complete. If not enough computing power is available to the user, these databases also might be downloaded from http://www.dkfz.de/signaling/crispr-downloads/.

Library Design

Library design can be done in two ways:

Two Step Process

If the user wants to separate the process into two steps, then first call cld --task=target_ident and then call cld --task=library_assembly This is useful to only identify target sites without compiling a clonable library.

Single Step Process

If the user wants to run all operations in one command, then call cld --task=end_to_end This automatically will perform the 2 steps mentioned before and present the end-result in a user defined output folder (default = /data).

Compute Storage and Timing Considerations

For reasons of manageability for high throughput design, the output files are kept as simple and standardised as possible. However a genome wide library targeting the human genome quickly spans several GB (~ 52 GB) depending on how strict the parameters are chosen.

The make_database task takes under 20 hours to complete on an 8-core cpu node. The end_to_end task takes a few minutes for an 8-core cpu node.

Usage

For running cld from the command line the following syntax must be used.

Usage: cld  --task=end_to_end [options=value] ...
Options:
	    --task=<task option>
		 make_database 				to provide an cld ready data base.
		    --output-dir=<path/to/dir>			- a working directory as unix path to directory. (DEFAULT=/data)
		    --organism=<string>		Specify an organism to build the database for.
								    it must be one of the organisms available in ENSEMBLs ftp repository.
								    And in the same format as its ENSEMBL ftp directoy name.
								    E.g.: drosophila_melanogaster or homo_sapiens

		    --rsync-link=<rsync://path/to/dir>	         Specify an ftp repository to build the database from.
								    it must be one of the organisms available in ENSEMBLs ftp repository.
								    And in the same format as its ENSEMBL rsync directoy path.
								    E.g.: 
								    rsync://ftp.ensembl.org/ensembl/pub/release-160/  
								    
								    rsync://ftp.ensemblgenomes.org/all/pub/protists/current/

									rsync://ftp.ensemblgenomes.org/all/pub/plants/current/

									rsync://ftp.ensemblgenomes.org/all/pub/fungi/current/
									
									rsync://ftp.ensemblgenomes.org/all/pub/metazoa/current/

		 target_ident 					to identify target sequences.
		    --output-dir=<path/to/dir>			- a working directory as unix path to directory. (DEFAULT=/data)
		    --parameter-file=<path/to/dir>		- a parameter file in cld format as path to file.
		    --gene-list=<path/to/dir>			- a gene list file with ENSEMBL IDs new-line seprated as path to file.
			--scoring-module=<path/to/dir>		- the path and filename of a file defining a perl scoring function

		 library_assembly 				to format a library from an identification folder.
		    --output-dir=<path/to/dir>			- a working directory as unix path to directory. (DEFAULT=/data)
		    --parameter-file=<path/to/dir>		- a parameter file in cld format as path to file.
		    --gene-list=<path/to/dir>			- a gene list file with ENSEMBL IDs new-line seprated as path to file. 
		    --cov=<int>						- Specify the minimum gene coverage as <int> default(15)
		    --lib-size=<int>				- Specify the maximum library size as <int> default(2000)
		    --lib-name=<string>				- Prefix for the final library as <string> default(test_lib).
		    --5-prime=<string>				- Define the adapter to be put in 5' before the target site.
												default(CTGAGCTCATAGAAGACCTCACC)
		    --3-prime=<string>				- Define the adapter to be put in 3' behind the target site.
								   				default(GTTTTAGAGCTAGAAATAGCAAGTTAAAATAAGGCTAGTCCGTGGGTCTTCGTTCG)
		    --cor-5-prime=<string>			- Specify if the first 5' baspair should be corrected to a G
								   				 may be "true" or "false" default :true.	    
		    --input-folder=<path/to/dir>		- Specify the input folder for library assembly.
								    			this folder must be prepared by --task= target_ident
			--spread-over-transcripts=<string>	- should the designs be equally spread oer the different transcripts of the gene
													-an be : true or false (default:true)

		 end_to_end 							to perform and end-to-end analysis from target identification to library formatting
		    --output-dir=<path/to/dir>			- a working directory as unix path to directory. (DEFAULT=/data)
		    --parameter-file=<path/to/dir>		- a parameter file in cld format as path to file.
		    --gene-list=<path/to/dir>			- a gene list file with ENSEMBL IDs new-line seprated as path to file. 
		    --cov=<int>						- Specify the minimum gene coverage as <int> default(15)
		    --lib-size=<int>				- Specify the maximum library size as <int> default(2000)
		    --lib-name=<string>				- Prefix for the final library as <string> default(test_lib).
		    --5-prime=<string>				- Define the adapter to be put in 5' before the target site.
								    			default(CTGAGCTCATAGAAGACCTCACC)
		    --3-prime=<string>				- Define the adapter to be put in 3' behind the target site.
								    			default(GTTTTAGAGCTAGAAATAGCAAGTTAAAATAAGGCTAGTCCGTGGGTCTTCGTTCG)
		    --cor-5-prime=<string>			- Specify if the first 5' baspair should be corrected to a G.
			--spread-over-transcripts=<string>	- should the designs be equally spread oer the different transcripts of the gene
													-can be : true or false (default:true)
			--scoring-module=<path/to/dir>		- the path and filename of a file defining a perl scoring function

	    --version							- Show version.
	    --help								- Show this message.
	    

params.txt file format

In the following table every parameters as can be defined in the parameter-file is explained in more detail.

parameterexplanationstype/value
purpose_exclusivedefines if the pupose exclusive choice should affect the design filtering criteriaboolean (1 or 0)
min_lengthdefines the minimum length of the protospacer (5' sequence before the PAM)numeric
max_lengthdefines the maximum length of the protospacer (5' sequence before the PAM)numeric
min_Gdefines minimum total G contentnumeric
max_Gdefines maximum total G contentnumeric
min_Adefines minimum total A contentnumeric
max_Adefines maximum total A contentnumeric
min_Cdefines minimum total C contentnumeric
max_Cdefines maximum total C contentnumeric
min_Tdefines minimum total T contentnumeric
max_Tdefines maximum total T contentnumeric
right_homologyif homology arms are chosen, this number defines the length of the arm 5' of the target sitenumeric
left_homologyif homology arms are chosen, this number defines the length of the arm 3' of the target sitenumeric
downstream_windowdefines the 5' nucleotide distance window of a design to the start or stop codon for tagging analysisnumeric
upstream_windowdefines the 3' nucleotide distance window of a design to the start or stop codon for tagging analysisnumeric
number_of_CDSdefines the allowed nucleotid number within CDS downstream of the start codon, if knockout is chosen as the purpose criteriumnumeric
minspacerlengthdefines the minimum spacer length, if paired design is chosen as the purpose criterium (as for the double nickase or FokI Cas9 approach)numeric
maxspacerlengthdefines the maximum spacer length, if paired design is chosen as the purpose criterium (as for the double nickase or FokI Cas9 approach)numeric
precedingdefines if the protospacer should begin with a specific base (example: U6 promotor would favour G at this position)IUPAC coded Nucleotide
PAM_locationdefines if the PAM motif is 3' or 5' located with respect to the protospacer3_prime or 5_prime
PAMdefines the PAM sequence, which can be NAG, NGG or any (allowing both)IUPAC coded Nucleotides
ignore_intergenicdefines if off-targets which are not in any gene should be ignoredboolean (1 or 0)
purposedefines following purposes: knockdown/-out as pupose requires designs to hit in coding sequences near the start codon of a gene, N-terminal tagging requires the start codon to be targeted and C-terminal tagging requires the stop codon to be targeted by sgRNAsknockout, n-tagging, c-tagging, non-coding, CRISPRa or CRISPRi
gene_exclusivedefines if the sgRNA needs to target a region within the targeted gene (for CRISPRa/i 500 before and after the gene are parsed too)boolean (1 or 0)
exon_exclusivedefines if the sgRNA needs to target a region within an exonboolean (1 or 0)
CDS_onlydefines if the sgRNA needs to target a region within a coding regionboolean (1 or 0)
CpG_exclusivedefines if the sgRNA is allowed to target a region within a CpG islandboolean (1 or 0)
specific_exondefines if a specific exon number is to be targetednumeric
retrieve_recomb_matrixdefines if the sequences for homology arms should be computed and reportedboolean (1 or 0)
bowtie_versiondefines which version of bowtie or blast should be used for off-target analysis. Bowtie is more sensitive to mismatches of single designs, and bowtie2 is optimized for paired alignments of sequences. Here Blast tends to be the most sensitive towards less homologous sequences. For all mapping algorithms only full-length alignments are counted.bowtie, bowtie2 or blast
offtargetdbdefines if off-targets should be searched in genomic sequences, sequences of annotated genes or exons of protein coding sequencesgenomeDNA, gDNA or cDNA
targets-alloweddefines how many targets per design are tolerated before it is excluded from the report. This should be grater or equal than 1. Else the target is excluded as well and there are no designs passing.numeric
unspecific_leading_basesdefines the number of 5' base pairs of the target site to be ignored for the off-target mappingnumeric
edit_distance_alloweddefines the edit distance (sum of all mismatch or INDEL positions) allowed during alignment to be still counted as off-targetnumeric
bowtie_modedefine the bowtie mode as referenced in the bowtie2 manualsensitive, very sensitive, fast, very-fast
sec_off_targetdefines if sgRNA targets sites that are not in the genome of interest (for example: GFP etc.). Those sequences need to be provided in an extra fasta formatted file in the database path and named 'secondary_off_targets.fasta'boolean (1 or 0)
max_per_exondefines the maximum number of sgRNA allowed to be reported per exonnumeric
out_gffdefines if a gff should be generatedboolean (1 or 0)
specific_transcriptdefines if only a specific transcript (provided as an ENSEMBL TR ID) should be targeted. This is not applicable if more than one gene is searched.ENSEMBL transcript ID or any
working_pathdefines if an unix path to the results should be used, else results are created in the current working directory (.)e.g. /data/workdir/
databasepathdefines if an unix path to the folder containing CLD formatted databases should be generatede.g. /data/databases/
ref_organismdefines the reference organism as given in the name of the database and the sub-directories e.g. if the organisms is homo_sapiens, the database needs to have the prefix homo_sapiense.g. homo_sapiens , drosophila_melanogaster
data_typedefines if the input file contains official gene symbols, ENSEMBL IDs or genomic coordinates. Coordinates need to be given as ID, chromosome (Ensembl_type), start, end. Coordinate data need to be tab separated and different entries need to be newline separatedshould be either ensemble_acc, gene_symbol or coordinates
ignore_missing_iddefines if the program should die if IDs are faced, that can not be found in the currently used databaseboolean (1 or 0)
kinddefines if sgRNA target sites should be found in a single or paired mode (suitable for the paired nickase or FokI paired nuclease approach)single or double
exclude_overlapping_genesdefines if sgRNA designs targeting multiple overlapping genes/ antisense transcripts should be excludedboolean (1 or 0)
sort_by_rankdefines if sgRNAs should be ranked additionallly by an on-target scoreboolean (1 or 0)
scoresdefines the on-target score to be used. The preset scores are derived from the algorithms proposed by Xu et al. 2015 and Doench et al. 2014. However they are only defined for a 20 nt protospacer adjacent to a NGG PAM.xu_score, doench_old or custom
custom_scoredefines a custom scoring function in perl code. the function needs to be unnamed and dependent on sequence information of the 30mer described in Doench et al.. Results of the function need to be numeric.string in perl language defining a anonymous funtion, which acts on the Doench 30mer
cover_many_transcriptsdefines if priority in sgRNA choice for the final library should be given on maximum coverage of all transcripts of a gene. All other scores will be ignored but shown in the resulting tables.boolean (1 or 0)

.tab file format

In the following table all output columns of the *.tab files are explained in more detail:

ColumnHeadingMeaning
0Nametarget site ID
1Lengthtarget length
2Chromosometarget chromosome
3Starttarget start relative to the chromosome
4Endtarget end relative to the chromosome
5Strandstrand it will target
6Nucleotide sequencetarget site nucleotide composition of the form target_PAM
7Gene NameID::GENE::STRAND
8TranscriptsENSEMBL transcript Ids overlapping with the target site "_"-separated
9Transcript:: ExonENSEMBL transcript::exon Ids overlapping with the target site
10Number of Cpg Islands hitNumber of Cpg Islands overlapping with the target site
11Sequence around the cutsideif it is chosen to save a recombination matrix ist sequence is here
12%A %C %T %Gnucleotide compositions in per cent
13S-Scorespecificity score
14A-Scoreannotation score
15Custom-Scoreby default the score from Doench et al. 2014 else the score deviated from the custom Perl scoring script
16Doench-ScoreEfficacy score as introduced by Doench et al. 2014 Nat. Biotech.
17Xu-ScoreEfficacy score as introduced by Xu et al. 2015 Gen.Res.
18percent of total transcripts hitper cent of transcripts of the targeted gene being hit by that putative sgRNA
19Match-Targettarget genes found by remapping the target site
20Match-Chromosometarget chromosome found by remapping the target site
21Match-Startalignment start with respect to the estimate target chromosome
22Match-Endalignment end with respect to the estimate target chromosome
23Matchstringalignment representation "M" for match "X" for mismatch "I" for insertion "D" for deletion
24Editdistanceestimated edit distance of the alignment (X+I+D, sum of all deletions, insertions or exchanges neccessary to edit the matched sequence to the target sequence)
25Number of Hitsestimated number of target sites in the respective genome with the off-target parameters specified
26Directionstrandedness of the target alignment
27Start_rtitarget start with respect to the estimate target gene
28End_rtitarget end with respect to the estimate target gene