Mercurial > repos > jjohnson > mothur_toolsuite
comparison 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 |
comparison
equal
deleted
inserted
replaced
26:5c77423823cb | 27:49058b1f8d3f |
---|---|
4 for Mothur | 4 for Mothur |
5 """ | 5 """ |
6 | 6 |
7 import logging, os, os.path, sys, time, tempfile, shutil, string, glob, re | 7 import logging, os, os.path, sys, time, tempfile, shutil, string, glob, re |
8 import galaxy.model | 8 import galaxy.model |
9 from galaxy.datatypes import data | |
10 from galaxy.datatypes.sniff import * | 9 from galaxy.datatypes.sniff import * |
11 from galaxy.datatypes import metadata | |
12 from galaxy.datatypes import tabular | |
13 from galaxy.datatypes import sequence | |
14 from galaxy.datatypes.metadata import MetadataElement | 10 from galaxy.datatypes.metadata import MetadataElement |
15 from galaxy.datatypes.data import Text | 11 from galaxy.datatypes.data import Text |
16 from galaxy.datatypes.tabular import Tabular | 12 from galaxy.datatypes.tabular import Tabular |
17 from galaxy.datatypes.sequence import Fasta | 13 from galaxy.datatypes.sequence import Fasta |
18 from galaxy import util | 14 from galaxy import util |
19 from galaxy.datatypes.images import Html | 15 from galaxy.datatypes.images import Html |
20 import pkg_resources | 16 import pkg_resources |
21 pkg_resources.require("simplejson") | 17 pkg_resources.require("simplejson") |
22 import simplejson | 18 import simplejson |
23 | 19 |
24 | |
25 log = logging.getLogger(__name__) | 20 log = logging.getLogger(__name__) |
26 | |
27 | 21 |
28 ## Mothur Classes | 22 ## Mothur Classes |
29 | 23 |
30 class Otu( Text ): | 24 class Otu( Text ): |
31 file_ext = 'otu' | 25 file_ext = 'otu' |
831 pass | 825 pass |
832 finally: | 826 finally: |
833 close(fh) | 827 close(fh) |
834 return False | 828 return False |
835 | 829 |
830 class CountTable(Tabular): | |
831 MetadataElement( name="groups", default=[], desc="Group Names", readonly=True, visible=True, no_value=[] ) | |
832 file_ext = 'count_table' | |
833 | |
834 def __init__(self, **kwd): | |
835 """ | |
836 A table with first column names and following columns integer counts | |
837 # Example 1: | |
838 Representative_Sequence total | |
839 U68630 1 | |
840 U68595 1 | |
841 U68600 1 | |
842 # Example 2 (with group columns): | |
843 Representative_Sequence total forest pasture | |
844 U68630 1 1 0 | |
845 U68595 1 1 0 | |
846 U68600 1 1 0 | |
847 U68591 1 1 0 | |
848 U68647 1 0 1 | |
849 """ | |
850 Tabular.__init__( self, **kwd ) | |
851 self.column_names = ['name','total'] | |
852 | |
853 def set_meta( self, dataset, overwrite = True, skip = 1, max_data_lines = None, **kwd ): | |
854 try: | |
855 data_lines = 0; | |
856 fh = open( dataset.file_name ) | |
857 line = fh.readline() | |
858 if line: | |
859 line = line.strip() | |
860 colnames = line.split() | |
861 if len(colnames) > 1: | |
862 dataset.metadata.columns = len( colnames ) | |
863 if len(colnames) > 2: | |
864 dataset.metadata.groups = colnames[2:] | |
865 column_types = ['str'] | |
866 for i in range(1,len(colnames)): | |
867 column_types.append('int') | |
868 dataset.metadata.column_types = column_types | |
869 dataset.metadata.comment_lines = 1 | |
870 while line: | |
871 line = fh.readline() | |
872 if not line: break | |
873 data_lines += 1 | |
874 dataset.metadata.data_lines = data_lines | |
875 finally: | |
876 close(fh) | |
877 | |
836 class RefTaxonomy(Tabular): | 878 class RefTaxonomy(Tabular): |
837 file_ext = 'ref.taxonomy' | 879 file_ext = 'ref.taxonomy' |
838 """ | 880 """ |
839 A table with 2 or 3 columns: | 881 A table with 2 or 3 columns: |
840 - SequenceName | 882 - SequenceName |
1376 2 0 2 2 Root;Bacteria;Bacteroidetes | 1418 2 0 2 2 Root;Bacteria;Bacteroidetes |
1377 """ | 1419 """ |
1378 MetadataElement( name="column_names", default=[], desc="Column Names", readonly=False, visible=True, no_value=[] ) | 1420 MetadataElement( name="column_names", default=[], desc="Column Names", readonly=False, visible=True, no_value=[] ) |
1379 file_ext = 'qiimeotutable' | 1421 file_ext = 'qiimeotutable' |
1380 def init_meta( self, dataset, copy_from=None ): | 1422 def init_meta( self, dataset, copy_from=None ): |
1381 tabular.Tabular.init_meta( self, dataset, copy_from=copy_from ) | 1423 Tabular.init_meta( self, dataset, copy_from=copy_from ) |
1382 def set_meta( self, dataset, overwrite = True, skip = None, **kwd ): | 1424 def set_meta( self, dataset, overwrite = True, skip = None, **kwd ): |
1383 self.set_column_names(dataset) | 1425 self.set_column_names(dataset) |
1384 def set_column_names(self, dataset): | 1426 def set_column_names(self, dataset): |
1385 if dataset.has_data(): | 1427 if dataset.has_data(): |
1386 dataset_fh = open( dataset.file_name ) | 1428 dataset_fh = open( dataset.file_name ) |
1398 PC.355 3.177 0.0 3.444 | 1440 PC.355 3.177 0.0 3.444 |
1399 PC.356 1.955 3.444 0.0 | 1441 PC.356 1.955 3.444 0.0 |
1400 """ | 1442 """ |
1401 file_ext = 'qiimedistmat' | 1443 file_ext = 'qiimedistmat' |
1402 def init_meta( self, dataset, copy_from=None ): | 1444 def init_meta( self, dataset, copy_from=None ): |
1403 tabular.Tabular.init_meta( self, dataset, copy_from=copy_from ) | 1445 Tabular.init_meta( self, dataset, copy_from=copy_from ) |
1404 def set_meta( self, dataset, overwrite = True, skip = None, **kwd ): | 1446 def set_meta( self, dataset, overwrite = True, skip = None, **kwd ): |
1405 self.set_column_names(dataset) | 1447 self.set_column_names(dataset) |
1406 def set_column_names(self, dataset): | 1448 def set_column_names(self, dataset): |
1407 if dataset.has_data(): | 1449 if dataset.has_data(): |
1408 dataset_fh = open( dataset.file_name ) | 1450 dataset_fh = open( dataset.file_name ) |