Skip to content

Instantly share code, notes, and snippets.

@choosehappy
Created October 9, 2017 07:50
Show Gist options
  • Save choosehappy/e54f23e41ad9246bdafd4d4ceb4e97d7 to your computer and use it in GitHub Desktop.
Save choosehappy/e54f23e41ad9246bdafd4d4ceb4e97d7 to your computer and use it in GitHub Desktop.
Extension of MuPeXI to all Variant Callers
--- a/MuPeXI.py
+++ b/MuPeXI.py
@@ -466,6 +466,7 @@ def create_vep_compatible_vcf(vcf_file, webserver, keep_tmp, outdir, file_prefix
def extract_allele_frequency(vcf_sorted_file, webserver, variant_caller):
print_ifnot_webserver('\tExtracting allele frequencies', webserver)
allele_fractions = defaultdict(dict)
+ freq_colms=set(["AF","FREQ","FA"])
if not variant_caller in ('MuTect','MuTect2'):
allele_fractions = None # no variant caller detected
@@ -483,10 +484,18 @@ def extract_allele_frequency(vcf_sorted_file, webserver, variant_caller):
if not len(reference_allele) == len(altered_allele):
altered_allele = altered_allele[1:] if len(reference_allele) < len(altered_allele) else altered_allele
altered_allele = '-' if len(reference_allele) > len(altered_allele) else altered_allele
- if variant_caller == 'MuTect':
- allele_fraction = columns[9].split(':')[format_fields.index('FA')].strip() # GT:AD:BQ:DP:FA
- elif variant_caller == 'MuTect2':
- allele_fraction = columns[9].split(':')[format_fields.index('AF')].strip() # GT:AD:AF:ALT_F1R2:ALT_F2R1:FOXOG:QSS:REF_F1R2:REF_F2R1
+ freq_col=freq_colms.intersection(format_fields)
+ if(len(freq_col)==0): #freebayes
+ c9=columns[9].split(':')
+ AO=c9[format_fields.index('AO')]
+ if("," in AO):
+ AO=AO.split(',')[0]
+ AO=float(AO)
+ DP=float(c9[format_fields.index('DP')]) #should use RO, but that is often zero near indels
+ allele_fraction=str(AO/(AO+DP))
+ else:
+ field_idx=format_fields.index(freq_col.pop())
+ allele_fraction = columns[9].split(':')[field_idx].strip() # GT:AD:BQ:DP:FA
ID = '{chromosome}_{genomic_position}_{altered_allele}'.format(
chromosome = chromosome,
genomic_position = genomic_position if not altered_allele == '-' else int(genomic_position) + 1,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment