Mercurial > repos > yating-l > jbrowsearchivecreator
comparison TrackHub.py @ 32:7b955a58d8f2 draft
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 18da3c5b92673ba5030c24c981c6ca7ebe0bf097-dirty
author | yating-l |
---|---|
date | Fri, 20 Oct 2017 11:22:21 -0400 |
parents | 127037c49bc8 |
children | 07cc5384dd61 |
comparison
equal
deleted
inserted
replaced
31:127037c49bc8 | 32:7b955a58d8f2 |
---|---|
5 import shutil | 5 import shutil |
6 import zipfile | 6 import zipfile |
7 import json | 7 import json |
8 import tempfile | 8 import tempfile |
9 import logging | 9 import logging |
10 from mako.lookup import TemplateLookup | |
10 | 11 |
11 from datatypes.Datatype import Datatype | 12 from datatypes.Datatype import Datatype |
12 from apollo.ApolloInstance import ApolloInstance | |
13 from tracks.TrackStyles import TrackStyles | 13 from tracks.TrackStyles import TrackStyles |
14 from util import subtools | 14 from util import subtools |
15 from util import santitizer | 15 from util import santitizer |
16 | 16 |
17 | 17 |
18 class TrackHub: | 18 class TrackHub: |
19 def __init__(self, inputFastaFile, apollo_user, outputFile, extra_files_path, tool_directory, trackType, apollo_host, user_email): | 19 def __init__(self, inputFastaFile, outputFile, extra_files_path, tool_directory, trackType): |
20 | 20 |
21 self.rootAssemblyHub = None | 21 self.rootAssemblyHub = None |
22 | 22 |
23 self.mySpecieFolderPath = None | 23 self.mySpecieFolderPath = None |
24 | 24 |
34 self.genome_name = inputFastaFile.assembly_id | 34 self.genome_name = inputFastaFile.assembly_id |
35 self.extra_files_path = extra_files_path | 35 self.extra_files_path = extra_files_path |
36 self.outputFile = outputFile | 36 self.outputFile = outputFile |
37 self.chromSizesFile = None | 37 self.chromSizesFile = None |
38 | 38 |
39 # Set up apollo | |
40 self.apollo = ApolloInstance(apollo_host, tool_directory, user_email) | |
41 self.apollo_user = apollo_user | |
42 | 39 |
43 # Set all the missing variables of this class, and create physically the folders/files | 40 # Set all the missing variables of this class, and create physically the folders/files |
44 self.rootAssemblyHub = self.__createAssemblyHub__(extra_files_path=extra_files_path) | 41 self.rootAssemblyHub = self.__createAssemblyHub__(extra_files_path=extra_files_path) |
45 # Init the Datatype | 42 # Init the Datatype |
46 Datatype.pre_init(self.reference_genome, self.chromSizesFile, | 43 Datatype.pre_init(self.reference_genome, self.chromSizesFile, |
75 def terminate(self, debug=False): | 72 def terminate(self, debug=False): |
76 """ Write html file """ | 73 """ Write html file """ |
77 self._indexName() | 74 self._indexName() |
78 if not debug: | 75 if not debug: |
79 self._removeRaw() | 76 self._removeRaw() |
80 self._makeArchive() | 77 #self._makeArchive() |
78 self._outHtml() | |
81 print "Success!\n" | 79 print "Success!\n" |
82 | 80 |
83 | 81 |
84 def _customizeHTMLFeature(self, trackDbObject): | 82 def _customizeHTMLFeature(self, trackDbObject): |
85 if trackDbObject['options']: | 83 if trackDbObject['options']: |
114 def _indexName(self): | 112 def _indexName(self): |
115 #subprocess.call(['generate-names.pl', '-v', '--out', self.mySpecieFolderPath]) | 113 #subprocess.call(['generate-names.pl', '-v', '--out', self.mySpecieFolderPath]) |
116 subtools.generate_names(self.mySpecieFolderPath) | 114 subtools.generate_names(self.mySpecieFolderPath) |
117 print "finished name index \n" | 115 print "finished name index \n" |
118 | 116 |
119 def _outHtml(self, host_name): | 117 def _outHtml(self): |
118 mylookup = TemplateLookup(directories=[os.path.join(self.tool_directory, 'templates')], | |
119 output_encoding='utf-8', encoding_errors='replace') | |
120 htmlTemplate = mylookup.get_template("display.txt") | |
121 | |
120 with open(self.outputFile, 'w') as htmlfile: | 122 with open(self.outputFile, 'w') as htmlfile: |
121 htmlstr = 'The new Organism "%s" is created on Apollo: <br>' % self.genome_name | 123 htmlMakoRendered = htmlTemplate.render( |
122 jbrowse_hub = '<li><a href = "%s" target="_blank">View JBrowse Hub on Apollo</a></li>' % host_name | 124 genome_name = self.genome_name, |
123 htmlstr += jbrowse_hub | 125 trackList = os.path.relpath(self.trackList, self.extra_files_path) |
124 htmlfile.write(htmlstr) | 126 ) |
127 htmlfile.write(htmlMakoRendered) | |
128 #with open(self.outputFile, 'w') as htmlfile: | |
129 # htmlstr = 'The new Organism "%s" is created on Apollo: <br>' % self.genome_name | |
130 # jbrowse_hub = '<li><a href = "%s" target="_blank">View JBrowse Hub on Apollo</a></li>' % host_name | |
131 # htmlstr += jbrowse_hub | |
132 # htmlfile.write(htmlstr) | |
125 | 133 |
126 def _makeArchive(self): | |
127 self.apollo.loadHubToApollo(self.apollo_user, self.genome_name, self.mySpecieFolderPath, admin=True) | |
128 apollo_host = self.apollo.getHost() | |
129 self._outHtml(apollo_host) | |
130 | |
131 | 134 |
132 def __createAssemblyHub__(self, extra_files_path): | 135 def __createAssemblyHub__(self, extra_files_path): |
133 # Get all necessaries infos first | 136 # Get all necessaries infos first |
134 # 2bit file creation from input fasta | 137 # 2bit file creation from input fasta |
135 | 138 |