def variant_filtration(call_file, ref_file, vrn_files, data): """Filter variant calls using Variant Quality Score Recalibration. Newer GATK with Haplotype calling has combined SNP/indel filtering. """ caller = data["config"]["algorithm"].get("variantcaller") call_file = ploidy.filter_vcf_by_sex(call_file, data) if caller in ["freebayes"]: return vfilter.freebayes(call_file, ref_file, vrn_files, data) # no additional filtration for callers that filter as part of call process elif caller in ["samtools", "varscan", "mutect"]: return call_file else: config = data["config"] snp_file, indel_file = vcfutils.split_snps_indels( call_file, ref_file, config) snp_filter_file = _variant_filtration_snp(snp_file, ref_file, vrn_files, data) indel_filter_file = _variant_filtration_indel(indel_file, ref_file, vrn_files, data) orig_files = [snp_filter_file, indel_filter_file] out_file = "{base}combined.vcf".format( base=os.path.commonprefix(orig_files)) return vcfutils.combine_variant_files(orig_files, out_file, ref_file, config)
def variant_filtration(call_file, ref_file, vrn_files, data): """Filter variant calls using Variant Quality Score Recalibration. Newer GATK with Haplotype calling has combined SNP/indel filtering. """ caller = data["config"]["algorithm"].get("variantcaller") call_file = ploidy.filter_vcf_by_sex(call_file, data) if caller in ["freebayes"]: return vfilter.freebayes(call_file, ref_file, vrn_files, data) elif caller in ["gatk", "gatk-haplotype"]: return gatkfilter.run(call_file, ref_file, vrn_files, data) # no additional filtration for callers that filter as part of call process else: return call_file
def variant_filtration(call_file, ref_file, vrn_files, data): """Filter variant calls using Variant Quality Score Recalibration. Newer GATK with Haplotype calling has combined SNP/indel filtering. """ caller = data["config"]["algorithm"].get("variantcaller") call_file = ploidy.filter_vcf_by_sex(call_file, data) if caller in ["freebayes"]: return vfilter.freebayes(call_file, ref_file, vrn_files, data) # no additional filtration for callers that filter as part of call process elif caller in ["samtools", "varscan", "mutect"]: return call_file else: config = data["config"] snp_file, indel_file = vcfutils.split_snps_indels(call_file, ref_file, config) snp_filter_file = _variant_filtration_snp(snp_file, ref_file, vrn_files, data) indel_filter_file = _variant_filtration_indel(indel_file, ref_file, vrn_files, data) orig_files = [snp_filter_file, indel_filter_file] out_file = "{base}combined.vcf".format(base=os.path.commonprefix(orig_files)) return vcfutils.combine_variant_files(orig_files, out_file, ref_file, config)
def variant_filtration(call_file, ref_file, vrn_files, data, items): """Filter variant calls using Variant Quality Score Recalibration. Newer GATK with Haplotype calling has combined SNP/indel filtering. """ caller = data["config"]["algorithm"].get("variantcaller") if "gvcf" not in dd.get_tools_on(data): call_file = ploidy.filter_vcf_by_sex(call_file, items) if caller in ["freebayes"]: return vfilter.freebayes(call_file, ref_file, vrn_files, data) elif caller in ["platypus"]: return vfilter.platypus(call_file, data) elif caller in ["samtools"]: return vfilter.samtools(call_file, data) elif caller in ["gatk", "gatk-haplotype", "haplotyper"]: if dd.get_analysis(data).lower().find("rna-seq") >= 0: from bcbio.rnaseq import variation as rnaseq_variation return rnaseq_variation.gatk_filter_rnaseq(call_file, data) else: return gatkfilter.run(call_file, ref_file, vrn_files, data) # no additional filtration for callers that filter as part of call process else: return call_file