comparison rsem.py @ 1:49795544dac7 draft

planemo upload for repository https://github.com/artbio/tools-artbio/tree/master/tools/rsem commit 62e8088d5f73cbb9b2f93e23a74636c77a06b492
author artbio
date Sun, 01 Apr 2018 18:28:24 -0400
parents e5e836936d60
children e00a79cf5f8c
comparison
equal deleted inserted replaced
0:e5e836936d60 1:49795544dac7
170 for i, fname in enumerate(flist): 170 for i, fname in enumerate(flist):
171 if fname.endswith('.grp'): 171 if fname.endswith('.grp'):
172 dataset.metadata.reference_name = fname[:-4] 172 dataset.metadata.reference_name = fname[:-4]
173 break 173 break
174 self.regenerate_primary_file(dataset) 174 self.regenerate_primary_file(dataset)
175
176
177 class RsemBt2Reference(Html):
178 """Class describing an RSEM reference"""
179 MetadataElement(name='reference_name', default='rsem_bt2_ref',
180 desc='RSEM Bowtie2 Reference Name', readonly=True,
181 visible=True, set_in_upload=True, no_value='rsem_bt2_ref')
182 file_ext = 'rsem_bt2_ref'
183 allow_datatype_change = False
184 composite_type = 'auto_primary_file'
185
186 def __init__(self, **kwd):
187 Html.__init__(self, **kwd)
188 """
189 Expecting files:
190 extra_files_path/<reference_name>.grp
191 extra_files_path/<reference_name>.ti
192 extra_files_path/<reference_name>.seq
193 extra_files_path/<reference_name>.transcripts.fa
194 Optionally includes files:
195 extra_files_path/<reference_name>.chrlist
196 extra_files_path/<reference_name>.idx.fa
197 extra_files_path/<reference_name>.n2g.idx.fa
198 extra_files_path/<reference_name>.1.bt2
199 extra_files_path/<reference_name>.2.bt2
200 extra_files_path/<reference_name>.3.bt2
201 extra_files_path/<reference_name>.4.bt2
202 extra_files_path/<reference_name>.rev.1.bt2
203 extra_files_path/<reference_name>.rev.2.bt2
204 """
205 self.add_composite_file('%s.grp', description='Group File',
206 substitute_name_with_metadata='reference_name',
207 is_binary=False)
208 self.add_composite_file('%s.ti', description='',
209 substitute_name_with_metadata='reference_name',
210 is_binary=False)
211 self.add_composite_file('%s.seq', description='',
212 substitute_name_with_metadata='reference_name',
213 is_binary=False)
214 self.add_composite_file('%s.transcripts.fa', description='',
215 substitute_name_with_metadata='reference_name',
216 is_binary=False)
217 self.add_composite_file('%s.chrlist', description='',
218 substitute_name_with_metadata='reference_name',
219 is_binary=False, optional=True)
220 self.add_composite_file('%s.idx.fa', description='',
221 substitute_name_with_metadata='reference_name',
222 is_binary=False, optional=True)
223 self.add_composite_file('%s.n2g.idx.fa', description='',
224 substitute_name_with_metadata='reference_name',
225 is_binary=False, optional=True)
226 self.add_composite_file('%s.1.bt2', description='',
227 substitute_name_with_metadata='reference_name',
228 is_binary=True, optional=True)
229 self.add_composite_file('%s.2.bt2', description='',
230 substitute_name_with_metadata='reference_name',
231 is_binary=True, optional=True)
232 self.add_composite_file('%s.3.bt2', description='',
233 substitute_name_with_metadata='reference_name',
234 is_binary=True, optional=True)
235 self.add_composite_file('%s.4.bt2', description='',
236 substitute_name_with_metadata='reference_name',
237 is_binary=True, optional=True)
238 self.add_composite_file('%s.rev.1.bt2', description='',
239 substitute_name_with_metadata='reference_name',
240 is_binary=True, optional=True)
241 self.add_composite_file('%s.rev.2.bt2', description='',
242 substitute_name_with_metadata='reference_name',
243 is_binary=True, optional=True)
244
245 def generate_primary_file(self, dataset=None):
246 """
247 This is called only at upload to write the file
248 cannot rename the datasets here - they come with
249 the default unfortunately
250 """
251
252 def regenerate_primary_file(self, dataset):
253 """
254 cannot do this until we are setting metadata
255 """
256 link_to_exts = ['.grp', '.ti', '.seq', '.fa', '.chrlist', '.log']
257 ref_name = dataset.metadata.reference_name
258 efp = dataset.extra_files_path
259 flist = os.listdir(efp)
260 rval = ['<html><head><title>%s</title></head><body><p/>RSEM \
261 Reference %s files:<p/><ul>' % (dataset.name, ref_name)]
262 rvalb = []
263 for i, fname in enumerate(flist):
264 sfname = os.path.split(fname)[-1]
265 f, e = os.path.splitext(fname)
266 if e in link_to_exts:
267 rval.append('<li><a href="%s">%s</a></li>' % (sfname, sfname))
268 else:
269 rvalb.append('<li>%s</li>' % (sfname))
270 if len(rvalb) > 0:
271 rval += rvalb
272 rval.append('</ul></body></html>')
273 fh = file(dataset.file_name, 'w')
274 fh.write("\n".join(rval))
275 fh.write('\n')
276 fh.close()
277
278 def set_meta(self, dataset, **kwd):
279 Html.set_meta(self, dataset, **kwd)
280 efp = dataset.extra_files_path
281 flist = os.listdir(efp)
282 for i, fname in enumerate(flist):
283 if fname.endswith('.grp'):
284 dataset.metadata.reference_name = fname[:-4]
285 break
286 self.regenerate_primary_file(dataset)