Run: Configuration

Run

Configuration

Storage paths, metadata defaults, split strategies, evaluators, and regression estimators.

Storage paths

python
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.

python
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.

python
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

KeyGrouping ruleRequirements
defaultRandom scikit-learn split.No grouping column.
kmerClusters raw character k-mer counts; sequence length also affects grouping.Sequence plus optional k and cluster count.
chromosomeHolds out complete chromosomes.chromosome column.
homologyKeeps homologous genes together.Non-null gene and a species.
hard-kmerUses max(2, N // 1000) clusters for at least 2,000 rows, N // 250 below that, and N // 25 below 500 rows.Sequence.

Homology maps

python
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,
)