Mercurial > repos > yating-l > jbrowsearchivecreator
comparison tracks/IntervalFeatures.py @ 38:d17f629f5486 draft
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
| author | yating-l |
|---|---|
| date | Fri, 06 Apr 2018 13:44:56 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 37:43909f065bee | 38:d17f629f5486 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 import json | |
| 3 import logging | |
| 4 import collections | |
| 5 | |
| 6 from TrackDb import TrackDb | |
| 7 from util import subtools | |
| 8 from util import santitizer | |
| 9 | |
| 10 class Features(TrackDb): | |
| 11 def __init__(self, trackName, trackLabel, trackDataURL, trackType, dataType, extraSettings=None): | |
| 12 super(Features, self).__init__(trackName, trackLabel, trackDataURL, trackType, dataType, extraSettings) | |
| 13 | |
| 14 def prepareExtraSetting(self): | |
| 15 if self.trackType == 'HTMLFeatures': | |
| 16 self.prepareHTMLExtraSetting() | |
| 17 else: | |
| 18 self.prepareCanvasExtraSetting() | |
| 19 | |
| 20 def prepareHTMLExtraSetting(self): | |
| 21 """ set HTMLFeatures configuration options """ | |
| 22 extraConfigs = dict() | |
| 23 self.extraSettings["clientConfig"] = dict() | |
| 24 self.extraSettings["config"] = dict() | |
| 25 if 'type' in self.extraSettings: | |
| 26 extraConfigs["type"] = self.extraSettings['type'] | |
| 27 if 'color' in self.extraSettings and self.extraSettings['color']: | |
| 28 extraConfigs['feature_color'] = self.extraSettings['color'] | |
| 29 else: | |
| 30 extraConfigs['feature_color'] = "#000000" | |
| 31 #self.extraSettings['clientConfig']['color'] = self.extraSettings['color'] | |
| 32 if 'subfeatureClasses' in self.extraSettings: | |
| 33 subfeature_css_class = santitizer.sanitize_name(self.trackLabel + "_" + self.extraSettings['subfeatureClasses']) | |
| 34 extraConfigs['subfeatureClasses'] = {self.extraSettings['subfeatureClasses']: subfeature_css_class} | |
| 35 | |
| 36 if 'category' not in self.extraSettings or not self.extraSettings['category']: | |
| 37 self.extraSettings['config']['category'] = "Default group" | |
| 38 else: | |
| 39 self.extraSettings['config']['category'] = self.extraSettings['category'] | |
| 40 | |
| 41 extraConfigs['config'] = json.dumps(self.extraSettings["config"]) | |
| 42 extraConfigs['clientConfig'] = json.dumps(self.extraSettings["clientConfig"]) | |
| 43 return extraConfigs | |
| 44 | |
| 45 def prepareCanvasExtraSetting(self): | |
| 46 """ set CanvasFeatures configuration options """ | |
| 47 extraConfigs = dict() | |
| 48 self.extraSettings["clientConfig"] = dict() | |
| 49 self.extraSettings["config"] = dict() | |
| 50 if 'color' not in self.extraSettings or not self.extraSettings['color']: | |
| 51 self.extraSettings["clientConfig"]['color'] = "#daa520" | |
| 52 else: | |
| 53 self.extraSettings["clientConfig"]['color'] = self.extraSettings['color'] | |
| 54 if 'category' not in self.extraSettings or not self.extraSettings['category']: | |
| 55 self.extraSettings["config"]['category'] = "Default group" | |
| 56 else: | |
| 57 self.extraSettings["config"]['category'] = self.extraSettings['category'] | |
| 58 if 'glyph' in self.extraSettings: | |
| 59 self.extraSettings["config"]['glyph'] = self.extraSettings['glyph'] | |
| 60 if 'transcriptType' in self.extraSettings: | |
| 61 self.extraSettings['config']['transcriptType'] = self.extraSettings['transcriptType'] | |
| 62 extraConfigs["config"] = json.dumps(self.extraSettings["config"]) | |
| 63 extraConfigs["clientConfig"] = json.dumps(self.extraSettings["clientConfig"]) | |
| 64 return extraConfigs | |
| 65 | |
| 66 def createTrackDb(self): | |
| 67 self.track_db = collections.OrderedDict([("track",self.trackName), | |
| 68 ("trackLabel",self.trackLabel), | |
| 69 ("trackDataURL",self.trackDataURL), | |
| 70 ("dataType", self.dataType), | |
| 71 ("trackType", self.trackType)] | |
| 72 ) | |
| 73 | |
| 74 | |
| 75 htmlExtraConfigs = self.prepareHTMLExtraSetting() | |
| 76 self.logger.debug("Generate extraConfigs for htmlFeatures = %s", json.dumps(htmlExtraConfigs)) | |
| 77 self.track_db["html"]["options"] = htmlExtraConfigs | |
| 78 canvasExtraConfigs = self.prepareCanvasExtraSetting() | |
| 79 self.logger.debug("Generate extraConfigs for canvasFeatures = %s", json.dumps(canvasExtraConfigs)) | |
| 80 self.track_db["canvas"]["options"] = canvasExtraConfigs | |
| 81 self.logger.debug("TrackDb object is created track_db = %s ", json.dumps(self.track_db)) |
