Mercurial > repos > rmarenco > hubarchivecreator
view Bam.py @ 5:fcff8e9146e7 draft
planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit 8fa0bb53e1bd6c4d7e3b0d9ea2f86825040e29de-dirty
author | rmarenco |
---|---|
date | Mon, 18 Jul 2016 12:40:30 -0400 |
parents | fb5e60d4d18a |
children | acc233161f50 |
line wrap: on
line source
#!/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))