I am using that library as well (with a couple of minor mods) for another project. Works okay for me.
I'm looking for a VCF 4.1 parser and writer. I'm aware of these:
- http://code.google.com/p/pysam/
- http://seqanswers.com/forums/showthread.php?t=9266
- https://github.com/indapa/VcfPythonUtils
Do you know of other options or have recommendations to share?
3 answers
I've looked at the ones you mention and any others I could find. This one seems to be the most complete and easiest to use: https://github.com/jdoughertyii/PyVCF
usage is like:
for rec in VCFReader(open('some.vcf')):
print rec.CHROM, rec.POS, rec.filter, rec.info["AF"]
though, it does not have a writer class.
EDIT:
This, has become the official fork and it has a writer class.
thanks. any idea why UPPERCASE field names?
Not sure other than that's how they appear in the VCF filter. You could file a bug at https://github.com/jamescasbon/PyVCF
The idea for the UPPER was to distinguish native (upper) fields from derived (lower) attributes/methods. For better or worse...
For C++, I've written vcflib. It has utilities for a number of functions, such as haplotype-based file comparisons (for accurate indel comparisons), filtering, and statistical summarization. It can operate on uncompressed or compressed and tabix indexed VCF files. Mostly, I've used it as a reader/writer class for other projects.
I know this question is rather old and has an answer but it is still a relevant question. A recent, alternative for parsing VCF files in Python (both versions 2 and 3) is cyvcf2 which is made by two well known bioinformaticians: Brent Pedersen and Aaron Quinlan.
GitHub link: http://brentp.github.io/cyvcf2/ and https://github.com/brentp/cyvcf2.
The Journal article: https://academic.oup.com/bioinformatics/article/33/12/1867/2971439
Log in to answer this question.