Mercurial > repos > jjohnson > mothur_toolsuite
changeset 24:09740be2bc9c
Mothur - updates for Mothur version 1.24
author | Jim Johnson <jj@umn.edu> |
---|---|
date | Wed, 28 Mar 2012 15:45:03 -0500 |
parents | efd36aa39261 |
children | bfbaf823be4c |
files | mothur/README mothur/tool-data/mothur_aligndb.loc.sample mothur/tool-data/mothur_lookup.loc.sample mothur/tool-data/mothur_map.loc.sample mothur/tool-data/mothur_taxonomy.loc.sample mothur/tools/mothur/classify.tree.xml mothur/tools/mothur/fastq.info.xml mothur/tools/mothur/get.groups.xml mothur/tools/mothur/merge.groups.xml mothur/tools/mothur/mothur_wrapper.py mothur/tools/mothur/otu.association.xml mothur/tools/mothur/remove.groups.xml mothur/tools/mothur/sffinfo.xml mothur/tools/mothur/sort.seqs.xml mothur/tools/mothur/trim.flows.xml mothur/tools/mothur/trim.seqs.xml |
diffstat | 16 files changed, 401 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- a/mothur/README Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/README Wed Mar 28 15:45:03 2012 -0500 @@ -2,8 +2,8 @@ (The environment variable MOTHUR_MAX_PROCESSORS can be used to limit the number of cpu processors used be mothur commands) -Install mothur v.1.22.0 on your galaxy system so galaxy can execute the mothur command - ( This version of wrappers is designed for Mothur version 1.22 - it may work on later versions ) +Install mothur v.1.24.1 on your galaxy system so galaxy can execute the mothur command + ( This version of wrappers is designed for Mothur version 1.24 - it may work on later versions ) http://www.mothur.org/wiki/Download_mothur http://www.mothur.org/wiki/Installation ( This Galaxy Mothur wrapper will invoke Mothur in command line mode: http://www.mothur.org/wiki/Command_line_mode ) @@ -15,6 +15,14 @@ Install in galaxy: tool-data/shared/jars/TreeVector.jar Install reference data from silva and greengenes + RDP reference file (modified for mothur): + http://www.mothur.org/wiki/RDP_reference_files + - 16S rRNA reference (RDP): A collection of 9,662 bacterial and 384 archaeal 16S rRNA gene sequences with an improved taxonomy compared to version 6. + http://www.mothur.org/w/images/2/29/Trainset7_112011.rdp.zip + - 16S rRNA reference (PDS): The RDP reference with three sequences reversed and 119 mitochondrial 16S rRNA gene sequences added as members of the Rickettsiales + http://www.mothur.org/w/images/4/4a/Trainset7_112011.pds.zip + - 28S rRNA reference (RDP): A collection of 8506 reference 28S rRNA gene sequences from the Fungi that were curated by the Kuske lab + http://www.mothur.org/w/images/3/36/FungiLSU_train_v7.zip Silva reference: http://www.mothur.org/wiki/Silva_reference_files - Bacterial references (14,956 sequences) @@ -79,11 +87,19 @@ /project/db/galaxy/mothur/Silva.eukarya.zip /project/db/galaxy/mothur/Gg_ss_map.zip /project/db/galaxy/mothur/core_set_aligned.imputed.fasta + /project/db/galaxy/mothur/RDP/FungiLSU_train_1400bp_8506_mod.fasta + /project/db/galaxy/mothur/RDP/FungiLSU_train_1400bp_8506_mod.tax + /project/db/galaxy/mothur/RDP/trainset6_032010.rdp.fasta + /project/db/galaxy/mothur/RDP/trainset6_032010.rdp.tax + /project/db/galaxy/mothur/RDP/trainset7_112011.pds.fasta + /project/db/galaxy/mothur/RDP/trainset7_112011.pds.tax + /project/db/galaxy/mothur/RDP/trainset7_112011.rdp.fasta + /project/db/galaxy/mothur/RDP/trainset7_112011.rdp.tax -Add tool-data: (contains pointers to silva and greengenes reference data) + +Add tool-data: (contains pointers to silva, greengenes, and RDP reference data) tool-data/mothur_aligndb.loc - tool-data/mothur_calulators.loc tool-data/mothur_map.loc tool-data/mothur_taxonomy.loc tool-data/shared/jars/TreeVector.jar
--- a/mothur/tool-data/mothur_aligndb.loc.sample Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tool-data/mothur_aligndb.loc.sample Wed Mar 28 15:45:03 2012 -0500 @@ -6,11 +6,14 @@ # #<dbname> <file_base> # -greengenes /project/db/galaxy/mothur/core_set_aligned.imputed.fasta -silva archaea /project/db/galaxy/mothur/Silva.archaea/silva.archaea.fasta -silva bacteria /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.fasta -silva eukarya /project/db/galaxy/mothur/silva.eukarya.fasta -silva archaea nogap /project/db/galaxy/mothur/Silva.archaea/nogap.archaea.fasta -silva bacteria nogap /project/db/galaxy/mothur/silva.bacteria/nogap.bacteria.fasta -silva eukarya nogap /project/db/galaxy/mothur/nogap.eukarya.fasta - +#greengenes /project/db/galaxy/mothur/core_set_aligned.imputed.fasta +#silva archaea /project/db/galaxy/mothur/Silva.archaea/silva.archaea.fasta +#silva bacteria /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.fasta +#silva eukarya /project/db/galaxy/mothur/silva.eukarya.fasta +#silva archaea nogap /project/db/galaxy/mothur/Silva.archaea/nogap.archaea.fasta +#silva bacteria nogap /project/db/galaxy/mothur/silva.bacteria/nogap.bacteria.fasta +#silva eukarya nogap /project/db/galaxy/mothur/nogap.eukarya.fasta +#FungiLSU_train_1400bp_8506_mod.fasta /project/db/galaxy/mothur/RDP/FungiLSU_train_1400bp_8506_mod.fasta +#trainset6_032010.rdp.fasta /project/db/galaxy/mothur/RDP/trainset6_032010.rdp.fasta +#trainset7_112011.pds.fasta /project/db/galaxy/mothur/RDP/trainset7_112011.pds.fasta +#trainset7_112011.rdp.fasta /project/db/galaxy/mothur/RDP/trainset7_112011.rdp.fasta
--- a/mothur/tool-data/mothur_lookup.loc.sample Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tool-data/mothur_lookup.loc.sample Wed Mar 28 15:45:03 2012 -0500 @@ -6,8 +6,6 @@ # #<name> <file_base> # -GS20 /project/db/galaxy/mothur/lookup/LookUp_GS20.pat -GSFLX /project/db/galaxy/mothur/lookup/LookUp_GSFLX.pat -Titanium /project/db/galaxy/mothur/lookup/LookUp_Titanium.pat - - +#GS20 /project/db/galaxy/mothur/lookup/LookUp_GS20.pat +#GSFLX /project/db/galaxy/mothur/lookup/LookUp_GSFLX.pat +#Titanium /project/db/galaxy/mothur/lookup/LookUp_Titanium.pat
--- a/mothur/tool-data/mothur_map.loc.sample Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tool-data/mothur_map.loc.sample Wed Mar 28 15:45:03 2012 -0500 @@ -6,5 +6,5 @@ # #<name> <file_base> # -greengenes /project/db/galaxy/mothur/gg.ss.map -silva /project/db/galaxy/mothur/silva.ss.map +#greengenes /project/db/galaxy/mothur/gg.ss.map +#silva /project/db/galaxy/mothur/silva.ss.map
--- a/mothur/tool-data/mothur_taxonomy.loc.sample Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tool-data/mothur_taxonomy.loc.sample Wed Mar 28 15:45:03 2012 -0500 @@ -6,15 +6,19 @@ # #<taxonomyname> <file_base> # -archaea.gg /project/db/galaxy/mothur/Silva.archaea/silva.archaea.gg.tax -archaea.silva /project/db/galaxy/mothur/Silva.archaea/silva.archaea.silva.tax -archaea.rdp /project/db/galaxy/mothur/Silva.archaea/silva.archaea.rdp.tax -archaea.ncbi /project/db/galaxy/mothur/Silva.archaea/silva.archaea.ncbi.tax -bacteria.gg /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.gg.tax -bacteria.silva /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.silva.tax -bacteria.ncbi /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.ncbi.tax -bacteria.rdp /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.rdp.tax -bacteria.rdp6 /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.rdp6.tax -eukarya.silva /project/db/galaxy/mothur/silva.eukarya.silva.tax -eukarya.ncbi /project/db/galaxy/mothur/silva.eukarya.ncbi.tax - +#archaea.gg /project/db/galaxy/mothur/Silva.archaea/silva.archaea.gg.tax +#archaea.silva /project/db/galaxy/mothur/Silva.archaea/silva.archaea.silva.tax +#archaea.rdp /project/db/galaxy/mothur/Silva.archaea/silva.archaea.rdp.tax +#archaea.ncbi /project/db/galaxy/mothur/Silva.archaea/silva.archaea.ncbi.tax +#bacteria.gg /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.gg.tax +#bacteria.silva /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.silva.tax +#bacteria.ncbi /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.ncbi.tax +#bacteria.rdp /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.rdp.tax +#bacteria.rdp6 /project/db/galaxy/mothur/silva.bacteria/silva.bacteria.rdp6.tax +#eukarya.silva /project/db/galaxy/mothur/silva.eukarya.silva.tax +#eukarya.ncbi /project/db/galaxy/mothur/silva.eukarya.ncbi.tax +#trainset6_032010.rdp.tax /project/db/galaxy/mothur/RDP/trainset6_032010.rdp.tax +#trainset7_112011.pds.tax /project/db/galaxy/mothur/RDP/trainset7_112011.pds.tax +#trainset7_112011.rdp.tax /project/db/galaxy/mothur/RDP/trainset7_112011.rdp.tax +#FungiLSU_train_1400bp_8506_mod.tax /project/db/galaxy/mothur/RDP/FungiLSU_train_1400bp_8506_mod.tax +#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mothur/tools/mothur/classify.tree.xml Wed Mar 28 15:45:03 2012 -0500 @@ -0,0 +1,70 @@ +<tool id="mothur_classify_tree" name="Classify.tree" version="1.24.0"> + <description>Get a consensus taxonomy for each node on a tree</description> + <command interpreter="python"> + mothur_wrapper.py + --cmd='classify.tree' + --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.taxonomy\.tre$:'$out_tree,'^\S+\.taxonomy\.summary$:'$summary + --outputdir='$logfile.extra_files_path' + --taxonomy=$taxonomy + --tree=$tree + #if $name.__str__ != "None" and len($name.__str__) > 0: + --name='$name' + #end if + #if $group.__str__ != "None" and len($group.__str__) > 0: + --group=$group + #end if + + --name=$names + </command> + <inputs> + <param name="taxonomy" type="data" format="taxonomy" optional="true" label="taxonomy - Taxonomy to screen"/> + <param name="tree" type="data" format="tre" label="tree - Sequences to filter"/> + <param name="name" type="data" format="names" optional="true" label="name - Sequences Name reference file"/> + <param name="group" type="data" format="group" optional="true" label="group - Sequences Group reference"/> + <param name="cutoff" type="integer" value="51" optional="true" label="cutoff - consensus confidence threshold" + help="The default is 51, meaning 51%. Cutoff cannot be below 51"> + <validator type="in_range" message="The percentage cutoff must be between 51 and 100" min="51" max="100"/> + </param> + + </inputs> + <outputs> + <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> + <data format_source="tree" name="out_tree" label="${tool.name} on ${on_string}: taxonomy.tre" /> + <data format_source="tabular" name="summary" label="${tool.name} on ${on_string}: taxonomy.summary" /> + </outputs> + <requirements> + <requirement type="binary">mothur</requirement> + </requirements> + <tests> + </tests> + <help> +**Mothur Overview** + +Mothur_, initiated by Dr. Patrick Schloss and his software development team +in the Department of Microbiology and Immunology at The University of Michigan, +provides bioinformatics for the microbial ecology community. + +.. _Mothur: http://www.mothur.org/wiki/Main_Page + +**Command Documenation** + +The classify.tree_ command is used to get a consensus taxonomy for each node on a tree. +Input is a taxonomy_ and a tree_ with optional name_ or group_ reference. +The output is a tree_ and a summary.. + + TreeNode NumRep Taxonomy + 243 2 Bacteria(100);"Firmicutes"(100);"Clostridia"(100);Clostridiales(100);"Ruminococcaceae"(100);Faecalibacterium(100); + 244 3 Bacteria(100);"Firmicutes"(100);"Clostridia"(100);Clostridiales(100);"Ruminococcaceae"(100);Faecalibacterium(100); + 245 4 Bacteria(100);"Firmicutes"(100);"Clostridia"(100);Clostridiales(100);"Ruminococcaceae"(100);Faecalibacterium(100); + ... + + +.. _taxonomy: http://www.mothur.org/wiki/Taxonomy_outline +.. _tree: http://evolution.genetics.washington.edu/phylip/newicktree.html +.. _name: http://www.mothur.org/wiki/Name_file +.. _group: http://www.mothur.org/wiki/Group_file +.. _classify.tree: http://www.mothur.org/wiki/Classify.tree + + + </help> +</tool>
--- a/mothur/tools/mothur/fastq.info.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/fastq.info.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,4 +1,4 @@ -<tool id="mothur_fastq_info" name="Fastq.info" version="1.19.0"> +<tool id="mothur_fastq_info" name="Fastq.info" version="1.24.0"> <description>Convert fastq to fasta and quality</description> <command interpreter="python"> mothur_wrapper.py @@ -9,11 +9,17 @@ </command> <inputs> <param name="fastq" type="data" format="fastq" label="fastq - Fastq Sequence file"/> + <param name="fasta" type="boolean" truevalue="" falsevalue="--fasta=false" checked="true" label="fasta - Add fasta to your history" /> + <param name="qfile" type="boolean" truevalue="" falsevalue="--qfile=false" checked="true" label="qfile - Add qfile to your history" /> </inputs> <outputs> <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> - <data format="fasta" name="out_fasta" label="${tool.name} on ${on_string}: fasta"/> - <data format="qual454" name="out_qfile" label="${tool.name} on ${on_string}: qual"/> + <data format="fasta" name="out_fasta" label="${tool.name} on ${on_string}: fasta"> + <filter>fasta == True</filter> + </data> + <data format="qual454" name="out_qfile" label="${tool.name} on ${on_string}: qual"> + <filter>qfile == True</filter> + </data> </outputs> <requirements> <requirement type="binary">mothur</requirement>
--- a/mothur/tools/mothur/get.groups.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/get.groups.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,4 +1,4 @@ -<tool id="mothur_get_groups" name="Get.groups" version="1.21.0"> +<tool id="mothur_get_groups" name="Get.groups" version="1.24.0"> <description>Select groups</description> <command interpreter="python"> mothur_wrapper.py @@ -38,6 +38,10 @@ --taxonomy=$taxonomy_in #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1\\.pick\\.\2',$os.path.basename($taxonomy_in.__str__)) + ":'" + $taxonomy_out.__str__] #end if + #if $design_in.__str__ != "None" and len($design_in.__str__) > 0: + --design=$design_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.*\\.pick\\.\2',$os.path.basename($design_in.__str__)) + ":'" + $design_out.__str__] + #end if --result=#echo ','.join($results) </command> <inputs> @@ -65,6 +69,8 @@ <param name="list_in" type="data" format="list" optional="true" label="list - OTU List"/> <param name="shared_in" type="data" format="shared" optional="true" label="shared - OTU Shared"/> <param name="taxonomy_in" type="data" format="seq.taxonomy" optional="true" label="taxonomy - Taxonomy"/> + <param name="design_in" type="data" format="tabular" optional="true" label="design - assign groups to new grouping" + help="design has 2 columns: group(col 1) and grouping(col 2) (separated by a TAB character) use make.design"/> </inputs> <outputs> <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> @@ -85,6 +91,9 @@ <data format="seq.taxonomy" name="taxonomy_out" label="${tool.name} on ${on_string}: pick.taxonomy"> <filter>taxonomy_in != None</filter> </data> + <data format="design" name="design_out" label="${tool.name} on ${on_string}: pick.design"> + <filter>design_in != None</filter> + </data> </outputs> <requirements> <requirement type="binary">mothur</requirement>
--- a/mothur/tools/mothur/merge.groups.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/merge.groups.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,12 +1,19 @@ -<tool id="mothur_merge_groups" name="Merge.groups" version="1.20.0" > +<tool id="mothur_merge_groups" name="Merge.groups" version="1.24.0" > <description>Merge groups in a shared file</description> <command interpreter="python"> mothur_wrapper.py --cmd='merge.groups' ## 98_sq_phylip_amazon.fn.merge.shared - --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.merge\.\S+$:'$shared + #set results = ["'^mothur.\S+\.logfile$:'" + $logfile.__str__] --outputdir='$logfile.extra_files_path' - --shared=$otu + #if $otu.__str__ != "None" and len($otu.__str__) > 0: + --shared=$otu + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.merge.\2',$os.path.basename($otu.__str__)) + ":'" + $merge_shared.__str__] + #end if + #if $group.__str__ != "None" and len($group.__str__) > 0: + --group=$group + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.merge.\2',$os.path.basename($group.__str__)) + ":'" + $merge_group.__str__] + #end if #if $design.source == 'hist': --design=$design_dataset #else: @@ -18,9 +25,11 @@ #if $label.__str__ != "None" and len($label.__str__) > 0: --label='$label' #end if + --result=#echo ','.join($results) </command> <inputs> - <param name="otu" type="data" format="shared" label="shared - OTU Shared Dataset"/> + <param name="otu" type="data" format="shared" optional="true" label="shared - OTU Shared Dataset"/> + <param name="group" type="data" format="groups" optional="true" label="group - Group Dataset"/> <param name="groups" type="select" optional="true" label="groups - Pick groups to include" multiple="true"> <options from_dataset="otu"> <column name="name" index="1"/> @@ -77,7 +86,12 @@ </configfiles> <outputs> <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> - <data format="shared" name="shared" label="${tool.name} on ${on_string}: merge.shared" /> + <data format="shared" name="merged_shared" label="${tool.name} on ${on_string}: merge.shared" > + <filter>otu != None</filter> + </data> + <data format="groups" name="merged_group" label="${tool.name} on ${on_string}: merge.groups" > + <filter>groups != None</filter> + </data> </outputs> <requirements> <requirement type="binary">mothur</requirement>
--- a/mothur/tools/mothur/mothur_wrapper.py Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/mothur_wrapper.py Wed Mar 28 15:45:03 2012 -0500 @@ -4,7 +4,7 @@ http://www.mothur.org/ Supports mothur version -mothur v.1.23.0 +mothur v.1.24.0 Class encapsulating Mothur galaxy tool. Expect each invocation to include: @@ -192,6 +192,7 @@ cmd_dict['chop.seqs'] = dict({'required' : ['fasta','numbases'], 'optional' : ['countgaps','keep','short']}) cmd_dict['classify.otu'] = dict({'required' : ['list','taxonomy'],'optional' : ['name','cutoff','label','group','probs','basis','reftaxonomy']}) cmd_dict['classify.seqs'] = dict({'required' : ['fasta','reference','taxonomy'],'optional' : ['name','search','ksize','method','match','mismatch','gapopen','gapextend','numwanted','probs','save','processors']}) + cmd_dict['classify.tree'] = dict({'required' : ['taxonomy','tree'],'optional' : ['name','group','cutoff']}) #clear.memory ## not needed in galaxy framework cmd_dict['clearcut'] = dict({'required' : [['phylip','fasta']],'optional' : ['seed','norandom','shuffle','neighbor','expblen','expdist','ntrees','matrixout','kimura','jukes','protein','DNA']}) cmd_dict['cluster'] = dict({'required' : [['phylip','column']] , 'optional' : ['name','method','cutoff','hard','precision','sim','showabund','timing']}) @@ -209,10 +210,10 @@ cmd_dict['deunique.tree'] = dict({'required' : ['tree','name'], 'optional' : []}) cmd_dict['dist.seqs'] = dict({'required' : ['fasta'], 'optional' : ['calc','countends','output','cutoff','oldfasta','column','processors']}) cmd_dict['dist.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','groups','output','processors']}) - cmd_dict['fastq.info'] = dict({'required' : ['fastq'], 'optional' : []}) + cmd_dict['fastq.info'] = dict({'required' : ['fastq'], 'optional' : ['fasta','qfile']}) cmd_dict['filter.seqs'] = dict({'required' : ['fasta'], 'optional' : ['vertical','trump','soft','hard','processors']}) cmd_dict['get.group'] = dict({'required' : ['shared'], 'optional' : []}) - cmd_dict['get.groups'] = dict({'required' : ['group'], 'optional' : ['groups','accnos','fasta','name','list','shared','taxonomy']}) + cmd_dict['get.groups'] = dict({'required' : ['group'], 'optional' : ['groups','accnos','fasta','name','list','shared','taxonomy','design']}) cmd_dict['get.lineage'] = dict({'required' : ['taxonomy','taxon'],'optional' : ['fasta','name','group','list','alignreport','dups']}) cmd_dict['get.otulist'] = dict({'required' : ['list'], 'optional' : ['label','sort']}) cmd_dict['get.oturep'] = dict({'required' : ['list',['phylip','column']], 'optional' : ['fasta','name','label','group','groups','sorted','precision','cutoff','large','weighted']}) @@ -234,10 +235,11 @@ cmd_dict['make.shared'] = dict({'required' : ['list','group'], 'optional' : ['label','groups']}) cmd_dict['mantel'] = dict({'required' : ['phylip','phylip2'] , 'optional' : ['method','iters']}) cmd_dict['merge.files'] = dict({'required' : ['input','output']}) - cmd_dict['merge.groups'] = dict({'required' : ['shared','design'], 'optional' : ['groups', 'label']}) + cmd_dict['merge.groups'] = dict({'required' : [['shared','group'],'design'], 'optional' : ['groups', 'label']}) cmd_dict['metastats'] = dict({'required' : ['shared','design'], 'optional' : ['groups', 'label','iters','threshold','sets','processors']}) cmd_dict['nmds'] = dict({'required' : ['phylip'], 'optional' : ['axes','mindim','maxdim','iters','maxiters','epsilon']}) cmd_dict['normalize.shared'] = dict({'required' : [['shared','relabund']], 'optional' : ['label','method','norm','groups','makerelabund']}) + cmd_dict['otu.association'] = dict({'required' : [['shared','relabund']], 'optional' : ['groups', 'label','method']}) cmd_dict['otu.hierarchy'] = dict({'required' : ['list','label'], 'optional' : ['output']}) cmd_dict['pairwise.seqs'] = dict({'required' : ['fasta'], 'optional' : ['align','calc','countends','output','cutoff','match','mismatch','gapopen','gapextend','processors']}) cmd_dict['parse.list'] = dict({'required' : ['list','group'], 'optional' : ['label']}) @@ -249,24 +251,21 @@ cmd_dict['pre.cluster'] = dict({'required' : ['fasta'], 'optional' : ['name','diffs','group','processors']}) cmd_dict['rarefaction.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','iters','groups','jumble']}) cmd_dict['rarefaction.single'] = dict({'required' : [['list', 'sabund', 'rabund', 'shared']], 'optional' : ['calc','abund','iters','label','freq','processors']}) - cmd_dict['remove.groups'] = dict({'required' : ['group'], 'optional' : ['groups','accnos','fasta','name','list','shared','taxonomy']}) + cmd_dict['remove.groups'] = dict({'required' : ['group'], 'optional' : ['groups','accnos','fasta','name','list','shared','taxonomy','design']}) cmd_dict['remove.lineage'] = dict({'required' : ['taxonomy','taxon'],'optional' : ['fasta','name','group','list','alignreport','dups']}) cmd_dict['remove.otus'] = dict({'required' : ['group','list','label'], 'optional' : ['groups','accnos']}) cmd_dict['remove.rare'] = dict({'required' : [['list','sabund','rabund','shared'],'nseqs'], 'optional' : ['group','groups','label','bygroup']}) cmd_dict['remove.seqs'] = dict({'required' : ['accnos',['fasta','qfile','name','group','list','alignreport','taxonomy']], 'optional' : ['dups']}) cmd_dict['reverse.seqs'] = dict({'required' : ['fasta']}) - cmd_dict['screen.seqs'] = dict({'required' : ['fasta'], 'optional' : ['start','end','maxambig','maxhomop','minlength','maxlength','criteria','optimize','name','group','alignreport'''taxonomy','processors']}) + cmd_dict['screen.seqs'] = dict({'required' : ['fasta'], 'optional' : ['start','end','maxambig','maxhomop','minlength','maxlength','criteria','optimize','name','group','alignreport','taxonomy','processors']}) cmd_dict['sens.spec'] = dict({'required' : ['list',['column','phylip']] , 'optional' : ['label','cutoff','hard','precision']}) - cmd_dict['seq.error'] = dict({'required' : ['fasta','reference'] , 'optional' : ['name','qfile','report','ignorechimeras','threshold','processors']}) - cmd_dict['sffinfo'] = dict({'required' : [['sff','sfftxt']], 'optional' : ['fasta','qfile','trim','sfftxt','flow','accnos']}) - cmd_dict['shhh.flows'] = dict({'required' : [['flow','files']], 'optional' : ['lookup','maxiter','mindelta','cutoff','sigma','order','processors']}) cmd_dict['shhh.seqs'] = dict({'required' : [['fasta','files']], 'optional' : ['group','sigma','processors']}) - cmd_dict['split.abund'] = dict({'required' : ['fasta',['name','list']], 'optional' : ['cutoff','group','groups','label','accnos']}) cmd_dict['split.groups'] = dict({'required' : ['fasta','group'], 'optional' : ['name','groups']}) + cmd_dict['sort.seqs'] = dict({'required' : [['fasta','qfile','name','group','flow','taxonomy']], 'optional' : ['accnos','large']}) cmd_dict['sub.sample'] = dict({'required' : [['fasta','list','sabund','rabund','shared']], 'optional' : ['name','group','groups','label','size','persample']}) cmd_dict['summary.qual'] = dict({'required' : ['qfile'], 'optional' : ['name']}) cmd_dict['summary.seqs'] = dict({'required' : ['fasta'], 'optional' : ['name','processors']}) @@ -274,8 +273,8 @@ cmd_dict['summary.single'] = dict({'required' : [['list','sabund','rabund','shared']], 'optional' : ['calc','abund','size','label','groupmode']}) cmd_dict['summary.tax'] = dict({'required' : ['taxonomy'], 'optional' : ['name','group','reftaxonomy']}) cmd_dict['tree.shared'] = dict({'required' : [['shared','phylip','column']], 'optional' : ['name','groups','calc','cutoff','precision','label']}) - cmd_dict['trim.flows'] = dict({'required' : ['flow'], 'optional' : ['oligos','bdiffs','pdiffs','tdiffs','minflows','maxflows','fasta','signal','noise','maxhomop','order','processors']}) - cmd_dict['trim.seqs'] = dict({'required' : ['fasta'], 'optional' : ['name','group','oligos','qfile','qaverage','qthreshold','qwindowaverage','qwindowsize','rollaverage','qstepsize','qtrim','flip','maxambig','maxhomop','minlength','maxlength','bdiffs','pdiffs','tdiffs','allfiles','keepfirst','removelast','processors']}) + cmd_dict['trim.flows'] = dict({'required' : ['flow'], 'optional' : ['oligos','bdiffs','pdiffs','tdiffs','ldiffs','sdiffs','minflows','maxflows','fasta','signal','noise','maxhomop','order','processors']}) + cmd_dict['trim.seqs'] = dict({'required' : ['fasta'], 'optional' : ['name','group','oligos','qfile','qaverage','qthreshold','qwindowaverage','qwindowsize','rollaverage','qstepsize','qtrim','flip','maxambig','maxhomop','minlength','maxlength','bdiffs','pdiffs','tdiffs','ldiffs','sdiffs','keepforward','allfiles','keepfirst','removelast','processors']}) cmd_dict['unifrac.unweighted'] = dict({'required' : ['tree'], 'optional' : ['name','group','groups','iters','distance','random','root','processors']}) cmd_dict['unifrac.weighted'] = dict({'required' : ['tree'], 'optional' : ['name','group','groups','iters','distance','random','root','processors']}) cmd_dict['unique.seqs'] = dict({'required' : ['fasta'], 'optional' : ['name']}) @@ -337,9 +336,12 @@ parser.add_option( '--oligos', dest='oligos', help='The oligos option takes a file that can contain the sequences of the forward and reverse primers and barcodes and their sample identifier.' ) parser.add_option( '--bdiffs', dest='bdiffs', type="int", help='Number of barcode differences to allow' ) parser.add_option( '--pdiffs', dest='pdiffs', type="int", help='Number of primer differences to allow' ) + parser.add_option( '--ldiffs', dest='ldiffs', type="int", help='Number of linker sequence differences to allow' ) + parser.add_option( '--sdiffs', dest='sdiffs', type="int", help='Number of spacer sequence differences to allow' ) parser.add_option( '--tdiffs', dest='tdiffs', type="int", help='Total number of barcode and primer differences to allow' ) parser.add_option( '--diffs', dest='diffs', type="int", help='Number of mismatched bases to allow between sequences in a group' ) parser.add_option( '--allfiles', dest='allfiles', help='T - generate fasta and group for each barcode' ) + parser.add_option( '--keepforward', dest='keepforward', help='T - keep primer' ) parser.add_option( '--name', dest='name', help='A file containing a 2 column table: name, and comma separated list of represetatives' ) parser.add_option( '--accnos', dest='accnos', help='A file containing a list of names' ) parser.add_option( '--groups', dest='groups', help='pairwise group labels' )
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mothur/tools/mothur/otu.association.xml Wed Mar 28 15:45:03 2012 -0500 @@ -0,0 +1,75 @@ +<tool id="mothur_otu_association" name="Otu.association" version="1.24.0" force_history_refresh="True"> + <description>Calculate the correlation coefficient for the otus</description> + <command interpreter="python"> + mothur_wrapper.py + --cmd='otu.association' + --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.norm\.shared$:'$shared + --outputdir='$logfile.extra_files_path' + --datasetid='$logfile.id' --new_file_path='$__new_file_path__' + --new_datasets='^\S+?\.otu.corr$:$tabular' + #if isinstance($otu.datatype, $__app__.datatypes_registry.get_datatype_by_extension('shared').__class__): + --shared=$otu + #elif isinstance($otu.datatype, $__app__.datatypes_registry.get_datatype_by_extension('relabund').__class__): + --relabund=$otu + #end if + #if $label.__str__ != "None" and len($label.__str__) > 0: + --label='$label' + #end if + #if $groups.__str__ != "None" and len($groups.__str__) > 0: + --groups=$groups + #end if + #if $method.__str__ != "None" and len($method.__str__) > 0: + --method=$method + #end if + </command> + <inputs> + <param name="otu" type="data" format="shared,relabund" label="shared,relabund - OTU Shared or Relabund file"/> + <param name="label" type="select" label="label - OTU Labels" multiple="true"> + <options from_dataset="otu"> + <column name="name" index="0"/> + <column name="value" index="0"/> + <filter type="static_value" name="ignore_header" keep="False" column="0" value = "label"/> + <filter type="unique_value" name="unq_lbl" column="0" /> + </options> + </param> + <param name="groups" type="select" label="groups - Groups to include" multiple="true"> + <options from_dataset="otu"> + <column name="name" index="1"/> + <column name="value" index="1"/> + <filter type="static_value" name="ignore_header" keep="False" column="1" value = "Group"/> + <filter type="unique_value" name="unq_grp" column="1" /> + </options> + </param> + <param name="method" type="select" label="method - Normalization method"> + <option value="pearson" selected="true">pearson</option> + <option value="spearman">spearman</option> + <option value="kendall">kendall</option> + </param> + </inputs> + <outputs> + <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> + </outputs> + <requirements> + <requirement type="binary">mothur</requirement> + </requirements> + <tests> + </tests> + <help> +**Mothur Overview** + +Mothur_, initiated by Dr. Patrick Schloss and his software development team +in the Department of Microbiology and Immunology at The University of Michigan, +provides bioinformatics for the microbial ecology community. + +.. _Mothur: http://www.mothur.org/wiki/Main_Page + +**Command Documenation** + +The otu.association_ command calculates the correlation coefficient for the otus in a shared_ or relabund_ file. + +.. _shared: http://www.mothur.org/wiki/Shared_file +.. _relabund: http://www.mothur.org/wiki/Get.relabund +.. _otu.association: http://www.mothur.org/wiki/Otu.association + + </help> +</tool>
--- a/mothur/tools/mothur/remove.groups.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/remove.groups.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,4 +1,4 @@ -<tool id="mothur_remove_groups" name="Remove.groups" version="1.21.0"> +<tool id="mothur_remove_groups" name="Remove.groups" version="1.24.0"> <description>Remove groups from groups,fasta,names,list,taxonomy</description> <command interpreter="python"> mothur_wrapper.py @@ -38,6 +38,10 @@ --taxonomy=$taxonomy_in #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1\\.pick\\.\2',$os.path.basename($taxonomy_in.__str__)) + ":'" + $taxonomy_out.__str__] #end if + #if $design_in.__str__ != "None" and len($design_in.__str__) > 0: + --design=$design_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.*\\.pick\\.\2',$os.path.basename($design_in.__str__)) + ":'" + $design_out.__str__] + #end if --result=#echo ','.join($results) </command> <inputs> @@ -65,6 +69,8 @@ <param name="list_in" type="data" format="list" optional="true" label="list - OTU List"/> <param name="shared_in" type="data" format="shared" optional="true" label="shared - OTU Shared"/> <param name="taxonomy_in" type="data" format="seq.taxonomy" optional="true" label="taxonomy - Taxonomy"/> + <param name="design_in" type="data" format="tabular" label="design - assign groups to new grouping" + help="design has 2 columns: group(col 1) and grouping(col 2) (separated by a TAB character) use make.design"/> </inputs> <outputs> <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> @@ -85,6 +91,9 @@ <data format="seq.taxonomy" name="taxonomy_out" label="${tool.name} on ${on_string}: pick.taxonomy"> <filter>taxonomy_in != None</filter> </data> + <data format="design" name="design_out" label="${tool.name} on ${on_string}: pick.design"> + <filter>design_in != None</filter> + </data> </outputs> <requirements> <requirement type="binary">mothur</requirement>
--- a/mothur/tools/mothur/sffinfo.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/sffinfo.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,4 +1,4 @@ -<tool id="mothur_sffinfo" name="Sffinfo" version="1.19.0"> +<tool id="mothur_sffinfo" name="Sffinfo" version="1.24.0"> <description>Summarize the quality of sequences</description> <command interpreter="python"> mothur_wrapper.py @@ -33,7 +33,7 @@ <param name="fasta" type="boolean" truevalue="" falsevalue="--fasta=false" checked="true" label="fasta - Add fasta to your history" /> <param name="qfile" type="boolean" truevalue="" falsevalue="--qfile=false" checked="true" label="qfile - Add qfile to your history" /> <param name="sfftxt" type="boolean" truevalue="--sfftxt=true" falsevalue="" checked="false" label="sfftxt - Add sfftxt to your history" /> - <param name="flow" type="boolean" truevalue="--flow=true" falsevalue="" checked="false" label="flow - Add flow to your history" /> + <param name="flow" type="boolean" truevalue="--flow=true" falsevalue="--flow=false" checked="true" label="flow - Add flow to your history" /> <param name="trim" type="boolean" truevalue="" falsevalue="--trim=false" checked="true" label="trim - Trim sequences and quality scores" /> <param name="accnos" type="data" format="accnos" optional="true" label="accnos - Limit output to named Accessions"/> </inputs>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mothur/tools/mothur/sort.seqs.xml Wed Mar 28 15:45:03 2012 -0500 @@ -0,0 +1,94 @@ +<tool id="mothur_sort_seqs" name="Sort.seqs" version="1.24.0"> + <description>put sequences in different files in the same order</description> + <command interpreter="python"> + mothur_wrapper.py + #import re, os.path + #set results = ["'^mothur.\S+\.logfile$:'" + $logfile.__str__] + ## adds .sorted before the last extension to the input file (except group has .pick) + --cmd='sort.seqs' + --outputdir='$logfile.extra_files_path' + #if $fasta_in.__str__ != "None" and len($fasta_in.__str__) > 0: + --fasta=$fasta_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.sorted.\2',$os.path.basename($fasta_in.__str__)) + ":'" + $fasta_out.__str__] + #end if + #if $qfile_in.__str__ != "None" and len($qfile_in.__str__) > 0: + --qfile=$qfile_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.sorted.\2',$os.path.basename($qfile_in.__str__)) + ":'" + $qfile_out.__str__] + #end if + #if $flow_in.__str__ != "None" and len($flow_in.__str__) > 0: + --flow=$flow_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.sorted.\2',$os.path.basename($flow_in.__str__)) + ":'" + $flow_out.__str__] + #end if + #if $name_in.__str__ != "None" and len($name_in.__str__) > 0: + --name=$name_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.sorted.\2',$os.path.basename($name_in.__str__)) + ":'" + $name_out.__str__] + #end if + #if $group_in.__str__ != "None" and len($group_in.__str__) > 0: + --group=$group_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($group_in.__str__)) + ":'" + $group_out.__str__] + #end if + #if $taxonomy_in.__str__ != "None" and len($taxonomy_in.__str__) > 0: + --taxonomy=$taxonomy_in + #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.sorted.\2',$os.path.basename($taxonomy_in.__str__)) + ":'" + $taxonomy_out.__str__] + #end if + #if $accnos.__str__ != "None" and len($accnos.__str__) > 0: + --accnos=$accnos + #end if + $large + --result=#echo ','.join($results) + </command> + <inputs> + <param name="fasta_in" type="data" format="fasta" optional="true" label="fasta - sequences"/> + <param name="qfile_in" type="data" format="qual" optional="true" label="qfile - sequence quality"/> + <param name="flow_in" type="data" format="sff.flow" optional="true" label="flow - sff flowgram "/> + <param name="group_in" type="data" format="groups" optional="true" label="groups - sequence groupings"/> + <param name="name_in" type="data" format="names" optional="true" label="names - name reference"/> + <param name="taxonomy_in" type="select" format="seq.taxonomy" optional="true" label="taxonomy - taxonomy reference"/> + <param name="accnos" type="data" format="accnos" optional="true" label="accnos - sort "/> + <param name="large" type="boolean" checked="false" truevalue="--large=true" falsevalue="" label="large - Datasets are large and may not fit in RAM"/> + </inputs> + <outputs> + <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" /> + <data format_source="fasta_in" name="fasta_out" label="${tool.name} on ${on_string}: sorted.fasta"> + <filter>fasta_in != None</filter> + </data> + <data format_source="qfile_in" name="qfile_out" label="${tool.name} on ${on_string}: sorted.qfile"> + <filter>qfile_in != None</filter> + </data> + <data format_source="flow_in" name="flow_out" label="${tool.name} on ${on_string}: sorted.flow"> + <filter>flow_in != None</filter> + </data> + <data format_source="group_in" name="group_out" label="${tool.name} on ${on_string}: sorted.group"> + <filter>group_in != None</filter> + </data> + <data format_source="name_in" name="name_out" label="${tool.name} on ${on_string}: sorted.name"> + <filter>name_in != None</filter> + </data> + <data format_source="taxonomy_in" name="taxonomy_out" label="${tool.name} on ${on_string}: sorted.taxonomy"> + <filter>taxonomy_in != None</filter> + </data> + </outputs> + <requirements> + <requirement type="binary">mothur</requirement> + </requirements> + <tests> + </tests> + <help> +**Mothur Overview** + +Mothur_, initiated by Dr. Patrick Schloss and his software development team +in the Department of Microbiology and Immunology at The University of Michigan, +provides bioinformatics for the microbial ecology community. + +.. _Mothur: http://www.mothur.org/wiki/Main_Page + +**Command Documenation** + +The sort.seqs_ command puts sequences from a fasta, name, group, quality, flow or taxonomy file in the same order. +You can provide an accnos file to indicate the order you want, otherwise mothur will use the order of the first file it reads. + +.. _sort.seqs: http://www.mothur.org/wiki/Sort.seqs + + + </help> +</tool>
--- a/mothur/tools/mothur/trim.flows.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/trim.flows.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,4 +1,4 @@ -<tool id="mothur_trim_flows" name="Trim.flows" version="1.22.0" force_history_refresh="True"> +<tool id="mothur_trim_flows" name="Trim.flows" version="1.24.0" force_history_refresh="True"> <description>partition by barcode, trim to length, cull by lenght and mismatches</description> <command interpreter="python"> mothur_wrapper.py @@ -29,15 +29,21 @@ #end if #if $oligo.add == "yes": --oligos=$oligo.oligos - #if int($oligo.bdiffs.__str__) > 0: + #if $oligo.bdiffs.__str__ != '' and int($oligo.bdiffs.__str__) > 0: --bdiffs=$oligo.bdiffs #end if - #if int($oligo.pdiffs.__str__) > 0: + #if $oligo.pdiffs.__str__ != '' and int($oligo.pdiffs.__str__) > 0: --pdiffs=$oligo.pdiffs #end if - #if int($oligo.tdiffs.__str__) > 0: + #if $oligo.tdiffs.__str__ != '' and int($oligo.tdiffs.__str__) > 0: --tdiffs=$oligo.tdiffs #end if + #if $oligo.ldiffs.__str__ != '' and int($oligo.ldiffs.__str__) > 0: + --ldiffs=$oligo.ldiffs + #end if + #if $oligo.sdiffs.__str__ != '' and int($oligo.sdiffs.__str__) > 0: + --sdiffs=$oligo.sdiffs + #end if --datasetid='$logfile.id' --new_file_path='$__new_file_path__' --new_datasets='^\S+?\.(\S+\.flow)$:sff.flow' #end if @@ -65,7 +71,13 @@ <param name="pdiffs" type="integer" value="0" label="pdiffs - number of differences to allow in the primer (default 0)"> <validator type="in_range" message="Number of differences can't be negative" min="0"/> </param> - <param name="tdiffs" type="integer" value="0" label="tdiffs - total number of differences to allow in primer and barcode (ignored if < 1)"> + <param name="tdiffs" type="integer" value="0" label="tdiffs - total number of differences to allow in primer and barcode (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="ldiffs" type="integer" value="0" optional="true" label="ldiffs - total number of differences to allow in linker sequence (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="sdiffs" type="integer" value="0" optional="true" label="sdiffs - total number of differences to allow in spacer sequence (default 0)"> <validator type="in_range" message="Number of differences can't be negative" min="0"/> </param> </when>
--- a/mothur/tools/mothur/trim.seqs.xml Thu Jan 19 11:27:37 2012 -0600 +++ b/mothur/tools/mothur/trim.seqs.xml Wed Mar 28 15:45:03 2012 -0500 @@ -1,4 +1,4 @@ -<tool id="mothur_trim_seqs" name="Trim.seqs" version="1.20.0" force_history_refresh="True"> +<tool id="mothur_trim_seqs" name="Trim.seqs" version="1.24.0" force_history_refresh="True"> <description>Trim sequences - primers, barcodes, quality</description> <command interpreter="python"> mothur_wrapper.py @@ -25,17 +25,24 @@ #end if #if $oligo.add == "yes": --oligos=$oligo.oligos - #if int($oligo.bdiffs.__str__) > 0: + #if $oligo.bdiffs.__str__ != '' and int($oligo.bdiffs.__str__) > 0: --bdiffs=$oligo.bdiffs #end if - #if int($oligo.pdiffs.__str__) > 0: + #if $oligo.pdiffs.__str__ != '' and int($oligo.pdiffs.__str__) > 0: --pdiffs=$oligo.pdiffs #end if - #if int($oligo.tdiffs.__str__) > 0: + #if $oligo.tdiffs.__str__ != '' and int($oligo.tdiffs.__str__) > 0: --tdiffs=$oligo.tdiffs #end if - $oligo.allfiles - #if $oligo.allfiles.value: + #if $oligo.ldiffs.__str__ != '' and int($oligo.ldiffs.__str__) > 0: + --ldiffs=$oligo.ldiffs + #end if + #if $oligo.sdiffs.__str__ != '' and int($oligo.sdiffs.__str__) > 0: + --sdiffs=$oligo.sdiffs + #end if + $oligo.keepforward + $oligo.allvalues + #if $oligo.allfiles == True: --datasetid='$logfile.id' --new_file_path='$__new_file_path__' --new_datasets='^\S+?\.(\S+\.fasta)$:${fasta.ext}','^\S+?\.(\S+\.groups)$:groups' #end if @@ -88,9 +95,22 @@ <when value="no"/> <when value="yes"> <param name="oligos" type="data" format="oligos" label="oligos - barcodes and primers"/> - <param name="bdiffs" type="integer" value="0" label="bdiffs - number of differences to allow in the barcode (default 0)"/> - <param name="pdiffs" type="integer" value="0" label="pdiffs - number of differences to allow in the primer (default 0)"/> - <param name="tdiffs" type="integer" value="0" label="tdiffs - total number of differences to allow in primer and barcode (ignored if < 1)"/> + <param name="bdiffs" type="integer" value="0" label="bdiffs - number of differences to allow in the barcode (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="pdiffs" type="integer" value="0" label="pdiffs - number of differences to allow in the primer (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="tdiffs" type="integer" value="0" label="tdiffs - total number of differences to allow in primer and barcode (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="ldiffs" type="integer" value="0" optional="true" label="ldiffs - total number of differences to allow in linker sequence (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="sdiffs" type="integer" value="0" optional="true" label="sdiffs - total number of differences to allow in spacer sequence (default 0)"> + <validator type="in_range" message="Number of differences can't be negative" min="0"/> + </param> + <param name="keepforward" type="boolean" truevalue="--keepforward=true" falsevalue="" checked="false" label="keepforward - keep the primer"/> <param name="allfiles" type="boolean" truevalue="--allfiles=true" falsevalue="" checked="false" label="allfiles - separate into file per barcode"/> </when> </conditional>