Mercurial > repos > yating-l > jbrowsearchivecreator
annotate TrackHub.py @ 50:804e7217f27c draft default tip
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 3afab1eb0da4823419945c523a1d37cd5973e7f6-dirty
| author | yating-l | 
|---|---|
| date | Fri, 20 Jul 2018 11:38:01 -0400 | 
| parents | 1eb4adefd747 | 
| children | 
| rev | line source | 
|---|---|
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 2 | 
| 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 3 import os | 
| 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 4 import subprocess | 
| 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 5 import shutil | 
| 10 
91b3558fa73f
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 479fc6490e24ca0e5034ae6c3579882e97e095e6-dirty
 yating-l parents: 
0diff
changeset | 6 import zipfile | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 7 import json | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 8 import tempfile | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 9 import logging | 
| 32 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 10 from mako.lookup import TemplateLookup | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 11 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 12 from datatypes.Datatype import Datatype | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 13 from tracks.TrackStyles import TrackStyles | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 14 from util import subtools | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 15 from util import santitizer | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 16 | 
| 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 17 | 
| 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 18 class TrackHub: | 
| 32 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 19 def __init__(self, inputFastaFile, outputFile, extra_files_path, tool_directory, trackType): | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 20 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 21 self.mySpecieFolderPath = None | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 22 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 23 # Store intermediate files, will be removed if not in debug mode | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 24 self.myTracksFolderPath = None | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 25 | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 26 # Store interval files and their tabix index | 
| 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 27 self.myFinalTracksFolderPath = None | 
| 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 28 | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 29 # Store binary files: Bam, BigWig | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 30 self.myBinaryFolderPath = None | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 31 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 32 self.tool_directory = tool_directory | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 33 self.trackType = trackType | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 34 self.reference_genome = inputFastaFile | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 35 self.genome_name = inputFastaFile.assembly_id | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 36 self.extra_files_path = extra_files_path | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 37 self.outputFile = outputFile | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 38 self.chromSizesFile = None | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 39 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 40 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 41 # Set all the missing variables of this class, and create physically the folders/files | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 42 self.__createAssemblyHub__(extra_files_path=extra_files_path) | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 43 # Init the Datatype | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 44 Datatype.pre_init(self.reference_genome, self.chromSizesFile, | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 45 self.extra_files_path, self.tool_directory, | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 46 self.mySpecieFolderPath, self.myTracksFolderPath, self.myBinaryFolderPath, self.trackType) | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 47 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 48 self._prepareRefseq() | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 49 self.trackList = os.path.join(self.mySpecieFolderPath, "trackList.json") | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 50 self._createTrackList() | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 51 if Datatype.trackType == 'HTMLFeatures': | 
| 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 52 self.myTrackStyle = TrackStyles(self.tool_directory, self.mySpecieFolderPath, self.trackList) | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 53 self.logger = logging.getLogger(__name__) | 
| 46 
061da5d3a219
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 3160592f4119e684ab5843dd28a2e6cf11df0121-dirty
 yating-l parents: 
40diff
changeset | 54 self.nameIndexTrackList = [] | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 55 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 56 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 57 def addTrack(self, trackDbObject): | 
| 46 
061da5d3a219
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 3160592f4119e684ab5843dd28a2e6cf11df0121-dirty
 yating-l parents: 
40diff
changeset | 58 if trackDbObject['nameIndex'] == "true": | 
| 47 
1eb4adefd747
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 97a743ee6d228c8a0a5778ec3cb6f68a2e22c8e3
 yating-l parents: 
46diff
changeset | 59 self.nameIndexTrackList.append(trackDbObject['trackLabel']) | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 60 if trackDbObject['dataType'].lower() == 'bam': | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 61 subtools.add_track_json(self.trackList, trackDbObject['options']) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 62 elif trackDbObject['dataType'].lower() == 'bigwig': | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 63 subtools.add_track_json(self.trackList, trackDbObject['options']) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 64 else: | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 65 if trackDbObject['trackType'] == 'HTMLFeatures': | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 66 self._customizeHTMLFeature(trackDbObject) | 
| 38 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 67 subtools.flatfile_to_json(trackDbObject['trackDataURL'], trackDbObject['dataType'], trackDbObject['trackType'], trackDbObject['trackLabel'], self.mySpecieFolderPath, trackDbObject['options']) | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 68 # Use Tabix index tracks by default for CanvasFeatures | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 69 # TODO: add support for HTMLFeatures | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 70 else: | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 71 subtools.generate_tabix_indexed_track(trackDbObject['trackDataURL'], trackDbObject['dataType'], trackDbObject['track'], self.myFinalTracksFolderPath) | 
| 38 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 72 subtools.add_track_json(self.trackList, trackDbObject['options']) | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 73 | 
| 40 
b1553f2a4942
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 yating-l parents: 
39diff
changeset | 74 def terminate(self, debug="false"): | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 75 """ Write html file """ | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 76 self._indexName() | 
| 40 
b1553f2a4942
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 yating-l parents: 
39diff
changeset | 77 if debug.lower() == "false": | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 78 self._removeRaw() | 
| 32 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 79 self._outHtml() | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 80 print "Success!\n" | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 81 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 82 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 83 def _customizeHTMLFeature(self, trackDbObject): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 84 if trackDbObject['options']: | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 85 subfeatures = trackDbObject['options'].get('subfeatureClasses') | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 86 feature_color = trackDbObject['options']['feature_color'] | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 87 if subfeatures: | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 88 for key, value in subfeatures.items(): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 89 self.myTrackStyle.addCustomColor(value, feature_color) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 90 else: | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 91 customizedFeature = santitizer.sanitize_name(trackDbObject['trackLabel']) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 92 clientConfig = json.loads(trackDbObject['options']['clientConfig']) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 93 clientConfig['renderClassName'] = customizedFeature | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 94 trackDbObject['options']['clientConfig'] = json.dumps(clientConfig) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 95 self.myTrackStyle.addCustomColor(customizedFeature, feature_color) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 96 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 97 def _removeRaw(self): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 98 if os.path.exists(self.myTracksFolderPath): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 99 shutil.rmtree(self.myTracksFolderPath) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 100 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 101 def _createTrackList(self): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 102 if not os.path.exists(self.trackList): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 103 os.mknod(self.trackList) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 104 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 105 def _prepareRefseq(self): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 106 subtools.prepare_refseqs(self.reference_genome.false_path, self.mySpecieFolderPath) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 107 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 108 def _indexName(self): | 
| 50 
804e7217f27c
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 3afab1eb0da4823419945c523a1d37cd5973e7f6-dirty
 yating-l parents: 
