comparison TrackHub.py @ 66:4ca7cbf2d9b8 draft

planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit 159730602ff500b59aefc7080fb49b726c88d655-dirty
author yating-l
date Tue, 26 Sep 2017 16:44:58 -0400
parents 3e0c61b52a06
children 39a32cb31623
comparison
equal deleted inserted replaced
65:5a4206366b41 66:4ca7cbf2d9b8
4 import logging 4 import logging
5 import os 5 import os
6 import tempfile 6 import tempfile
7 import shutil 7 import shutil
8 import zipfile 8 import zipfile
9 from mako.lookup import TemplateLookup
9 10
10 # Internal dependencies 11 # Internal dependencies
11 from Datatype import Datatype 12 from datatypes.Datatype import Datatype
12 from util import subtools 13 from util import subtools
13 14
14 from mako.lookup import TemplateLookup 15
15 16
16 17
17 class TrackHub(object): 18 class TrackHub(object):
18 """docstring for TrackHub""" 19 """docstring for TrackHub"""
19 20
20 def __init__(self, inputFastaFile, user_email, outputFile, extra_files_path, tool_directory): 21 def __init__(self, inputFastaFile, user_email, outputFile, extra_files_path, tool_directory):
21 super(TrackHub, self).__init__() 22 super(TrackHub, self).__init__()
22
23 self.rootAssemblyHub = None 23 self.rootAssemblyHub = None
24 24
25 self.mySpecieFolderPath = None 25 self.mySpecieFolderPath = None
26 self.myTracksFolderPath = None 26 self.myTracksFolderPath = None
27 self.tool_directory = tool_directory 27 self.tool_directory = tool_directory
66 66
67 # Init the Datatype 67 # Init the Datatype
68 Datatype.pre_init(self.reference_genome, self.two_bit_final_path, self.chromSizesFile, 68 Datatype.pre_init(self.reference_genome, self.two_bit_final_path, self.chromSizesFile,
69 self.extra_files_path, self.tool_directory, 69 self.extra_files_path, self.tool_directory,
70 self.mySpecieFolderPath, self.myTracksFolderPath) 70 self.mySpecieFolderPath, self.myTracksFolderPath)
71 71 '''
72 def createZip(self): 72 def createZip(self):
73 for root, dirs, files in os.walk(self.rootAssemblyHub): 73 for root, dirs, files in os.walk(self.rootAssemblyHub):
74 # Get all files and construct the dir at the same time 74 # Get all files and construct the dir at the same time
75 for file in files: 75 for file in files:
76 self.outputZip.write(os.path.join(root, file)) 76 self.outputZip.write(os.path.join(root, file))
77 77
78 self.outputZip.close() 78 self.outputZip.close()
79 79 '''
80 def addTrack(self, trackDbObject=None): 80 def addTrack(self, trackDbObject=None):
81 # Create the trackDb.txt file in the specie folder, if not exists 81 # Create the trackDb.txt file in the specie folder, if not exists
82 # Else append the new track 82 # Else append the new track
83 # TODO: Get this out of the function 83 # TODO: Get this out of the function
84 trackDbTxtFilePath = os.path.join(self.mySpecieFolderPath, 'trackDb.txt') 84 trackDbTxtFilePath = os.path.join(self.mySpecieFolderPath, 'trackDb.txt')
85
86 # Append to trackDbTxtFilePath the trackDbTemplate populate with the newTrack object 85 # Append to trackDbTxtFilePath the trackDbTemplate populate with the newTrack object
87 with open(trackDbTxtFilePath, 'a+') as trackDbFile: 86 with open(trackDbTxtFilePath, 'a+') as trackDbFile:
88 trackDbs = [trackDbObject] 87 trackDbs = [trackDbObject]
89 88
90 # TODO: The addGroup does not belong here. Move it when the group becomes more than just a label 89 # TODO: The addGroup does not belong here. Move it when the group becomes more than just a label
91 # Add the group as well, if exists in trackDbObject 90 # Add the group as well, if exists in trackDbObject
92 self.addGroup(trackDbObject.group_name) 91 self.addGroup(trackDbObject["group"])
93 92
94 htmlMakoRendered = self.trackDbTemplate.render( 93 htmlMakoRendered = self.trackDbTemplate.render(
95 trackDbs=trackDbs 94 trackDbs=trackDbs
96 ) 95 )
97 trackDbFile.write(htmlMakoRendered) 96 trackDbFile.write(htmlMakoRendered)
98 97
99 logging.debug("We just added track {0} (in group {1})".format(trackDbObject.trackName, 98 #logging.debug("We just added track {0} (in group {1})".format(trackDbObject.trackName,
100 trackDbObject.group_name.lower().replace(' ', '_'))) 99 # trackDbObject.group_name.lower().replace(' ', '_')))
101 100 logging.debug("We just added track {0} (in group {1})".format(trackDbObject.get("track"),
101 trackDbObject.get("group").lower().replace(' ', '_')))
102 def addGroup(self, group_name="Default"): 102 def addGroup(self, group_name="Default"):
103 # If not already present in self.groups, add to groups.txt 103 # If not already present in self.groups, add to groups.txt
104 # Create the trackDb.txt file in the specie folder, if not exists 104 # Create the trackDb.txt file in the specie folder, if not exists
105 # Else append the new track 105 # Else append the new track
106 # TODO: Get this out of the function 106 # TODO: Get this out of the function
166 htmlMakoRendered = mytemplate.render( 166 htmlMakoRendered = mytemplate.render(
167 walkable_tree=walkable_tree 167 walkable_tree=walkable_tree
168 ) 168 )
169 htmlOutput.write(htmlMakoRendered) 169 htmlOutput.write(htmlMakoRendered)
170 170
171
171 def __createAssemblyHub__(self, extra_files_path): 172 def __createAssemblyHub__(self, extra_files_path):
172 # Get all necessaries infos first 173 # Get all necessaries infos first
173 # 2bit file creation from input fasta 174 # 2bit file creation from input fasta
174 175
175 # baseNameFasta = os.path.basename(fasta_file_name) 176 # baseNameFasta = os.path.basename(fasta_file_name)