Source code for iCallSV.combineVCF
"""
combineVCF
~~~~~~~~~~
:Description: This module will combine multiple vcf file with same headers
"""
'''
Created on December 18, 2015
Description: This module will combine multiple vcf file with same headers
@author: Ronak H Shah
::Input::
vcfFiles : List of VCF Files to combine in list data structure
mergedVCF: Name of the combined vcf to output
::Output::
It is a merged vcf file
'''
import vcf
import logging
import coloredlogs
import checkparameters as cp
logger = logging.getLogger('iCallSV.combineVCF')
coloredlogs.install(level='DEBUG')
[docs]def run(vcfFiles, combinedVCF, verbose):
"""
This will ``combine multiple vcf file with same headers``
:param list vcfFiles: a list of .vcf files to be combined
:param str combinedVCF: str for the output of combined vcf files
:param bool verbose: a boolean
:return: A str name of combined vcf file
:rtype: str
"""
vcf_header = vcf.Reader(filename=vcfFiles[1])
vcf_output = vcf.Writer(open(combinedVCF, 'w'), vcf_header)
for vcffile in vcfFiles:
if(os.path.isfile(vcffile)):
vcf_reader = vcf.Reader(open(vcffile, 'r'))
for each in vcf_reader:
vcf_output.write_record(each)
else:
logger.warning("VCF file %s does not exists.", vcffile)
continue
if(verbose):
logger.info("Finished combining vcf files")
return(combinedVCF)