Minimaistic VCf parser in python
Project description
Python parser for parsing the genomics and transcriptomics VCF data.
Free software: MIT license
Documentation: https://vcfparser.readthedocs.io.
Features
No external dependency except python
Minimalistic in nature
With lots of control to api users
Installation
To install vcfparser, run this command in your terminal:
$ pip install vcfparser
In order to build from source, you can follow :doc:installation guide <./docs/installation.rst>
Usage
>>> from vcfparser import VcfParser >>> vcf_obj = VcfParser('input_test.vcf')
Get meta information about the vcf file
>>> metainfo = vcf_obj.parse_metadata() >>> metainfo.fileformat 'VCFv4.2' >>> metainfo.filters_ [{'ID': 'LowQual', 'Description': 'Low quality'}, {'ID': 'my_indel_filter', 'Description': 'QD < 2.0 || FS > 200.0 || ReadPosRankSum < -20.0'}, {'ID': 'my_snp_filter', 'Description': 'QD < 2.0 || FS > 60.0 || MQ < 40.0 || MQRankSum < -12.5 || ReadPosRankSum < -8.0'}]
>>> metainfo.alt_ [{'ID': 'NON_REF', 'Description': 'Represents any possible alternative allele at this location'}] >>> metainfo.sample_names ['ms01e', 'ms02g', 'ms03g', 'ms04h', 'MA611', 'MA605', 'MA622'] >>> metainfo.record_keys ['CHROM', 'POS', 'ID', 'REF', 'ALT', 'QUAL', 'FILTER', 'INFO', 'FORMAT', 'ms01e', 'ms02g', 'ms03g', 'ms04h', 'MA611', 'MA605', 'MA622']
Get Records from vcf file
>>> records = vcf_obj.parse_records() Here records is an generator. >>> first_record = next(records) >>> first_record.CHROM '2' >>> first_record.POS '15881018' >>> first_record.REF 'G' >>> first_record.ALT 'A,C' >>> first_record.QUAL '5082.45' >>> first_record.FILTER ['PASS'] >>> first_record.get_mapped_samples() {'ms01e': {'GT': './.', 'PI': '.', 'GQ': '.', 'PG': './.', 'PM': '.', 'PW': './.', 'AD': '0,0', 'PL': '0,0,0,.,.,.', 'DP': '0', 'PB': '.', 'PC': '.'}, 'ms02g': {'GT': './.', 'PI': '.', 'GQ': '.', 'PG': './.', 'PM': '.', 'PW': './.', 'AD': '0,0', 'PL': '0,0,0,.,.,.', 'DP': '0', 'PB': '.', 'PC': '.'}, 'ms03g': {'GT': './.', 'PI': '.', 'GQ': '.', 'PG': './.', 'PM': '.', 'PW': './.', 'AD': '0,0', 'PL': '0,0,0,.,.,.', 'DP': '0', 'PB': '.', 'PC': '.'}, 'ms04h': {'GT': '1/1', 'PI': '.', 'GQ': '6', 'PG': '1/1', 'PM': '.', 'PW': '1/1', 'AD': '0,2', 'PL': '49,6,0,.,.,.', 'DP': '2', 'PB': '.', 'PC': '.'}, 'MA611': {'GT': '0/0', 'PI': '.', 'GQ': '78', 'PG': '0/0', 'PM': '.', 'PW': '0/0', 'AD': '29,0,0', 'PL': '0,78,1170,78,1170,1170', 'DP': '29', 'PB': '.', 'PC': '.'}, 'MA605': {'GT': '0/0', 'PI': '.', 'GQ': '9', 'PG': '0/0', 'PM': '.', 'PW': '0/0', 'AD': '3,0,0', 'PL': '0,9,112,9,112,112', 'DP': '3', 'PB': '.', 'PC': '.'}, 'MA622': {'GT': '0/0', 'PI': '.', 'GQ': '99', 'PG': '0/0', 'PM': '.', 'PW': '0/0', 'AD': '40,0,0', 'PL': '0,105,1575,105,1575,1575', 'DP': '40', 'PB': '.', 'PC': '.\n'}}
Similarly, we can loop over rest of the records by following for loop:
for record in records:
chrom = record.CHROM
pos = record.POS
id = record.ID
ref = record.REF
alt = record.ALT
qual = record.QUAL
filter = record.FILTER
format_ = record.format_
infos = record.get_info_dict()
mapped_sample = record.get_mapped_samples()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
vcfparser-0.1.9.tar.gz
(9.4 kB
view details)
Built Distribution
vcfparser-0.1.9-py3-none-any.whl
(10.0 kB
view details)
File details
Details for the file vcfparser-0.1.9.tar.gz
.
File metadata
- Download URL: vcfparser-0.1.9.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12354ed602f7cdacd72e3b972d0338d79b5c1fba926a24ec58ad46658a3135bd |
|
MD5 | 3e93d52b2c6cfdcfab8bcc77eaef486b |
|
BLAKE2b-256 | 11b75a5ebde681d15436f6d83f99905112ab74564a2ba13b8a9759e57066efb9 |
File details
Details for the file vcfparser-0.1.9-py3-none-any.whl
.
File metadata
- Download URL: vcfparser-0.1.9-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d16cbbe9b0afcbe645b81cebb9a259f6bf759b89785c1e529ebde909602a1554 |
|
MD5 | 1af77aaf4d5a2233eff7d85f7bf2eb80 |
|
BLAKE2b-256 | cab71b46ebad8739495f318a08cfbcfa5d54aed3409191686269ab075328cf2b |