mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 05:45:37 +08:00
Merge pull request #5561 from martenson/backport-fastgz
[18.01] add fasta.gz support
This commit is contained in:
@@ -79,6 +79,9 @@
|
||||
<converter file="fasta_to_fai.xml" target_datatype="fai"/>
|
||||
<display file="igv/genome_fasta.xml" inherit="true"/>
|
||||
</datatype>
|
||||
<datatype extension="fasta.gz" type="galaxy.datatypes.sequence:FastaGz" display_in_upload="true">
|
||||
<converter file="fastagz_to_fasta.xml" target_datatype="fasta"/>
|
||||
</datatype>
|
||||
<datatype extension="fastq" type="galaxy.datatypes.sequence:Fastq" display_in_upload="true" description="FASTQ format is a text-based format for storing both a biological sequence (usually nucleotide sequence) and its corresponding quality scores." description_url="https://wiki.galaxyproject.org/Learn/Datatypes#Fastq">
|
||||
<converter file="fastq_to_fqtoc.xml" target_datatype="fqtoc"/>
|
||||
</datatype>
|
||||
@@ -766,6 +769,7 @@
|
||||
<!-- TODO: see molecules.py <sniffer type="galaxy.datatypes.molecules:SMILES"/>-->
|
||||
<sniffer type="galaxy.datatypes.phylip:Phylip"/>
|
||||
<sniffer type="galaxy.datatypes.sequence:Fasta"/>
|
||||
<sniffer type="galaxy.datatypes.sequence:FastaGz"/>
|
||||
<sniffer type="galaxy.datatypes.sequence:FastqSanger"/>
|
||||
<sniffer type="galaxy.datatypes.sequence:FastqSangerGz"/>
|
||||
<sniffer type="galaxy.datatypes.sequence:FastqSangerBz2"/>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<tool id="CONVERTER_fastagz_to_fasta" name="Convert fasta.gz files to fasta" version="1.0.0" hidden="true">
|
||||
<command>gzip -dcf '$input1' > '$output1'</command>
|
||||
<inputs>
|
||||
<param format="fasta.gz" name="input1" type="data" label="Choose FASTA file"/>
|
||||
</inputs>
|
||||
<outputs>
|
||||
<data format="fasta" name="output1"/>
|
||||
</outputs>
|
||||
<help>
|
||||
</help>
|
||||
</tool>
|
||||
@@ -39,6 +39,7 @@ if sys.version_info > (3,):
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
SNIFF_COMPRESSED_FASTQS = os.environ.get("GALAXY_ENABLE_BETA_COMPRESSED_FASTQ_SNIFFING", "0") == "1"
|
||||
SNIFF_COMPRESSED_FASTAS = os.environ.get("GALAXY_ENABLE_BETA_COMPRESSED_FASTA_SNIFFING", "0") == "1"
|
||||
|
||||
|
||||
class SequenceSplitLocations(data.Text):
|
||||
@@ -311,6 +312,21 @@ class Alignment(data.Text):
|
||||
raise NotImplementedError("Can't split generic alignment files")
|
||||
|
||||
|
||||
class FastaGz(Sequence, Binary):
|
||||
"""Class representing a generic compressed FASTA sequence"""
|
||||
edam_format = "format_1929"
|
||||
file_ext = "fasta.gz"
|
||||
compressed = True
|
||||
|
||||
def sniff(self, filename):
|
||||
"""Determines whether the file is in gzip-compressed FASTA format"""
|
||||
if not SNIFF_COMPRESSED_FASTAS:
|
||||
return False
|
||||
if not is_gzip(filename):
|
||||
return False
|
||||
return Sequence.sniff(self, filename)
|
||||
|
||||
|
||||
class Fasta(Sequence):
|
||||
"""Class representing a FASTA sequence"""
|
||||
edam_format = "format_1929"
|
||||
|
||||
@@ -487,7 +487,7 @@ def handle_uploaded_dataset_file(filename, datatypes_registry, ext='auto'):
|
||||
AUTO_DETECT_EXTENSIONS = ['auto'] # should 'data' also cause auto detect?
|
||||
DECOMPRESSION_FUNCTIONS = dict(gzip=gzip.GzipFile, bz2=bz2.BZ2File)
|
||||
COMPRESSION_CHECK_FUNCTIONS = [('gzip', is_gzip), ('bz2', is_bz2)]
|
||||
COMPRESSION_DATATYPES = dict(gzip=['bam', 'fastq.gz', 'fastqsanger.gz', 'fastqillumina.gz', 'fastqsolexa.gz', 'fastqcssanger.gz'], bz2=['fastq.bz2', 'fastqsanger.bz2', 'fastqillumina.bz2', 'fastqsolexa.bz2', 'fastqcssanger.bz2'])
|
||||
COMPRESSION_DATATYPES = dict(gzip=['bam', 'fasta.gz', 'fastq.gz', 'fastqsanger.gz', 'fastqillumina.gz', 'fastqsolexa.gz', 'fastqcssanger.gz'], bz2=['fastq.bz2', 'fastqsanger.bz2', 'fastqillumina.bz2', 'fastqsolexa.bz2', 'fastqcssanger.bz2'])
|
||||
COMPRESSED_EXTENSIONS = []
|
||||
for exts in COMPRESSION_DATATYPES.values():
|
||||
COMPRESSED_EXTENSIONS.extend(exts)
|
||||
|
||||
Reference in New Issue
Block a user