changeset 33:07cc5384dd61 draft

planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 74a020b6b0a2fa7ff5670d7f154de838dee51dfd
author yating-l
date Wed, 25 Oct 2017 12:43:23 -0400
parents 7b955a58d8f2
children 3285f5d22330
files TrackHub.py datatypes/interval/Gff.py datatypes/interval/Gff.pyc datatypes/interval/Gff3.py datatypes/interval/Gff3_mrna.py datatypes/interval/Gff3_transcript.py datatypes/interval/Gtf.py datatypes/interval/GtfStringTie.py jbrowseArchiveCreator.xml templates/display.txt util/Reader.py
diffstat 11 files changed, 45 insertions(+), 131 deletions(-) [+]
line wrap: on
line diff
--- a/TrackHub.py	Fri Oct 20 11:22:21 2017 -0400
+++ b/TrackHub.py	Wed Oct 25 12:43:23 2017 -0400
@@ -121,7 +121,7 @@
 
         with open(self.outputFile, 'w') as htmlfile:
             htmlMakoRendered = htmlTemplate.render(
-            genome_name = self.genome_name,
+            species_folder = os.path.relpath(self.mySpecieFolderPath, self.extra_files_path),
             trackList = os.path.relpath(self.trackList, self.extra_files_path)
         )
             htmlfile.write(htmlMakoRendered)
@@ -129,7 +129,8 @@
         #    htmlstr = 'The new Organism "%s" is created on Apollo: <br>' % self.genome_name
         #    jbrowse_hub = '<li><a href = "%s" target="_blank">View JBrowse Hub on Apollo</a></li>' % host_name
         #    htmlstr += jbrowse_hub
-        #    htmlfile.write(htmlstr)     
+        #    htmlfile.write(htmlstr)   
+          
 
 
     def __createAssemblyHub__(self, extra_files_path):
--- a/datatypes/interval/Gff.py	Fri Oct 20 11:22:21 2017 -0400
+++ b/datatypes/interval/Gff.py	Wed Oct 25 12:43:23 2017 -0400
@@ -5,6 +5,7 @@
 import abc
 import shutil
 
+
 # Internal dependencies
 from Interval import Interval
 from datatypes.validators.DataValidation import DataValidation
@@ -18,4 +19,7 @@
     
     def createTrack(self):
         shutil.copyfile(self.inputFile, self.trackDataURL)
+
+    
+            
     
\ No newline at end of file
Binary file datatypes/interval/Gff.pyc has changed
--- a/datatypes/interval/Gff3.py	Fri Oct 20 11:22:21 2017 -0400
+++ b/datatypes/interval/Gff3.py	Wed Oct 25 12:43:23 2017 -0400
@@ -2,6 +2,7 @@
 
 import os
 import tempfile
+import logging
 
 # Internal dependencies
 from Gff import Gff
@@ -15,8 +16,29 @@
         self.trackSettings = data_gff3
         self.dataType = "gff"
 
+    def initSettings(self):
+        super(Gff3, self).initSettings()
+        feature_type = self._checkFeatureType(self.inputFile)
+        if feature_type != -1:
+            self.extraSettings["type"] = feature_type
+            if feature_type == "transcript":
+                self.extraSettings["transcriptType"] = "transcript"
+        self.extraSettings["subfeatureClasses"] = "CDS"
     
     def validateData(self):
         self.validator = Gff3Validation(self.inputFile, self.dataType, self.chromSizesFile.name)
         self.inputFile = self.validator.validate()
 
