Changeset 1329:43015227f87d
- 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
| r1327 |
r1329 |
|
| 15 | 15 | self.mimetypes_by_extension = {} |
|---|
| 16 | 16 | self.datatype_converters = odict() |
|---|
| | 17 | self.upload_file_formats = [] |
|---|
| 17 | 18 | self.sniff_order = [] |
|---|
| 18 | 19 | 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)> |
|---|
| 19 | 22 | try: |
|---|
| | 23 | fields = kind.split(",") |
|---|
| | 24 | kind = fields[0].strip() |
|---|
| 20 | 25 | 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 ) |
|---|
| 25 | 47 | fields = kind.split(":") |
|---|
| 26 | 48 | datatype_module = fields[0] |
|---|
| 27 | 49 | datatype_class = fields[1] |
|---|
| 28 | 50 | 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) |
|---|
| 31 | 54 | self.datatypes_by_extension[ext] = getattr(module, datatype_class)() |
|---|
| 32 | 55 | if mime_type is None: |
|---|
| … | … | |
| 34 | 57 | mime_type = self.datatypes_by_extension[ext].get_mime() |
|---|
| 35 | 58 | 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 ) ) ) |
|---|
| 38 | 61 | #default values |
|---|
| 39 | 62 | if len(self.datatypes_by_extension) < 1: |
|---|
| … | … | |
| 52 | 75 | 'lav' : sequence.Lav(), |
|---|
| 53 | 76 | 'maf' : sequence.Maf(), |
|---|
| 54 | | 'qualityscore': qualityscore.QualityScore(), |
|---|
| | 77 | 'qual' : qualityscore.QualityScore(), |
|---|
| 55 | 78 | 'scf' : images.Scf(), |
|---|
| 56 | 79 | 'tabular' : tabular.Tabular(), |
|---|
| … | … | |
| 74 | 97 | 'lav' : 'text/plain', |
|---|
| 75 | 98 | 'maf' : 'text/plain', |
|---|
| 76 | | 'qualityscore': 'text/plain', |
|---|
| | 99 | 'qual' : 'text/plain', |
|---|
| 77 | 100 | 'scf' : 'application/octet-stream', |
|---|
| 78 | 101 | 'tabular' : 'text/plain', |
|---|
| r1203 |
r1329 |
|
| 173 | 173 | except: |
|---|
| 174 | 174 | 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' ): |
|---|
| 177 | 177 | try: |
|---|
| 178 | 178 | meta_key = filters[ 'data_meta' ][ 'meta_key' ] |
|---|
| … | … | |
| 195 | 195 | else: # meta_key is None |
|---|
| 196 | 196 | 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 ) |
|---|
| 198 | 199 | elif self.data_file == 'encode_datasets.loc': |
|---|
| 199 | 200 | encode_group = filters[ 'params' ][ 'encode_group' ] |
|---|
| … | … | |
| 218 | 219 | else: |
|---|
| 219 | 220 | 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 |
|---|
| 225 | 224 | formats.sort() |
|---|
| 226 | 225 | options.append( ( 'Auto-detect', 'auto', True ) ) |
|---|
| r1328 |
r1329 |
|
| 1 | 1 | <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> |
|---|
| 13 | 19 | |
|---|
| 14 | 20 | **What it does** |
|---|
| r1224 |
r1329 |
|
| 11 | 11 | </param> |
|---|
| 12 | 12 | <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"/> |
|---|
| 14 | 14 | <param name="high_score" type="float" size="15" value="40" label="Minimum score for high-quality base (-q)"/> |
|---|
| 15 | 15 | <param name="high_len" type="integer" size="15" value="36" label="Minimal high-quality bases (-M)"/> |
|---|
| … | … | |
| 44 | 44 | <param name="database" value="/depot/data2/galaxy/faseq/test" /> |
|---|
| 45 | 45 | <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" /> |
|---|
| 47 | 47 | <param name="high_score" value="40" /> |
|---|
| 48 | 48 | <param name="high_len" value="36" /> |
|---|
| r1224 |
r1329 |
|
| 6 | 6 | <inputs> |
|---|
| 7 | 7 | <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"/> |
|---|
| 9 | 9 | <param name="input2" type="integer" size="5" value="20" label="Quality score threshold" /> |
|---|
| 10 | 10 | </page> |
|---|
| … | … | |
| 18 | 18 | <tests> |
|---|
| 19 | 19 | <test> |
|---|
| 20 | | <param name="input1" value="solexa.qualityscore" ftype="qualityscore" /> |
|---|
| | 20 | <param name="input1" value="solexa.qual" ftype="qual" /> |
|---|
| 21 | 21 | <param name="input2" value="5" /> |
|---|
| 22 | 22 | <output name="output1" file="solexa_high_quality_hist.pdf" ftype="pdf"/> |
|---|
| 23 | 23 | </test> |
|---|
| 24 | 24 | <test> |
|---|
| 25 | | <param name="input1" value="454.qualityscore" ftype="qualityscore" /> |
|---|
| | 25 | <param name="input1" value="454.qual" ftype="qual" /> |
|---|
| 26 | 26 | <param name="input2" value="5" /> |
|---|
| 27 | 27 | <output name="output1" file="454_high_quality_hist.pdf" ftype="pdf"/> |
|---|
| r1326 |
r1329 |
|
| 6 | 6 | <inputs> |
|---|
| 7 | 7 | <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"/> |
|---|
| 9 | 9 | </page> |
|---|
| 10 | 10 | </inputs> |
|---|
| … | … | |
| 18 | 18 | <tests> |
|---|
| 19 | 19 | <test> |
|---|
| 20 | | <param name="input1" value="solexa.qualityscore" ftype="qualityscore" /> |
|---|
| | 20 | <param name="input1" value="solexa.qual" ftype="qual" /> |
|---|
| 21 | 21 | <output name="output1" file="solexaScore.png" ftype="png" /> |
|---|
| 22 | 22 | </test> |
|---|
| 23 | 23 | <test> |
|---|
| 24 | | <param name="input1" value="454.qualityscore" ftype="qualityscore" /> |
|---|
| | 24 | <param name="input1" value="454.qual" ftype="qual" /> |
|---|
| 25 | 25 | <output name="output1" file="454Score.png" ftype="png" /> |
|---|
| 26 | 26 | </test> |
|---|
| r1253 |
r1329 |
|
| 8 | 8 | <page> |
|---|
| 9 | 9 | <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" /> |
|---|
| 11 | 11 | <param name="trim" type="integer" size="5" value="20" label="Minimal quality score" help="bases scoring below this value will trigger splitting"/> |
|---|
| 12 | 12 | <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" /> |
|---|
| … | … | |
| 37 | 37 | <param name="sequencer" value="454" /> |
|---|
| 38 | 38 | <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" /> |
|---|
| 40 | 40 | <param name="input3" value="no" /> |
|---|
| 41 | 41 | <param name="trim" value="20" /> |
|---|
| … | … | |
| 46 | 46 | <param name="sequencer" value="Solexa" /> |
|---|
| 47 | 47 | <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" /> |
|---|
| 49 | 49 | <param name="input3" value="0" /> |
|---|
| 50 | 50 | <param name="trim" value="20" /> |
|---|
| r1327 |
r1329 |
|
| 86 | 86 | # Mail |
|---|
| 87 | 87 | smtp_server = coltrane.bx.psu.edu |
|---|
| 88 | | error_email_to = galaxy_bugs@bx.psu.edu |
|---|
| | 88 | error_email_to = galaxy-bugs@bx.psu.edu |
|---|
| 89 | 89 | |
|---|
| 90 | 90 | # Use the new iframe / javascript based layout |
|---|
| … | … | |
| 168 | 168 | [galaxy:datatypes] |
|---|
| 169 | 169 | |
|---|
| 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)> |
|---|
| | 171 | ab1 = galaxy.datatypes.images:Ab1,application/octet-stream,display_in_upload |
|---|
| | 172 | axt = galaxy.datatypes.sequence:Axt,display_in_upload |
|---|
| | 173 | bed = galaxy.datatypes.interval:Bed,display_in_upload |
|---|
| | 174 | binseq.zip = galaxy.datatypes.images:Binseq,application/zip,display_in_upload |
|---|
| 174 | 175 | customtrack = galaxy.datatypes.interval:CustomTrack |
|---|
| 175 | 176 | data = 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 |
|---|
| | 177 | fasta = galaxy.datatypes.sequence:Fasta,display_in_upload |
|---|
| | 178 | fastq = galaxy.datatypes.sequence:Fastq,display_in_upload |
|---|
| | 179 | gff = galaxy.datatypes.interval:Gff,display_in_upload |
|---|
| | 180 | gff3 = galaxy.datatypes.interval:Gff3,display_in_upload |
|---|
| 180 | 181 | gif = galaxy.datatypes.images:Image,image/gif |
|---|
| 181 | 182 | gmaj.zip = galaxy.datatypes.images:Gmaj,application/zip |
|---|
| 182 | 183 | html = galaxy.datatypes.images:Html,text/html |
|---|
| 183 | | interval = galaxy.datatypes.interval:Interval |
|---|
| | 184 | interval = galaxy.datatypes.interval:Interval,display_in_upload |
|---|
| 184 | 185 | jpg = galaxy.datatypes.images:Image,image/jpeg |
|---|
| 185 | 186 | laj = galaxy.datatypes.images:Laj |
|---|
| 186 | 187 | lav = galaxy.datatypes.sequence:Lav |
|---|
| 187 | | maf = galaxy.datatypes.sequence:Maf |
|---|
| | 188 | maf = galaxy.datatypes.sequence:Maf,display_in_upload |
|---|
| 188 | 189 | pdf = galaxy.datatypes.images:Image,application/pdf |
|---|
| 189 | 190 | png = 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 |
|---|
| | 191 | qual = galaxy.datatypes.qualityscore:QualityScore,display_in_upload |
|---|
| | 192 | scf = galaxy.datatypes.images:Scf,application/octet-stream,display_in_upload |
|---|
| | 193 | taxonomy = galaxy.datatypes.tabular:Taxonomy,display_in_upload |
|---|
| | 194 | tabular = galaxy.datatypes.tabular:Tabular,display_in_upload |
|---|
| | 195 | txt = galaxy.datatypes.data:Text,display_in_upload |
|---|
| | 196 | txtseq.zip = galaxy.datatypes.images:Txtseq,application/zip,display_in_upload |
|---|
| | 197 | wig = galaxy.datatypes.interval:Wiggle,display_in_upload |
|---|
| 197 | 198 | #EMBOSS TOOLS |
|---|
| 198 | 199 | acedb = galaxy.datatypes.data:Text |
|---|