Mercurial > repos > jjohnson > mothur_toolsuite
diff mothur/lib/galaxy/datatypes/metagenomics.py @ 27:49058b1f8d3f
Update to mothur version 1.27 and add tool_dependencies.xml to automatically install mothur
author | Jim Johnson <jj@umn.edu> |
---|---|
date | Tue, 04 Dec 2012 11:05:19 -0600 |
parents | 5c77423823cb |
children | 9c0cd3b92295 |
line wrap: on
line diff
--- a/mothur/lib/galaxy/datatypes/metagenomics.py Wed May 16 13:12:05 2012 -0500 +++ b/mothur/lib/galaxy/datatypes/metagenomics.py Tue Dec 04 11:05:19 2012 -0600 @@ -6,11 +6,7 @@ import logging, os, os.path, sys, time, tempfile, shutil, string, glob, re import galaxy.model -from galaxy.datatypes import data from galaxy.datatypes.sniff import * -from galaxy.datatypes import metadata -from galaxy.datatypes import tabular -from galaxy.datatypes import sequence from galaxy.datatypes.metadata import MetadataElement from galaxy.datatypes.data import Text from galaxy.datatypes.tabular import Tabular @@ -21,10 +17,8 @@ pkg_resources.require("simplejson") import simplejson - log = logging.getLogger(__name__) - ## Mothur Classes class Otu( Text ): @@ -833,6 +827,54 @@ 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: + line = fh.readline() + if not line: break + data_lines += 1 + dataset.metadata.data_lines = data_lines + finally: + close(fh) + class RefTaxonomy(Tabular): file_ext = 'ref.taxonomy' """ @@ -1378,7 +1420,7 @@ MetadataElement( name="column_names", default=[], desc="Column Names", readonly=False, visible=True, no_value=[] ) file_ext = 'qiimeotutable' def init_meta( self, dataset, copy_from=None ): - tabular.Tabular.init_meta( self, dataset, copy_from=copy_from ) + Tabular.init_meta( self, dataset, copy_from=copy_from ) def set_meta( self, dataset, overwrite = True, skip = None, **kwd ): self.set_column_names(dataset) def set_column_names(self, dataset): @@ -1400,7 +1442,7 @@ """ file_ext = 'qiimedistmat' def init_meta( self, dataset, copy_from=None ): - tabular.Tabular.init_meta( self, dataset, copy_from=copy_from ) + Tabular.init_meta( self, dataset, copy_from=copy_from ) def set_meta( self, dataset, overwrite = True, skip = None, **kwd ): self.set_column_names(dataset) def set_column_names(self, dataset):