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