+    @staticmethod
+    def _checkFeatureType(gff_file):
+        TYPES = ["transcript", "mRNA"]
+        with open(gff_file, 'r') as f:
+            lines = f.readlines()
+        for li in lines:
+            if "#" not in li:
+                feature_type = li.split()[2]
+                if feature_type in TYPES:
+                    return feature_type
+        logging.debug("The type of the feature either transcript or mRNA is not found in Gff3 file")
+        return -1
+
--- a/datatypes/interval/Gff3_mrna.py	Fri Oct 20 11:22:21 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#!/usr/bin/python
-
-import os
-import tempfile
-
-# Internal dependencies
-from Gff import Gff
-from datatypes.validators.Gff3Validation import Gff3Validation
-
-
-class Gff3_mrna( Gff ):
-    def __init__(self, input_Gff3_false_path, data_gff3):
-        super( Gff3_mrna, self ).__init__()
-        self.inputFile = input_Gff3_false_path
-        self.trackSettings = data_gff3
-        self.dataType = "gff"
-        #self.trackType = "G-OnRamp_plugin/GenePred"
-
-    def initSettings(self):
-        super(Gff3_mrna, self).initSettings()
-        self.extraSettings["type"] = "mRNA"
-        self.extraSettings["subfeatureClasses"] = "CDS"
-
-    def validateData(self):
-        self.validator = Gff3Validation(self.inputFile, self.dataType, self.chromSizesFile.name)
-        self.inputFile = self.validator.validate()
-
--- a/datatypes/interval/Gff3_transcript.py	Fri Oct 20 11:22:21 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#!/usr/bin/python
-
-import os
-import tempfile
-
-# Internal dependencies
-from Gff import Gff
-from datatypes.validators.Gff3Validation import Gff3Validation
-
-
-class Gff3_transcript( Gff ):
-    def __init__(self, input_Gff3_false_path, data_gff3):
-        super( Gff3_transcript, self ).__init__()
-        self.inputFile = input_Gff3_false_path
-        self.trackSettings = data_gff3
-        self.dataType = "gff"
-        #self.trackType = "G-OnRamp_plugin/GenePred"
-
-    def initSettings(self):
-        super(Gff3_transcript, self).initSettings()
-        self.extraSettings["transcriptType"] = "transcript"
-        self.extraSettings["type"] = "transcript"
-        self.extraSettings["subfeatureClasses"] = "CDS"
-    
-    def validateData(self):
-        self.validator = Gff3Validation(self.inputFile, self.dataType, self.chromSizesFile.name)
-        self.inputFile = self.validator.validate()
-
--- a/datatypes/interval/Gtf.py	Fri Oct 20 11:22:21 2017 -0400
+++ b/datatypes/interval/Gtf.py	Wed Oct 25 12:43:23 2017 -0400
@@ -20,6 +20,7 @@
     def initSettings(self):
         super(Gtf, self).initSettings()
         self.extraSettings["glyph"] = "JBrowse/View/FeatureGlyph/Segments"
+        self.extraSettings["subfeatureClasses"] = "UTR"
 
     def createTrack(self):
         self.convertType = self.getConvertType()
--- a/datatypes/interval/GtfStringTie.py	Fri Oct 20 11:22:21 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-#!/usr/bin/python
-
-import os
-import tempfile
-
-# Internal dependencies
-from Gtf import Gtf
-from datatypes.validators.GtfValidation import GtfValidation
-from datatypes.converters.DataConversion import DataConversion
-
-
-class GtfStringTie(Gtf):
-    def __init__( self, input_gtf_false_path, data_gtf):
-
-        super(GtfStringTie, self).__init__(input_gtf_false_path, data_gtf)
-        
-
-    def initSettings(self):
-        super(GtfStringTie, self).initSettings()
-        self.extraSettings["glyph"] = "JBrowse/View/FeatureGlyph/Segments"
-        self.extraSettings["subfeatureClasses"] = "UTR"
-
-    
--- a/jbrowseArchiveCreator.xml	Fri Oct 20 11:22:21 2017 -0400
+++ b/jbrowseArchiveCreator.xml	Wed Oct 25 12:43:23 2017 -0400
@@ -117,26 +117,16 @@
             #end if
         #end if
         #if $f.formatChoice.format_select == "blastxml"
-                #silent $prepare_json($f.formatChoice.BlastXML, extra_data_dict)
+                #silent $prepare_json("BlastXml", $f.formatChoice.BlastXML, $index_track_final, 
+                                            extra_data_dict)
         #end if
         #if $f.formatChoice.format_select == "bigwig"
-            #set pos_color = str($f.formatChoice.pos_color)
-            #set neg_color = str($f.formatChoice.neg_color)
-            #silent $extra_data_dict.update({"style" : {"pos_color" : $pos_color, "neg_color" : $neg_color}})
             #silent $prepare_json("BigWig", $f.formatChoice.BIGWIG, $index_track_final,
                                             $extra_data_dict)
         #end if
         #if $f.formatChoice.format_select == 'gff3'
-            #if $f.formatChoice.gff3Choice.gff3_select == 'gff3_generic'
-                #silent $prepare_json("Gff3", $f.formatChoice.GFF3, $index_track_final,
+            #silent $prepare_json("Gff3", $f.formatChoice.GFF3, $index_track_final,
                                             $extra_data_dict)
-            #elif $f.formatChoice.gff3Choice.gff3_select == 'gff3_transcript'
-                #silent $prepare_json("Gff3_transcript", $f.formatChoice.GFF3, $index_track_final,
-                                            $extra_data_dict)
-            #elif $f.formatChoice.gff3Choice.gff3_select == 'gff3_mrna'
-                #silent $prepare_json("Gff3_mrna", $f.formatChoice.GFF3, $index_track_final,
-                                            $extra_data_dict)
-            #end if
         #end if
         #if $f.formatChoice.format_select == "gtf"
             ## Add also GTF from Agustus? See https://github.com/ENCODE-DCC/kentUtils/issues/8
@@ -299,39 +289,14 @@
                         </param>
                     </when>
                     <when value="gff3">
-                        <conditional name="gff3Choice">
-                            <param name="gff3_select" type="select" label="gff3 type">
-                                <option value="gff3_generic">GFF3 format</option>
-                                <option value="gff3_transcript">GFF3 format output from gene prediction tools (e.g. Augustus), structure: gene->transcription->CDS</option>
-                                <option value="gff3_mrna">GFF3 format output from gene prediction tools (e.g. SNAP), structure: gene->mRNA->CDS</option>
-                            </param>
-                            <when value="gff3_generic">
-                                <param
-                                        format="gff3"
-                                        name="GFF3_generic"
-                                        type="data"
-                                        label="GFF3 File"
-                                />
-                            </when>
-                            <when value="gff3_transcript">
-                                <param
-                                        format="gff3"
-                                        name="GFF3_transcript"
-                                        type="data"
-                                        label="GFF3 File from gene prediction"
-                                />
-                            </when>
-                            <when value="gff3_mrna">
-                                <param
-                                        format="gff3"
-                                        name="GFF3_mrna"
-                                        type="data"
-                                        label="GFF3 File from gene prediction"
-                                />
-                            </when>
-                        </conditional>
+                        <param
+                            format="gff3"
+                            name="GFF3"
+                            type="data"
+                            label="GFF3 File"
+                        />
                         <param name="longLabel" type="text" size="30" value="Gene Prediction" label="Track name" />
-                        <param name="track_color" type="color" label="Track color" value="#daa520">
+                        <param name="track_color" type="color" label="Track color" value="#000000">
                             <sanitizer>
                                 <valid initial="string.letters,string.digits">
                                     <add value="#"/>
--- a/templates/display.txt	Fri Oct 20 11:22:21 2017 -0400
+++ b/templates/display.txt	Wed Oct 25 12:43:23 2017 -0400
@@ -4,8 +4,10 @@
             The following JBrowse hub has been generated by JBrowse Archive Creator:
         </p>
         <ul>
-            <li> Genome name: ${genome_name} </li>
-            <li> Track settings: ${trackList} </li>
+            <li> ${species_folder} </li>
+            <ul>
+                <li> <a href="${trackList}">Track settings</a> </li>
+            </ul>
         </ul>
     </body>
 </html>
\ No newline at end of file
--- a/util/Reader.py	Fri Oct 20 11:22:21 2017 -0400
+++ b/util/Reader.py	Wed Oct 25 12:43:23 2017 -0400
@@ -11,10 +11,7 @@
 from datatypes.interval.BedSpliceJunctions import BedSpliceJunctions
 from datatypes.interval.BlastXml import BlastXml
 from datatypes.interval.Gff3 import Gff3
-from datatypes.interval.Gff3_mrna import Gff3_mrna
-from datatypes.interval.Gff3_transcript import Gff3_transcript
 from datatypes.interval.Gtf import Gtf
-from datatypes.interval.GtfStringTie import GtfStringTie
 from datatypes.interval.BigPsl import BigPsl
 from datatypes.interval.BedBlatAlignments import BedBlatAlignments
 from datatypes.interval.BedBlastAlignments import BedBlastAlignments
@@ -26,7 +23,7 @@
     
     DATATYPE_CLASS = [Bam, BigWig, Bed, BedSimpleRepeats, 
         BedSpliceJunctions, BigPsl, BedBlatAlignments, BedBlastAlignments, 
-        BlastXml, Gff3, Gff3_mrna, Gff3_transcript, Gff3_mrna, Gtf, GtfStringTie, Psl, Fasta]
+        BlastXml, Gff3, Gtf, Psl, Fasta]
 
     def __init__(self, input_json_file):
         self.inputFile = input_json_file