Mercurial > repos > yating-l > jbrowsearchivecreator
view 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 |
line wrap: on
line source
#!/usr/bin/env python import json import logging import collections from TrackDb import TrackDb from util import subtools from util import santitizer class Features(TrackDb): def __init__(self, trackName, trackLabel, trackDataURL, trackType, dataType, extraSettings=None): super(Features, self).__init__(trackName, trackLabel, trackDataURL, trackType, dataType, extraSettings) def prepareExtraSetting(self): if self.trackType == 'HTMLFeatures': self.prepareHTMLExtraSetting() else: self.prepareCanvasExtraSetting() def prepareHTMLExtraSetting(self): """ set HTMLFeatures configuration options """ extraConfigs = dict() self.extraSettings["clientConfig"] = dict() self.extraSettings["config"] = dict() if 'type' in self.extraSettings: extraConfigs["type"] = self.extraSettings['type'] if 'color' in self.extraSettings and self.extraSettings['color']: extraConfigs['feature_color'] = self.extraSettings['color'] else: extraConfigs['feature_color'] = "#000000" #self.extraSettings['clientConfig']['color'] = self.extraSettings['color'] if 'subfeatureClasses' in self.extraSettings: subfeature_css_class = santitizer.sanitize_name(self.trackLabel + "_" + self.extraSettings['subfeatureClasses']) extraConfigs['subfeatureClasses'] = {self.extraSettings['subfeatureClasses']: subfeature_css_class} if 'category' not in self.extraSettings or not self.extraSettings['category']: self.extraSettings['config']['category'] = "Default group" else: self.extraSettings['config']['category'] = self.extraSettings['category'] extraConfigs['config'] = json.dumps(self.extraSettings["config"]) extraConfigs['clientConfig'] = json.dumps(self.extraSettings["clientConfig"]) return extraConfigs def prepareCanvasExtraSetting(self): """ set CanvasFeatures configuration options """ extraConfigs = dict() self.extraSettings["clientConfig"] = dict() self.extraSettings["config"] = dict() if 'color' not in self.extraSettings or not self.extraSettings['color']: self.extraSettings["clientConfig"]['color'] = "#daa520" else: self.extraSettings["clientConfig"]['color'] = self.extraSettings['color'] if 'category' not in self.extraSettings or not self.extraSettings['category']: self.extraSettings["config"]['category'] = "Default group" else: self.extraSettings["config"]['category'] = self.extraSettings['category'] if 'glyph' in self.extraSettings: self.extraSettings["config"]['glyph'] = self.extraSettings['glyph'] if 'transcriptType' in self.extraSettings: self.extraSettings['config']['transcriptType'] = self.extraSettings['transcriptType'] extraConfigs["config"] = json.dumps(self.extraSettings["config"]) extraConfigs["clientConfig"] = json.dumps(self.extraSettings["clientConfig"]) return extraConfigs def createTrackDb(self): self.track_db = collections.OrderedDict([("track",self.trackName), ("trackLabel",self.trackLabel), ("trackDataURL",self.trackDataURL), ("dataType", self.dataType), ("trackType", self.trackType)] ) htmlExtraConfigs = self.prepareHTMLExtraSetting() self.logger.debug("Generate extraConfigs for htmlFeatures = %s", json.dumps(htmlExtraConfigs)) self.track_db["html"]["options"] = htmlExtraConfigs canvasExtraConfigs = self.prepareCanvasExtraSetting() self.logger.debug("Generate extraConfigs for canvasFeatures = %s", json.dumps(canvasExtraConfigs)) self.track_db["canvas"]["options"] = canvasExtraConfigs self.logger.debug("TrackDb object is created track_db = %s ", json.dumps(self.track_db))