Skip to content

MegaDNA Models Inference

This tutorial demonstrates sequence generation and scoring with megaDNA, a specialized DNA language model that uses a custom architecture.

Full Notebook

View Full Notebook

Prerequisites

uv pip install -e '.[base,inference,cuda124]'

Load Configuration

from dnallm import load_config

configs = load_config("./inference_megaDNA_config.yaml")

Load Model

from dnallm import load_model_and_tokenizer

model_name = "lingxusb/megaDNA_updated"
model, tokenizer = load_model_and_tokenizer(
    model_name,
    task_config=configs['task'],
    source="huggingface"
)

Create Inference Engine

from dnallm import DNAInference

inference_engine = DNAInference(
    model=model,
    tokenizer=tokenizer,
    config=configs
)

Generate Sequences

output = inference_engine.generate(
    ["ACGT"],
    n_tokens=1024,
    temperature=0.95,
    top_p=0.1
)

Display results:

for seq in output:
    print(f"Input Sequence: {seq['Prompt']}")
    print(f"Generated Sequence: {seq['Output']}")
    print()

Score Sequences

scores = inference_engine.scoring(["ATCCGCATG", "ATGCGCATG"])
for res in scores:
    print(f"Input Sequence: {res['Input']}")
    print(f"Score: {res['Score']}")
    print()