changeset 54:4a58094b051e draft

planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit 754b3f960221a68b90f9cddd98a1c3dd324d4d4e-dirty
author yating-l
date Tue, 16 May 2017 18:09:00 -0400
parents 44059c9e7c02
children ba9997c847dc
files cytoBand.py cytoBandIdeo.as hubArchiveCreator.py hubArchiveCreator.xml
diffstat 4 files changed, 103 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cytoBand.py	Tue May 16 18:09:00 2017 -0400
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+
+import os
+import tempfile
+
+from Datatype import Datatype
+from Track import Track
+from TrackDb import TrackDb
+from util import subtools
+
+
+class cytoBand( Datatype ):
+    def __init__(self, input_bed_cytoBand_false_path, data_bed_cytoBand):
+
+        super(cytoBand, self).__init__()
+
+        self.input_bed_cytoBand_false_path = input_bed_cytoBand_false_path
+        self.name_bed_cytoBand = data_bed_cytoBand["name"]
+        self.priority = data_bed_cytoBand["order_index"]
+        self.track_color = data_bed_cytoBand["track_color"]
+        # TODO: Think about how to avoid repetition of the group_name everywhere
+        self.group_name = data_bed_cytoBand["group_name"]
+        if data_bed_cytoBand["long_label"]:
+            self.long_label = data_bed_cytoBand["long_label"]
+        else:
+            self.long_label = self.name_bed_cytoBand
+        sortedBedFile = tempfile.NamedTemporaryFile(suffix=".sortedBed")
+
+        # Sort processing
+        subtools.sort(self.input_bed_cytoBand_false_path, sortedBedFile.name)
+
+        # bedToBigBed processing
+        # TODO: Change the name of the bb, to tool + genome + .bb
+        trackName = "".join( ( self.name_bed_cytoBand, '.bb' ) )
+        myBigBedFilePath = os.path.join(self.myTrackFolderPath, trackName)
+
+        auto_sql_option = os.path.join(self.tool_directory, 'cytoBandIdeo.as')
+
+        with open(myBigBedFilePath, 'w') as bigBedFile:
+            subtools.bedToBigBed(sortedBedFile.name,
+                                 self.chromSizesFile.name,
+                                 bigBedFile.name,
+                                 typeOption='bed4',
+                                 autoSql=auto_sql_option)
+
+        # Create the Track Object
+        self.createTrack(file_path=trackName,
+                         track_name='cytoBandIdeo',
+                         long_label=self.long_label, 
+                         track_type='bigBed',
+                         priority=self.priority,
+                         track_file=myBigBedFilePath,
+                         track_color=self.track_color,
+                         group_name=self.group_name)
+
+        # dataURL = "tracks/%s" % trackName
+        #
+        # trackDb = TrackDb(
+        #     trackName=trackName,
+        #     longLabel=self.name_bed_simple_repeats,
+        #     shortLabel=self.getShortName( self.name_bed_simple_repeats ),
+        #     trackDataURL=dataURL,
+        #     trackType='bigBed 4 +',
+        #     visibility='dense',
+        #     priority=self.priority,
+        # )
+        #
+        # self.track = Track(
+        #     trackFile=myBigBedFilePath,
+        #     trackDb=trackDb,
+        # )
+
+        print("- Bed splice junctions %s created" % self.name_bed_cytoBand)
+        #print("- %s created in %s" % (trackName, myBigBedFilePath))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cytoBandIdeo.as	Tue May 16 18:09:00 2017 -0400
@@ -0,0 +1,9 @@
+table cytoBandIdeo
+"cytoBandIdeo Describes the positions of cytogenetic bands with a chromosome"
+    (
+    string chrom;      "Reference sequence chromosome or scaffold"
+    uint   chromStart; "Start position in chromosome"
+    uint   chromEnd;   "End position in chromosome"
+    string name;       "Name of item"
+    string   gieStain; "Giemsa stain results: gneg gpos25 gpos50 gpos75 gpos100 acen gvar stalk"
+    )
\ No newline at end of file
--- a/hubArchiveCreator.py	Thu May 11 17:27:15 2017 -0400
+++ b/hubArchiveCreator.py	Tue May 16 18:09:00 2017 -0400
@@ -20,6 +20,7 @@
 from BedSimpleRepeats import BedSimpleRepeats
 from BedSpliceJunctions import BedSpliceJunctions
 from Bed import Bed
