MegaDNA Models
In [1]:
Copied!
## Make sure you have installed the dependencies for megaDNA model
# !git clone https://github.com/lingxusb/megaDNA
# !cd megaDNA
# !uv pip install -e .
## Make sure you have installed the dependencies for megaDNA model
# !git clone https://github.com/lingxusb/megaDNA
# !cd megaDNA
# !uv pip install -e .
In [2]:
Copied!
from dnallm import load_config
from dnallm import load_model_and_tokenizer, DNAInference
from dnallm import load_config
from dnallm import load_model_and_tokenizer, DNAInference
In [3]:
Copied!
# Load configurations
configs = load_config("./inference_megaDNA_config.yaml")
# Load configurations
configs = load_config("./inference_megaDNA_config.yaml")
In [ ]:
Copied!
model_name = "lingxusb/megaDNA_updated"
model, tokenizer = load_model_and_tokenizer(model_name, task_config=configs['task'], source="huggingface")
model_name = "lingxusb/megaDNA_updated"
model, tokenizer = load_model_and_tokenizer(model_name, task_config=configs['task'], source="huggingface")
2025-10-10 02:38:15,906 - modelscope - INFO - Not logged-in, you can login for uploadingor accessing controlled entities.
Downloading Model from https://www.modelscope.cn to directory: /home/liuguanqing/.cache/modelscope/hub/models/lgq12697/megaDNA_updated 02:38:16 - dnallm.models.model - INFO - Model files are stored in /home/liuguanqing/.cache/modelscope/hub/models/lgq12697/megaDNA_updated
In [5]:
Copied!
# Create inference engine
inference_engine = DNAInference(
model=model,
tokenizer=tokenizer,
config=configs
)
# Create inference engine
inference_engine = DNAInference(
model=model,
tokenizer=tokenizer,
config=configs
)
02:38:17 - dnallm.models.model - INFO - Using device: cuda
In [6]:
Copied!
output = inference_engine.generate(["ACGT"], n_tokens=1024, temperature=0.95, top_p=0.1)
output = inference_engine.generate(["ACGT"], n_tokens=1024, temperature=0.95, top_p=0.1)
0%| | 0/1020 [00:00<?, ?it/s]
/home/liuguanqing/miniforge3/lib/python3.12/contextlib.py:105: FutureWarning: `torch.backends.cuda.sdp_kernel()` is deprecated. In the future, this context manager will be removed. Please see `torch.nn.attention.sdpa_kernel()` for the new context manager, with updated signature. self.gen = func(*args, **kwds)
In [7]:
Copied!
for seq in output:
print(f"Input Sequence: {seq['Prompt']}")
print(f"Generated Sequence: {seq['Output']}")
print()
for seq in output:
print(f"Input Sequence: {seq['Prompt']}")
print(f"Generated Sequence: {seq['Output']}")
print()
Input Sequence: ACGT Generated Sequence: ACGTGTGGCTCGAATATGGGCAGATTGAGCAGCTTGAGCGGCTCGTAAATGAAAGCGGAATTGACATTGCAAATACCGACGACCACTATTACTTGAAAATTGATGAGGTGTAAATGATGGACGCTACAATGAACTATAACACGTTGCCCTATCTTTCCAAGGCGCAGAACGGAGTGACTGAGAGGCTCCAAAAGGGAGACATCACGCAGAAAGATATCTTGCAGGACATTTTGTCAGACGGTTTCTTTTTTTTGAAGATTAAAGGGCGGAGCTTTGCGGATGCGTCTGAAAAACTGGCTCATCATGGGCGAAAAAAGACAGTCGCTAATATTGACATCTCAAAGTTGTTAAATGCGGCGGAAGATAAGGGCTTTATGAACCGTTACCTAAAGCTCGTGGATTCGCTACAGAGAATAATCAAGGGAGGGGATGTTGGAATCTTGGACGGCTATCAAAACGGCACTGAATTCGACAGCGTATTGGCTAGATGCATTGACAAGTTTAATATACAAGACTTCATGAGACCTGCAAACGAGGGAAGAGGCGTGGAAAGTATATCTTTGACGGCTTTGCTTACCCGTCAAAAGCAAAAAGCCAAGTATTCCAAGATGCTTCTGCGAATGCCGGCTGCGGAATTGAAAAATGAATTGGCAAAGCTGTGCCCCGACTGCAAAGATAGAAAAGAGAAATACAAATTACCCAGATGGTTAGCTTCAAATAATAAAGATGCATGGCTTTATTCTTATATGCCTGATGTGGGCAAACGTTGGAATGTCAATAATGCGACGCTTGTAGAATGAGGAATTAACAATATCAGAGGGAGGATTCCCGTAGCCGCCTTTCTTATTTCTTTCGATACCGAATGAAATCGATGATCTCACCGGGCTTGAGCTTGACGATGCAGGACTGGATTTTGGAGATTCCCTGTCGGCGCATGATTCCGACATTGAGGCAGCGCAGTTTTTCCCGGCGCATTTCTTCAACAGGTTTGCGCCCGGCCTTGGCCTCCGCCGTAAGATAGTTC
In [8]:
Copied!
scores = inference_engine.scoring(["ATCCGCATG", "ATGCGCATG"])
for res in scores:
print(f"Input Sequence: {res['Input']}")
print(f"Score: {res['Score']}")
print()
scores = inference_engine.scoring(["ATCCGCATG", "ATGCGCATG"])
for res in scores:
print(f"Input Sequence: {res['Input']}")
print(f"Score: {res['Score']}")
print()
Input Sequence: ATCCGCATG Score: 1.4011831283569336 Input Sequence: ATGCGCATG Score: 1.4185738563537598
In [ ]:
Copied!