Source code for iCallSV.launch_Run_Delly

"""
launch_Run_Delly
~~~~~~~~~~~~~~~~

:Description: This module will be launching delly using Run_Delly
"""

'''
Created on November 19, 2015
Description: This module will be launching delly using Run_Delly
@author: Ronak H Shah
::Inputs::
args: Arguments passed to iCallSV
config: configuration file passed to iCallSV
sampleOutdirForDelly: Output directory for delly vcf files.
'''
import os
import logging
import Run_Delly as rd
import multiprocessing as mp
import makebamindex as mbi
import coloredlogs

logger = logging.getLogger('iCallSV.launch_Run_Delly')
coloredlogs.install(level='DEBUG')

[docs]def launch_delly_for_different_analysis_type(args, config, sampleOutdirForDelly): """ This will launch delly calls in parallel. :param Namespace args: Namespace of args to get other variables :param Namespace config: configuration file passed to iCallSV :param str sampleOutdirForDelly: Output directory for delly vcf files. :return: Multiple objects :rtype: list """ verbose = args.verbose pool = mp.Pool(processes=4) analyisisType = ["DEL", "DUP", "INV", "TRA"] if(verbose): logger.info( "launch_Run_Delly: Launched Delly for Deletion, Duplication, Inversion and Translocation Events") # check of index file before run controlBai = args.controlBam + ".bai" if(os.path.isfile(controlBai)): if(verbose): logger.info("Run_Delly: Bam Index file is present for %s ", controlBai) else: if(verbose): logger.warn( "Run_Delly: Bam Index file is not present and we will make it for %s ", controlBai) mbi.MakeIndex(args.controlBam) caseBai = args.caseBam + ".bai" if(os.path.isfile(caseBai)): if(verbose): logger.info("Run_Delly: Bam Index file is present for %s ", caseBai) else: if(verbose): logger.warn( "Run_Delly: Bam Index file is not present and we will make it for %s ", caseBai) mbi.MakeIndex(args.caseBam) # launch commands results = [pool.apply_async(rd.run, args=( config.get("SVcaller", "DELLY"), config.get("SVcaller", "DellyVersion"), config.get("SVcaller", "BCFTOOLS"), x, config.get("ReferenceFasta", "REFFASTA"), args.controlBam, args.caseBam, args.caseId, int(config.get("ParametersToRunDelly", "MAPQ")), config.get("ExcludeRegion", "EXREGIONS"), sampleOutdirForDelly, verbose, False)) for x in analyisisType] output = [p.get() for p in results] del_vcf, dup_vcf, inv_vcf, tra_vcf = output return(del_vcf, dup_vcf, inv_vcf, tra_vcf)
''' # Run Delly for Deletion if(verbose): logger.info("launch_Run_Delly: Launched Delly for Deletion Events") del_vcf = rd.run( delly=config.get("SVcaller", "DELLY"), analysisType="DEL", reference=config.get("ReferenceFasta", "REFFASTA"), controlBam=args.controlBam, caseBam=args.caseBam, caseId=args.caseId, mapq=int(config.get("ParametersToRunDelly", "MAPQ")), excludeRegions=config.get("ExcludeRegion", "EXREGIONS"), outputdir=sampleOutdirForDelly, verbose=verbose, debug=False) # Run Delly for duplication if(verbose): logger.info("launch_Run_Delly: Launched Delly for Duplication Events") dup_vcf = rd.run( delly=config.get("SVcaller", "DELLY"), analysisType="DUP", reference=config.get("ReferenceFasta", "REFFASTA"), controlBam=args.controlBam, caseBam=args.caseBam, caseId=args.caseId, mapq=int(config.get("ParametersToRunDelly", "MAPQ")), excludeRegions=config.get("ExcludeRegion", "EXREGIONS"), outputdir=sampleOutdirForDelly, verbose=verbose, debug=False) # Run Delly for inversion if(verbose): logger.info("launch_Run_Delly: Launched Delly for Inversion Events") inv_vcf = rd.run( delly=config.get("SVcaller", "DELLY"), analysisType="INV", reference=config.get("ReferenceFasta", "REFFASTA"), controlBam=args.controlBam, caseBam=args.caseBam, caseId=args.caseId, mapq=int(config.get("ParametersToRunDelly", "MAPQ")), excludeRegions=config.get("ExcludeRegion", "EXREGIONS"), outputdir=sampleOutdirForDelly, verbose=verbose, debug=False) # Run Delly for Translocation if(verbose): logger.info("launch_Run_Delly: Launched Delly for Translocation Envents") tra_vcf = rd.run( delly=config.get("SVcaller", "DELLY"), analysisType="TRA", reference=config.get("ReferenceFasta", "REFFASTA"), controlBam=args.controlBam, caseBam=args.caseBam, caseId=args.caseId, mapq=int(config.get("ParametersToRunDelly", "MAPQ")), excludeRegions=config.get("ExcludeRegion", "EXREGIONS"), outputdir=sampleOutdirForDelly, verbose=verbose, debug=False) return(del_vcf, dup_vcf, inv_vcf, tra_vcf) # Run Delly for Insertion if(verbose): logger.info("launch_Run_Delly: Launched Delly for Insertion Events") ins_vcf = rd.run( delly=config.get("SVcaller", "DELLY"), analysisType="INS", reference=config.get("ReferenceFasta", "REFFASTA"), controlBam=args.controlBam, caseBam=args.caseBam, caseId=args.caseId, mapq=int(config.get("ParametersToRunDelly", "MAPQ")), excludeRegions=config.get("ExcludeRegion", "EXREGIONS"), outputdir=sampleOutdirForDelly, verbose=verbose, debug=False) '''