Mercurial > repos > yating-l > jbrowse_hub
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): |