Changeset 1329:43015227f87d

Show
Ignore:
Timestamp:
05/28/08 12:01:29 (7 months ago)
Author:
Greg Von Kuster <greg@bx.psu.edu>
branch:
default
convert_revision:
svn:9bcadc22-80f8-0310-8a53-c8f022958886/galaxy/trunk@2690
Message:

Requires change to Galaxy config - fixed the way the File Format select list in the upload tool is dynamically generated, now retrieved from the upload_file_formats in app.registry.
Fixed all references to 'qualityscore' file extensions to be 'qual', since that is the extension in the QualityScore? class.
Added functional test to the fastq2fasta converter.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lib/galaxy/datatypes/registry.py

    r1327 r1329  
    1515        self.mimetypes_by_extension = {} 
    1616        self.datatype_converters = odict() 
     17        self.upload_file_formats = [] 
    1718        self.sniff_order = [] 
    1819        for ext, kind in datatypes: 
     20            # Data types are defined in the config like this: 
     21            # #<file extension> = <data type class>,<mime type (optional)>,<display in upload select list (optional)> 
    1922            try: 
     23                fields = kind.split(",") 
     24                kind = fields[0].strip() 
    2025                mime_type = None 
    21                 fields = kind.split(",") 
    22                 if len(fields)>1: 
    23                     kind = fields[0].strip() 
    24                     mime_type = fields[1].strip() 
     26                display_in_upload = False 
     27                # See if we have a mime type or a display_in_upload 
     28                try: 
     29                    ele = fields[1].strip() 
     30                    if ele: 
     31                        if ele == 'display_in_upload': 
     32                            display_in_upload = True 
     33                        else: 
     34                            mime_type = ele 
     35                except: 
     36                    pass 
     37                # See if we have a display_in_upload 
     38                if not display_in_upload: 
     39                    try: 
     40                        ele = fields[2].strip() 
     41                        if ele == 'display_in_upload': 
     42                            display_in_upload = True 
     43                    except: 
     44                        pass 
     45                if display_in_upload: 
     46                    self.upload_file_formats.append( ext ) 
    2547                fields = kind.split(":") 
    2648                datatype_module = fields[0] 
    2749                datatype_class = fields[1] 
    2850                fields = datatype_module.split(".") 
    29                 module = __import__(fields.pop(0)) 
    30                 for mod in fields: module = getattr(module,mod) 
     51                module = __import__( fields.pop(0) ) 
     52                for mod in fields: 
     53                    module = getattr(module,mod) 
    3154                self.datatypes_by_extension[ext] = getattr(module, datatype_class)() 
    3255                if mime_type is None: 
     
    3457                    mime_type = self.datatypes_by_extension[ext].get_mime() 
    3558                self.mimetypes_by_extension[ext] = mime_type 
    36             except
    37                 self.log.warning('error loading datatype: %s' % ext
     59            except Exception, e
     60                self.log.warning('error loading datatype "%s", problem: %s' % ( ext, str( e ) )
    3861        #default values 
    3962        if len(self.datatypes_by_extension) < 1: 
     
    5275                'lav'         : sequence.Lav(), 
    5376                'maf'         : sequence.Maf(), 
    54                 'qualityscore': qualityscore.QualityScore(), 
     77                'qual'        : qualityscore.QualityScore(), 
    5578                'scf'         : images.Scf(), 
    5679                'tabular'     : tabular.Tabular(), 
     
    7497                'lav'         : 'text/plain', 
    7598                'maf'         : 'text/plain', 
    76                 'qualityscore': 'text/plain', 
     99                'qual'        : 'text/plain', 
    77100                'scf'         : 'application/octet-stream', 
    78101                'tabular'     : 'text/plain', 
  • lib/galaxy/tools/parameters/dynamic_options.py

    r1203 r1329  
    173173        except: 
    174174            pass 
    175         return self.generate_options( filters=filters, sep=self.separator ) 
    176     def generate_options( self, filters={}, sep='\t' ): 
     175        return self.generate_options( trans, filters=filters, sep=self.separator ) 
     176    def generate_options( self, trans, filters={}, sep='\t' ): 
    177177        try:  
    178178            meta_key = filters[ 'data_meta' ][ 'meta_key' ] 
     
    195195        else: # meta_key is None 
    196196            if self.data_file == 'datatypes_registry': 
    197                 return self.generate_from_datatypes_registry() 
     197                upload_file_formats = trans.app.datatypes_registry.upload_file_formats 
     198                return self.generate_from_datatypes_registry( upload_file_formats ) 
    198199            elif self.data_file == 'encode_datasets.loc': 
    199200                encode_group = filters[ 'params' ][ 'encode_group' ] 
     
    218219            else: 
    219220                return self.generate( self.name_col, self.value_col, sep=sep ) 
    220     def generate_from_datatypes_registry( self ): 
    221         from galaxy.datatypes import registry 
    222         datatypes_registry = registry.Registry() 
    223         options = [] 
    224         formats = datatypes_registry.datatypes_by_extension.keys() 
     221    def generate_from_datatypes_registry( self, upload_file_formats ): 
     222        options = [] 
     223        formats = upload_file_formats 
    225224        formats.sort() 
    226225        options.append( ( 'Auto-detect', 'auto', True ) ) 
  • tools/metag_tools/convert_fastq2fasta.xml

    r1328 r1329  
    11<tool id="convert_fastq2fasta" name="FASTQ-to-FASTA" version="1.0.0"> 
    2     <description>converts FASTQ file to FASTA format</description> 
    3     <command interpreter="python">convert_fastq2fasta.py $input1 $output1 $output2</command> 
    4     <inputs> 
    5         <param name="input1" type="data" format="fastq" label="Fastq file"/> 
    6     </inputs> 
    7     <outputs> 
    8         <data name="output1" format="fasta"/> 
    9         <data name="output2" format="qualityscore"/> 
    10     </outputs> 
    11  
    12     <help> 
     2  <description>converts FASTQ file to FASTA format</description> 
     3  <command interpreter="python">convert_fastq2fasta.py $input1 $output1 $output2</command> 
     4  <inputs> 
     5    <param name="input1" type="data" format="fastq" label="Fastq file"/> 
     6  </inputs> 
     7  <outputs> 
     8    <data name="output1" format="qual"/> 
     9    <data name="output2" format="fasta"/> 
     10  </outputs> 
     11  <tests> 
     12    <!-- NOTE: this tool generates 2 output files, but our functional tests currently only handle the last one generated --> 
     13    <test> 
     14      <param name="input1" value="1.fastq" ftype="fastq" /> 
     15      <output name="output2" file="convert_fastq2fasta_out2.fasta" /> 
     16    </test> 
     17  </tests> 
     18  <help> 
    1319     
    1420**What it does** 
  • tools/metag_tools/rmapq_wrapper.xml

    r1224 r1329  
    1111        </param> 
    1212        <param name="input_seq" type="data" format="fasta" label="Sequence file"/> 
    13         <param name="input_score" type="data" format="qualityscore" label="Quality score file"/> 
     13        <param name="input_score" type="data" format="qual" label="Quality score file"/> 
    1414        <param name="high_score" type="float" size="15" value="40" label="Minimum score for high-quality base (-q)"/> 
    1515        <param name="high_len" type="integer" size="15" value="36" label="Minimal high-quality bases (-M)"/> 
     
    4444            <param name="database" value="/depot/data2/galaxy/faseq/test" /> 
    4545            <param name="input_seq" value="rmapq_wrapper_test1.fasta" ftype="fasta"/> 
    46             <param name="input_score" value="rmapq_wrapper_test1.qualityscore" ftype="qualityscore" /> 
     46            <param name="input_score" value="rmapq_wrapper_test1.qual" ftype="qual" /> 
    4747            <param name="high_score" value="40" /> 
    4848            <param name="high_len" value="36" /> 
  • tools/metag_tools/short_reads_figure_high_quality_length.xml

    r1224 r1329  
    66<inputs> 
    77<page> 
    8     <param name="input1" type="data" format="qualityscore,txtseq.zip" label="Quality score file" help="No dataset? Read tip below"/> 
     8    <param name="input1" type="data" format="qual,txtseq.zip" label="Quality score file" help="No dataset? Read tip below"/> 
    99    <param name="input2" type="integer" size="5" value="20" label="Quality score threshold" /> 
    1010</page> 
     
    1818<tests> 
    1919        <test> 
    20                 <param name="input1" value="solexa.qualityscore" ftype="qualityscore" /> 
     20                <param name="input1" value="solexa.qual" ftype="qual" /> 
    2121                <param name="input2" value="5" /> 
    2222                <output name="output1" file="solexa_high_quality_hist.pdf" ftype="pdf"/> 
    2323        </test> 
    2424        <test> 
    25                 <param name="input1" value="454.qualityscore" ftype="qualityscore" /> 
     25                <param name="input1" value="454.qual" ftype="qual" /> 
    2626                <param name="input2" value="5" /> 
    2727                <output name="output1" file="454_high_quality_hist.pdf" ftype="pdf"/> 
  • tools/metag_tools/short_reads_figure_score.xml

    r1326 r1329  
    66<inputs> 
    77<page> 
    8     <param name="input1" type="data" format="qualityscore, txtseq.zip" label="Quality score file" help="No dataset? Read tip below"/> 
     8    <param name="input1" type="data" format="qual, txtseq.zip" label="Quality score file" help="No dataset? Read tip below"/> 
    99</page> 
    1010</inputs> 
     
    1818<tests> 
    1919        <test> 
    20                 <param name="input1" value="solexa.qualityscore" ftype="qualityscore" /> 
     20                <param name="input1" value="solexa.qual" ftype="qual" /> 
    2121                <output name="output1" file="solexaScore.png" ftype="png" /> 
    2222        </test> 
    2323        <test> 
    24                 <param name="input1" value="454.qualityscore" ftype="qualityscore" /> 
     24                <param name="input1" value="454.qual" ftype="qual" /> 
    2525                <output name="output1" file="454Score.png" ftype="png" /> 
    2626        </test> 
  • tools/metag_tools/short_reads_trim_seq.xml

    r1253 r1329  
    88<page> 
    99    <param name="input1" type="data" format="fasta,txtseq.zip" label="Reads" /> 
    10     <param name="input2" type="data" format="qualityscore,txtseq.zip" label="Quality scores" /> 
     10    <param name="input2" type="data" format="qual,txtseq.zip" label="Quality scores" /> 
    1111        <param name="trim" type="integer" size="5" value="20" label="Minimal quality score" help="bases scoring below this value will trigger splitting"/> 
    1212    <param name="length" type="integer" size="5" value="100" label="Minimal length of contiguous segment" help="report all high quality segments above this length. Setting this option to '0' will cause the program to return a single longest run of high quality bases per read" /> 
     
    3737                <param name="sequencer" value="454" /> 
    3838                <param name="input1" value="454.fasta" ftype="fasta" /> 
    39                 <param name="input2" value="454.qualityscore" ftype="qualityscore" /> 
     39                <param name="input2" value="454.qual" ftype="qual" /> 
    4040                <param name="input3" value="no" /> 
    4141                <param name="trim" value="20" /> 
     
    4646                <param name="sequencer" value="Solexa" /> 
    4747                <param name="input1" value="solexa.fasta" ftype="fasta" /> 
    48                 <param name="input2" value="solexa.qualityscore" ftype="qualityscore" /> 
     48                <param name="input2" value="solexa.qual" ftype="qual" /> 
    4949                <param name="input3" value="0" /> 
    5050                <param name="trim" value="20" /> 
  • universe_wsgi.ini.sample

    r1327 r1329  
    8686# Mail 
    8787smtp_server = coltrane.bx.psu.edu 
    88 error_email_to = galaxy_bugs@bx.psu.edu 
     88error_email_to = galaxy-bugs@bx.psu.edu 
    8989 
    9090# Use the new iframe / javascript based layout 
     
    168168[galaxy:datatypes] 
    169169 
    170 ab1 = galaxy.datatypes.images:Ab1,application/octet-stream 
    171 axt = galaxy.datatypes.sequence:Axt 
    172 bed = galaxy.datatypes.interval:Bed 
    173 binseq.zip = galaxy.datatypes.images:Binseq,application/zip 
     170#<file extension> = <data type class>,<mime type (optional)>,<display in upload select list (optional)> 
     171ab1 = galaxy.datatypes.images:Ab1,application/octet-stream,display_in_upload 
     172axt = galaxy.datatypes.sequence:Axt,display_in_upload 
     173bed = galaxy.datatypes.interval:Bed,display_in_upload 
     174binseq.zip = galaxy.datatypes.images:Binseq,application/zip,display_in_upload 
    174175customtrack = galaxy.datatypes.interval:CustomTrack 
    175176data = galaxy.datatypes.data:Data,application/octet-stream 
    176 fasta = galaxy.datatypes.sequence:Fasta 
    177 fastq = galaxy.datatypes.sequence:Fastq 
    178 gff = galaxy.datatypes.interval:Gff 
    179 gff3 = galaxy.datatypes.interval:Gff3 
     177fasta = galaxy.datatypes.sequence:Fasta,display_in_upload 
     178fastq = galaxy.datatypes.sequence:Fastq,display_in_upload 
     179gff = galaxy.datatypes.interval:Gff,display_in_upload 
     180gff3 = galaxy.datatypes.interval:Gff3,display_in_upload 
    180181gif = galaxy.datatypes.images:Image,image/gif 
    181182gmaj.zip = galaxy.datatypes.images:Gmaj,application/zip 
    182183html = galaxy.datatypes.images:Html,text/html 
    183 interval = galaxy.datatypes.interval:Interval 
     184interval = galaxy.datatypes.interval:Interval,display_in_upload 
    184185jpg = galaxy.datatypes.images:Image,image/jpeg 
    185186laj = galaxy.datatypes.images:Laj 
    186187lav = galaxy.datatypes.sequence:Lav 
    187 maf = galaxy.datatypes.sequence:Maf 
     188maf = galaxy.datatypes.sequence:Maf,display_in_upload 
    188189pdf = galaxy.datatypes.images:Image,application/pdf 
    189190png = galaxy.datatypes.images:Image,image/png 
    190 qualityscore = galaxy.datatypes.qualityscore:QualityScore 
    191 scf = galaxy.datatypes.images:Scf,application/octet-stream 
    192 taxonomy = galaxy.datatypes.tabular:Taxonomy 
    193 tabular = galaxy.datatypes.tabular:Tabular 
    194 txt = galaxy.datatypes.data:Text 
    195 txtseq.zip = galaxy.datatypes.images:Txtseq,application/zip 
    196 wig = galaxy.datatypes.interval:Wiggle 
     191qual = galaxy.datatypes.qualityscore:QualityScore,display_in_upload 
     192scf = galaxy.datatypes.images:Scf,application/octet-stream,display_in_upload 
     193taxonomy = galaxy.datatypes.tabular:Taxonomy,display_in_upload 
     194tabular = galaxy.datatypes.tabular:Tabular,display_in_upload 
     195txt = galaxy.datatypes.data:Text,display_in_upload 
     196txtseq.zip = galaxy.datatypes.images:Txtseq,application/zip,display_in_upload 
     197wig = galaxy.datatypes.interval:Wiggle,display_in_upload 
    197198#EMBOSS TOOLS 
    198199acedb = galaxy.datatypes.data:Text