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 )