This is a test version of Biostars. For the public version, visit https://www.biostars.org.
VCF filtering by depth

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

filtering by depth

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

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

How to filter AF in vcf file with that way? There is a KeyError.

VCFtools allows filtering. See the "--minDP" argument.

https://vcftools.github.io/man_latest.html

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

Log in to answer this question.