From 288912ee872cd302c671d6226391516f7866f1fe Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Fri, 17 Oct 2008 10:46:29 -0400 Subject: [PATCH 1/3] Fixes for data_source tools, data.name, data.info, data.dbkey, and data.extension should now be properly set. Eliminated fastq data type from datatypes_conf.xml.sample since it is not a supported data type. --- datatypes_conf.xml.sample | 1 - lib/galaxy/tools/__init__.py | 28 +++++++++++-------- tools/data_source/flymine.xml | 2 +- tools/data_source/ucsc_tablebrowser.xml | 2 +- .../data_source/ucsc_tablebrowser_archaea.xml | 2 +- tools/data_source/ucsc_tablebrowser_test.xml | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/datatypes_conf.xml.sample b/datatypes_conf.xml.sample index e4902521a3a..7db33f2e7d7 100644 --- a/datatypes_conf.xml.sample +++ b/datatypes_conf.xml.sample @@ -150,7 +150,6 @@ - diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index e775dd6280d..dee91294860 100644 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -23,6 +23,7 @@ from galaxy.tools.test import ToolTestBuilder from galaxy.tools.actions import DefaultToolAction from galaxy.model import directory_hash_id from galaxy.util.none_like import NoneDataset +from galaxy.datatypes import sniff log = logging.getLogger( __name__ ) @@ -1143,22 +1144,21 @@ class Tool: description = param_dict.get( 'position', '' ) if not description: description = 'unknown position' - data_type = param_dict.get( 'data_type ') + data_type = param_dict.get( 'data_type' ) items = out_data.items() for name, data in items: if organism and table and description: data.name = '%s on %s: %s (%s)' % ( data.name, organism, table, description ) data.info = info data.dbkey = dbkey - ext = data_type - try: - ext = data_type_to_ext[ data_type ] + try: + data_type = data_type_to_ext[ data_type ] except: pass - if ext not in app.datatypes_registry.datatypes_by_extension: - ext = 'interval' - data = app.datatypes_registry.change_datatype( data, ext ) - # store external data source's request parameters temporarily in output file + if data_type not in app.datatypes_registry.datatypes_by_extension: + data_type = 'interval' + data = app.datatypes_registry.change_datatype( data, data_type ) + # Store external data source's request parameters temporarily in output file out = open( data.file_name, 'w' ) for key, value in param_dict.items(): print >> out, '%s\t%s' % ( key, value ) @@ -1171,9 +1171,15 @@ class Tool: # tag set in the tool config. if self.tool_type == 'data_source': name, data = out_data.items()[0] - if data.state == data.states.OK and not data.info: - data.info = data.name - if not isinstance( data.datatype, datatypes.interval.Bed ) and isinstance( data.datatype, datatypes.interval.Interval ): + if data.state == data.states.OK: + data.name = param_dict.get( 'name', data.name ) + data.info = param_dict.get( 'info', data.name ) + data.dbkey = param_dict.get( 'dbkey', data.dbkey ) + data.extension = param_dict.get( 'data_type', data.extension ) + if data.extension == 'txt': + data_type = sniff.guess_ext( data.file_name, sniff_order=app.datatypes_registry.sniff_order ) + data = app.datatypes_registry.change_datatype( data, data_type ) + elif not isinstance( data.datatype, datatypes.interval.Bed ) and isinstance( data.datatype, datatypes.interval.Interval ): data.set_meta() if data.missing_meta(): data = app.datatypes_registry.change_datatype( data, 'tabular' ) diff --git a/tools/data_source/flymine.xml b/tools/data_source/flymine.xml index b8e0b9ad2d7..73b1727453d 100644 --- a/tools/data_source/flymine.xml +++ b/tools/data_source/flymine.xml @@ -14,7 +14,7 @@ - + diff --git a/tools/data_source/ucsc_tablebrowser.xml b/tools/data_source/ucsc_tablebrowser.xml index 0ef85788441..4614deffca8 100644 --- a/tools/data_source/ucsc_tablebrowser.xml +++ b/tools/data_source/ucsc_tablebrowser.xml @@ -16,7 +16,7 @@ - + diff --git a/tools/data_source/ucsc_tablebrowser_archaea.xml b/tools/data_source/ucsc_tablebrowser_archaea.xml index 79246a8435b..63a952947cc 100644 --- a/tools/data_source/ucsc_tablebrowser_archaea.xml +++ b/tools/data_source/ucsc_tablebrowser_archaea.xml @@ -16,7 +16,7 @@ - + diff --git a/tools/data_source/ucsc_tablebrowser_test.xml b/tools/data_source/ucsc_tablebrowser_test.xml index 5a3a7b803fb..d8eddb4066b 100644 --- a/tools/data_source/ucsc_tablebrowser_test.xml +++ b/tools/data_source/ucsc_tablebrowser_test.xml @@ -16,7 +16,7 @@ - + From d6d59f743134fd778172cfbb5b84da1cc5361758 Mon Sep 17 00:00:00 2001 From: Guruprasad Anada Date: Fri, 17 Oct 2008 13:02:26 -0400 Subject: [PATCH 2/3] Added Validator to a bunch of tools.. --- tools/extract/liftOver_wrapper.xml | 11 ++++------- tools/extract/phastOdds/phastOdds_tool.xml | 1 + tools/stats/aggregate_binned_scores_in_intervals.xml | 2 ++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/extract/liftOver_wrapper.xml b/tools/extract/liftOver_wrapper.xml index d6c542f8bf2..99bc7dee46b 100644 --- a/tools/extract/liftOver_wrapper.xml +++ b/tools/extract/liftOver_wrapper.xml @@ -3,7 +3,8 @@ liftOver_wrapper.py $input "$out_file1" "$out_file2" $dbkey $to_dbkey - + + @@ -11,7 +12,7 @@ - + @@ -39,11 +40,7 @@ Make sure that the genome build of the input dataset is specified (click the pen .. class:: warningmark -The **To** list will be empty if we don't carry any liftover mappings corresponding to the genome build of the input dataset. - -.. class:: warningmark - -This tool will only work on interval datasets with chromosome in column 1, start co-ordinate in column 2 and end co-ordinate in column 3. If this is not the case, it will return empty output datasets. +This tool will only work on interval datasets with chromosome in column 1, start co-ordinate in column 2 and end co-ordinate in column 3. If this is not the case with any line of the input dataset, the tool will return empty output datasets. ----- diff --git a/tools/extract/phastOdds/phastOdds_tool.xml b/tools/extract/phastOdds/phastOdds_tool.xml index de290900668..34d6bde909b 100644 --- a/tools/extract/phastOdds/phastOdds_tool.xml +++ b/tools/extract/phastOdds/phastOdds_tool.xml @@ -4,6 +4,7 @@ + diff --git a/tools/stats/aggregate_binned_scores_in_intervals.xml b/tools/stats/aggregate_binned_scores_in_intervals.xml index d6f3f8bc847..14535ae3189 100644 --- a/tools/stats/aggregate_binned_scores_in_intervals.xml +++ b/tools/stats/aggregate_binned_scores_in_intervals.xml @@ -8,6 +8,8 @@ + + From 1b6d17978c488f83eb5fb60a6ff9c99b679dd105 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Fri, 17 Oct 2008 13:31:17 -0400 Subject: [PATCH 3/3] Fix for optional datasets to work with metadata changes. --- lib/galaxy/util/none_like.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/util/none_like.py b/lib/galaxy/util/none_like.py index 1d5295082bd..67b8f3ea0f1 100644 --- a/lib/galaxy/util/none_like.py +++ b/lib/galaxy/util/none_like.py @@ -23,7 +23,7 @@ class NoneDataset( RecursiveNone ): if datatypes_registry is None: datatypes_registry = Registry() self.datatype = datatypes_registry.get_datatype_by_extension( ext ) self._metadata = None - self.metadata = MetadataCollection( self, self.datatype.metadata_spec ) + self.metadata = MetadataCollection( self ) def __getattr__( self, name ): return "None" def missing_meta( self ):