comparison TrackHub.py @ 53:1e4806330e51 draft

planemo upload for repository https://github.com/Yating-L/jbrowse_hub commit a505d6c97db9d044761b5ce92be4a39cb84eda29-dirty
author yating-l
date Fri, 31 Mar 2017 11:54:09 -0400
parents 6fec27968f86
children 9c45b81bc4e6
comparison
equal deleted inserted replaced
52:6fec27968f86 53:1e4806330e51
30 def createHub(self): 30 def createHub(self):
31 self.prepareRefseq() 31 self.prepareRefseq()
32 for input_file in self.input_files: 32 for input_file in self.input_files:
33 self.addTrack(input_file) 33 self.addTrack(input_file)
34 self.indexName() 34 self.indexName()
35 self.makeArchive() 35 slink = self.makeArchive()
36 self.outHtml() 36 self.outHtml(slink)
37 print "Success!\n" 37 print "Success!\n"
38 38
39 def prepareRefseq(self): 39 def prepareRefseq(self):
40 try: 40 try:
41 #print os.path.join(self.tool_dir, 'prepare-refseqs.pl') + ", '--fasta', " + self.reference +", '--out', self.json])" 41 #print os.path.join(self.tool_dir, 'prepare-refseqs.pl') + ", '--fasta', " + self.reference +", '--out', self.json])"
70 subprocess.call(['generate-names.pl', '-v', '--out', self.json]) 70 subprocess.call(['generate-names.pl', '-v', '--out', self.json])
71 print "finished name index \n" 71 print "finished name index \n"
72 72
73 def makeArchive(self): 73 def makeArchive(self):
74 shutil.make_archive(self.out_path, 'zip', self.out_path) 74 shutil.make_archive(self.out_path, 'zip', self.out_path)
75 data_folder = '/var/www/html/JBrowse-1.12.1/jbrowse_hub' 75 source = os.path.abspath(self.out_path)
76 slink = source.replace('/', '_')
77 slink = os.path.join('/home/galaxy/galaxy/static/JBrowse-1.12.1/data', slink)
78 try:
79 if os.path.islink(slink):
80 os.unlink(slink)
81 except OSError as oserror:
82 print "Cannot create symlink to the data({0}): {1}".format(oserror.errno, oserror.strerror)
83 os.symlink(source, slink)
84 return slink
85 '''
86 data_folder = '/gonramp/static/JBrowse-1.12.1/jbrowse_hub'
76 try: 87 try:
77 if os.path.exists(data_folder): 88 if os.path.exists(data_folder):
78 if os.path.isdir(data_folder): 89 if os.path.isdir(data_folder):
79 shutil.rmtree(data_folder) 90 shutil.rmtree(data_folder)
80 else: 91 else:
82 except OSError as oserror: 93 except OSError as oserror:
83 print "Cannot create data folder({0}): {1}".format(oserror.errno, oserror.strerror) 94 print "Cannot create data folder({0}): {1}".format(oserror.errno, oserror.strerror)
84 shutil.copytree(self.out_path, data_folder) 95 shutil.copytree(self.out_path, data_folder)
85 subprocess.call(['chmod', '-R', 'o+rx', '/var/www/html/JBrowse-1.12.1/jbrowse_hub']) 96 subprocess.call(['chmod', '-R', 'o+rx', '/var/www/html/JBrowse-1.12.1/jbrowse_hub'])
86 shutil.rmtree(self.out_path) 97 shutil.rmtree(self.out_path)
98 '''
87 99
88 #TODO: this will list all zip files in the filedir and sub-dirs. worked in Galaxy but all list zip files in test-data when 100 #TODO: this will list all zip files in the filedir and sub-dirs. worked in Galaxy but all list zip files in test-data when
89 #run it locally. May need modify 101 #run it locally. May need modify
90 def outHtml(self): 102 def outHtml(self, slink):
91 with open(self.outfile, 'w') as htmlfile: 103 with open(self.outfile, 'w') as htmlfile:
92 htmlstr = 'The JBrowse Hub is created: <br>' 104 htmlstr = 'The JBrowse Hub is created: <br>'
93 zipfiles = '<li><a href = "%s">Download</a></li>' 105 zipfiles = '<li><a href = "%s">Download</a></li>'
94 jbrowse_hub = '<li><a href = ":80/JBrowse-1.12.1/index.html?data=jbrowse_hub/json" target="_blank">View JBrowse Hub</a></li>' 106 jbrowse_hub = '<li><a href = "/gonramp/static/JBrowse-1.12.1/index.html?data="%s" target="_blank">View JBrowse Hub</a></li>'
95 filedir_abs = os.path.abspath(self.outfile) 107 filedir_abs = os.path.abspath(self.outfile)
96 filedir = os.path.dirname(filedir_abs) 108 filedir = os.path.dirname(filedir_abs)
97 filedir = os.path.join(filedir, self.outfolder) 109 filedir = os.path.join(filedir, self.outfolder)
98 for root, dirs, files in os.walk(filedir): 110 for root, dirs, files in os.walk(filedir):
99 for file in files: 111 for file in files:
100 if file.endswith('.zip'): 112 if file.endswith('.zip'):
101 relative_directory = os.path.relpath(root, filedir) 113 relative_directory = os.path.relpath(root, filedir)
102 relative_file_path = os.path.join(relative_directory, file) 114 relative_file_path = os.path.join(relative_directory, file)
103 htmlstr += zipfiles % relative_file_path 115 htmlstr += zipfiles % relative_file_path
104 htmlstr += jbrowse_hub 116 htmlstr += jbrowse_hub % slink
105 htmlfile.write(htmlstr) 117 htmlfile.write(htmlstr)
106 118
107 def createTrackList(self): 119 def createTrackList(self):
108 trackList = os.path.join(self.json, "trackList.json") 120 trackList = os.path.join(self.json, "trackList.json")
109 if not os.path.exists(trackList): 121 if not os.path.exists(trackList):