annotate pppmodel.py @ 5:009cf225ef96 draft default tip

Uploaded
author jaredgk
date Wed, 24 Oct 2018 15:34:54 -0400
parents 6721b27c06b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
1 from __future__ import print_function
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
2
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
3 import gzip
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
4 import logging
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
5 import os
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
6 import shutil
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
7 import subprocess
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
8 import tempfile
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
9 import json
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
10
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
11 import pysam
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
12 from bx.seq.twobit import TWOBIT_MAGIC_NUMBER, TWOBIT_MAGIC_NUMBER_SWAP, TWOBIT_MAGIC_SIZE
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
13
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
14 from galaxy.datatypes import metadata
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
15 from galaxy.datatypes.metadata import DictParameter, ListParameter, MetadataElement, MetadataParameter
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
16
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
17 from binary import Binary
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
18 from text import Json
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
19
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
20 log = logging.getLogger(__name__)
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
21
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
22 class pppmodel(Json):
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
23 file_ext = ".model"
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
24 #edam_format = "format_3746"
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
25
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
26 MetadataElement(name="models", default=[], desc="Models", param=MetadataParameter, readonly=True, visible=False, optional=True, no_value=[])
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
27 MetadataElement(name="npop_dict", default={}, desc="Model population count", param=MetadataParameter, readonly=True, visible=False, optional=True, no_value={})
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
28
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
29 # Update as format becomes more defined
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
30 def set_peek(self, dataset, is_multi_byte=False):
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
31 if not dataset.dataset.purged:
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
32 dataset.blurb = "Model File"
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
33
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
34 # Update as format becomes more defined
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
35 '''
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
36 def sniff(self, filename):
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
37 try:
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
38 json.loads(filename.file_name)
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
39 return True
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
40 except Exception:
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
41 return False
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
42 '''
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
43
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
44 def set_meta(self, dataset, **kwd):
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
45 if dataset.has_data():
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
46 with open(dataset.file_name) as model_file:
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
47 try:
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
48 model_list = json.load(model_file)
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
49 except Exception:
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
50 return
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
51
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
52 # Assign models
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
53 models = [model_dict['name'] for model_dict in model_list if 'name' in model_dict]
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
54
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
55 # Assign population count per model
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
56 npop_dict = dict([(model_dict['name'], len(model_dict['pops'])) for model_dict in model_list if 'name' in model_dict])
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
57
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
58 dataset.metadata.models = models
6721b27c06b8 Uploaded
jaredgk
parents:
diff changeset
59 dataset.metadata.npop_dict = npop_dict