Run
Configuration
Storage paths, metadata defaults, split strategies, evaluators, and regression estimators.Storage paths
import mrna_bench as mb
mb.update_data_path("/data/mrnabench")
mb.update_model_weights_path("/models/mrnabench")mRNABench stores processed datasets, embeddings, results, and downloaded weights under these paths. The setters save their absolute locations inmrna_bench/config.yaml inside the installed package, so that directory must be writable.
Override metadata defaults
The next two snippets use the dataset, model, andembeddings created in the benchmarking guide.
from mrna_bench.linear_probe import LinearProbeBuilder
probe = (
LinearProbeBuilder(dataset)
.fetch_embedding_by_embedding_instance(
model.short_name,
embeddings,
)
.build_splitter(
"homology",
split_ratios=(0.7, 0.15, 0.15),
species="human",
eval_all_splits=True,
)
.build_evaluator("multilabel")
.set_target("target")
.build()
)Split ratios must sum to one. A partition may have size zero only when the run does not train on or evaluate that partition.
Choose a regression estimator
Embed mrl-sugimoto as shown in the benchmarking guide and use that array as regression_embeddings.
import mrna_bench as mb
from mrna_bench.linear_probe import LinearProbeBuilder
regression_dataset = mb.load_dataset("mrl-sugimoto")
probe = (
LinearProbeBuilder(regression_dataset)
.fetch_embedding_by_embedding_instance(
model.short_name,
regression_embeddings,
)
.build_evaluator("regression")
.set_target("target")
.set_regressor("ridge") # or "ols"
.build()
)ols uses ordinary least squares. ridge uses cross-validated ridge regression over alpha values from 0.001 to 10. The persisted task names are regression_ols andregression_ridge.
Split strategies
| Key | Grouping rule | Requirements |
|---|---|---|
default | Random scikit-learn split. | No grouping column. |
kmer | Clusters raw character k-mer counts; sequence length also affects grouping. | Sequence plus optional k and cluster count. |
chromosome | Holds out complete chromosomes. | chromosome column. |
homology | Keeps homologous genes together. | Non-null gene and a species. |
hard-kmer | Uses max(2, N // 1000) clusters for at least 2,000 rows, N // 250 below that, and N // 25 below 500 rows. | Sequence. |
Homology maps
from mrna_bench.data_splitter.homology_split import (
HomologySplitter,
)
# Published map: Ensembl 110, >35% identity threshold
published = HomologySplitter(species="human")
# Rebuild groups at a different threshold
threshold_ablation = HomologySplitter(
species="human",
similarity_threshold=50,
)
# Use a newer Ensembl release
new_release = HomologySplitter(
species="human",
ensembl_version=115,
)