changeset 7:3cfe41810949 draft

Update to mothur v 1.27
author Jim Johnson <jj@umn.edu>
date Fri, 30 Nov 2012 08:16:51 -0600 (2012-11-30)
parents 1bfd4a8ecb3d
children 561fa7324f60
files mothur/README mothur/datatypes_conf.xml mothur/lib/galaxy/datatypes/metagenomics.py mothur/tool_dependencies.xml mothur/tools/mothur/align.check.xml mothur/tools/mothur/align.seqs.xml mothur/tools/mothur/amova.xml mothur/tools/mothur/anosim.xml mothur/tools/mothur/bin.seqs.xml mothur/tools/mothur/chimera.bellerophon.xml mothur/tools/mothur/chimera.ccode.xml mothur/tools/mothur/chimera.check.xml mothur/tools/mothur/chimera.perseus.xml mothur/tools/mothur/chimera.pintail.xml mothur/tools/mothur/chimera.slayer.xml mothur/tools/mothur/chimera.uchime.xml mothur/tools/mothur/chop.seqs.xml mothur/tools/mothur/classify.otu.xml mothur/tools/mothur/classify.seqs.xml mothur/tools/mothur/classify.tree.xml mothur/tools/mothur/clearcut.xml mothur/tools/mothur/cluster.classic.xml mothur/tools/mothur/cluster.fragments.xml mothur/tools/mothur/cluster.split.xml mothur/tools/mothur/cluster.xml mothur/tools/mothur/collect.shared.xml mothur/tools/mothur/collect.single.xml mothur/tools/mothur/consensus.seqs.xml mothur/tools/mothur/cooccurrence.xml mothur/tools/mothur/corr.axes.xml mothur/tools/mothur/count.groups.xml mothur/tools/mothur/count.seqs.xml mothur/tools/mothur/create.database.xml mothur/tools/mothur/degap.seqs.xml mothur/tools/mothur/deunique.seqs.xml mothur/tools/mothur/deunique.tree.xml mothur/tools/mothur/dist.seqs.xml mothur/tools/mothur/dist.shared.xml mothur/tools/mothur/fastq.info.xml mothur/tools/mothur/filter.seqs.xml mothur/tools/mothur/get.coremicrobiome.xml mothur/tools/mothur/get.group.xml mothur/tools/mothur/get.groups.xml mothur/tools/mothur/get.lineage.xml mothur/tools/mothur/get.otulabels.xml mothur/tools/mothur/get.otulist.xml mothur/tools/mothur/get.oturep.xml mothur/tools/mothur/get.otus.xml mothur/tools/mothur/get.rabund.xml mothur/tools/mothur/get.relabund.xml mothur/tools/mothur/get.sabund.xml mothur/tools/mothur/get.seqs.xml mothur/tools/mothur/get.sharedseqs.xml mothur/tools/mothur/hcluster.xml mothur/tools/mothur/heatmap.bin.xml mothur/tools/mothur/heatmap.sim.xml mothur/tools/mothur/homova.xml mothur/tools/mothur/indicator.xml mothur/tools/mothur/libshuff.xml mothur/tools/mothur/list.otulabels.xml mothur/tools/mothur/list.seqs.xml mothur/tools/mothur/make.biom.xml mothur/tools/mothur/make.design.xml mothur/tools/mothur/make.fastq.xml mothur/tools/mothur/make.group.xml mothur/tools/mothur/make.shared.xml mothur/tools/mothur/make.shared_from_biom.xml mothur/tools/mothur/mantel.xml mothur/tools/mothur/merge.files.xml mothur/tools/mothur/merge.groups.xml mothur/tools/mothur/metastats.xml mothur/tools/mothur/mothur_wrapper.py mothur/tools/mothur/nmds.xml mothur/tools/mothur/normalize.shared.xml mothur/tools/mothur/otu.association.xml mothur/tools/mothur/otu.hierarchy.xml mothur/tools/mothur/pairwise.seqs.xml mothur/tools/mothur/parse.list.xml mothur/tools/mothur/parsimony.xml mothur/tools/mothur/pca.xml mothur/tools/mothur/pcoa.xml mothur/tools/mothur/pcr.seqs.xml mothur/tools/mothur/phylo.diversity.xml mothur/tools/mothur/phylotype.xml mothur/tools/mothur/pre.cluster.xml mothur/tools/mothur/rarefaction.shared.xml mothur/tools/mothur/rarefaction.single.xml mothur/tools/mothur/remove.groups.xml mothur/tools/mothur/remove.lineage.xml mothur/tools/mothur/remove.otulabels.xml mothur/tools/mothur/remove.otus.xml mothur/tools/mothur/remove.rare.xml mothur/tools/mothur/remove.seqs.xml mothur/tools/mothur/reverse.seqs.xml mothur/tools/mothur/screen.seqs.xml mothur/tools/mothur/sens.spec.xml mothur/tools/mothur/seq.error.xml mothur/tools/mothur/sffinfo.xml mothur/tools/mothur/shhh.flows.xml mothur/tools/mothur/shhh.seqs.xml mothur/tools/mothur/sort.seqs.xml mothur/tools/mothur/split.abund.xml mothur/tools/mothur/split.groups.xml mothur/tools/mothur/sub.sample.xml mothur/tools/mothur/summary.qual.xml mothur/tools/mothur/summary.seqs.xml mothur/tools/mothur/summary.shared.xml mothur/tools/mothur/summary.single.xml mothur/tools/mothur/summary.tax.xml mothur/tools/mothur/tree.shared.xml mothur/tools/mothur/trim.flows.xml mothur/tools/mothur/trim.seqs.xml mothur/tools/mothur/unifrac.unweighted.xml mothur/tools/mothur/unifrac.weighted.xml mothur/tools/mothur/unique.seqs.xml mothur/tools/mothur/venn.xml
diffstat 116 files changed, 761 insertions(+), 137 deletions(-) [+]
line wrap: on
line diff
--- a/mothur/README	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/README	Fri Nov 30 08:16:51 2012 -0600
@@ -2,8 +2,9 @@
 
 (The environment variable MOTHUR_MAX_PROCESSORS can be used to limit the number of cpu processors used be mothur commands)
 
