Source code for iCallSV.sortbamByCoordinate
"""
sortbamByCoordinate
~~~~~~~~~~~~~~~~~~~
:Description: This module will sort bam file by coordinate
"""
'''
Created on Mar 19, 2015
Description: This module will sort bam file by coordinate
@author: Ronak H Shah
'''
import os
import sys
import pysam
import logging
import coloredlogs
logger = logging.getLogger('iCallSV.sortbamByCoordinate')
coloredlogs.install(level='DEBUG')
[docs]def sortBam(inputBam, outputBamName, outputDir):
logger.info("sortbamByCoordinate: Trying to sort BAM file by Coordinate")
if(os.path.isdir(outputDir)):
logger.info("sortbamByCoordinate: The output directory %s exists", outputDir)
outputFile = outputDir + "/" + outputBamName
else:
logger.info("sortbamByCoordinate:The output directory %s does not exists !!", outputDir)
sys.exit()
if(os.path.isfile(inputBam)):
try:
pysam.sort(inputBam, outputFile)
except IndexError as err:
exception = "Index error({0}): {1}".format(err.errno, err.strerror)
logger.info("%s", exception)
except IOError as err:
exception = "I/O error({0}): {1}".format(err.errno, err.strerror)
logger.info("%s", exception)
else:
logger.info("sortbamByCoordinate: bam File %s does not exists !!", inputBam)
sys.exit()
logger.info("sortbamByCoordinate: Finished sorting BAM file by Coordinate.")
return(outputFile)