Merge pull request #4977 from mmiladi/cm-datatype

add infernal-cm datatype
This commit is contained in:
Marius van den Beek
2018-01-11 12:02:53 +01:00
committed by GitHub
3 changed files with 1361 additions and 0 deletions
+2
View File
@@ -500,6 +500,7 @@
<datatype extension="augustus" type="galaxy.datatypes.annotation:Augustus" display_in_upload="true" />
<datatype extension="icm" type="galaxy.datatypes.binary:ICM" display_in_upload="true"/>
<!-- MSA Datatypes -->
<datatype extension="cm" type="galaxy.datatypes.msa:InfernalCM" display_in_upload="False" />
<datatype extension="hmm2" type="galaxy.datatypes.msa:Hmmer2" display_in_upload="true" />
<datatype extension="hmm3" type="galaxy.datatypes.msa:Hmmer3" display_in_upload="true" />
<datatype extension="stockholm" type="galaxy.datatypes.msa:Stockholm_1_0" display_in_upload="true" />
@@ -796,6 +797,7 @@
<sniffer type="galaxy.datatypes.msa:Hmmer3" />
<sniffer type="galaxy.datatypes.msa:Stockholm_1_0" />
<sniffer type="galaxy.datatypes.msa:MauveXmfa" />
<sniffer type="galaxy.datatypes.msa:InfernalCM"/>
<sniffer type="galaxy.datatypes.annotation:SnapHmm" />
<sniffer type="galaxy.datatypes.binary:Cel" />
<sniffer type="galaxy.datatypes.binary:RData" />
+47
View File
@@ -11,6 +11,53 @@ from galaxy.util import nice_size
log = logging.getLogger(__name__)
class InfernalCM(Text):
file_ext = "cm"
MetadataElement(name="number_of_models", default=0, desc="Number of covariance models",
readonly=True, visible=True, optional=True, no_value=0)
MetadataElement(name="cm_version", default="1/a", desc="Infernal Covariance Model version",
readonly=True, visible=True, optional=True, no_value=0)
def set_peek(self, dataset, is_multi_byte=False):
if not dataset.dataset.purged:
dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte)
if dataset.metadata.number_of_models == 1:
dataset.blurb = "1 model"
else:
dataset.blurb = "%s models" % dataset.metadata.number_of_models
dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte)
else:
dataset.peek = 'file does not exist'
dataset.blurb = 'file purged from disc'
def sniff(self, filename):
"""
>>> from galaxy.datatypes.sniff import get_test_fname
>>> fname = get_test_fname( 'infernal_model.cm' )
>>> InfernalCM().sniff( fname )
True
>>> fname = get_test_fname( 'test.mz5' )
>>> InfernalCM().sniff( fname )
False
"""
with open(filename, 'r') as f:
first_line = f.readline()
return first_line.startswith("INFERNAL")
def set_meta(self, dataset, **kwd):
"""
Set the number of models and the version of CM file in dataset.
"""
dataset.metadata.number_of_models = generic_util.count_special_lines('^INFERNAL', dataset.file_name)
with open(dataset.file_name, 'r') as f:
first_line = f.readline()
if first_line.startswith("INFERNAL"):
dataset.metadata.cm_version = (first_line.split()[0]).replace('INFERNAL', '')
class Hmmer(Text):
edam_data = "data_1364"
edam_format = "format_1370"
File diff suppressed because it is too large Load Diff