diff homer.py @ 56:07a5042bbe90

Uploaded
author bgruening
date Mon, 12 Aug 2013 14:25:53 -0400
parents e9cd105a8856
children
line wrap: on
line diff
--- a/homer.py	Mon Aug 12 09:06:47 2013 -0400
+++ b/homer.py	Mon Aug 12 14:25:53 2013 -0400
@@ -1,14 +1,14 @@
 """
 HOMER special datatypes
 """
-
+import os
 from galaxy.datatypes.data import get_file_peek
 from galaxy.datatypes.data import Text, Data
 from galaxy.datatypes.metadata import MetadataElement
 from galaxy.datatypes.images import Html
 
 
-class TagDirectory( Text ):
+class TagDirectory( Html ):
     """Base class for HOMER's Tag Directory datatype."""
 
     file_ext = 'homer_tagdir'
@@ -16,7 +16,7 @@
     allow_datatype_change = False
 
     def __init__(self, **kwd):
-        Text.__init__( self, **kwd )
+        Html.__init__( self, **kwd )
         #self.add_composite_file('tagInfo.txt', description = 'basic configuration information', mimetype = 'text/html') # Contains basic configuration information
         self.add_composite_file('tagLengthDistribution.txt', description = 'histogram of read lengths used for alignment', mimetype = 'text/html') # File contains a histogram of read lengths used for alignment.
         self.add_composite_file('tagCountDistribution.txt', description = 'histogram of clonal read depth, showing the number of reads per unique position', mimetype = 'text/html') # File contains a histogram of clonal read depth, showing the number of reads per unique position.
@@ -29,25 +29,23 @@
 
     def regenerate_primary_file(self,dataset):
         """
-        cannot do this until we are setting metadata 
+            regenerate the index file after metadata generation
         """
-        flist = os.listdir(dataset.extra_files_path)
-        rval = ['<html><head><title>CuffDiff Output</title></head>']
+        rval = ['<html><head><title>HOMER database files</title></head>']
         rval.append('<body>')
         rval.append('<p/>CuffDiff Outputs:<p/><ul>')
-        for i,fname in enumerate(flist):
+        for fname in os.listdir(dataset.extra_files_path):
             sfname = os.path.split(fname)[-1]
             rval.append( '<li><a href="%s" type="text/html">%s</a>' % ( sfname, sfname ) )
         rval.append( '</ul></body></html>' )
-        f = file(dataset.file_name,'w')
-        f.write("\n".join( rval ))
-        f.write('\n')
+        f = file( dataset.file_name, 'w' )
+        f.write( '%s\n' % '\n'.join( rval ) )
         f.close()
-
-    def set_meta( self, dataset, **kwd ):
-        Text.set_meta( self, dataset, **kwd )
-        self.regenerate_primary_file(dataset)
-
+        if not dataset.info:
+            dataset.info = 'HOMER datatype object'
+        if not dataset.blurb:
+            dataset.blurb = 'Composite file - HOMER'
+        return True
 
     def generate_primary_file( self, dataset = None ):
         rval = ['<html><head><title>HOMER database files</title></head><ul>']
@@ -59,6 +57,11 @@
         rval.append( '</ul></html>' )
         return "\n".join( rval )
 
+    def set_meta( self, dataset, **kwd ):
+        Html.set_meta( self, dataset, **kwd )
+        self.regenerate_primary_file(dataset)
+
+
     def display_data(self, trans, data, preview=False, filename=None,
                      to_ext=None, size=None, offset=None, **kwd):
         """Apparently an old display method, but still gets called.