-Install mothur v.1.25.0 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 )
+Mothur should be able to be auto installed as a tool_dependency, otherwise: 
+  Install mothur v.1.27 on your galaxy system so galaxy can execute the mothur command
+  ( This version of wrappers is designed for Mothur version 1.27 - 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 )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mothur/datatypes_conf.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<datatypes>
+    <datatype_files>
+        <datatype_file name="metagenomics.py"/>
+    </datatype_files>
+    <registration>
+        <!-- Start Mothur Datatypes -->
+        <datatype extension="otu" type="galaxy.datatypes.metagenomics:Otu" display_in_upload="true"/>
+        <datatype extension="list" type="galaxy.datatypes.metagenomics:OtuList" display_in_upload="true"/>
+        <datatype extension="sabund" type="galaxy.datatypes.metagenomics:Sabund" display_in_upload="true"/>
+        <datatype extension="rabund" type="galaxy.datatypes.metagenomics:Rabund" display_in_upload="true"/>
+        <datatype extension="shared" type="galaxy.datatypes.metagenomics:SharedRabund" display_in_upload="true"/>
+        <datatype extension="relabund" type="galaxy.datatypes.metagenomics:RelAbund" display_in_upload="true"/>
+        <datatype extension="names" type="galaxy.datatypes.metagenomics:Names" display_in_upload="true"/>
+        <datatype extension="design" type="galaxy.datatypes.metagenomics:Design" display_in_upload="true"/>
+        <datatype extension="group.metadata" type="galaxy.datatypes.metagenomics:GroupMetadata" display_in_upload="true"/>
+        <datatype extension="summary" type="galaxy.datatypes.metagenomics:Summary" display_in_upload="true"/>
+        <datatype extension="groups" type="galaxy.datatypes.metagenomics:Group" display_in_upload="true"/>
+        <datatype extension="oligos" type="galaxy.datatypes.metagenomics:Oligos" display_in_upload="true"/>
+        <datatype extension="align" type="galaxy.datatypes.metagenomics:SequenceAlignment" display_in_upload="true"/>
+        <datatype extension="accnos" type="galaxy.datatypes.metagenomics:AccNos" display_in_upload="true"/>
+        <datatype extension="otulabels" type="galaxy.datatypes.metagenomics:AccNos" display_in_upload="true"/>
+        <datatype extension="otu.corr" type="galaxy.datatypes.tabular:Tabular" display_in_upload="true"/>
+        <datatype extension="map" type="galaxy.datatypes.metagenomics:SecondaryStructureMap" display_in_upload="true"/>
+        <datatype extension="align.check" type="galaxy.datatypes.metagenomics:AlignCheck" display_in_upload="true"/>
+        <datatype extension="align.report" type="galaxy.datatypes.metagenomics:AlignReport" display_in_upload="true"/>
+        <datatype extension="filter" type="galaxy.datatypes.metagenomics:LaneMask" display_in_upload="true"/>
+        <datatype extension="dist" type="galaxy.datatypes.metagenomics:DistanceMatrix" display_in_upload="true"/>
+        <datatype extension="pair.dist" type="galaxy.datatypes.metagenomics:PairwiseDistanceMatrix" display_in_upload="true"/>
+        <datatype extension="square.dist" type="galaxy.datatypes.metagenomics:SquareDistanceMatrix" display_in_upload="true"/>
+        <datatype extension="lower.dist" type="galaxy.datatypes.metagenomics:LowerTriangleDistanceMatrix" display_in_upload="true"/>
+        <datatype extension="ref.taxonomy" type="galaxy.datatypes.metagenomics:RefTaxonomy" display_in_upload="true">
+          <converter file="ref_to_seq_taxonomy_converter.xml" target_datatype="seq.taxonomy"/>
+        </datatype>
+        <datatype extension="seq.taxonomy" type="galaxy.datatypes.metagenomics:SequenceTaxonomy" display_in_upload="true"/>
+        <datatype extension="rdp.taxonomy" type="galaxy.datatypes.metagenomics:RDPSequenceTaxonomy" display_in_upload="true"/>
+        <datatype extension="cons.taxonomy" type="galaxy.datatypes.metagenomics:ConsensusTaxonomy" display_in_upload="true"/>
+        <datatype extension="tax.summary" type="galaxy.datatypes.metagenomics:TaxonomySummary" display_in_upload="true"/>
+        <datatype extension="freq" type="galaxy.datatypes.metagenomics:Frequency" display_in_upload="true"/>
+        <datatype extension="quan" type="galaxy.datatypes.metagenomics:Quantile" display_in_upload="true"/>
+        <datatype extension="filtered.quan" type="galaxy.datatypes.metagenomics:FilteredQuantile" display_in_upload="true"/>
+        <datatype extension="masked.quan" type="galaxy.datatypes.metagenomics:MaskedQuantile" display_in_upload="true"/>
+        <datatype extension="filtered.masked.quan" type="galaxy.datatypes.metagenomics:FilteredMaskedQuantile" display_in_upload="true"/>
+        <datatype extension="axes" type="galaxy.datatypes.metagenomics:Axes" display_in_upload="true"/>
+        <datatype extension="tre" type="galaxy.datatypes.data:Newick" display_in_upload="true"/>
+        <datatype extension="sff.flow" type="galaxy.datatypes.metagenomics:SffFlow" display_in_upload="true"/>
+        <datatype extension="biom" type="galaxy.datatypes.metagenomics:BiologicalObservationMatrix" display_in_upload="true"/>
+        <datatype extension="nhx" type="galaxy.datatypes.metagenomics:Nhx" display_in_upload="true"/>
+        <datatype extension="nex" type="galaxy.datatypes.metagenomics:Nexus" display_in_upload="true"/>
+        <datatype extension="count_table" type="galaxy.datatypes.metagenomics:CountTable" display_in_upload="true"/>
+        <!-- End Mothur Datatypes -->
+        <!-- Start Qiime Datatypes -->
+        <datatype extension="qiimemapping" type="galaxy.datatypes.metagenomics:QiimeMetadataMapping" display_in_upload="true"/>
+        <datatype extension="qiimeotu" type="galaxy.datatypes.metagenomics:QiimeOTU" display_in_upload="true"/>
+        <datatype extension="qiimeotutable" type="galaxy.datatypes.metagenomics:QiimeOTUTable" display_in_upload="true"/>
+        <datatype extension="qiimedistmat" type="galaxy.datatypes.metagenomics:QiimeDistanceMatrix" display_in_upload="true"/>
+        <datatype extension="qiimetaxsummary" type="galaxy.datatypes.metagenomics:QiimeTaxaSummary" display_in_upload="true"/>
+        <datatype extension="qiimepca" type="galaxy.datatypes.metagenomics:QiimePCA" display_in_upload="true"/>
+        <datatype extension="qiimeparams" type="galaxy.datatypes.metagenomics:QiimeParams" display_in_upload="true"/>
+        <datatype extension="qiimeprefs" type="galaxy.datatypes.metagenomics:QiimePrefs" display_in_upload="true"/>
+        <!-- End Qiime Datatypes -->
+    </registration>
+    <sniffers>
+        <sniffer type="galaxy.datatypes.metagenomics:Otu"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Sabund"/>
+        <sniffer type="galaxy.datatypes.metagenomics:GroupAbund"/>
+        <sniffer type="galaxy.datatypes.metagenomics:SharedRabund"/>
+        <sniffer type="galaxy.datatypes.metagenomics:RelAbund"/>
+        <sniffer type="galaxy.datatypes.metagenomics:SecondaryStructureMap"/>
+        <sniffer type="galaxy.datatypes.metagenomics:SequenceAlignment"/>
+        <sniffer type="galaxy.datatypes.metagenomics:LowerTriangleDistanceMatrix"/>
+        <sniffer type="galaxy.datatypes.metagenomics:SquareDistanceMatrix"/>
+        <sniffer type="galaxy.datatypes.metagenomics:PairwiseDistanceMatrix"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Oligos"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Frequency"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Quantile"/>
+        <sniffer type="galaxy.datatypes.metagenomics:LaneMask"/>
+        <sniffer type="galaxy.datatypes.metagenomics:RefTaxonomy"/>
+        <sniffer type="galaxy.datatypes.metagenomics:SequenceTaxonomy"/>
+        <sniffer type="galaxy.datatypes.metagenomics:RDPSequenceTaxonomy"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Phylip"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Axes"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Newick"/>
+        <sniffer type="galaxy.datatypes.metagenomics:Nexus"/>
+        <sniffer type="galaxy.datatypes.metagenomics:BiologicalObservationMatrix"/>
+        <sniffer type="galaxy.datatypes.metagenomics:QiimeMetadataMapping"/>
+    </sniffers>
+</datatypes>
--- a/mothur/lib/galaxy/datatypes/metagenomics.py	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/lib/galaxy/datatypes/metagenomics.py	Fri Nov 30 08:16:51 2012 -0600
@@ -833,6 +833,104 @@
             close(fh)
         return False
 
