[galaxy-commits] [hg] galaxy 3812: First pass at implementing a method for allowi...
Nate Coraor
nate at bx.psu.edu
Tue May 25 08:53:36 EDT 2010
details: http://www.bx.psu.edu/hg/galaxy/rev/663b2fd4a44c
changeset: 3812:663b2fd4a44c
user: Dan Blankenberg <dan at bx.psu.edu>
date: Mon May 24 14:15:02 2010 -0400
description:
First pass at implementing a method for allowing a maximum file size cutoff for setting optional metadata (e.g. line and sequence counts). Currently csFasta, qualsolid, and fastq make use of this option.
diffstat:
datatypes_conf.xml.sample | 2 +-
lib/galaxy/datatypes/data.py | 14 ++++++++++++++
lib/galaxy/datatypes/qualityscore.py | 7 +++++++
lib/galaxy/datatypes/registry.py | 2 ++
lib/galaxy/datatypes/sequence.py | 7 +++++++
5 files changed, 31 insertions(+), 1 deletions(-)
diffs (96 lines):
diff -r 7faa12ac9746 -r 663b2fd4a44c datatypes_conf.xml.sample
--- a/datatypes_conf.xml.sample Mon May 24 11:22:12 2010 -0400
+++ b/datatypes_conf.xml.sample Mon May 24 14:15:02 2010 -0400
@@ -33,7 +33,7 @@
</datatype>
<datatype extension="customtrack" type="galaxy.datatypes.interval:CustomTrack"/>
<datatype extension="csfasta" type="galaxy.datatypes.sequence:csFasta" display_in_upload="true"/>
- <datatype extension="data" type="galaxy.datatypes.data:Data" mimetype="application/octet-stream"/>
+ <datatype extension="data" type="galaxy.datatypes.data:Data" mimetype="application/octet-stream" max_optional_metadata_filesize="1048576" />
<datatype extension="fasta" type="galaxy.datatypes.sequence:Fasta" display_in_upload="true">
<converter file="fasta_to_tabular_converter.xml" target_datatype="tabular"/>
</datatype>
diff -r 7faa12ac9746 -r 663b2fd4a44c lib/galaxy/datatypes/data.py
--- a/lib/galaxy/datatypes/data.py Mon May 24 11:22:12 2010 -0400
+++ b/lib/galaxy/datatypes/data.py Mon May 24 14:15:02 2010 -0400
@@ -57,6 +57,8 @@
composite_type = None
composite_files = odict()
primary_file_name = 'index'
+ #A per datatype setting (inherited): max file size (in bytes) for setting optional metadata
+ _max_optional_metadata_filesize = None
def __init__(self, **kwd):
"""Initialize the datatype"""
@@ -116,6 +118,18 @@
if not value:
return True
return False
+ def set_max_optional_metadata_filesize( self, max_value ):
+ try:
+ max_value = int( max_value )
+ except:
+ return
+ self.__class__._max_optional_metadata_filesize = max_value
+ def get_max_optional_metadata_filesize( self ):
+ rval = self.__class__._max_optional_metadata_filesize
+ if rval is None:
+ return -1
+ return rval
+ max_optional_metadata_filesize = property( get_max_optional_metadata_filesize, set_max_optional_metadata_filesize )
def set_peek( self, dataset, is_multi_byte=False ):
"""Set the peek and blurb text"""
if not dataset.dataset.purged:
diff -r 7faa12ac9746 -r 663b2fd4a44c lib/galaxy/datatypes/qualityscore.py
--- a/lib/galaxy/datatypes/qualityscore.py Mon May 24 11:22:12 2010 -0400
+++ b/lib/galaxy/datatypes/qualityscore.py Mon May 24 14:15:02 2010 -0400
@@ -63,6 +63,13 @@
except:
pass
return False
+
+ def set_meta( self, dataset, **kwd ):
+ if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize:
+ return
+ return QualityScore.set_meta( self, dataset, **kwd )
+
+
class QualityScore454 ( QualityScore ):
"""
diff -r 7faa12ac9746 -r 663b2fd4a44c lib/galaxy/datatypes/registry.py
--- a/lib/galaxy/datatypes/registry.py Mon May 24 11:22:12 2010 -0400
+++ b/lib/galaxy/datatypes/registry.py Mon May 24 14:15:02 2010 -0400
@@ -64,6 +64,8 @@
self.available_tracks.append( extension )
if display_in_upload:
self.upload_file_formats.append( extension )
+ #max file size cut off for setting optional metadata
+ self.datatypes_by_extension[extension].max_optional_metadata_filesize = elem.get( 'max_optional_metadata_filesize', None )
for converter in elem.findall( 'converter' ):
# Build the list of datatype converters which will later be loaded
# into the calling app's toolbox.
diff -r 7faa12ac9746 -r 663b2fd4a44c lib/galaxy/datatypes/sequence.py
--- a/lib/galaxy/datatypes/sequence.py Mon May 24 11:22:12 2010 -0400
+++ b/lib/galaxy/datatypes/sequence.py Mon May 24 14:15:02 2010 -0400
@@ -148,6 +148,11 @@
except:
pass
return False
+
+ def set_meta( self, dataset, **kwd ):
+ if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize:
+ return
+ return Sequence.set_meta( self, dataset, **kwd )
class Fastq ( Sequence ):
"""Class representing a generic FASTQ sequence"""
@@ -158,6 +163,8 @@
Set the number of sequences and the number of data lines
in dataset.
"""
+ if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize:
+ return
data_lines = 0
sequences = 0
seq_counter = 0 # blocks should be 4 lines long
More information about the galaxy-commits
mailing list