Mercurial > repos > jaredgk > ppp_vcf_to_ima
view pppmodel.py @ 5:009cf225ef96 draft default tip
Uploaded
| author | jaredgk |
|---|---|
| date | Wed, 24 Oct 2018 15:34:54 -0400 |
| parents | 6721b27c06b8 |
| children |
line wrap: on
line source
from __future__ import print_function import gzip import logging import os import shutil import subprocess import tempfile import json import pysam from bx.seq.twobit import TWOBIT_MAGIC_NUMBER, TWOBIT_MAGIC_NUMBER_SWAP, TWOBIT_MAGIC_SIZE from galaxy.datatypes import metadata from galaxy.datatypes.metadata import DictParameter, ListParameter, MetadataElement, MetadataParameter from binary import Binary from text import Json log = logging.getLogger(__name__) class pppmodel(Json): file_ext = ".model" #edam_format = "format_3746" MetadataElement(name="models", default=[], desc="Models", param=MetadataParameter, readonly=True, visible=False, optional=True, no_value=[]) MetadataElement(name="npop_dict", default={}, desc="Model population count", param=MetadataParameter, readonly=True, visible=False, optional=True, no_value={}) # Update as format becomes more defined def set_peek(self, dataset, is_multi_byte=False): if not dataset.dataset.purged: dataset.blurb = "Model File" # Update as format becomes more defined ''' def sniff(self, filename): try: json.loads(filename.file_name) return True except Exception: return False ''' def set_meta(self, dataset, **kwd): if dataset.has_data(): with open(dataset.file_name) as model_file: try: model_list = json.load(model_file) except Exception: return # Assign models models = [model_dict['name'] for model_dict in model_list if 'name' in model_dict] # Assign population count per model npop_dict = dict([(model_dict['name'], len(model_dict['pops'])) for model_dict in model_list if 'name' in model_dict]) dataset.metadata.models = models dataset.metadata.npop_dict = npop_dict