+from cytoBand import cytoBand
 from BigWig import BigWig
 from util.Fasta import Fasta
 from util.Filters import TraceBackFormatter
@@ -55,6 +56,9 @@
     # Generic Bed (Blastx transformed to bed)
     parser.add_argument('--bed', action='append', help='Bed generic format')
 
+    #cytoBandIdeo
+    parser.add_argument('--cytoBand', action='append', help='Cytoband Track, using cytoBandIdeo.as')
+
     # BigPsl (blat alignment)
     parser.add_argument('--bigpsl', action='append', help='bigPsl format, using bigPsl.as')
 
@@ -124,6 +128,7 @@
     # EXTRA_DATA could be anything, for example the index of a BAM => {"index", FILE_PATH}
     array_inputs_bam = args.bam
     array_inputs_bed_generic = args.bed
+    array_inputs_bed_cytoBand = args.cytoBand
     array_inputs_bed_simple_repeats = args.bedSimpleRepeats
     array_inputs_bed_splice_junctions = args.bedSpliceJunctions
     array_inputs_bigwig = args.bigwig
@@ -152,6 +157,7 @@
     for (inputs, datatype_class) in [
                         (array_inputs_bam, Bam),
                         (array_inputs_bed_generic, Bed),
+                        (array_inputs_bed_cytoBand, cytoBand),
                         (array_inputs_bigwig, BigWig),
                         (array_inputs_bed_simple_repeats, BedSimpleRepeats),
                         (array_inputs_bed_splice_junctions, BedSpliceJunctions),
--- a/hubArchiveCreator.xml	Thu May 11 17:27:15 2017 -0400
+++ b/hubArchiveCreator.xml	Tue May 16 18:09:00 2017 -0400
@@ -91,6 +91,11 @@
                         #silent $prepare_json($f.formatChoice.bedChoice.BED, $index_track_final,
                                                 extra_data_dict)
                     #end if
+                    #if $f.formatChoice.bedChoice.bed_select == "bed_cytoBand"
+                        --cytoBand $f.formatChoice.bedChoice.BED_cytoBand
+                        #silent $prepare_json($f.formatChoice.bedChoice.BED_cytoBand, $index_track_final,
+                                                extra_data_dict)
+                    #end if
                     #if $f.formatChoice.bedChoice.bed_select == "bed_simple_repeats_option"
                         --bedSimpleRepeats $f.formatChoice.bedChoice.BED_simple_repeats
                         #silent $prepare_json($f.formatChoice.bedChoice.BED_simple_repeats, $index_track_final,
@@ -206,6 +211,7 @@
                         <conditional name="bedChoice">
                             <param name="bed_select" type="select" label="Bed Choice">
                                 <option value="bed_generic" selected="true">BED Generic (bed3+)</option>
+                                <option value="bed_cytoBand">cytoBand Track (bed4)</option>
                                 <option value="bed_simple_repeats_option">BED Simple repeat (bed4+12 / simpleRepeat.as)</option>
                                 <option value="bed_splice_junctions_option">BED Splice junctions (bed12+1 / spliceJunctions.as)</option>
                                 <option value="bed_blast_alignment_option">Blast alignments (bed12+12 / bigPsl.as)</option>
@@ -220,6 +226,14 @@
                                 />
 
                             </when>
+                            <when value="bed_cytoBand">
+                                <param
+                                        format="bed"
+                                        name="BED_cytoBand"
+                                        type="data"
+                                        label="cytoBand Track (Bed4)"
+                                />
+                            </when>
                             <when value="bed_simple_repeats_option">
                                 <param
                                         format="bed"