A lightweight Python wrapper around the NVIDIA hosted Evo2-40b API that extracts intermediate embeddings and sequence probabilities for DNA sequences provided in FASTA format.
For every sequence in a FASTA file, the wrapper:
-
Extracts 8,000+ dimensional embeddings from the 15th transformer block (
blocks.14.mlp.l3) via the/forwardendpoint.The Evo 2 paper (Brixi et al., Nature 2026) shows that intermediate MLP layers yield more informative, context-dependent representations than the raw embedding layer or final norm layer.
-
Computes a final probability value from the
unembedlogits (softmax confidence) reflecting how probable the input sequence is under the model's distribution.
pip install requests numpypython evo2_wrapper.pypython evo2_wrapper.py \
--api-key "nvapi-XXXXXXXX" \
--fasta example.fasta \
--out-dir evo2_resultsYou can also set the API key via environment variable:
export EVO2_API_KEY="nvapi-XXXXXXXX"
python evo2_wrapper.py --fasta example.fastaFor each sequence the script creates two text files in --out-dir (default: evo2_results/):
| File | Description |
|---|---|
{seq_id}_embeddings.txt |
Mean-pooled embedding vector from block 14 (~8,192 values, one per line) |
{seq_id}_probabilities.txt |
mean_confidence, mean_entropy, and per-position max probabilities |
$ python evo2_wrapper.py --fasta example.fasta --out-dir evo2_results
[->] Processing example_seq_1 (length=16)
Saved mean-pooled embedding (8192 dims) -> evo2_results\example_seq_1_embeddings.txt
Saved probability summary (mean_confidence=0.4615) -> evo2_results\example_seq_1_probabilities.txt
Done. Processed 1 sequence(s).- Paper: Brixi et al., "Genome modelling and design across all domains of life with Evo 2", Nature, 2026. doi:10.1038/s41586-026-10176-5
- API Docs: NVIDIA NIM for Evo2
- GitHub: ArcInstitute/evo2