How to filter AF in vcf file with that way? There is a KeyError.
Hi, I am trying to filtering a vcf file by --minDP however the log file indicates that it is not filtering out any SNP, any clue about this problem? I tried different values for DP but is not working any of them (I do have DP information in my vcf file)
/data/storage/software/vcftools/bin/vcftools --vcf /home/jperez/croc/res_cornell/vcf_croc_addinCONTIG.vcf --recode-INFO-all --minDP 100 —-out minDP_100.vcf
Thanks
3 answers
I have a script that can do what you need.
#! python
import sys
import os
import vcf
vcf_reader = vcf.Reader(open("file.vcf", 'r'))
vcf_writer = vcf.Writer(open('out.vcf', 'w'), vcf_reader)
for record in vcf_reader:
if record.INFO['DP']>100:
vcf_writer.write_record(record)
Hope it helps,
Best,
Agata
VCFtools allows filtering. See the "--minDP" argument.
Thanks Agata, I have mac and try to run the script and I got this message:
Traceback (most recent call last): File "DP.py", line 3, in <module> import vcf ImportError: No module named vcf
You need to install PyVCF module for example from here https://pypi.python.org/pypi/PyVCF Make sure that it is compatible with your python version! Best, Agata
Log in to answer this question.
you should try --min-meanDP instead of --minDP if you didn't solve that problem. I'm also wondering why vcftools write some argument making user a little bit confusing.
Like --min-meanDP & --minDP or --minQ and --minGQ