Mercurial > repos > yating-l > jbrowsearchivecreator
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
--- 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