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 |
