0
|
1 <tool id="smap_design" name="SMAP-design" version="0.1.0" python_template_version="3.5">
|
|
2 <requirements>
|
|
3 <!--<requirement type="package">smap-design</requirement>-->
|
|
4 <requirement type="package">primer3-py</requirement>
|
|
5 <requirement type="package">pandas</requirement>
|
|
6 <requirement type="package">biopython</requirement>
|
|
7 <requirement type="package">matplotlib</requirement>
|
|
8 <requirement type="package">gffutils</requirement>
|
|
9 </requirements>
|
|
10 <command detect_errors="exit_code"><![CDATA[
|
|
11 #if $input_source_conditional.input_source == "pregenerated_inputs":
|
|
12 design_input_fasta=$input_source_conditional.input_fasta;
|
|
13 design_input_gff3=$input_source_conditional.input_gff3;
|
|
14 #else:
|
|
15 ln -s $input_source_conditional.fasta_file species_fasta.fasta;
|
|
16 ln -s $input_source_conditional.gff_file species.gff3;
|
|
17 ln -s $input_source_conditional.gene_families_file families_file.txt;
|
|
18 #if $input_source_conditional.interest_input_selector.interest_input == "genes":
|
|
19 ln -s $input_source_conditional.interest_input_selector.genes_file genes_file.txt;
|
|
20 #else
|
|
21 ln -s $input_source_conditional.interest_input_selector.homology_groups_file hom_groups_file.txt;
|
|
22 #end if
|
|
23 python3 $__tool_directory__/Get_fasta_and_gff_for_selected_hom_groups_extended_flanking_region.py ./species.gff3 ./species_fasta.fasta ./families_file.txt $input_source_conditional.species --region $input_source_conditional.region
|
|
24 #if $input_source_conditional.interest_input_selector.interest_input == "genes":
|
|
25 --genes genes_file.txt
|
|
26 #else
|
|
27 --hom_groups hom_groups_file.txt
|
|
28 #end if
|
|
29 &&
|
|
30 ###### need to set the design_input_fasta and design_input_gff3 vars
|
|
31 design_input_fasta=`ls *_bp.fasta` &&
|
|
32 design_input_gff3=`ls *_bp.gff`;
|
|
33 #end if
|
|
34 python3 $__tool_directory__/smap_design/SMAPdesign.py
|
|
35 --output 'OUTPUT'
|
|
36 --minimumAmpliconLength $min_amplicon_length
|
|
37 --maximumAmpliconLength $max_amplicon_length
|
|
38 --numbergRNAs $number_grnas
|
|
39 --numberAmplicons $number_amplicons
|
|
40 #if $print_summary:
|
|
41 --summary
|
|
42 #end if
|
|
43 $bordersOnly
|
|
44 --distance $distance
|
|
45 $print_summary
|
|
46 $allAmplicons
|
|
47 --gRNAfile $gRNAfile
|
|
48 --gRNAsource $gRNAsource.value
|
|
49 #if $selectGenes:
|
|
50 --selectGenes $selectGenes
|
|
51 #end if
|
|
52 --gRNAoverlap $gRNAoverlap
|
|
53 --generateAmplicons $generateAmplicons
|
|
54 --threshold $threshold
|
|
55 --borderLength $borderLength
|
|
56 $ampliconLabel
|
|
57 --targetRegion5 $targetRegion5
|
|
58 --targetRegion3 $targetRegion3
|
|
59 #if $targetSpecificRegion:
|
|
60 --targetSpecificRegion $targetSpecificRegion
|
|
61 #end if
|
|
62 $misPrimingAllowed
|
|
63 $restrictPrimerDesign
|
|
64 --promoter '$promoter'
|
|
65 --scaffold '$scaffold'
|
|
66 \$design_input_fasta \$design_input_gff3;
|
|
67 mv OUTPUT.gff3 $gff_output;
|
|
68 mv OUTPUT_primers.tsv $primers_output;
|
|
69 mv OUTPUT_gRNAs.tsv $gRNA_per_gene;
|
|
70 #if $print_summary:
|
|
71 mv OUTPUT_SMAPdesign_summary.tsv $summary;
|
|
72 #end if
|
|
73 #if $bordersOnly:
|
|
74 mv OUTPUT_SMAPdesign_borders.gff3 $borders_output;
|
|
75 #end if
|
|
76 ;
|
|
77 ]]></command>
|
|
78 <inputs>
|
|
79 <conditional name="input_source_conditional">
|
|
80 <param name="input_source" type="select">
|
|
81 <option value="smap_selector">Generate the target gene using SMAP selector</option>
|
|
82 <option value="pregenerated_inputs">Use pregenerated inputs</option>
|
|
83 </param>
|
|
84 <when value="smap_selector">
|
|
85 <param name="species" type="text" label="Species, corresponding with species indicated in the gene family info file"/>
|
|
86 <param name="gene_families_file" type="data" format="tsv,tabular" label="gene family information file (tab-delimited) for the (coding) genes, separated per gene family type"/>
|
|
87 <param name="fasta_file" type="data" format="fasta" label="FASTA file containing the genomic sequence of the species"/>
|
|
88 <param name="gff_file" type="data" format="gff,gff3" label="gff3 file (tab-delimited) of the species containing gene, CDS, and exon features with positions relative to the fasta file"/>
|
|
89 <conditional name="interest_input_selector">
|
|
90 <param name="interest_input" type="select">
|
|
91 <option value="genes">list with genes of interest</option>
|
|
92 <option value="homology_groups">list with homology groups of interest</option>
|
|
93 </param>
|
|
94 <when value="genes">
|
|
95 <param name="genes_file" type="data" format="txt" label="Genes file"/>
|
|
96 </when>
|
|
97 <when value="homology_groups">
|
|
98 <param name="homology_groups_file" type="data" format="txt" label="Homology groups file"/>
|
|
99 </when>
|
|
100 </conditional>
|
|
101 <param argument="--region" type="integer" value="0" label="Region to extend the FASTA sequence of the genes of interest on both sides with the given number of basepairs or with the maximum possible" help="default: 0"/>
|
|
102
|
|
103 </when>
|
|
104 <when value="pregenerated_inputs">
|
|
105 <param name="input_fasta" type="data" optional="false" label="FASTA file containing all genes to screen" format="fasta"/>
|
|
106 <param name="input_gff3" type="data" optional="false" label="GFF3 File" help="GFF3 file with at least the CDS feature with positions relative to the FASTA file " format="gff3,gff"/>
|
|
107 </when>
|
|
108 </conditional>
|
|
109
|
|
110 <param name="number_amplicons" type="integer" value="2" label="The maximum number of non-overlapping amplicons in the output (default = 2)" help="sets the seed for the random number generator"/>
|
|
111 <param name="number_grnas" type="integer" value="2" label="Maximum number of gRNAs to retain per amplicon (default = 2)" help=""/>
|
|
112 <param name="min_amplicon_length" type="integer" value="120" label="The minimum length of the amplicons in base pairs (default = 120)" help=""/>
|
|
113 <param name="max_amplicon_length" type="integer" value="150" label="The maximum length of the amplicons in base pairs (default = 120)" help=""/>
|
|
114 <param name="distance" type="integer" optional="true" value="15" label="Minimum number of bases between primer and gRNA (default = 15)" help=""/>
|
|
115 <param name="print_summary" type="boolean" truevalue="--summary" falsevalue="" label="Write summary file and plot of the output"/>
|
|
116 <param argument='--allAmplicons' type="boolean" truevalue="--allAmplicons" falsevalue="" label='Return all amplicons with their respective gRNAs per gene (extra file)'/>
|
|
117 <param name='bordersOnly' type="boolean" truevalue="-bo" falsevalue="" checked="false" label='Write additional GFF file with only borders (for SMAP)'/>
|
|
118 <param argument='--gRNAfile' type="data" format="tsv,tabular" label='CRISPOR, FlashFry or other gRNA design program output file' help="The CRISPOR and Flashfry file must contain a header and 12 columns. Check the manual for specifics"/>
|
|
119 <param name='gRNAsource' type="select" label="What is the source of the gRNA file?">
|
|
120 <option value="crispor">CRISPOR</option>
|
|
121 <option value="flashfry">FlashFry</option>
|
|
122 <option value="other">Other</option>
|
|
123 </param>
|
|
124 <param argument='--selectGenes' type="data" optional="true" format="txt" label="OPTIONAL List of genes (one per line) to which amplicons and guides must be designed" help='The other genes in the fasta file will be used to check for specificity only. default: if no list is used then, for all genes in the fasta the design is done'/>
|
|
125 <param argument='--gRNAoverlap' label='The minimum number of bases between the start of two gRNAs' type="integer" value="5"/>
|
|
126 <param argument='--generateAmplicons' label="Number of amplicons to generate per gene by Primer3." help="To generate 50 amplicons per 1000 bases per gene enter -1" value="150" type="integer"/>
|
|
127 <param argument='--threshold' label='Minimum gRNA MIT score allowed (default = 80)' value="80" type="integer"/>
|
|
128 <param argument='--borderLength' value="10" type="integer" label='The length of the borders (for SMAP)'/>
|
|
129 <param argument='--ampliconLabel' type="boolean" truevalue="--ampliconLabel" falsevalue="" checked="false" label='Number the amplicons from left to right instead of from best to worst'/>
|
|
130 <param argument='--gRNAlabel' type="boolean" truevalue="--gRNAlabel" falsevalue="" checked="false" label='Number the gRNAs from left to right instead of from best to worst (based on specificity scores)'/>
|
|
131 <param argument='--targetRegion5' label="The fraction of the coding sequencing that cannot be targeted at the 5' end as indicated by a float between 0 and 1 (default = 0.2)" value="0.2" type="float"/>
|
|
132 <param argument='--targetRegion3' label="The fraction of the coding sequencing that cannot be targeted at the 3' end as indicated by a float between 0 and 1 (default = 0.2)" value="0.2" type="float"/>
|
|
133 <param argument='--targetSpecificRegion' label='Only target a specific region in the gene indicated by the feature name in the GFF file' value="" type="text"/>
|
|
134 <param argument='--misPrimingAllowed' type="boolean" truevalue="--misPrimingAllowed" falsevalue="" label='Do not check for mispriming in the gene set when designing primers' help='By default Primer3 will not allow primers that can prime at other genes in the gene set' checked="false"/>
|
|
135 <param argument='--restrictPrimerDesign' type="boolean" truevalue="--restrictPrimerDesign" falsevalue="" label='Restrict primer design in large introns' help="Increases the speed of amplicon design. This should have no impact on the output" checked="false"/>
|
|
136 <param argument="--promoter" type="text" label='Give the last 6 bases of the promoter that will be used to express the gRNA. This will be taken into account when checking for BsaI or BbsI sites in the gRNA' help="default: U6 promoter = GTAGTG)" value="GTAGTG" />
|
|
137
|
|
138 <param argument="--scaffold" type="text" label="Give the first 6 bases of the scaffold that will be used. This will be taken into account when checking for BsaI or BbsI sites in the gRNA" value="GTTTTA"/>
|
|
139
|
|
140 </inputs>
|
|
141 <outputs>
|
|
142 <data format="gff3" name="gff_output" label="GFF3 design" />
|
|
143 <data format="tsv" name="primers_output" label="Primers sequences per gene" />
|
|
144 <data format="tsv" name="gRNA_per_gene" label="gRNA sequences per gene" />
|
|
145 <data format="tsv" name="summary" label="Summary">
|
|
146 <filter>print_summary == "--summary"</filter>
|
|
147 </data>
|
|
148 <data format="gff3" name="borders_output" label="Borders">
|
|
149 <filter>bordersOnly == "-bo"</filter>
|
|
150 </data>
|
|
151 </outputs>
|
|
152 <help><![CDATA[
|
|
153 TODO: Fill in help.
|
|
154 ]]></help>
|
|
155 </tool>
|