Skip to main content

Tests Coverage Status PyPI PyPI downloads

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.

What it does

  • Small variants: SNVs, indels, and multi-base substitutions are classified as coding changes (substitution, frameshift, premature stop, and others) or by where they fall (UTR, intron, splice site, intergenic).
  • Splice variants: returns the 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: deletions, duplications, inversions, and breakends get transcript consequences and gene-fusion candidates.
  • Patient context (optional): germline variants, phase from a phased VCF or RNA reads, and observed RNA structures refine predictions.
  • Sample checks: screens a cohort for possible sample mix-ups using donor genotypes and shared somatic mutations.

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.
  • None means 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 and then covers sample filtering, splice and structural variants, germline and phasing, RNA evidence, and saving results.

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.

Metadata

Release files for varcode 10.11.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for varcode 10.11.7
File Size Uploaded
varcode-10.11.7.tar.gz 4.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for varcode 10.11.7
File Interpreter ABI Platform
varcode-10.11.7-py3-none-any.whl Python 3 none any Details

Total release size: 4.8 MB

Release files / varcode-10.11.7.tar.gz

Download URL varcode-10.11.7.tar.gz
Size 4.4 MB
Tags Source
SHA-256 checksum
How to use checksums
58e15999eebf96a16717b73e5c5f654c8297dba5776ab0b0e366f8c60ec819a3
BLAKE2b-256 checksum
How to use checksums
fbc787a7ead1d7dae04b9ae77149553cb7a7c347f7949ab98826e3895e3a43a1
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.11.7-py3-none-any.whl

Download URL varcode-10.11.7-py3-none-any.whl
Size 317.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
150d2a3410bbbb7ba535e44098b473bb9149e8ee8a4043fa616aa48b75b1f4fa
BLAKE2b-256 checksum
How to use checksums
0e77bca2e2abb9d9560de395973e7d7267a4b9f8a8bd1f8a86d29e87f775e215
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.6

Release history Release notifications | RSS feed

This release

10.11.7 This release

2 release files

10.9.0

2 release files

10.8.0

2 release files

10.7.0

2 release files

10.6.3

2 release files

10.6.2

2 release files

10.6.1

2 release files

10.6.0

2 release files

10.5.9

2 release files

10.5.8

2 release files

10.5.7

2 release files

10.5.6

2 release files

10.5.5

2 release files

10.5.4

2 release files

10.5.3

2 release files

10.5.2

2 release files

10.5.1

2 release files

10.5.0

2 release files

10.4.2

2 release files

10.4.1

2 release files

10.4.0

2 release files

10.3.1

2 release files

10.3.0

2 release files

10.2.1

2 release files

10.2.0

2 release files

10.1.3

2 release files

10.1.2

2 release files

10.1.1

2 release files

10.1.0

2 release files

10.0.4

2 release files

10.0.3

2 release files

10.0.2

2 release files

10.0.1

2 release files

10.0.0

2 release files

9.5.1

2 release files

9.5.0

2 release files

9.4.2

2 release files

9.4.1

2 release files

9.4.0

2 release files

9.3.8

2 release files

9.3.7

2 release files

9.3.6

2 release files

9.3.5

2 release files

9.3.4

2 release files

9.3.3

2 release files

9.3.2

2 release files

9.3.1

2 release files

9.3.0

2 release files

9.2.8

2 release files

9.2.7

2 release files

9.2.6

2 release files

9.2.5

2 release files

9.2.4

2 release files

9.2.3

2 release files

9.2.2

2 release files

9.2.1

2 release files

9.2.0

2 release files

9.1.0

2 release files

9.0.0

2 release files

8.0.3

2 release files

8.0.2

2 release files

8.0.1

2 release files

8.0.0

2 release files

7.3.0

2 release files

7.2.0

2 release files

7.1.2

2 release files

7.1.1

2 release files

7.1.0

2 release files

7.0.0

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.24.0

2 release files

4.23.0

2 release files

4.22.1

2 release files

4.22.0

2 release files

4.21.0

2 release files

4.20.0

2 release files

4.17.0

2 release files

4.16.0

2 release files

4.15.0

2 release files

4.14.0

2 release files

4.13.0

2 release files

4.12.0

2 release files

4.11.0

2 release files

4.10.0

2 release files

4.9.0

2 release files

4.8.0

2 release files

4.7.0

2 release files

4.6.0

2 release files

4.5.0

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.11.0

2 release files

2.10.0

2 release files

2.9.0

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.6

1 release file

0.6.3

1 release file

0.5.15

1 release file

0.5.14

1 release file

0.5.13

1 release file

0.5.12

1 release file

0.5.11

1 release file

0.5.10

1 release file

0.5.9

1 release file

0.5.8

1 release file

0.5.7

1 release file

0.5.4

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.19

1 release file

0.4.18

1 release file

0.4.17

1 release file

0.4.16

1 release file

0.4.15

1 release file

0.4.14

1 release file

0.4.12

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.18

1 release file

0.3.17

1 release file

0.3.16

1 release file

0.3.15

1 release file

0.3.13

1 release file

0.3.12

1 release file

0.3.11

1 release file

0.3.10

1 release file

0.3.9

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.2.1

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

0.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page