Varcode
Varcode is a Python library that predicts what genomic variants do to genes,
transcripts, and proteins. Load a VCF or MAF file, and for each variant on each
overlapping transcript, Varcode reports the predicted consequence (for example
a substitution such as p.L159M, a frameshift, or a gene fusion). Where the
sequence can be determined, it also gives the mutant protein.
Installation
Requires Python 3.9 or later:
pip install varcode
pyensembl install --release 81 --species human
The second command downloads the gene annotation and transcript sequences used in the example below (Ensembl 81, GRCh38). For your own data, choose an annotation that matches your input's genome build; see reference setup.
Quick start
Predict the effect of a single GRCh38 variant on a CFTR transcript:
from varcode import Variant
variant = Variant("7", 117_531_100, "T", "A", genome=81)
transcript = variant.genome.transcript_by_id("ENST00000003084")
effect = variant.effect_on_transcript(transcript)
print(effect.short_description) # p.L159M
protein = effect.mutant_protein_sequence
Annotate every variant in a VCF called against the same genome build, and print the most severe effect for each:
from varcode import load_vcf
variants = load_vcf("variants.vcf", genome=81)
effects = variants.effects()
for variant, effect in effects.top_priority_effect_per_variant().items():
print(variant.short_description, effect.short_description)
Or from the command line:
varcode --genome GRCh38 --vcf variants.vcf --output-csv effects.csv
Reading the results
- One variant, many transcripts. Each prediction belongs to one
transcript, and a variant's effect can differ between transcripts.
top_priority_effect_per_variant()picks one per variant for a summary. - "Top priority" means most severe, not most likely. The ranking is Varcode's ordering of consequence severity. It is not a probability, a pathogenicity score, or a clinical classification.
- Some effects have several possible outcomes. Splice variants, structural variants, and variants with unknown phase keep all their candidate outcomes rather than guessing one.
Nonemeans unknown, not unchanged. A missing protein sequence means Varcode could not determine it.- Predictions are not observations. A predicted protein doesn't show that the transcript or protein is expressed.
Learn more
The documentation starts with a getting-started guide. Guides by topic:
- Effect annotation: SNVs, indels, and multi-base substitutions, classified as coding changes (substitution, frameshift, premature stop, ...) or by location (UTR, intron, splice site, intergenic).
- Splice variants: possible outcomes such as exon skipping, intron retention, or a cryptic splice site, each with its own predicted protein when it can be determined.
- Structural variants: transcript consequences and gene-fusion candidates for deletions, duplications, inversions, and breakends.
- Germline, phasing, and observed RNA: optional patient context that refines predictions.
- Sample queries and identity checks: select a sample's variants, or screen a cohort for possible sample mix-ups.
- Saving results: CSV, JSON, and VCF export, and what each keeps.
- Reference ORF consequences:
with the optional
varcode[orf]extra,variant.orf_effects()reports effects on upstream and other catalogued ORFs alongside the ordinary effects.
Reference pages cover effect types, coordinate conventions, and the API.
Varcode is part of the OpenVax tools. Isovar reconstructs variant sequences from RNA reads, and Vaxrank evaluates the resulting protein/peptide candidates; see how the libraries fit together.
For bugs or questions, open an issue. Contributions are welcome; see CONTRIBUTING.md and the changelog. Varcode is released under the Apache 2.0 license.
Metadata
Release files for varcode 10.14.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| varcode-10.14.1.tar.gz | 4.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| varcode-10.14.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.8 MB
Release files / varcode-10.14.1.tar.gz
| Download URL | varcode-10.14.1.tar.gz |
|---|---|
| Size | 4.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9da6a32a732ec0c20a2380e30dd5c2c2c25643b024fa9e8e997101a8decfad56
|
|
BLAKE2b-256 checksum How to use checksums |
65dbd851d12a5e1049616c92ee64dbcfc0e772ff199d7ca57a0b1a5928f660dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.6
|
Release files / varcode-10.14.1-py3-none-any.whl
| Download URL | varcode-10.14.1-py3-none-any.whl |
|---|---|
| Size | 326.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83a1c6ac529b7aabfabe5ecae04c90554e00190806e7c1ad539bb95d1d017c30
|
|
BLAKE2b-256 checksum How to use checksums |
fdcc5be7887ca42e7dec417fa5d4e1d79e4836fa666f7f578357430512a462e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.6
|