47diff
changeset | 109 subtools.generate_names(self.mySpecieFolderPath, self.nameIndexTrackList) | 
| 
804e7217f27c
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 3afab1eb0da4823419945c523a1d37cd5973e7f6-dirty
 yating-l parents: 
47diff
changeset | 110 print "finished name index \n" | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 111 | 
| 32 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 112 def _outHtml(self): | 
| 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 113 mylookup = TemplateLookup(directories=[os.path.join(self.tool_directory, 'templates')], | 
| 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 114 output_encoding='utf-8', encoding_errors='replace') | 
| 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 115 htmlTemplate = mylookup.get_template("display.txt") | 
| 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 116 | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 117 with open(self.outputFile, 'w') as htmlfile: | 
| 32 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 118 htmlMakoRendered = htmlTemplate.render( | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 119 jbrowse_hub_name = self.reference_genome.assembly_id, | 
| 32 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 120 trackList = os.path.relpath(self.trackList, self.extra_files_path) | 
| 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 121 ) | 
| 
7b955a58d8f2
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
 yating-l parents: 
31diff
changeset | 122 htmlfile.write(htmlMakoRendered) | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 123 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 124 def __createAssemblyHub__(self, extra_files_path): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 125 # Get all necessaries infos first | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 126 # 2bit file creation from input fasta | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 127 twoBitFile = tempfile.NamedTemporaryFile(bufsize=0) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 128 subtools.faToTwoBit(self.reference_genome.false_path, twoBitFile.name) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 129 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 130 # Generate the twoBitInfo | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 131 twoBitInfoFile = tempfile.NamedTemporaryFile(bufsize=0) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 132 subtools.twoBitInfo(twoBitFile.name, twoBitInfoFile.name) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 133 | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 134 # Then we get the output to generate the chromSizes | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 135 self.chromSizesFile = tempfile.NamedTemporaryFile(bufsize=0, suffix=".chrom.sizes") | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 136 subtools.sortChromSizes(twoBitInfoFile.name, self.chromSizesFile.name) | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 137 | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 138 # We can get the biggest scaffold here, with chromSizesFile | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 139 with open(self.chromSizesFile.name, 'r') as chrom_sizes: | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 140 # TODO: Check if exists | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 141 self.default_pos = chrom_sizes.readline().split()[0] | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 142 | 
| 39 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 143 # Create the specie folder, use generic name "myHub", to support display JBrowse with Galaxy display application | 
| 
4a69515eed63
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 91271a6c0d39c923f0d460b2979247baa297286b-dirty
 yating-l parents: 
38diff
changeset | 144 mySpecieFolderPath = os.path.join(extra_files_path, "myHub") | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 145 if not os.path.exists(mySpecieFolderPath): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 146 os.makedirs(mySpecieFolderPath) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 147 self.mySpecieFolderPath = mySpecieFolderPath | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 148 | 
| 38 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 149 # Create the folder named 'raw' inside the specie folder to place raw files | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 150 tracksFolderPath = os.path.join(mySpecieFolderPath, "raw") | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 151 if not os.path.exists(tracksFolderPath): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 152 os.makedirs(tracksFolderPath) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 153 self.myTracksFolderPath = tracksFolderPath | 
| 0 
8d1cf7ce65cd
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
 yating-l parents: diff
changeset | 154 | 
| 38 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 155 # Create the folder tracks into the specie folder | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 156 finalTracksFolderPath = os.path.join(mySpecieFolderPath, "tracks") | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 157 if not os.path.exists(finalTracksFolderPath): | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 158 os.makedirs(finalTracksFolderPath) | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 159 self.myFinalTracksFolderPath = finalTracksFolderPath | 
| 
d17f629f5486
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit e4c1d387db160a3bf4a1e8abc288bdffbbbe2818-dirty
 yating-l parents: 
33diff
changeset | 160 | 
| 25 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 161 myBinaryFolderPath = os.path.join(mySpecieFolderPath, 'bbi') | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 162 if not os.path.exists(myBinaryFolderPath): | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 163 os.makedirs(myBinaryFolderPath) | 
| 
31a41ce128cc
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
 yating-l parents: 
24diff
changeset | 164 self.myBinaryFolderPath = myBinaryFolderPath | 