+class CountTable(Tabular):
+    MetadataElement( name="groups", default=[], desc="Group Names", readonly=True, visible=True, no_value=[] )
+    file_ext = 'count_table'
+
+    def __init__(self, **kwd):
+        """
+        A table with first column names and following columns integer counts
+        # Example 1:
+        Representative_Sequence total   
+        U68630  1
+        U68595  1
+        U68600  1
+        # Example 2 (with group columns):
+        Representative_Sequence total   forest  pasture 
+        U68630  1       1       0       
+        U68595  1       1       0       
+        U68600  1       1       0       
+        U68591  1       1       0       
+        U68647  1       0       1       
+        """
+        Tabular.__init__( self, **kwd )
+        self.column_names = ['name','total']
+
+    def set_meta( self, dataset, overwrite = True, skip = 1, max_data_lines = None, **kwd ):
+        try:
+            data_lines = 0;
+            fh = open( dataset.file_name )
+            line = fh.readline()
+            if line:
+                line = line.strip()
+                colnames = line.split() 
+                if len(colnames) > 1:
+                    dataset.metadata.columns = len( colnames )
+                    if len(colnames) > 2:
+                        dataset.metadata.groups = colnames[2:]
+                    column_types = ['str']
+                    for i in range(1,len(colnames)):
+                        column_types.append('int')
+                    dataset.metadata.column_types = column_types
+                    dataset.metadata.comment_lines = 1
+            while (line = fh.readline())
+                data_lines += 1
+            dataset.metadata.data_lines = data_lines
+        finally:
+            close(fh)
+
+class SampleMetadata(Tabular):
+    MetadataElement( name="groups", default=[], desc="Group Names", readonly=True, visible=True, no_value=[] )
+    MetadataElement( name="", default=[], desc="Group Variables", readonly=True, visible=True, no_value=[] )
+    file_ext = 'metadata'
+
+    def __init__(self, **kwd):
+        """
+        A table with first column being sample names and following columns are variables 
+        # Example 1:
+        group	dpw	description
+        F003D000	0	"F003D000 description"
+        F003D002	2	"F003D002 description"
+        F003D004	4 	"F003D004 description"
+        F003D006	6       "F003D006 description"
+        F003D008	8       "F003D008 description"
+        F003D142	142     "F003D142 description"
+        # Example 2:
+	group   dpw	temp
+	F003D000        0	30.2
+	F003D008        8	32.7
+	F003D142        142 	31.4
+        """
+        Tabular.__init__( self, **kwd )
+
+    def set_meta( self, dataset, overwrite = True, skip = 1, max_data_lines = None, **kwd ):
+        try:
+            data_lines = 0;
+            fh = open( dataset.file_name )
+            line = fh.readline()
+            if line:
+                line = line.strip()
+                fields = line.split() 
+                if len(fields) > 0:
+                    # check if the first row is column headings, not number values
+                    for colname in colnames[1:]:
+                            f = float(linePieces[1])
+
+                    
+                    dataset.metadata.columns = len( colnames )
+                    if len(colnames) > 2:
+                        dataset.metadata.groups = colnames[2:]
+                    column_types = ['str']
+                    for i in range(1,len(colnames)):
+                        column_types.append('int')
+                    dataset.metadata.column_types = column_types
+                    dataset.metadata.comment_lines = 1
+            while (line = fh.readline())
+                data_lines += 1
+            dataset.metadata.data_lines = data_lines
+        finally:
+            close(fh)
+
 class RefTaxonomy(Tabular):
     file_ext = 'ref.taxonomy'
     """
--- a/mothur/tool_dependencies.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tool_dependencies.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <tool_dependency>
-    <package name="mothur" version="1.24.0">
+    <package name="mothur" version="1.27">
         <install version="1.0">
             <actions>
-                <action type="download_by_url">http://www.mothur.org/w/images/0/09/Mothur.1.24.1.zip</action>
+                <action type="download_by_url">http://www.mothur.org/w/images/c/cb/Mothur.1.27.0.zip</action>
                 <action type="shell_command">cd Mothur.source</action>
                 <action type="shell_command">sed -i .bak -e 's/-lcurses/-lncurses/g' Makefile</action>
                 <action type="shell_command">make</action>
@@ -17,6 +17,7 @@
                 </action>
                 <action type="set_environment">
                     <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable>
+                    <environment_variable name="MOTHUR_MAX_PROCESSORS" action="set_to">2</environment_variable>
                 </action>
             </actions>
         </install>
@@ -31,5 +32,8 @@
 
         </readme>
     </package>
+    <!-- 
+      http://supfam.cs.bris.ac.uk/TreeVector/treevectorsource.zip
+    -->
 </tool_dependency>
 
--- a/mothur/tools/mothur/align.check.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/align.check.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -33,7 +33,7 @@
   <data format="align.check" name="out_file" label="${tool.name} on ${on_string}: align.check"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/align.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/align.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -96,7 +96,7 @@
   <data format="align.report" name="report" label="${tool.name} on ${on_string}: align.report" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/amova.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/amova.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -26,7 +26,7 @@
   <data format="tabular" name="amova" label="${tool.name} on ${on_string}: amova"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/anosim.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/anosim.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -26,7 +26,7 @@
   <data format="tabular" name="anosim" label="${tool.name} on ${on_string}: anosim"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/bin.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/bin.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -34,7 +34,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.bellerophon.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.bellerophon.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -31,7 +31,7 @@
   <data format="accnos" name="out_accnos" label="${tool.name} on ${on_string}: bellerophon.accnos" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.ccode.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.ccode.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -64,7 +64,7 @@
   <data format="accnos" name="out_accnos" label="${tool.name} on ${on_string}: ccode.accnos" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.check.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.check.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -64,7 +64,7 @@
   <data format="txt" name="out_file" label="${tool.name} on ${on_string}: chimeracheck.chimeras" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.perseus.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.perseus.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -34,7 +34,7 @@
   <data format="tabular" name="out_file" label="${tool.name} on ${on_string}: perseus.chimeras" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.pintail.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.pintail.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -122,7 +122,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.slayer.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.slayer.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -98,7 +98,7 @@
   <data format="accnos" name="out_accnos" label="${tool.name} on ${on_string}: slayer.accnos" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chimera.uchime.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chimera.uchime.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -149,7 +149,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/chop.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/chop.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -10,6 +10,7 @@
   --keep=$keep
   $countgaps
   $short
+  --processors=8
  </command>
  <inputs>
   <param name="fasta" type="data" format="fasta,align" label="fasta - Sequences to be chopped"/>
@@ -26,7 +27,7 @@
   <data format_source="fasta" name="out_fasta" label="${tool.name} on ${on_string}: chop.fasta" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/classify.otu.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/classify.otu.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -85,7 +85,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/classify.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/classify.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -121,7 +121,7 @@
   <data format="tax.summary" name="tax_summary" label="${tool.name} on ${on_string}: tax.summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/classify.tree.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/classify.tree.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -33,7 +33,7 @@
   <data format_source="tabular" name="summary" label="${tool.name} on ${on_string}: taxonomy.summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/clearcut.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/clearcut.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -64,7 +64,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/cluster.classic.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/cluster.classic.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_cluster_classic" name="Cluster.classic" version="1.19.0">
+<tool id="mothur_cluster_classic" name="Cluster.classic" version="1.27.0">
  <description>Assign sequences to OTUs (Dotur implementation)</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -9,6 +9,9 @@
   #if $name.__str__ != "None" and len($name.__str__) > 0:
    --name=$name
   #end if
+  #if $count.__str__ != "None" and len($count.__str__) > 0:
+    --count=$count
+  #end if
   #if len($method.__str__) > 0:
    --method=$method
   #end if
@@ -24,6 +27,7 @@
  <inputs>
   <param name="dist" type="data" format="lower.dist,square.dist" label="phylip - Distance Matrix"/>
   <param name="name" type="data" format="names" optional="true" label="name - Sequences Name reference"/>
+  <param name="count" type="data" format="count_table" optional="true" label="count - a count_table" help="generated by count.seqs"/>
   <!-- ? conditional - to hide complexity -->
   <param name="method" type="select" label="method - Select a Clustering Method" help="">
    <option value="furthest">Furthest neighbor</option>
@@ -54,7 +58,7 @@
   <data format="list" name="otulist" label="${tool.name} on ${on_string}: list (OTU List)"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/cluster.fragments.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/cluster.fragments.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -29,7 +29,7 @@
   <data format="names" name="out_names" label="${tool.name} on ${on_string}: names" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/cluster.split.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/cluster.split.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_cluster_split" name="Cluster.split" version="1.22.0">
+<tool id="mothur_cluster_split" name="Cluster.split" version="1.27.0">
  <description>Assign sequences to OTUs (Operational Taxonomic Unit) splits large matrices</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -32,6 +32,10 @@
     --taxlevel=$splitby.taxlevel
    #end if
    --splitmethod=$splitby.splitmethod
+   $splitby.classic
+  #end if
+  #if $count.__str__ != "None" and len($count.__str__) > 0:
+    --count=$count
   #end if
   #if len($method.__str__) > 0:
    --method=$method
@@ -82,8 +86,10 @@
     <param name="taxonomy" type="data" format="seq.taxonomy" label="taxonomy - Taxonomy (from Classify.seqs)"/>
     <param name="taxlevel" type="integer" value="3" label="taxlevel - taxonomy level for split (default=3)" 
            help="taxonomy level you want to use to split the distance file, default=1, meaning use the first taxon in each list"/>
+    <param name="classic" type="boolean" checked="false" truevalue="--classic=true" falsevalue="" label="classic - Use cluster.classic" 
    </when>
   </conditional> <!-- splitby -->
+  <param name="count" type="data" format="count_table" optional="true" label="count - a count_table" help="generated by count.seqs"/>
   <param name="method" type="select" label="method - Select a Clustering Method" help="">
    <option value="furthest">Furthest neighbor</option>
    <option value="nearest">Nearest neighbor</option>
@@ -115,7 +121,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/cluster.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/cluster.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_cluster" name="Cluster" version="1.19.0">
+<tool id="mothur_cluster" name="Cluster" version="1.27.0">
  <description>Assign sequences to OTUs (Operational Taxonomic Unit)</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -14,6 +14,9 @@
     --name=$matrix.name
    #end if
   #end if
+  #if $count.__str__ != "None" and len($count.__str__) > 0:
+    --count=$count
+  #end if
   $sim
   #if float($cutoff.__str__) > 0.0:
    --cutoff=$cutoff
@@ -41,6 +44,7 @@
     <param name="name" type="data" format="names" optional="true" label="name - Sequences Name reference"/>
    </when>
   </conditional>
+  <param name="count" type="data" format="count_table" optional="true" label="count - a count_table" help="generated by count.seqs"/>
   <!-- ? conditional - to hide complexity -->
   <param name="method" type="select" label="method - Select a Clustering Method" help="">
    <option value="furthest">Furthest neighbor</option>
@@ -72,7 +76,7 @@
   <data format="list" name="otulist" label="${tool.name} on ${on_string}: list (OTU List)"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/collect.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/collect.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -85,7 +85,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/collect.single.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/collect.single.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -79,7 +79,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/consensus.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/consensus.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -56,7 +56,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/cooccurrence.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/cooccurrence.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -61,7 +61,7 @@
   <data format="tabular" name="out_summary" label="${tool.name} on ${on_string}: cooccurence.summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/corr.axes.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/corr.axes.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -65,7 +65,7 @@
   <data format="axes" name="corr_axes" label="${tool.name} on ${on_string}: corr.axes"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/count.groups.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/count.groups.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -7,6 +7,8 @@
   --outputdir='$logfile.extra_files_path'
   #if isinstance($group.datatype, $__app__.datatypes_registry.get_datatype_by_extension('shared').__class__):
    --shared=$group
+  #elif isinstance($group.datatype, $__app__.datatypes_registry.get_datatype_by_extension('count_table').__class__):
+   --count=$group
   #else:
    --group=$group
   #end if
@@ -21,7 +23,7 @@
   #end if
  </command>
  <inputs>
-  <param name="group" type="data" format="groups,shared" label="group or shared - Group file for sequence count"/>
+  <param name="group" type="data" format="groups,shared,count_table" label="group, shared, or count_table - Group file for sequence count"/>
   <conditional name="groupnames">
    <param name="source" type="select" label="Filter group names">
     <option value="none">Report on All Groups</option>
@@ -47,7 +49,7 @@
   <data format="tabular" name="grp_count" label="${tool.name} on ${on_string}: group.count" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/count.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/count.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,5 +1,5 @@
 <tool id="mothur_count_seqs" name="Count.seqs" version="1.20.0" >
- <description>counts the number of sequences represented by the representative</description>
+ <description>(aka make.table) counts the number of sequences represented by the representative</description>
  <command interpreter="python">
   mothur_wrapper.py 
   --cmd='count.seqs'
@@ -14,6 +14,7 @@
     --groups='$grouping.groups'
    #end if
   #end if
+  $large
  </command>
  <inputs>
   <param name="name" type="data" format="names" label="name - Sequences Name reference"/>
@@ -30,13 +31,14 @@
    </when>
    <when value="no"/>
   </conditional> <!-- use_groups -->
+  <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="tabular" name="seq_count" label="${tool.name} on ${on_string}: seq.count" />
+  <data format="count_table" name="seq_count" label="${tool.name} on ${on_string}: count_table" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
@@ -51,11 +53,12 @@
 
 **Command Documenation**
 
-The count.seqs_ command counts the number of sequences represented by the representative sequence in a name_ file. If a group_ file is given, it will also provide the group count breakdown.
+The count.seqs_ command counts the number of sequences represented by the representative sequence in a name_ file and generates a count_table_. If a group_ file is given, it will also provide the group count breakdown. 
 
 .. _name: http://www.mothur.org/wiki/Name_file
 .. _group: http://www.mothur.org/wiki/Group_file
 .. _count.seqs: http://www.mothur.org/wiki/Count.seqs
+.. _count_table: http://www.mothur.org/wiki/Count_File
 
  </help>
 </tool>
--- a/mothur/tools/mothur/create.database.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/create.database.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_create_database" name="Create.database" version="1.25.0" >
+<tool id="mothur_create_database" name="Create.database" version="1.27.0" >
  <description>creates a database file from a list, repnames, repfasta and contaxonomy file</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -7,7 +7,11 @@
   --outputdir='$logfile.extra_files_path'
   ## --datasetid='$logfile.id' --new_file_path='$__new_file_path__'
   ## --new_datasets='^\S+?\.(unique|[0-9.]*\.cons\.taxonomy)$:cons.taxonomy','^\S+?\.(unique|[0-9.]*\.cons\.tax\.summary)$:tax.summary'
-  --list=$otu
+  #if isinstance($group.datatype, $__app__.datatypes_registry.get_datatype_by_extension('shared').__class__):
+    --shared=$otu
+  #else
+    --list=$otu
+  #end if
   --repfasta=$repfasta
   --repname=$repname
   --contaxonomy=$contaxonomy
@@ -19,7 +23,7 @@
   #end if
  </command>
  <inputs>
-  <param name="otu" type="data" format="list" label="list - OTU List "/>
+  <param name="otu" type="data" format="list,shared" label="list or shared - OTU List of Shared"/>
   <param name="repfasta" type="data" format="fasta" label="repfasta - rep.fasta"
          help="fasta file output by get.oturep"/>
   <param name="repname" type="data" format="names" label="repname - rep.names"
@@ -38,7 +42,7 @@
   <data format="tabular" name="database" label="${tool.name} on ${on_string}: database" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
@@ -53,9 +57,10 @@
 
 **Command Documenation**
 
-The create.database_ command reads a list_ file, .cons.taxonomy, .rep.fasta, .rep.names and optional group file, and creates a database file. 
+The create.database_ command reads a list_ or shared_ file, .cons.taxonomy, .rep.fasta, .rep.names and optional group file, and creates a database file. 
 
 .. _list: http://www.mothur.org/wiki/List_file
+.. _shared: http://www.mothur.org/wiki/Shared_file
 .. _create.database: http://www.mothur.org/wiki/Create.database
 
 
--- a/mothur/tools/mothur/degap.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/degap.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -15,7 +15,7 @@
   <data format_source="fasta" name="out_fasta" label="${tool.name} on ${on_string}: fasta" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/deunique.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/deunique.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -17,7 +17,7 @@
   <data format_source="fasta" name="out_fasta" label="${tool.name} on ${on_string}: fasta" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/deunique.tree.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/deunique.tree.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -17,7 +17,7 @@
   <data format_source="tree" name="out_tree" label="${tool.name} on ${on_string}: deunique.tre" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/dist.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/dist.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -49,7 +49,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/dist.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/dist.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -118,7 +118,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/fastq.info.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/fastq.info.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -22,7 +22,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/filter.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/filter.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -57,7 +57,7 @@
   <data format="align" name="out_fasta" label="${tool.name} on ${on_string}: filtered fasta" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mothur/tools/mothur/get.coremicrobiome.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -0,0 +1,82 @@
+<tool id="mothur_get_coremicrobiome" name="Get.coremicrobiome" version="1.26.0">
+ <description>fraction of OTUs for samples or abundances</description>
+ <command interpreter="python">
+  mothur_wrapper.py 
+  #set results = ["'^mothur.\S+\.logfile$:'" + $logfile.__str__, "'^\S+\.core\.microbiome$:'" + $core_microbiome.__str__]
+  --cmd='get.coremicrobiome'
+  --outputdir='$logfile.extra_files_path'
+  #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 len($abundance.__str__) > 0 or len($samples.__str__) > 0:
+   #if len($abundance.__str__) > 0:
+    --abundance=$abundance
+   #end if
+   #if len($samples.__str__) > 0:
+    --samples=$samples
+   #end if
+   #set results = $results + ["'^\S+\.core\.microbiomelist$:'" + $core_microbiomelist.__str__]
+  #end if
+  --result=#echo ','.join($results)
+ </command>
+ <inputs>
+  <param name="otu" type="data" format="shared,relabund" label="shared or relabund - OTU Shared or Relabund"/>
+  <param name="label" type="select" label="label - OTU Labels" multiple="true">
+   <options>
+    <filter type="data_meta" ref="otu" key="labels" />
+   </options>
+  </param>
+  <param name="groups" type="select" label="groups - Pairwise comparision groups" multiple="true">
+   <options>
+    <filter type="data_meta" ref="otu" key="groups" />
+   </options>
+  </param>
+  <param name="abundance" type="integer" optional="true" label="abundance - list OTU names at this abundance">
+   <validator type="in_range" message="abundance is between 0 and 100" min="0" max="100"/>
+  </param>
+  <param name="samples" type="integer" optional="true" label="samples - minimum number of samples requied to list OTU names">
+   <validator type="in_range" message="between 1 and number of samples in your file" min="1"/>
+  </param>
+  <param name="output" type="select" label="output - fraction or count">
+    <option value="fraction" selected="true">fraction</option>
+    <option value="count">count</option>
+  </param>
+ </inputs>
+ <outputs>
+  <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
+  <data format="tabular" name="core_microbiome" label="${tool.name} on ${on_string}: core.microbiome"/>
+  <data format="tabular" name="core_microbiomelist" label="${tool.name} on ${on_string}: core.microbiomelist">
+    <filter>(len(abundance.__str__) > 0 or len(samples.__str__) > 0)</filter>
+  </data>
+ </outputs>
+ <requirements>
+   <requirement type="package" version="1.27">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 get.coremicrobiome_ command determines the fraction of OTUs that are found in varying numbers of samples for different minimum relative abundances.
+
+.. _get.coremicrobiome: http://www.mothur.org/wiki/Get.coremicrobiome
+
+
+ </help>
+</tool>
--- a/mothur/tools/mothur/get.group.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.group.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -15,7 +15,7 @@
   <data format="groups" name="bootgroups" label="${tool.name} on ${on_string}: bootGroups" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.groups.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.groups.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -94,7 +94,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.lineage.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.lineage.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -73,7 +73,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mothur/tools/mothur/get.otulabels.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -0,0 +1,69 @@
+<tool id="mothur_get_otulabels" name="Get.otulabels" version="1.26.0">
+ <description>Selects OTU labels</description>
+ <command interpreter="python">
+  mothur_wrapper.py 
+  #import re, os.path
+  #set results = ["'^mothur.\S+\.logfile$:'" + $logfile.__str__]
+  ## adds .pick before the last extension to the input file
+  --cmd='get.otulabels'
+  --outputdir='$logfile.extra_files_path'
+  --accnos=$accnos
+  #if $constaxonomy_in.__str__ != "None" and len($constaxonomy_in.__str__) > 0:
+   --constaxonomy=$constaxonomy_in
+   #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($constaxonomy_in.__str__)) + ":'" + $constaxonomy_out.__str__]
+  #end if
+  #if $otucorr_in.__str__ != "None" and len($otucorr_in.__str__) > 0:
+   --otucorr=$otucorr_in
+   #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($otucorr_in.__str__)) + ":'" + $otucorr_out.__str__]
+  #end if
+  #if $corraxes_in.__str__ != "None" and len($corraxes_in.__str__) > 0:
+   --corraxes=$corraxes_in
+   #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($corraxes_in.__str__)) + ":'" + $corraxes_out.__str__]
+  #end if
+  --result=#echo ','.join($results)
+ </command>
+ <inputs>
+  <param name="accnos" type="data" format="otulabels" label="accnos - otulabels" help="At least one of constaxonomy, otucorr, or corraxes must be given"/>
+  <param name="constaxonomy_in" type="data" format="cons.taxonomy" optional="true" label="constaxonomy - Consensus Taxonomy from classify.otu"/>
+  <param name="otucorr_in" type="data" format="otu.corr" optional="true" label="otucorr -  OTU correlation from otu.association"/>
+  <param name="corraxes_in" type="data" format="axes" optional="true" label="corraxes - axes from corr.axes"/>
+ </inputs>
+ <outputs>
+  <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
+  <!-- format should be set to match input -->
+  <data format_source="constaxonomy_in" name="constaxonomy_out" label="${tool.name} on ${on_string}: pick.cons.taxonomy">
+   <filter>constaxonomy_in != None</filter>
+  </data>
+  <!-- format should be set to match input -->
+  <data format_source="otucorr_in" name="otucorr_out" label="${tool.name} on ${on_string}: pick.otu.corr">
+   <filter>otucorr_in != None</filter>
+  </data>
+  <data format_source="constaxonomy_in" name="constaxonomy_out" label="${tool.name} on ${on_string}: pick.cons.taxonomy">
+   <filter>constaxonomy_in != None</filter>
+  </data>
+ </outputs>
+ <requirements>
+   <requirement type="package" version="1.27">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 get.otulabels_ command selects otu labels from the output from classify.otu_, corr.axes_ and otu.association_. This can be useful especially with subsampled datasets or when groups have been selected.
+
+.. _classify.otu: http://www.mothur.org/wiki/Classify.otu
+.. _corr.axes: http://www.mothur.org/wiki/Corr.axes
+.. _otu.association: http://www.mothur.org/wiki/Otu.association
+.. _get.otulabels: http://www.mothur.org/wiki/Get.otulabels
+
+ </help>
+</tool>
--- a/mothur/tools/mothur/get.otulist.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.otulist.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -38,7 +38,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.oturep.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.oturep.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -90,7 +90,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.otus.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.otus.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -55,7 +55,7 @@
   <data format="list" name="list_out" label="${tool.name} on ${on_string}: pick.list"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.rabund.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.rabund.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -30,7 +30,7 @@
   <data format="rabund" name="rabund" label="${tool.name} on ${on_string}: rabund (Rank Abundance)"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.relabund.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.relabund.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -42,7 +42,7 @@
   <data format="relabund" name="relabund" label="${tool.name} on ${on_string}: relabund" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.sabund.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.sabund.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -27,7 +27,7 @@
   <data format="sabund" name="sabund" label="${tool.name} on ${on_string}: sabund (Species Abundance)"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -77,7 +77,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/get.sharedseqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/get.sharedseqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -78,7 +78,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/hcluster.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/hcluster.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -76,7 +76,7 @@
   <data format="list" name="otulist" label="${tool.name} on ${on_string}: list (OTU List)"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/heatmap.bin.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/heatmap.bin.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -102,7 +102,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/heatmap.sim.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/heatmap.sim.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -86,7 +86,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/homova.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/homova.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -26,7 +26,7 @@
   <data format="tabular" name="homova" label="${tool.name} on ${on_string}: homova"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/indicator.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/indicator.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -51,7 +51,7 @@
   <data format="tabular" name="summary" label="${tool.name} on ${on_string}: indicator.summary"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/libshuff.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/libshuff.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -52,7 +52,7 @@
   <data format="tabular" name="coverage" label="${tool.name} on ${on_string}: coverage"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mothur/tools/mothur/list.otulabels.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -0,0 +1,66 @@
+<tool id="mothur_list_otulabels" name="List.otulabels" version="1.26.0">
+ <description>Lists otu labels from shared or relabund file</description>
+ <command interpreter="python">
+  mothur_wrapper.py 
+  --cmd='list.otulabels'
+  --outputdir='$logfile.extra_files_path'
+  --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.otulabels$:'$otulabels
+  #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
+ </command>
+ <inputs>
+  <param name="otu" type="data" format="shared,relabund" label="shared or relabund - OTU Shared or Relabund"/>
+  <param name="label" type="select" label="label - OTU Labels" multiple="true">
+   <options>
+    <filter type="data_meta" ref="otu" key="labels" />
+   </options>
+  </param>
+  <param name="groups" type="select" label="groups - Pairwise comparision groups" multiple="true">
+   <options>
+    <filter type="data_meta" ref="otu" key="groups" />
+   </options>
+  </param>
+ </inputs>
+ <outputs>
+  <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
+  <data format="otulabels" name="otulabels" label="${tool.name} on ${on_string}: otulabels"/>
+ </outputs>
+ <requirements>
+   <requirement type="package" version="1.27">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 list.otulabels_ command lists otu labels from shared_ or relabund_ file. This list can be used especially with subsampled datasets when used with output from classify.otu_, otu.association_, or corr.axes_ to select specific otus using the get.otulabels_ or remove.otulabels_ commands.
+
+.. _list.otulabels: http://www.mothur.org/wiki/List.otulabels
+.. _classify.otu: http://www.mothur.org/wiki/Classify.otu
+.. _otu.association: http://www.mothur.org/wiki/Otu.association
+.. _corr.axes: http://www.mothur.org/wiki/Corr.axes
+.. _get.otulabels: http://www.mothur.org/wiki/Get.otulabels
+.. _remove.otulabels: http://www.mothur.org/wiki/Remove.otulabels
+.. _shared: http://www.mothur.org/wiki/Shared_file
+.. _relabund: http://www.mothur.org/wiki/Get.relabund
+
+
+ </help>
+</tool>
--- a/mothur/tools/mothur/list.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/list.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -55,7 +55,7 @@
   <data format="accnos" name="out_file" label="${tool.name} on ${on_string}: accnos" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/make.biom.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/make.biom.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -45,7 +45,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/make.design.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/make.design.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -29,7 +29,7 @@
   <data format="design" name="design" label="${tool.name} on ${on_string}: design" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/make.fastq.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/make.fastq.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -24,7 +24,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/make.group.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/make.group.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -21,7 +21,7 @@
   <data format="groups" name="output" label="${tool.name} on ${on_string}: group" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/make.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/make.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -48,7 +48,7 @@
   <data format="shared" name="shared" label="${tool.name} on ${on_string}: shared" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/make.shared_from_biom.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/make.shared_from_biom.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -31,7 +31,7 @@
   <data format="shared" name="shared" label="${tool.name} on ${on_string}: shared" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/mantel.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/mantel.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -27,7 +27,7 @@
   <data format="tabular" name="mantel" label="${tool.name} on ${on_string}: mantel"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/merge.files.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/merge.files.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -54,7 +54,7 @@
   <data format="input" name="output" label="${tool.name} on ${on_string}: ${merge.type}"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/merge.groups.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/merge.groups.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -85,7 +85,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/metastats.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/metastats.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -55,7 +55,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/mothur_wrapper.py	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/mothur_wrapper.py	Fri Nov 30 08:16:51 2012 -0600
@@ -4,7 +4,7 @@
 http://www.mothur.org/
 
 Supports mothur version 
-mothur v.1.24.0
+mothur v.1.27.0
 
 Class encapsulating Mothur galaxy tool.
 Expect each invocation to include:
@@ -195,10 +195,10 @@
     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']})
-    cmd_dict['cluster.classic'] = dict({'required' : ['phylip'] ,  'optional' : ['name','method','cutoff','hard','sim','precision']})
+    cmd_dict['cluster'] = dict({'required' : [['phylip','column']] ,  'optional' : ['name','count','method','cutoff','hard','precision','sim','showabund','timing']})
+    cmd_dict['cluster.classic'] = dict({'required' : ['phylip'] ,  'optional' : ['name','count','method','cutoff','hard','sim','precision']})
     cmd_dict['cluster.fragments'] = dict({'required' : ['fasta'] ,  'optional' : ['name','diffs','percent']})
-    cmd_dict['cluster.split'] = dict({'required' : [['fasta','phylip','column']] ,  'optional' : ['name','method','splitmethod','taxonomy','taxlevel','showabund','cutoff','hard','large','precision','timing','processors']})
+    cmd_dict['cluster.split'] = dict({'required' : [['fasta','phylip','column']] ,  'optional' : ['name','count','method','splitmethod','taxonomy','taxlevel','showabund','cutoff','hard','large','precision','classic','timing','processors']})
     cmd_dict['collect.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','freq','groups','all']})
     cmd_dict['collect.single'] = dict({'required' : [['list', 'sabund', 'rabund', 'shared']], 'optional' : ['calc','abund','size','label','freq']})
     cmd_dict['consensus.seqs'] = dict({'required' : ['fasta'], 'optional' : ['list','name','label','cutoff']})
@@ -206,10 +206,10 @@
     cmd_dict['cooccurrence'] = dict({'required' : ['shared'], 'optional' : ['iters','metric','matrixmodel','groups','label']})
 
     cmd_dict['corr.axes'] = dict({'required' : [['shared','relabund','metadata'],'axes'], 'optional' : ['label','groups','method','numaxes']})
-    cmd_dict['count.groups'] = dict({'required' : ['group','shared'], 'optional' : ['accnos','groups']})
-    cmd_dict['count.seqs'] = dict({'required' : ['name'], 'optional' : ['group','groups']})
+    cmd_dict['count.groups'] = dict({'required' : ['group','shared','count'], 'optional' : ['accnos','groups']})
+    cmd_dict['count.seqs'] = dict({'required' : ['name'], 'optional' : ['group','groups','large']})
 
-    cmd_dict['create.database'] = dict({'required' : ['list, repfasta','repname','contaxonomy'], 'optional' : ['group','label']})
+    cmd_dict['create.database'] = dict({'required' : [['list','shared'],'repfasta','repname','contaxonomy'], 'optional' : ['group','label']})
 
     cmd_dict['degap.seqs'] = dict({'required' : ['fasta']})
     cmd_dict['deunique.seqs'] = dict({'required' : ['fasta','name'],  'optional' : []})
@@ -238,6 +238,7 @@
     cmd_dict['list.seqs'] = dict({'required' : [['fasta','name','group','list','alignreport','taxonomy']]})
 
     cmd_dict['make.biom'] = dict({'required' : ['shared'] ,  'optional' : ['contaxonomy','matrixtype','groups','label']})
+    cmd_dict['make.contigs'] = dict({'required' : ['ffastq','rfastq',], 'optional' : ['align','match','mismatch','gapopen','gapextend','threshold','oligos','bdiffs','pdiffs','tdiffs','processors']})
 
     cmd_dict['make.fastq'] = dict({'required' : ['fasta','qfile'] ,  'optional' : []})
     cmd_dict['make.group'] = dict({'required' : ['fasta','groups'],  'optional' : []})
@@ -248,7 +249,7 @@
     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.association'] = dict({'required' : [['shared','relabund']], 'optional' : ['groups', 'label','method','metadata']})
     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']})
@@ -261,7 +262,7 @@
     cmd_dict['phylo.diversity'] = dict({'required' : ['tree'],'optional' : ['group','name','groups','iters','freq','scale','rarefy','collect','summary','processors']})
     cmd_dict['phylotype'] = dict({'required' : ['taxonomy'],'optional' : ['name','cutoff','label']})
     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.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','iters','groups','jumble','design','sets','groupmode']})
     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','design']})
     cmd_dict['remove.lineage'] = dict({'required' : ['taxonomy','taxon'],'optional' : ['fasta','name','group','list','alignreport','dups']})
@@ -273,7 +274,7 @@
     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.flows'] = dict({'required' : [['flow','files']], 'optional' : ['lookup','maxiter','mindelta','cutoff','sigma','order','large','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']})
@@ -331,6 +332,8 @@
     parser.add_option( '--numbases', dest='numbases', type="int", help='Number of base to allow' )
     parser.add_option( '--fasta', dest='fasta', help='fasta file paths' )
     parser.add_option( '--fastq', dest='fastq', help='fastq file paths' )
+    parser.add_option( '--ffastq', dest='ffastq', help='forward fastq file' )
+    parser.add_option( '--rfastq', dest='rfastq', help='reverse fastq file' )
     parser.add_option( '--qfile', dest='qfile', help='Sequence read quality file (454 platform)' )
     parser.add_option( '--repfasta', dest='repfasta', help='fasta file paths' )
     parser.add_option( '--qaverage', dest='qaverage', type="int", help='Remove sequences that have an average quality below the value' )
@@ -401,6 +404,7 @@
     parser.add_option( '--soft', dest='soft', type='int', help='Soft Mask - percentage required to retain column. (0-100)' )
     parser.add_option( '--hard', dest='hard', help='Hard Column Filter - A file should only contain one line consisting of 0 and 1 chars' )
     parser.add_option( '--calc', dest='calc', help='Calc Method - Gap Penality' )
+    parser.add_option( '--count', dest='count',  help='Count file' )
     parser.add_option( '--countends', dest='countends',  help='Penalize terminal gaps' )
     parser.add_option( '--cutoff', dest='cutoff', help='Distance Cutoff threshold, discard larger distances' )
     parser.add_option( '--countgaps', dest='countgaps',  help='count gaps as bases' )
@@ -515,6 +519,7 @@
     parser.add_option( '--matrixtype', dest='matrixtype',  help='' )
     parser.add_option( '--consensus', dest='consensus',  help='boolean' )
     parser.add_option( '--biom', dest='biom',  help='biom file' )
+    parser.add_option( '--classic', dest='classic',  help='boolean' )
     # include read.otu options
     parser.add_option( '--rabund', dest='rabund', help='' )
     parser.add_option( '--sabund', dest='sabund', help='' )
--- a/mothur/tools/mothur/nmds.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/nmds.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -41,7 +41,7 @@
   <data format="tabular" name="stress_nmds" label="${tool.name} on ${on_string}: nmds.stress"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/normalize.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/normalize.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -50,7 +50,7 @@
   <data format="shared" name="shared" label="${tool.name} on ${on_string}: norm.shared" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/otu.association.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/otu.association.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -21,6 +21,9 @@
   #if $method.__str__ != "None" and len($method.__str__) > 0:
    --method=$method
   #end if
+  #if $metadata.__str__ != "None" and len($method.__str__) > 0:
+   --metadata=$metadata
+  #end if
  </command>
  <inputs>
   <param name="otu" type="data" format="shared,relabund" label="shared,relabund - OTU Shared or Relabund file"/>
@@ -39,12 +42,13 @@
    <option value="spearman">spearman</option>
    <option value="kendall">kendall</option>
   </param>
+  <param name="metadata" type="data" format="tabular" optional="true" label="metadata - find the association between the otus and the metadata."/>
  </inputs>
  <outputs>
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/otu.hierarchy.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/otu.hierarchy.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -33,7 +33,7 @@
   <data format="tabular" name="hierarchy" label="${tool.name} on ${on_string}: otu.hierarchy"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/pairwise.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/pairwise.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -74,7 +74,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/parse.list.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/parse.list.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -27,7 +27,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/parsimony.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/parsimony.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -47,7 +47,7 @@
   -->
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/pca.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/pca.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -40,7 +40,7 @@
   <data format="txt" name="pca_loadings" label="${tool.name} on ${on_string}: pca.loadings" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/pcoa.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/pcoa.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -18,7 +18,7 @@
   <data format="tabular" name="loadings" label="${tool.name} on ${on_string}: loadings" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/pcr.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/pcr.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -99,7 +99,7 @@
 
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/phylo.diversity.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/phylo.diversity.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -74,7 +74,7 @@
   -->
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/phylotype.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/phylotype.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -41,7 +41,7 @@
   <data format="list" name="otulist" label="${tool.name} on ${on_string}: list (OTU List)"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/pre.cluster.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/pre.cluster.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -36,7 +36,7 @@
   <data format="tabular" name="map_out" label="${tool.name} on ${on_string}: precluster.map" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/rarefaction.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/rarefaction.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_rarefaction_shared" name="Rarefaction.shared" version="1.20.0">
+<tool id="mothur_rarefaction_shared" name="Rarefaction.shared" version="1.26.0" force_history_refresh="True">
  <description>Generate inter-sample rarefaction curves for OTUs</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -12,6 +12,12 @@
   #if $groups.__str__ != "None" and len($groups.__str__) > 0:
    --groups=$groups
   #end if
+  #if $design.use:
+   --design=$design.design
+   #if $design.sets.__str__ != '':
+    --sets='$design.sets'  
+   #end if
+  #end if
   #if int($iters.__str__) > 0:
    --iters=$iters
   #end if
@@ -19,6 +25,18 @@
   #if $calc.__str__ != "None" and len($calc.__str__) > 0:
     --calc='$calc'
   #end if
+  #if $subsample.use.__str__ == 'yes':
+   #if $subsample.subsample.__str__ != '':
+     --subsample=$subsample.subsample
+   #else
+     --subsample=T
+   #end if
+   #if $subsample.subsampleiters.__str__ != '':
+     --subsampleiters=$subsample.subsampleiters
+   #end if
+   --datasetid='$logfile.id' --new_file_path='$__new_file_path__'
+   --new_datasets='^\S+?\.ave-std\.((unique|[0-9.]*)(\..*?)+\.shared\.rarefaction)$:tabular'
+  #end if
  </command>
  <inputs>
   <param name="otu" type="data" format="shared" label="shared - OTU Shared"/>
@@ -34,19 +52,43 @@
     <filter type="add_value" name="all" value="all" />
    </options>
   </param>
+  <conditional name="design">
+    <param name="use" type="boolean" truevalue="yes" falsevalue="no" checked="false" label=" run on a per set basis using a design file"/>
+    <when value="yes">
+    <param name="design" type="data" format="design" label="design - assigns groups to sets" 
+           help="design has 2 columns: group(col 1) and grouping(col 2) (separated by a TAB character) use make.design"/>
+    <param name="sets" type="select" label="sets - group sets to analyze" multiple="true">
+     <options>
+      <filter type="data_meta" ref="design" key="groups" />
+     </options>
+    </param>
+    </when>
+    <when value="no"/>
+  </conditional>
+
   <param name="iters" type="integer" value="0" label="iters - Number of randomizations"/>
   <param name="jumble" type="boolean" truevalue="" falsevalue="--jumble=false" checked="true" label="jumble"/>
   <param name="calc" type="select" label="calc - Calculators (Uses defaults if none selected)" multiple="true">
    <option value="sharedobserved" selected="true">sharedobserved - the number of sequences in two samples</option>
    <option value="sharednseqs">sharednseqs - the number of sequences in two samples</option>
   </param>
+  <conditional name="subsample">
+    <param name="use" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="produce subsample rarefactions"/>
+    <when value="yes">
+      <param name="subsample" type="integer" value="" optional="true" label="subsample - size pergroup of the sample" 
+             help="Leave blank to use the size of your smallest group"/>
+      <param name="subsampleiters" type="integer" value="0" optional="true" label="subsampleiters - Number of times to run the subsample"/>
+    </when>
+    <when value="no"/>
+  </conditional>
+
  </inputs>
  <outputs>
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
   <data format="tabular" name="rarefaction" label="${tool.name} on ${on_string}: shared.rarefaction" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/rarefaction.single.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/rarefaction.single.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -69,7 +69,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/remove.groups.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/remove.groups.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -94,7 +94,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/remove.lineage.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/remove.lineage.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -73,7 +73,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mothur/tools/mothur/remove.otulabels.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -0,0 +1,69 @@
+<tool id="mothur_remove_otulabels" name="Remove.otulabels" version="1.26.0">
+ <description>Removes OTU labels</description>
+ <command interpreter="python">
+  mothur_wrapper.py 
+  #import re, os.path
+  #set results = ["'^mothur.\S+\.logfile$:'" + $logfile.__str__]
+  ## adds .pick before the last extension to the input file
+  --cmd='remove.otulabels'
+  --outputdir='$logfile.extra_files_path'
+  --accnos=$accnos
+  #if $constaxonomy_in.__str__ != "None" and len($constaxonomy_in.__str__) > 0:
+   --constaxonomy=$constaxonomy_in
+   #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($constaxonomy_in.__str__)) + ":'" + $constaxonomy_out.__str__]
+  #end if
+  #if $otucorr_in.__str__ != "None" and len($otucorr_in.__str__) > 0:
+   --otucorr=$otucorr_in
+   #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($otucorr_in.__str__)) + ":'" + $otucorr_out.__str__]
+  #end if
+  #if $corraxes_in.__str__ != "None" and len($corraxes_in.__str__) > 0:
+   --corraxes=$corraxes_in
+   #set results = $results + ["'" + $re.sub(r'(^.*)\.(.*?)',r'\1.pick.\2',$os.path.basename($corraxes_in.__str__)) + ":'" + $corraxes_out.__str__]
+  #end if
+  --result=#echo ','.join($results)
+ </command>
+ <inputs>
+  <param name="accnos" type="data" format="otulabels" label="accnos - otulabels"/>
+  <param name="constaxonomy_in" type="data" format="cons.taxonomy" optional="true" label="constaxonomy - Consensus Taxonomy from classify.otu"/>
+  <param name="otucorr_in" type="data" format="otu.corr" optional="true" label="otucorr - OTU correlation from otu.association"/>
+  <param name="corraxes_in" type="data" format="axes" optional="true" label="corraxes - axes from corr.axes"/>
+ </inputs>
+ <outputs>
+  <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
+  <!-- format should be set to match input -->
+  <data format_source="constaxonomy_in" name="constaxonomy_out" label="${tool.name} on ${on_string}: pick.cons.taxonomy">
+   <filter>constaxonomy_in != None</filter>
+  </data>
+  <!-- format should be set to match input -->
+  <data format_source="otucorr_in" name="otucorr_out" label="${tool.name} on ${on_string}: pick.otu.corr">
+   <filter>otucorr_in != None</filter>
+  </data>
+  <data format_source="constaxonomy_in" name="constaxonomy_out" label="${tool.name} on ${on_string}: pick.cons.taxonomy">
+   <filter>constaxonomy_in != None</filter>
+  </data>
+ </outputs>
+ <requirements>
+   <requirement type="package" version="1.27">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 remove.otulabels_ command removes otu labels from the output from classify.otu_, corr.axes_ and otu.association_. This can be useful especially with subsampled datasets or when groups have been selected.
+
+.. _classify.otu: http://www.mothur.org/wiki/Classify.otu
+.. _corr.axes: http://www.mothur.org/wiki/Corr.axes
+.. _otu.association: http://www.mothur.org/wiki/Otu.association
+.. _remove.otulabels: http://www.mothur.org/wiki/Remove.otulabels
+
+ </help>
+</tool>
--- a/mothur/tools/mothur/remove.otus.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/remove.otus.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -55,7 +55,7 @@
   <data format="list" name="list_out" label="${tool.name} on ${on_string}: pick.list"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/remove.rare.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/remove.rare.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -91,7 +91,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/remove.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/remove.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -77,7 +77,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/reverse.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/reverse.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -15,7 +15,7 @@
   <data format_source="fasta" name="out_fasta" label="${tool.name} on ${on_string}: rc.fasta" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/screen.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/screen.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -101,7 +101,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/sens.spec.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/sens.spec.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -42,7 +42,7 @@
   <data format="tabular" name="sensspec" label="${tool.name} on ${on_string}: sensspec" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/seq.error.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/seq.error.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -146,7 +146,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/sffinfo.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/sffinfo.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -53,7 +53,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/shhh.flows.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/shhh.flows.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_shhh_flows" name="Shhh.flows" version="1.22.0" force_history_refresh="True">
+<tool id="mothur_shhh_flows" name="Shhh.flows" version="1.26.0" force_history_refresh="True">
  <description>Denoise flowgrams (PyroNoise algorithm)</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -23,6 +23,9 @@
   #if $order.__str__.strip() != '':
    --order=$order 
   #end if
+  #if $large.__str__ != '':
+   --large=$large 
+  #end if
   --processors=8
  </command>
  <inputs>
@@ -69,6 +72,10 @@
 
   <param name="order" type="text" value="" label="order - flow order for nucleotides in the sequencer" 
          help="default is TACG"/>
+
+  <param name="large" type="integer" value="10000" optional="true" label="large - split your flow file and process the pieces separately (default 10000)" help="">
+      <validator type="in_range" message="large value must be positive" min="1"/>
+  </param>
  </inputs>
  <outputs>
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
@@ -79,7 +86,7 @@
   <data format_source="tabular" name="shhh_counts" label="${tool.name} on ${on_string}: shhh.counts"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/shhh.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/shhh.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -32,7 +32,7 @@
   <data format_source="txt" name="shhh_map" label="${tool.name} on ${on_string}: shhh.map"/>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/sort.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/sort.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -69,7 +69,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/split.abund.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/split.abund.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -98,7 +98,7 @@
   -->
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/split.groups.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/split.groups.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -30,7 +30,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/sub.sample.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/sub.sample.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -179,7 +179,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/summary.qual.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/summary.qual.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -20,7 +20,7 @@
   <data format="summary" name="out_summary" label="${tool.name} on ${on_string}: summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/summary.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/summary.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -20,7 +20,7 @@
   <data format="summary" name="out_summary" label="${tool.name} on ${on_string}: summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/summary.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/summary.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -1,4 +1,4 @@
-<tool id="mothur_summary_shared" name="Summary.shared" version="1.23.0"  force_history_refresh="True">
+<tool id="mothur_summary_shared" name="Summary.shared" version="1.26.0"  force_history_refresh="True">
  <description>Summary of calculator values for OTUs</description>
  <command interpreter="python">
   mothur_wrapper.py 
@@ -6,7 +6,6 @@
   --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.summary$:'$summary
   --outputdir='$logfile.extra_files_path'
   --datasetid='$logfile.id' --new_file_path='$__new_file_path__'
-  --new_datasets='^\S+?\.((\S+)\.(unique|[0-9.]*)\.dist)$:lower.dist'
   --shared=$otu
   #if $groups.__str__ != "None" and len($groups.__str__) > 0:
    --groups=$groups
@@ -19,6 +18,29 @@
   #end if
   $all
   $distance
+  #if $subsample.use.__str__ == 'yes':
+   #if $subsample.subsample.__str__ != '':
+     --subsample=$subsample.subsample
+   #else
+     --subsample=T
+   #end if
+   #if $subsample.iters.__str__ != '':
+     --iters=$subsample.iters
+   #end if
+   #if len($subsample.output.__str__) > 0:
+    --output=$subsample.output
+   #end if
+   #if $subsample.as_datasets.__str__ == 'yes':
+    --datasetid='$logfile.id' --new_file_path='$__new_file_path__'
+    #if $subsample.output.__str__ == 'square':
+     ## patient70.fn.jest.0.16.lt.ave.dist
+     --new_datasets='^\S+?\.((\S+)\.(unique|[0-9.]*)(\.(ave|std))?\.dist)$:square.dist'
+    #else
+     ## patient70.fn.jest.0.13.square.std.dist
+     --new_datasets='^\S+?\.((\S+)\.(unique|[0-9.]*)(\.(ave|std))?\.dist)$:lower.dist'
+    #end if
+   #end if
+  #end if
   --processors=8
  </command>
  <inputs>
@@ -77,13 +99,29 @@
   </param>
   <param name="all" type="boolean" truevalue="--all=true" falsevalue="" checked="false" label="all - Include RAM intensive sharedsobs and sharedchao calculations"/>
   <param name="distance" type="boolean" truevalue="--distance=true" falsevalue="" checked="false" label="distance - Output a distance file for each calculator at each label"/>
+
+  <conditional name="subsample">
+    <param name="use" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="produce subsample distance matrices"/>
+    <when value="yes">
+      <param name="subsample" type="integer" value="" optional="true" label="subsample - size pergroup of the sample" 
+             help="Leave blank to use the size of your smallest group"/>
+      <param name="iters" type="integer" value="0" optional="true" label="iters - Number of times to run the subsample"/>
+    </when>
+    <when value="no"/>
+    <param name="output" type="select" label="output - Distance Matrix Output Format" help="">
+     <option value="lt" selected="true">Phylip formatted Lower Triangle Matrix</option>
+     <option value="square">Phylip formatted Square Matrix</option>
+    </param>
+    <param name="as_datasets" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Create a new history dataset for each dataset"
+           help="the marices can be viewed from links in the logfile"/>
+  </conditional>
  </inputs>
  <outputs>
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
   <data format="tabular" name="summary" label="${tool.name} on ${on_string}: shared.summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/summary.single.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/summary.single.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -8,7 +8,11 @@
    --datasetid='$logfile.id' --new_file_path='$__new_file_path__'
    --new_datasets='^\S+\.((\S+?)\.summary)$:tabular'
   #else:
-   --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.summary$:'$summary
+   #if $subsample.use.__str__ == 'yes':
+    --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.groups\.ave-std\.summary$:'$subsample_summary,'^\S+\.groups\.summary$:'$summary,
+   #else
+    --result='^mothur.\S+\.logfile$:'$logfile,'^\S+\.summary$:'$summary
+   #end if
   #end if
   --outputdir='$logfile.extra_files_path'
   #if isinstance($otu.datatype, $__app__.datatypes_registry.get_datatype_by_extension('shared').__class__):
@@ -33,6 +37,16 @@
   #if int($size.__str__) > 0:
    --size=$size
   #end if
+  #if $subsample.use.__str__ == 'yes':
+   #if $subsample.subsample.__str__ != '':
+     --subsample=$subsample.subsample
+   #else
+     --subsample=T
+   #end if
+   #if $subsample.iters.__str__ != '':
+     --iters=$subsample.iters
+   #end if
+  #end if
  </command>
  <inputs>
   <param name="otu" type="data" format="list,rabund,sabund,shared" label="list,rabund,sabund,shared - OTU List"/>
@@ -70,6 +84,15 @@
   </param>
   <param name="abund" type="integer" value="10" label="abund - ACE Estimator threshold for abundant versus rare OTUs"/>
   <param name="size" type="integer" value="0" label="size - "/>
+  <conditional name="subsample">
+    <param name="use" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="produce subsample distance matrices"/>
+    <when value="yes">
+      <param name="subsample" type="integer" value="" optional="true" label="subsample - size of the sample" 
+             help="If using shared input: may be left blank to use the size of your smallest group"/>
+      <param name="iters" type="integer" value="0" optional="true" label="iters - Number of times to run the subsample"/>
+    </when>
+    <when value="no"/>
+  </conditional>
   <param name="groupmode" type="boolean" truevalue="--groupmode=true" falsevalue="--groupmode=false" checked="true" 
     label="groupmode - Collate shared summary results in one file"
     help="If false, create a summary file per group."/>
@@ -79,9 +102,12 @@
   <data format="tabular" name="summary" label="${tool.name} on ${on_string}: summary" >
    <filter>(otu.file_ext == 'shared' and groupmode == True)</filter>
   </data>
+  <data format="tabular" name="subsample_summary" label="${tool.name} on ${on_string}: ave-std.summary" >
+   <filter>(subsample['use'] and not (otu.file_ext == 'shared' and groupmode == False))</filter>
+  </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/summary.tax.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/summary.tax.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -61,7 +61,7 @@
   <data format="summary" name="tax_summary" label="${tool.name} on ${on_string}: summary" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/tree.shared.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/tree.shared.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -136,7 +136,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/trim.flows.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/trim.flows.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -115,7 +115,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/trim.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/trim.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -151,7 +151,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/unifrac.unweighted.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/unifrac.unweighted.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -110,7 +110,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/unifrac.weighted.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/unifrac.weighted.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -117,7 +117,7 @@
   </data>
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/unique.seqs.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/unique.seqs.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -20,7 +20,7 @@
   <data format="names" name="out_names" label="${tool.name} on ${on_string}: names" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>
--- a/mothur/tools/mothur/venn.xml	Tue Nov 27 09:04:17 2012 -0600
+++ b/mothur/tools/mothur/venn.xml	Fri Nov 30 08:16:51 2012 -0600
@@ -88,7 +88,7 @@
   <data format="html" name="logfile" label="${tool.name} on ${on_string}: logfile" />
  </outputs>
  <requirements>
-  <requirement type="package" version="1.24.1">mothur</requirement>
+  <requirement type="package" version="1.27">mothur</requirement>
  </requirements>
  <tests>
  </tests>