#!/usr/bin/perl use strict; use warnings; die "usage:perl $0 germline/somatic tumor_prefix name input_file outputDir" unless @ARGV==5; my($type,$tumor,$name,$input,$outputDir)=@ARGV; `filter_vep -i $input -o ${outputDir}/${name}_${type}_vepanno_filter.vcf --format vcf --force_overwrite --filter "(Consequence != synonymous_variant) and (Consequence != intron_variant) and (Consequence != intergenic_variant) and (Consequence != 3_prime_UTR_variant) and (Consequence != upstream_gene_variant) and (Consequence != downstream_gene_variant) and (Consequence != 5_prime_UTR_variant)"`; if($type eq "germline"){ open IN,"${outputDir}/${name}_${type}_vepanno_filter.vcf"; open OUT,">${outputDir}/${name}_${type}_vepanno_Filter.vcf"; while(){ if (/^##/){ print OUT; next; }elsif(/^#CHROM/){ $_=~s/TUMOR/$tumor/; print OUT; next; }else{ chomp; my @line=split("\t",$_); next if $line[6] ne "PASS"; my $n_af=(split(":",$line[-2]))[-2]; my $t_af=(split(":",$line[-1]))[-2]; $n_af=~s/%//; $t_af=~s/%//; print OUT "$_\n" if ($n_af>=10 and $t_af>=10); } } `rm ${outputDir}/${name}_${type}_vepanno_filter.vcf`; `mv ${outputDir}/${name}_${type}_vepanno_Filter.vcf ${outputDir}/${name}_${type}_vepanno_filter.vcf`; }elsif($type eq "somatic"){ open IN,"${outputDir}/${name}_${type}_vepanno_filter.vcf"; open OUT,">${outputDir}/${name}_${type}_vepanno_Filter.vcf"; while(){ if (/^##/){ print OUT; next; }elsif(/^#CHROM/){ $_=~s/TUMOR/$tumor/; print OUT; next; }else{ chomp; my @line=split("\t",$_); next if $line[6] ne "PASS"; my $n_af=(split(":",$line[-2]))[-2]; my $t_af=(split(":",$line[-1]))[-2]; $n_af=~s/%//; $t_af=~s/%//; print OUT "$_\n" if ($n_af<2 and $t_af>=5); } } `rm ${outputDir}/${name}_${type}_vepanno_filter.vcf`; `mv ${outputDir}/${name}_${type}_vepanno_Filter.vcf ${outputDir}/${name}_${type}_vepanno_filter.vcf`; }