Mercurial > repos > rmarenco > hubarchivecreator
diff Bam.py @ 1:fb5e60d4d18a draft
planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit 64cfc08088d11f6818c1b4e5514ef9e67969eaff-dirty
author | rmarenco |
---|---|
date | Wed, 13 Jul 2016 13:36:37 -0400 |
parents | |
children | acc233161f50 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Bam.py Wed Jul 13 13:36:37 2016 -0400 @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf8 -*- + +""" +Class to handle Bam files to UCSC TrackHub +""" + +import os +import shutil + +from Datatype import Datatype +from Track import Track +from TrackDb import TrackDb +from util import subtools + + +class Bam( Datatype ): + def __init__( self, input_bam_false_path, data_bam , + inputFastaFile, extra_files_path, tool_directory ): + super(Bam, self).__init__( input_fasta_file=inputFastaFile, + extra_files_path=extra_files_path, + tool_directory=tool_directory, + ) + + self.track = None + + self.input_bam_false_path = input_bam_false_path + + self.data_bam = data_bam + # TODO: Check if it already contains the .bam extension / Do a function in Datatype which check the extension + self.name_bam = self.data_bam["name"] + ".bam" + self.priority = self.data_bam["order_index"] + self.index_bam = self.data_bam["index"] + + print "Creating TrackHub BAM from (falsePath: %s; name: %s)" % ( self.input_bam_false_path, self.name_bam) + + # First: Add the bam file + # Second: Add the bam index file, in the same folder (https://genome.ucsc.edu/goldenpath/help/bam.html) + + bam_file_path = os.path.join(self.myTrackFolderPath, self.name_bam) + shutil.copyfile(self.input_bam_false_path, bam_file_path) + + # Create and add the bam index file to the same folder + name_index_bam = self.name_bam + ".bai" + bam_index_file_path = os.path.join(self.myTrackFolderPath, name_index_bam) + shutil.copyfile(self.index_bam, bam_index_file_path) + + # Create the Track Object + dataURL = "tracks/%s" % self.name_bam + + trackDb = TrackDb( + trackName=self.name_bam, + longLabel=self.name_bam, + shortLabel=self.getShortName( self.name_bam ), + trackDataURL=dataURL, + trackType='bam', + visibility='pack', + priority=self.priority, + ) + + # Return the Bam Track Object + self.track = Track( + trackFile=bam_index_file_path, + trackDb=trackDb, + ) + + print("- %s created in %s" % (self.name_bam, bam_file_path)) + print("- %s created in %s" % (self.index_bam, bam_index_file_path))