Mercurial > repos > jjohnson > cummerbund
comparison cuffdata.py @ 0:da7241f92ecf
Uploaded
author | jjohnson |
---|---|
date | Mon, 04 Feb 2013 19:50:25 -0500 |
parents | |
children | 137aab1d9ac1 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:da7241f92ecf |
---|---|
1 """ | |
2 CuffData | |
3 """ | |
4 import logging | |
5 import os,os.path,re | |
6 import galaxy.datatypes.data | |
7 from galaxy.datatypes.images import Html | |
8 from galaxy.datatypes.binary import Binary | |
9 from galaxy import util | |
10 from galaxy.datatypes.metadata import MetadataElement | |
11 | |
12 log = logging.getLogger(__name__) | |
13 | |
14 class CuffDiffData( Html ): | |
15 """ | |
16 CuffDiff output files: | |
17 run.info | |
18 read_groups.info | |
19 cds.count_tracking | |
20 cds.diff | |
21 cds.fpkm_tracking | |
22 cds.read_group_tracking | |
23 cds_exp.diff | |
24 gene_exp.diff | |
25 genes.count_tracking | |
26 genes.fpkm_tracking | |
27 genes.read_group_tracking | |
28 isoform_exp.diff | |
29 isoforms.count_tracking | |
30 isoforms.fpkm_tracking | |
31 isoforms.read_group_tracking | |
32 promoters.diff | |
33 splicing.diff | |
34 tss_group_exp.diff | |
35 tss_groups.count_tracking | |
36 tss_groups.fpkm_tracking | |
37 tss_groups.read_group_tracking | |
38 """ | |
39 file_ext = 'cuffdata' | |
40 is_binary = False | |
41 composite_type = 'auto_primary_file' | |
42 allow_datatype_change = False | |
43 def __init__( self, **kwd ): | |
44 Html.__init__( self, **kwd ) | |
45 self.add_composite_file('run.info', description = 'run.info', mimetype = 'text/html', optional = True, is_binary = False ) | |
46 self.add_composite_file('read_groups.info', description = 'read_groups.info', mimetype = 'text/html', optional = True, is_binary = False ) | |
47 self.add_composite_file('cds.count_tracking', description = 'cds.count_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
48 self.add_composite_file('cds.diff', description = 'cds.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
49 self.add_composite_file('cds.fpkm_tracking', description = 'cds.fpkm_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
50 self.add_composite_file('cds.read_group_tracking', description = 'cds.read_group_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
51 self.add_composite_file('cds_exp.diff', description = 'cds_exp.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
52 self.add_composite_file('gene_exp.diff', description = 'gene_exp.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
53 self.add_composite_file('genes.count_tracking', description = 'genes.count_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
54 self.add_composite_file('genes.fpkm_tracking', description = 'genes.fpkm_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
55 self.add_composite_file('genes.read_group_tracking', description = 'genes.read_group_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
56 self.add_composite_file('isoform_exp.diff', description = 'isoform_exp.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
57 self.add_composite_file('isoforms.count_tracking', description = 'isoforms.count_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
58 self.add_composite_file('isoforms.fpkm_tracking', description = 'isoforms.fpkm_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
59 self.add_composite_file('isoforms.read_group_tracking', description = 'isoforms.read_group_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
60 self.add_composite_file('promoters.diff', description = 'promoters.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
61 self.add_composite_file('splicing.diff', description = 'splicing.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
62 self.add_composite_file('tss_group_exp.diff', description = 'tss_group_exp.diff', mimetype = 'text/html', optional = True, is_binary = False ) | |
63 self.add_composite_file('tss_groups.count_tracking', description = 'tss_groups.count_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
64 self.add_composite_file('tss_groups.fpkm_tracking', description = 'tss_groups.fpkm_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
65 self.add_composite_file('tss_groups.read_group_tracking', description = 'tss_groups.read_group_tracking', mimetype = 'text/html', optional = True, is_binary = False ) | |
66 | |
67 def generate_primary_file( self, dataset = None ): | |
68 """ | |
69 This is called only at upload to write the html file | |
70 cannot rename the datasets here - they come with the default unfortunately | |
71 """ | |
72 rval = ['<html><head><title>CuffDiff Output</title></head>'] | |
73 rval.append('<body>') | |
74 rval.append('<p/>CuffDiff Outputs:<p/><ul>') | |
75 for composite_name, composite_file in self.get_composite_files( dataset = dataset ).iteritems(): | |
76 fn = composite_name | |
77 log.debug( "Velvet log info %s %s %s" % ('JJ generate_primary_file',fn,composite_file)) | |
78 opt_text = '' | |
79 if composite_file.optional: | |
80 opt_text = ' (optional)' | |
81 if composite_file.get('description'): | |
82 rval.append( '<li><a href="%s" type="text/plain">%s (%s)</a>%s</li>' % ( fn, fn, composite_file.get('description'), opt_text ) ) | |
83 else: | |
84 rval.append( '<li><a href="%s" type="text/plain">%s</a>%s</li>' % ( fn, fn, opt_text ) ) | |
85 rval.append( '</ul></body></html>' ) | |
86 return "\n".join( rval ) | |
87 | |
88 def regenerate_primary_file(self,dataset): | |
89 """ | |
90 cannot do this until we are setting metadata | |
91 """ | |
92 flist = os.listdir(dataset.extra_files_path) | |
93 rval = ['<html><head><title>CuffDiff Output</title></head>'] | |
94 rval.append('<body>') | |
95 rval.append('<p/>CuffDiff Outputs:<p/><ul>') | |
96 for i,fname in enumerate(flist): | |
97 sfname = os.path.split(fname)[-1] | |
98 rval.append( '<li><a href="%s" type="text/html">%s</a>' % ( sfname, sfname ) ) | |
99 rval.append( '</ul></body></html>' ) | |
100 f = file(dataset.file_name,'w') | |
101 f.write("\n".join( rval )) | |
102 f.write('\n') | |
103 f.close() | |
104 | |
105 def set_meta( self, dataset, **kwd ): | |
106 Html.set_meta( self, dataset, **kwd ) | |
107 self.regenerate_primary_file(dataset) | |
108 | |
109 def sniff( self, filename ): | |
110 return False | |
111 | |
112 class CuffDataDB( Binary ): | |
113 file_ext = 'cuffdata' | |
114 is_binary = True | |
115 allow_datatype_change = False |