From f8a479a007d1b25a9096ed923ade59ddf7c3cd2a Mon Sep 17 00:00:00 2001 From: Ken Chen Date: Fri, 14 Aug 2026 14:56:21 -0500 Subject: [PATCH 1/2] Add SpliceBERT 1024nt benchmark results --- harness/extractors/splicebert.py | 246 +++++++++++++++++++++++++++++ model_cards/splicebert-1024nt.md | 28 ++++ submissions/splicebert-1024nt.json | 1 + 3 files changed, 275 insertions(+) create mode 100644 harness/extractors/splicebert.py create mode 100644 model_cards/splicebert-1024nt.md create mode 100644 submissions/splicebert-1024nt.json diff --git a/harness/extractors/splicebert.py b/harness/extractors/splicebert.py new file mode 100644 index 0000000..bdf6481 --- /dev/null +++ b/harness/extractors/splicebert.py @@ -0,0 +1,246 @@ +"""Frozen SpliceBERT.1024nt embeddings for the GENEB harness.""" + +from __future__ import annotations + +import os +from contextlib import nullcontext +from pathlib import Path +from typing import ContextManager, Sequence + +import numpy as np +import torch +from torch import Tensor +from transformers import AutoModelForMaskedLM + +from .base import BaseEmbeddingExtractor + + +MAX_NUCLEOTIDES = 1024 +WINDOW_STRIDE = 512 +HIDDEN_SIZE = 512 +_TOKEN_IDS = {"N": 5, "A": 6, "C": 7, "G": 8, "T": 9} +_IUPAC_AMBIGUOUS = frozenset("RYSWKMBDHV") +_ALLOWED_BASES = frozenset(_TOKEN_IDS) | _IUPAC_AMBIGUOUS | {"U"} + + +def _normalize_sequence(sequence: str) -> str: + """Normalize one nucleotide sequence for SpliceBERT. + + Parameters + ---------- + sequence + Raw DNA or RNA sequence. + + Returns + ------- + str + Uppercase DNA sequence with ambiguity codes converted to ``N``. + + Raises + ------ + TypeError + If ``sequence`` is not a string. + ValueError + If the sequence contains a non-IUPAC character. + """ + if not isinstance(sequence, str): + raise TypeError("SpliceBERT sequences must be strings") + normalized = sequence.upper() + invalid = sorted(set(normalized) - _ALLOWED_BASES) + if invalid: + raise ValueError(f"Unsupported characters in sequence: {invalid}") + return "".join( + "T" if base == "U" else "N" if base in _IUPAC_AMBIGUOUS else base + for base in normalized + ) + + +def _window_starts( + length: int, + window_size: int = MAX_NUCLEOTIDES, + stride: int = WINDOW_STRIDE, +) -> list[int]: + """Return sliding-window starts with a final end-anchored window. + + Parameters + ---------- + length + Raw sequence length. + window_size + Maximum number of nucleotides per window. + stride + Distance between regular window starts. + + Returns + ------- + list[int] + Zero-based starts covering the complete sequence. + """ + if length < 0: + raise ValueError("Sequence length cannot be negative") + if window_size < 1 or stride < 1: + raise ValueError("Window size and stride must be positive") + if length <= window_size: + return [0] + starts = list(range(0, length - window_size + 1, stride)) + end_start = length - window_size + if starts[-1] != end_start: + starts.append(end_start) + return starts + + +def _encode_batch(sequences: Sequence[str]) -> tuple[Tensor, Tensor]: + """Encode normalized nucleotide windows with dynamic PAD tokens. + + Parameters + ---------- + sequences + Normalized windows no longer than 1,024 nt. + + Returns + ------- + tuple[torch.Tensor, torch.Tensor] + Integer input IDs and attention mask. + """ + if not sequences: + raise ValueError("Cannot encode an empty batch") + if any(len(sequence) > MAX_NUCLEOTIDES for sequence in sequences): + raise ValueError(f"SpliceBERT windows cannot exceed {MAX_NUCLEOTIDES} nt") + + max_tokens = max(len(sequence) for sequence in sequences) + 2 + input_ids = torch.zeros((len(sequences), max_tokens), dtype=torch.long) + attention_mask = torch.zeros_like(input_ids) + for row, sequence in enumerate(sequences): + encoded = [_TOKEN_IDS[base] for base in sequence] + token_count = len(encoded) + 2 + input_ids[row, 0] = 2 + if encoded: + input_ids[row, 1 : token_count - 1] = torch.tensor(encoded) + input_ids[row, token_count - 1] = 3 + attention_mask[row, :token_count] = 1 + return input_ids, attention_mask + + +def _masked_mean_pool(hidden: Tensor, attention_mask: Tensor) -> Tensor: + """Mean-pool final hidden states over all non-PAD tokens. + + The attention mask includes both ``[CLS]`` and ``[SEP]``. + + Parameters + ---------- + hidden + Final-layer hidden states with shape ``(batch, tokens, hidden)``. + attention_mask + Mask with one for non-PAD tokens. + + Returns + ------- + torch.Tensor + Pooled embeddings with shape ``(batch, hidden)``. + """ + mask = attention_mask.unsqueeze(-1).to(dtype=hidden.dtype) + return (hidden * mask).sum(dim=1) / mask.sum(dim=1) + + +def _inference_context(device: torch.device) -> ContextManager[object]: + """Return BF16 autocast on CUDA and a no-op context on CPU.""" + if device.type == "cuda": + return torch.autocast(device_type="cuda", dtype=torch.bfloat16) + return nullcontext() + + +class SpliceBERTExtractor(BaseEmbeddingExtractor): + """Extract mean-pooled embeddings from a local SpliceBERT.1024nt model.""" + + def __init__(self, name_model: str, device: str) -> None: + """Load the frozen SpliceBERT encoder. + + Parameters + ---------- + name_model + Local Hugging Face checkpoint directory. + device + PyTorch device, for example ``cpu`` or ``cuda``. + """ + self.name_model = str( + Path(os.path.expandvars(os.path.expanduser(name_model))).resolve() + ) + self.device = torch.device(device) + if self.device.type == "cuda" and not torch.cuda.is_available(): + raise RuntimeError("CUDA was requested but is not available") + + load_kwargs: dict[str, object] = {"local_files_only": True} + if self.device.type == "cuda": + load_kwargs["attn_implementation"] = "sdpa" + container = AutoModelForMaskedLM.from_pretrained( + self.name_model, + **load_kwargs, + ) + self.model = container.bert.to(self.device).eval() + self.model.config.output_hidden_states = False + if int(self.model.config.max_position_embeddings) != MAX_NUCLEOTIDES + 2: + raise ValueError( + "Expected SpliceBERT.1024nt max_position_embeddings=1026, " + f"found {self.model.config.max_position_embeddings}" + ) + if int(self.model.config.hidden_size) != HIDDEN_SIZE: + raise ValueError( + f"Expected SpliceBERT hidden_size={HIDDEN_SIZE}, " + f"found {self.model.config.hidden_size}" + ) + + def extract_embeddings( + self, + sequences: list[str], + batch_size: int = 8, + ) -> np.ndarray: + """Embed sequences, averaging equally across long-sequence windows. + + Parameters + ---------- + sequences + DNA or RNA sequences in source order. + batch_size + Maximum number of windows per model forward pass. + + Returns + ------- + numpy.ndarray + Float32 embeddings with shape ``(n_sequences, 512)``. + """ + if batch_size < 1: + raise ValueError("batch_size must be positive") + if not sequences: + return np.empty((0, HIDDEN_SIZE), dtype=np.float32) + + normalized = [_normalize_sequence(sequence) for sequence in sequences] + windows: list[str] = [] + owners: list[int] = [] + for sequence_index, sequence in enumerate(normalized): + for start in _window_starts(len(sequence)): + windows.append(sequence[start : start + MAX_NUCLEOTIDES]) + owners.append(sequence_index) + + sums = np.zeros((len(sequences), HIDDEN_SIZE), dtype=np.float64) + counts = np.zeros(len(sequences), dtype=np.int64) + with torch.inference_mode(): + for start in range(0, len(windows), batch_size): + batch_windows = windows[start : start + batch_size] + batch_owners = owners[start : start + batch_size] + input_ids, attention_mask = _encode_batch(batch_windows) + input_ids = input_ids.to(self.device) + attention_mask = attention_mask.to(self.device) + with _inference_context(self.device): + hidden = self.model( + input_ids=input_ids, + attention_mask=attention_mask, + output_hidden_states=False, + return_dict=True, + ).last_hidden_state + pooled = _masked_mean_pool(hidden, attention_mask) + batch_embeddings = pooled.float().cpu().numpy() + for owner, embedding in zip(batch_owners, batch_embeddings): + sums[owner] += embedding + counts[owner] += 1 + + return (sums / counts[:, None]).astype(np.float32) diff --git a/model_cards/splicebert-1024nt.md b/model_cards/splicebert-1024nt.md new file mode 100644 index 0000000..79b6c5c --- /dev/null +++ b/model_cards/splicebert-1024nt.md @@ -0,0 +1,28 @@ +# splicebert-1024nt + +- **Display name:** SpliceBERT 1024nt +- **Parameters:** 19,710,474 in the checkpoint +- **Architecture:** Six-layer BERT encoder, 512-dimensional hidden states, 16 attention heads +- **Weights / URL:** [Zenodo record 7995778](https://doi.org/10.5281/zenodo.7995778), `SpliceBERT.1024nt` +- **Checkpoint SHA-256:** `2ad91428c318e6c49233154073ca7a35f5f7899c9f4be3444775bae3dba0149d` (`pytorch_model.bin`) +- **Tokenizer / input:** Single nucleotides; sequences are uppercased, U is converted to T, and supported IUPAC ambiguity symbols are mapped to N +- **Pooling:** Mean of the final hidden states over non-padding tokens, including `[CLS]` and `[SEP]` + +## GENEB inference + +Sequences up to 1,024 nt are embedded in one pass. Longer sequences use 1,024-nt windows with a stride of 512 nt. The final window is anchored to the sequence end so every nucleotide is covered, and window embeddings are averaged with equal weight to produce one sequence embedding. + +Inference uses CUDA BF16 autocast and PyTorch scaled dot-product attention (SDPA). The GENEB probes use the frozen sequence embeddings produced by this procedure. + +## Training data + +SpliceBERT was pretrained on more than two million primary RNA sequences from 72 vertebrates. The `SpliceBERT.1024nt` checkpoint was trained on variable-length fragments spanning 64--1,024 nt. + +## Disclosure + +- **Zero-shot relative to benchmark tasks:** Not claimed; sequence-level overlap has not been established. +- **Known train/test overlap with benchmark data:** Unknown. The vertebrate primary-RNA pretraining corpus may overlap genomic loci represented in GENEB. +- **Short-sequence behavior:** Eleven GENEB tasks include sequences shorter than the 64-nt lower bound used in pretraining. They are evaluated unchanged and should be treated as out of distribution for sequence length. +- **Long-sequence behavior:** Sliding-window inference extends the model beyond its native 1,024-nt context without truncating sequence content. +- **Harness version:** GENEB-0.1.0 +- **Submitted by:** Ken Chen diff --git a/submissions/splicebert-1024nt.json b/submissions/splicebert-1024nt.json new file mode 100644 index 0000000..e57766e --- /dev/null +++ b/submissions/splicebert-1024nt.json @@ -0,0 +1 @@ +{"schema_version":"1.0","model_id":"splicebert-1024nt","harness_version":"GENEB-0.1.0","meta":{"display":"SpliceBERT 1024nt","params":19710474,"url":"https://doi.org/10.5281/zenodo.7995778","zero_shot":false,"training_data":"vertebrate primary RNA","provenance":"self-reported","submitted_by":"Ken Chen"},"results":{"full":{"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3":{"MCC":0.7367776543707047,"Acc":0.8684034736138944,"F1":0.8683574194556349},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K14ac":{"MCC":0.4380712263723795,"Acc":0.7264750378214826,"F1":0.7179373890714097},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K36me3":{"MCC":0.5096388858748017,"Acc":0.7565940366972477,"F1":0.7548163655459315},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me1":{"MCC":0.4452734461832538,"Acc":0.7256944444444444,"F1":0.7223635172701387},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me2":{"MCC":0.31110801095201523,"Acc":0.6767676767676768,"F1":0.6465760065529376},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me3":{"MCC":0.31644259030721833,"Acc":0.6605978260869565,"F1":0.657795761027929},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K79me3":{"MCC":0.578348490840116,"Acc":0.7902219140083218,"F1":0.78911440062124},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K9ac":{"MCC":0.4980020517223244,"Acc":0.7524289312702411,"F1":0.7489529815995773},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H4":{"MCC":0.771245734383448,"Acc":0.8870636550308009,"F1":0.8856224423225194},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H4ac":{"MCC":0.3763235266122138,"Acc":0.6912023460410557,"F1":0.6876629595998932},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H2AFZ":{"MCC":0.4169746823268582,"Acc":0.7046666666666667,"F1":0.7023264231551967},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K27ac":{"MCC":0.45992676693213924,"Acc":0.7264851485148515,"F1":0.7244167885870203},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K27me3":{"MCC":0.5541876086544326,"Acc":0.7686666666666667,"F1":0.7655113879022797},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K36me3":{"MCC":0.5107987511428976,"Acc":0.753,"F1":0.7516276322806315},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me1":{"MCC":0.43283486753368,"Acc":0.712,"F1":0.7087272594876027},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me2":{"MCC":0.47363917090586927,"Acc":0.7329279700654817,"F1":0.7307337451296321},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me3":{"MCC":0.5724387916736303,"Acc":0.7860824742268041,"F1":0.786031307305924},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K9ac":{"MCC":0.5132010546512012,"Acc":0.7559760956175299,"F1":0.7556791826704847},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K9me3":{"MCC":0.3633207387595053,"Acc":0.6811764705882353,"F1":0.6807518373920189},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H4K20me1":{"MCC":0.578643807115948,"Acc":0.786784140969163,"F1":0.7858490566037737},"leannmlindsey_GUE_emp_H3":{"MCC":0.7100640012914818,"Acc":0.8550434201736807,"F1":0.8550224596496161},"leannmlindsey_GUE_emp_H3K14ac":{"MCC":0.430160589912599,"Acc":0.7225416036308623,"F1":0.7148734046515557},"leannmlindsey_GUE_emp_H3K36me3":{"MCC":0.5067028211779716,"Acc":0.7571674311926605,"F1":0.7532225890421407},"leannmlindsey_GUE_emp_H3K4me1":{"MCC":0.4080286528031528,"Acc":0.7083333333333334,"F1":0.7025963808025177},"leannmlindsey_GUE_emp_H3K4me2":{"MCC":0.3114935856732595,"Acc":0.6741609644835451,"F1":0.6478420716846207},"leannmlindsey_GUE_emp_H3K4me3":{"MCC":0.3113031410690067,"Acc":0.6581521739130435,"F1":0.6535969367979626},"leannmlindsey_GUE_emp_H3K79me3":{"MCC":0.6004389818001263,"Acc":0.8009708737864077,"F1":0.8002098054351483},"leannmlindsey_GUE_emp_H3K9ac":{"MCC":0.524946452432992,"Acc":0.7650233897085282,"F1":0.7624723212891482},"leannmlindsey_GUE_emp_H4":{"MCC":0.7734986398136225,"Acc":0.8884325804243669,"F1":0.8863878479370071},"leannmlindsey_GUE_emp_H4ac":{"MCC":0.41289729373234907,"Acc":0.7085043988269795,"F1":0.7054365883154908},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_all":{"MCC":0.9355460653646126,"Acc":0.9677364864864865,"F1":0.9677352261437576},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_no_tata":{"MCC":0.9362763812850023,"Acc":0.9681071900358557,"F1":0.9681006282587303},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_tata":{"MCC":0.9002623244959264,"Acc":0.9500805152979066,"F1":0.9499304264145545},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_all":{"MCC":0.7438582477240174,"Acc":0.8718434343434345,"F1":0.8718286712157806},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_no_tata":{"MCC":0.765571503372452,"Acc":0.881924198250729,"F1":0.881791319109829},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_tata":{"MCC":0.8210836255346567,"Acc":0.910377358490566,"F1":0.9103594080338266},"InstaDeepAI_plant-genomic-benchmark_pro_seq.m_esculenta":{"MCC":0.4230914674445524,"Acc":0.7118226600985221,"F1":0.7108121271155485},"iPro-WAEL_Promoter_Arabidopsis_NonTATA":{"MCC":0.8694732278985973,"Acc":0.9345187694044595,"F1":0.9345029858586065},"iPro-WAEL_Promoter_Arabidopsis_TATA":{"MCC":0.8312195031841749,"Acc":0.9230769230769231,"F1":0.9153796725654738},"iPro-WAEL_Promoter_B_amyloliquefaciens":{"MCC":0.6101445290073532,"Acc":0.8050314465408805,"F1":0.8050005934248526},"iPro-WAEL_Promoter_GM12878":{"MCC":0.8844162643518159,"Acc":0.9421818181818182,"F1":0.9421800979202686},"iPro-WAEL_Promoter_HUVEC":{"MCC":0.9148274108657246,"Acc":0.9574111334674715,"F1":0.9574110137322194},"iPro-WAEL_Promoter_Hela-S3":{"MCC":0.8986767341998281,"Acc":0.9492506811989101,"F1":0.9492457294742991},"iPro-WAEL_Promoter_NHEK":{"MCC":0.8435476088774759,"Acc":0.9217221135029355,"F1":0.9217173167882653},"iPro-WAEL_Promoter_R_capsulatus":{"MCC":0.3226428113802837,"Acc":0.6611023622047244,"F1":0.6611007148797847},"katarinagresova_Genomic_Benchmarks_human_nontata_promoters":{"MCC":0.7497258655155224,"Acc":0.8732565862297985,"F1":0.8730283712929394},"leannmlindsey_GUE_prom_300_all":{"MCC":0.8309601541190205,"Acc":0.9153716216216218,"F1":0.9153407764099588},"leannmlindsey_GUE_prom_300_notata":{"MCC":0.9329628957371534,"Acc":0.9664593932541926,"F1":0.9664582487669764},"leannmlindsey_GUE_prom_300_tata":{"MCC":0.5987966977869247,"Acc":0.799347471451876,"F1":0.799294059398034},"leannmlindsey_GUE_prom_core_all":{"MCC":0.6220588442235107,"Acc":0.8109797297297299,"F1":0.810973856103032},"leannmlindsey_GUE_prom_core_notata":{"MCC":0.6775012631264341,"Acc":0.8387035990201619,"F1":0.8386980951939986},"leannmlindsey_GUE_prom_core_tata":{"MCC":0.5109223390924024,"Acc":0.7553017944535073,"F1":0.7550664876614244},"InstaDeepAI_nucleotide_transformer_downstream_tasks_enhancers":{"MCC":0.467584704520274,"Acc":0.7325,"F1":0.7317606653338264},"InstaDeepAI_nucleotide_transformer_downstream_tasks_enhancers_types":{"MCC":0.29193706434042394,"Acc":0.5525,"F1":0.4765996796477235},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_enhancers":{"MCC":0.47664597898082983,"Acc":0.7336666666666667,"F1":0.7328780931173372},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_enhancers_types":{"MCC":0.4392419434901235,"Acc":0.7003333333333334,"F1":0.5232021277069734},"katarinagresova_Genomic_Benchmarks_drosophila_enhancers_stark":{"MCC":0.47714002969337643,"Acc":0.7300578034682081,"F1":0.7252435759179094},"katarinagresova_Genomic_Benchmarks_dummy_mouse_enhancers_ensembl":{"MCC":0.6561271695801358,"Acc":0.8264462809917357,"F1":0.8260184868195823},"katarinagresova_Genomic_Benchmarks_human_enhancers_cohn":{"MCC":0.48425550604552503,"Acc":0.742084052964882,"F1":0.742060778182084},"katarinagresova_Genomic_Benchmarks_human_enhancers_ensembl":{"MCC":0.48968515604536994,"Acc":0.7445269615757184,"F1":0.7443623017771307},"deep4mc_A.thaliana_4mC":{"MCC":0.22003926275019703,"Acc":0.609973643849487,"F1":0.6098925939771305},"deep4mc_C.elegans_4mC":{"MCC":0.21854417045688385,"Acc":0.6092642452882027,"F1":0.6092502282363823},"deep4mc_D.melanogaster_4mC":{"MCC":0.24366123885597496,"Acc":0.6218265682656826,"F1":0.6218202806757562},"deep4mc_E.coli_4mC":{"MCC":0.08949042772513502,"Acc":0.832303144316044,"F1":0.486875672923418},"deep4mc_G.pickeringii_4mC":{"MCC":0.12214352301795106,"Acc":0.8348045397225725,"F1":0.4965664965664966},"deep4mc_G.subterraneus_4mC":{"MCC":0.032161939188610426,"Acc":0.8326909664868041,"F1":0.4610074740564453},"iDNA_ABF_5mC":{"MCC":0.4978069635598742,"Acc":0.7482935153583617,"F1":0.7479850980718025},"iDNA_ABF_6mA":{"MCC":0.48321815104122623,"Acc":0.7415184902367187,"F1":0.7414700346477265},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_acceptors":{"MCC":0.5874986209760725,"Acc":0.7936666666666666,"F1":0.7933523555995335},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_all":{"MCC":0.41606898166122097,"Acc":0.6103333333333333,"F1":0.6027158236181597},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_donors":{"MCC":0.600613947992049,"Acc":0.8003333333333333,"F1":0.8002214351393931},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_acceptors":{"MCC":0.7925378667572591,"Acc":0.8954012623985573,"F1":0.8952130536495091},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_all":{"MCC":0.6105314431790064,"Acc":0.7403333333333333,"F1":0.7403118642624634},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_donors":{"MCC":0.8086573239719543,"Acc":0.9035486806187443,"F1":0.9034616379053162},"leannmlindsey_GUE_splice_reconstructed":{"MCC":0.6178947566120082,"Acc":0.7783866725120561,"F1":0.741150701896618},"InstaDeepAI_plant-genomic-benchmark_lncrna.g_max":{"MCC":0.3674656164921672,"Acc":0.6836734693877551,"F1":0.6836616116389203},"InstaDeepAI_plant-genomic-benchmark_lncrna.m_esculenta":{"MCC":0.4361549545886678,"Acc":0.7111111111111111,"F1":0.7100281917035844},"InstaDeepAI_plant-genomic-benchmark_lncrna.s_bicolor":{"MCC":0.4823526694856096,"Acc":0.7356948228882834,"F1":0.7355357779626768},"InstaDeepAI_plant-genomic-benchmark_lncrna.s_lycopersicum":{"MCC":0.29438872397058197,"Acc":0.6492537313432836,"F1":0.6465359697215236},"InstaDeepAI_plant-genomic-benchmark_lncrna.t_aestivum":{"MCC":0.33692186721922096,"Acc":0.6685082872928176,"F1":0.6683621119287033},"InstaDeepAI_plant-genomic-benchmark_lncrna.z_mays":{"MCC":0.3894029939576861,"Acc":0.6967464702271332,"F1":0.6941879731249809},"leannmlindsey_GUE_mouse_0":{"MCC":0.535573040034581,"Acc":0.7666666666666667,"F1":0.7661787818203201},"leannmlindsey_GUE_mouse_1":{"MCC":0.7936762419063677,"Acc":0.896515937731653,"F1":0.8964732276993075},"leannmlindsey_GUE_mouse_2":{"MCC":0.7444007919740454,"Acc":0.871951219512195,"F1":0.8719083571986461},"leannmlindsey_GUE_mouse_3":{"MCC":0.48267496109096325,"Acc":0.7405857740585774,"F1":0.7400350877192983},"leannmlindsey_GUE_mouse_4":{"MCC":0.4575199509537781,"Acc":0.7286245353159851,"F1":0.7285360299932317},"leannmlindsey_GUE_human_tf_0":{"MCC":0.6677590303706191,"Acc":0.8299999999999998,"F1":0.829012375480777},"leannmlindsey_GUE_human_tf_1":{"MCC":0.7203703479149709,"Acc":0.8560000000000001,"F1":0.8551634239366581},"leannmlindsey_GUE_human_tf_2":{"MCC":0.517616276907229,"Acc":0.757,"F1":0.7561511621956029},"leannmlindsey_GUE_human_tf_3":{"MCC":0.4706899180418668,"Acc":0.732,"F1":0.7300955542306515},"leannmlindsey_GUE_human_tf_4":{"MCC":0.6684766142779075,"Acc":0.833,"F1":0.8326906450026099},"katarinagresova_Genomic_Benchmarks_demo_human_or_worm":{"MCC":0.9273693063831592,"Acc":0.9636799999999999,"F1":0.9636798177598536},"leannmlindsey_GUE_fungi_species_20":{"MCC":0.8326911842391377,"Acc":0.841,"F1":0.8403329284006507},"leannmlindsey_GUE_virus_species_40":{"MCC":0.36400157025104857,"Acc":0.388,"F1":0.3535569733709625},"katarinagresova_Genomic_Benchmarks_human_ensembl_regulatory":{"MCC":0.5597012699511389,"Acc":0.7078994334032194,"F1":0.7090041148365631},"katarinagresova_Genomic_Benchmarks_human_ocr_ensembl":{"MCC":0.35155729952927306,"Acc":0.6756981002517739,"F1":0.6756237955546207},"leannmlindsey_GUE_phage_fragments":{"MCC":0.6820825978153441,"Acc":0.8410367170626349,"F1":0.8410356492372258},"leannmlindsey_GUE_virus_covid":{"MCC":0.17820444635615462,"Acc":0.2731239092495637,"F1":0.2688959568526873},"katarinagresova_Genomic_Benchmarks_demo_coding_vs_intergenomic_seqs":{"MCC":0.8903297534806217,"Acc":0.9447600000000002,"F1":0.9447348796595643},"iDHS-EL_DNase_I":{"MCC":0.7080437380527461,"Acc":0.8856209150326798,"F1":0.8536625356962302}},"10shot":{"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3":{"MCC":0.49079951460547167,"Acc":0.7422845691382766,"F1":0.7407117634235437},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K14ac":{"MCC":0.16767127996784756,"Acc":0.5925567322239031,"F1":0.5783491675636585},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K36me3":{"MCC":0.3176253461949289,"Acc":0.6556766055045872,"F1":0.6535327265561941},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me1":{"MCC":0.27714131876965625,"Acc":0.6370580808080807,"F1":0.6333411184697384},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me2":{"MCC":0.03404932747579901,"Acc":0.5244053437601824,"F1":0.5121194903234667},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me3":{"MCC":0.10066451010086433,"Acc":0.5520108695652174,"F1":0.5487317880672307},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K79me3":{"MCC":0.4124998946210849,"Acc":0.7047156726768377,"F1":0.7028947881556873},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K9ac":{"MCC":0.1936045082917554,"Acc":0.5942425332853545,"F1":0.5921522678406862},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H4":{"MCC":0.6412439570165019,"Acc":0.8227241615331964,"F1":0.8180493404451443},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H4ac":{"MCC":0.1106767135155478,"Acc":0.5596480938416422,"F1":0.5480966243040022},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H2AFZ":{"MCC":0.23312536681370583,"Acc":0.6111333333333333,"F1":0.60319253646773},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K27ac":{"MCC":0.21079299982665578,"Acc":0.5967821782178218,"F1":0.578246631652952},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K27me3":{"MCC":0.3574172744407599,"Acc":0.6716666666666666,"F1":0.6650427004237391},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K36me3":{"MCC":0.26470965724111667,"Acc":0.6295333333333333,"F1":0.6236905343699528},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me1":{"MCC":0.25251371757478025,"Acc":0.6186,"F1":0.6045555414915741},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me2":{"MCC":0.3174151452558555,"Acc":0.6546304957904584,"F1":0.6499865153897761},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me3":{"MCC":0.37201560278796336,"Acc":0.6845360824742268,"F1":0.683096554773372},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K9ac":{"MCC":0.29187905739057085,"Acc":0.6446215139442231,"F1":0.6428696257982984},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K9me3":{"MCC":0.02028182269710772,"Acc":0.5096470588235293,"F1":0.5066367901503701},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H4K20me1":{"MCC":0.4084626471783461,"Acc":0.6984140969162996,"F1":0.6937170325327702},"leannmlindsey_GUE_emp_H3":{"MCC":0.4768382804822299,"Acc":0.7362725450901804,"F1":0.7352631139205681},"leannmlindsey_GUE_emp_H3K14ac":{"MCC":0.21485156455325866,"Acc":0.6059304084720121,"F1":0.6002015939316516},"leannmlindsey_GUE_emp_H3K36me3":{"MCC":0.34783124933731885,"Acc":0.6739678899082568,"F1":0.6693625383450954},"leannmlindsey_GUE_emp_H3K4me1":{"MCC":0.14550489716293197,"Acc":0.5782828282828283,"F1":0.5723137942618594},"leannmlindsey_GUE_emp_H3K4me2":{"MCC":0.09769539708904725,"Acc":0.5414793092212447,"F1":0.5371745169134254},"leannmlindsey_GUE_emp_H3K4me3":{"MCC":0.05006800718268447,"Acc":0.5231521739130435,"F1":0.5211221091018643},"leannmlindsey_GUE_emp_H3K79me3":{"MCC":0.3488571156365824,"Acc":0.6730235783633842,"F1":0.6720045982171312},"leannmlindsey_GUE_emp_H3K9ac":{"MCC":0.2518852988701623,"Acc":0.6204390068369917,"F1":0.6150144017317764},"leannmlindsey_GUE_emp_H4":{"MCC":0.6258588828047043,"Acc":0.8090349075975359,"F1":0.8073652580736475},"leannmlindsey_GUE_emp_H4ac":{"MCC":0.11964875118426913,"Acc":0.5611730205278592,"F1":0.5578304411954939},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_all":{"MCC":0.741102420739556,"Acc":0.8691216216216215,"F1":0.8688702143969547},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_no_tata":{"MCC":0.7641726350910294,"Acc":0.8793357237214569,"F1":0.8788919672083454},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_tata":{"MCC":0.7240500263114106,"Acc":0.8611916264090176,"F1":0.8608303917678626},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_all":{"MCC":0.6350774879108677,"Acc":0.8099747474747474,"F1":0.8075042143994807},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_no_tata":{"MCC":0.6899408504775982,"Acc":0.8431486880466472,"F1":0.8426620847047406},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_tata":{"MCC":0.6220839221062189,"Acc":0.8066037735849058,"F1":0.8047476303456552},"InstaDeepAI_plant-genomic-benchmark_pro_seq.m_esculenta":{"MCC":0.16189650499864852,"Acc":0.577832512315271,"F1":0.5726117178658051},"iPro-WAEL_Promoter_Arabidopsis_NonTATA":{"MCC":0.744063096981594,"Acc":0.8690375388089189,"F1":0.8684552140331228},"iPro-WAEL_Promoter_Arabidopsis_TATA":{"MCC":0.7011712641778554,"Acc":0.8606245239908606,"F1":0.8486362805273302},"iPro-WAEL_Promoter_B_amyloliquefaciens":{"MCC":0.4949371897341778,"Acc":0.7440251572327045,"F1":0.7418548095179763},"iPro-WAEL_Promoter_GM12878":{"MCC":0.8374801146444696,"Acc":0.9171636363636363,"F1":0.9169869990987453},"iPro-WAEL_Promoter_HUVEC":{"MCC":0.8772304209963847,"Acc":0.9376928236083166,"F1":0.9376155532943906},"iPro-WAEL_Promoter_Hela-S3":{"MCC":0.8635103110245963,"Acc":0.9299727520435968,"F1":0.9297329716259707},"iPro-WAEL_Promoter_NHEK":{"MCC":0.7313129194347108,"Acc":0.8639921722113503,"F1":0.8636683198824928},"iPro-WAEL_Promoter_R_capsulatus":{"MCC":0.06066006541075469,"Acc":0.5306456692913385,"F1":0.5289165974939758},"katarinagresova_Genomic_Benchmarks_human_nontata_promoters":{"MCC":0.6352797308018768,"Acc":0.8124418862076599,"F1":0.8120484596113705},"leannmlindsey_GUE_prom_300_all":{"MCC":0.6171403675602962,"Acc":0.8012499999999999,"F1":0.7986076626352852},"leannmlindsey_GUE_prom_300_notata":{"MCC":0.7799102274039214,"Acc":0.8873940079140757,"F1":0.8870877225302228},"leannmlindsey_GUE_prom_300_tata":{"MCC":0.1944499157158395,"Acc":0.5977161500815661,"F1":0.5966460596189946},"leannmlindsey_GUE_prom_core_all":{"MCC":0.45948482291429277,"Acc":0.7274324324324324,"F1":0.726135936029765},"leannmlindsey_GUE_prom_core_notata":{"MCC":0.48159760158707865,"Acc":0.7384209534576974,"F1":0.7371543123155713},"leannmlindsey_GUE_prom_core_tata":{"MCC":0.322953911990394,"Acc":0.6590538336052203,"F1":0.6564267198141241},"InstaDeepAI_nucleotide_transformer_downstream_tasks_enhancers":{"MCC":0.40361508890591835,"Acc":0.6985,"F1":0.6958601212650357},"InstaDeepAI_nucleotide_transformer_downstream_tasks_enhancers_types":{"MCC":0.18614203851566508,"Acc":0.45899999999999996,"F1":0.4216405690438341},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_enhancers":{"MCC":0.2995364251843263,"Acc":0.64,"F1":0.6331110524994772},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_enhancers_types":{"MCC":0.23680579238588165,"Acc":0.5020666666666667,"F1":0.41658095974358716},"katarinagresova_Genomic_Benchmarks_drosophila_enhancers_stark":{"MCC":0.33482708192408084,"Acc":0.6575722543352601,"F1":0.6492494327372823},"katarinagresova_Genomic_Benchmarks_dummy_mouse_enhancers_ensembl":{"MCC":0.5633757470263755,"Acc":0.7793388429752066,"F1":0.7783761640231737},"katarinagresova_Genomic_Benchmarks_human_enhancers_cohn":{"MCC":0.31687560741224724,"Acc":0.6546632124352332,"F1":0.6508422278782},"katarinagresova_Genomic_Benchmarks_human_enhancers_ensembl":{"MCC":0.30931683131671495,"Acc":0.6533484016790443,"F1":0.6518088496306855},"deep4mc_A.thaliana_4mC":{"MCC":0.041641148387285463,"Acc":0.52050865881442,"F1":0.517496970181543},"deep4mc_C.elegans_4mC":{"MCC":0.025265793901554028,"Acc":0.5122479257102038,"F1":0.5085314274054491},"deep4mc_D.melanogaster_4mC":{"MCC":0.02327215408550469,"Acc":0.5115535055350554,"F1":0.5069510631584271},"deep4mc_E.coli_4mC":{"MCC":0.026453280616720025,"Acc":0.5172803009943563,"F1":0.45170533794459544},"deep4mc_G.pickeringii_4mC":{"MCC":0.04336962154199577,"Acc":0.5134736637889222,"F1":0.44857389700128153},"deep4mc_G.subterraneus_4mC":{"MCC":0.015345288878918681,"Acc":0.5544470139118305,"F1":0.4621248324319559},"iDNA_ABF_5mC":{"MCC":0.18002280495249937,"Acc":0.5898464163822525,"F1":0.5893845807044963},"iDNA_ABF_6mA":{"MCC":0.20427292301745545,"Acc":0.5982109741463948,"F1":0.5924531726559519},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_acceptors":{"MCC":0.24043923135118384,"Acc":0.617,"F1":0.6078542920393111},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_all":{"MCC":0.15674707167183968,"Acc":0.4357333333333333,"F1":0.4308078408224407},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_donors":{"MCC":0.3737187675644632,"Acc":0.6836666666666666,"F1":0.6820958002917543},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_acceptors":{"MCC":0.2776570420363874,"Acc":0.6377817853922452,"F1":0.6356171451641757},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_all":{"MCC":0.1307598720966354,"Acc":0.4192666666666667,"F1":0.4211227211075541},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_donors":{"MCC":0.31401534386584296,"Acc":0.6516833484986351,"F1":0.6459132014213006},"leannmlindsey_GUE_splice_reconstructed":{"MCC":0.25908927329448206,"Acc":0.5208680403331872,"F1":0.47142633954505564},"InstaDeepAI_plant-genomic-benchmark_lncrna.g_max":{"MCC":0.08696376269688486,"Acc":0.5432653061224489,"F1":0.5422782007000964},"InstaDeepAI_plant-genomic-benchmark_lncrna.m_esculenta":{"MCC":0.1474346597039627,"Acc":0.5694444444444444,"F1":0.5621098643340815},"InstaDeepAI_plant-genomic-benchmark_lncrna.s_bicolor":{"MCC":0.19051988419536997,"Acc":0.5888283378746594,"F1":0.5862449913323612},"InstaDeepAI_plant-genomic-benchmark_lncrna.s_lycopersicum":{"MCC":0.10616074726884779,"Acc":0.5561567164179104,"F1":0.5516865294497857},"InstaDeepAI_plant-genomic-benchmark_lncrna.t_aestivum":{"MCC":0.0545102340824609,"Acc":0.5272928176795582,"F1":0.5256023161788178},"InstaDeepAI_plant-genomic-benchmark_lncrna.z_mays":{"MCC":0.15103561462487727,"Acc":0.5796193984039288,"F1":0.5725616993258743},"leannmlindsey_GUE_mouse_0":{"MCC":0.19778133810669613,"Acc":0.5980246913580247,"F1":0.5948844722937892},"leannmlindsey_GUE_mouse_1":{"MCC":0.516464288214325,"Acc":0.7573313565604151,"F1":0.7568947671532023},"leannmlindsey_GUE_mouse_2":{"MCC":0.47543195215728823,"Acc":0.7335365853658538,"F1":0.7313832298225809},"leannmlindsey_GUE_mouse_3":{"MCC":0.18639474710329815,"Acc":0.59163179916318,"F1":0.5889078238608118},"leannmlindsey_GUE_mouse_4":{"MCC":0.11081547517648127,"Acc":0.5549654806160381,"F1":0.552383005010014},"leannmlindsey_GUE_human_tf_0":{"MCC":0.3591687458019381,"Acc":0.6764,"F1":0.6742436147888305},"leannmlindsey_GUE_human_tf_1":{"MCC":0.4321043799346878,"Acc":0.7118,"F1":0.7071887137388604},"leannmlindsey_GUE_human_tf_2":{"MCC":0.2349916474379357,"Acc":0.6157999999999999,"F1":0.6129392275819289},"leannmlindsey_GUE_human_tf_3":{"MCC":0.10510660930351737,"Acc":0.5494,"F1":0.5334825679171582},"leannmlindsey_GUE_human_tf_4":{"MCC":0.44174498417103747,"Acc":0.719,"F1":0.7177310908142339},"katarinagresova_Genomic_Benchmarks_demo_human_or_worm":{"MCC":0.7936309782107143,"Acc":0.8957919999999999,"F1":0.895643558932192},"leannmlindsey_GUE_fungi_species_20":{"MCC":0.5500857985600226,"Acc":0.5700000000000001,"F1":0.5418273172519863},"leannmlindsey_GUE_virus_species_40":{"MCC":0.25564011599126335,"Acc":0.2836,"F1":0.25347731788751476},"katarinagresova_Genomic_Benchmarks_human_ensembl_regulatory":{"MCC":0.20782062421738418,"Acc":0.46997383605080306,"F1":0.4693659504617174},"katarinagresova_Genomic_Benchmarks_human_ocr_ensembl":{"MCC":0.11217268434130978,"Acc":0.5553616388189517,"F1":0.5532580097238514},"leannmlindsey_GUE_phage_fragments":{"MCC":0.17057844059719499,"Acc":0.5812095032397409,"F1":0.5722579492814911},"leannmlindsey_GUE_virus_covid":{"MCC":0.009671834857351434,"Acc":0.11891361256544501,"F1":0.11168684025398587},"katarinagresova_Genomic_Benchmarks_demo_coding_vs_intergenomic_seqs":{"MCC":0.7716014321574535,"Acc":0.883888,"F1":0.8836138129590733},"iDHS-EL_DNase_I":{"MCC":0.6123783521109365,"Acc":0.8254901960784313,"F1":0.7976061235186449}},"1shot":{"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3":{"MCC":0.33163721881957076,"Acc":0.6501002004008015,"F1":0.6323533108717954},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K14ac":{"MCC":0.1445090327279508,"Acc":0.5940695915279879,"F1":0.5500306607803302},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K36me3":{"MCC":0.05821763304954704,"Acc":0.5207568807339449,"F1":0.506882553869219},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me1":{"MCC":0.2329110513108314,"Acc":0.5931818181818181,"F1":0.5726080183536161},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me2":{"MCC":0.004306838339326505,"Acc":0.5012056044314109,"F1":0.471621841335984},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K4me3":{"MCC":-0.004220127659794873,"Acc":0.49505434782608687,"F1":0.4661987431939192},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K79me3":{"MCC":0.2760521842099293,"Acc":0.6010402219140083,"F1":0.5759409329489754},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H3K9ac":{"MCC":-0.011656442817698768,"Acc":0.49327096077725796,"F1":0.47123383767607907},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H4":{"MCC":0.4783747578663885,"Acc":0.7396303901437371,"F1":0.7203878972209822},"InstaDeepAI_nucleotide_transformer_downstream_tasks_H4ac":{"MCC":0.09185631743720997,"Acc":0.5472727272727274,"F1":0.5267948805498813},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H2AFZ":{"MCC":0.15334407623958718,"Acc":0.5584666666666667,"F1":0.5129516967931929},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K27ac":{"MCC":0.1539911913944419,"Acc":0.5491336633663366,"F1":0.4712694571394406},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K27me3":{"MCC":0.17945047772166456,"Acc":0.5738666666666666,"F1":0.5450535243172605},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K36me3":{"MCC":0.0628899346419131,"Acc":0.5294,"F1":0.5214258741878084},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me1":{"MCC":0.057352550174561354,"Acc":0.5276,"F1":0.5242507814887313},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me2":{"MCC":0.16964695483645725,"Acc":0.5811038353601496,"F1":0.5722036525814967},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K4me3":{"MCC":0.25835852240939133,"Acc":0.6247422680412372,"F1":0.611137782066324},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K9ac":{"MCC":0.04973565991585912,"Acc":0.5117529880478088,"F1":0.4445106443876055},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H3K9me3":{"MCC":0.023420092028760643,"Acc":0.5112941176470589,"F1":0.4920892914689274},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_H4K20me1":{"MCC":0.19275872329559038,"Acc":0.5808810572687225,"F1":0.5405354514192017},"leannmlindsey_GUE_emp_H3":{"MCC":0.09689193682090122,"Acc":0.5507014028056113,"F1":0.5086637976421782},"leannmlindsey_GUE_emp_H3K14ac":{"MCC":0.02212899663239574,"Acc":0.514856278366112,"F1":0.4630865573720661},"leannmlindsey_GUE_emp_H3K36me3":{"MCC":0.21755798100094953,"Acc":0.5614678899082569,"F1":0.5334554650242578},"leannmlindsey_GUE_emp_H3K4me1":{"MCC":0.10409828797493352,"Acc":0.5379419191919192,"F1":0.5341220037631121},"leannmlindsey_GUE_emp_H3K4me2":{"MCC":0.040574433465261184,"Acc":0.5037471489084392,"F1":0.5000802543383408},"leannmlindsey_GUE_emp_H3K4me3":{"MCC":-0.030393031762911454,"Acc":0.4777717391304348,"F1":0.45392789727084387},"leannmlindsey_GUE_emp_H3K79me3":{"MCC":0.03541274517490609,"Acc":0.5169902912621359,"F1":0.49596842631504867},"leannmlindsey_GUE_emp_H3K9ac":{"MCC":0.07440417694893649,"Acc":0.5324217344368478,"F1":0.5051122736681115},"leannmlindsey_GUE_emp_H4":{"MCC":0.1502529422962437,"Acc":0.5615331964407939,"F1":0.5462887088518507},"leannmlindsey_GUE_emp_H4ac":{"MCC":0.0537401917143175,"Acc":0.530850439882698,"F1":0.5135763978557595},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_all":{"MCC":0.43271520451622136,"Acc":0.7014527027027027,"F1":0.6929405501203049},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_no_tata":{"MCC":0.21402111474976934,"Acc":0.5893564823551614,"F1":0.5694611262014913},"InstaDeepAI_nucleotide_transformer_downstream_tasks_promoter_tata":{"MCC":0.22116108967448614,"Acc":0.5964573268921095,"F1":0.5847123972555089},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_all":{"MCC":0.5329071495579617,"Acc":0.7454545454545454,"F1":0.7287808925323029},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_no_tata":{"MCC":0.6359299501267375,"Acc":0.8043731778425656,"F1":0.7968137793552827},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_promoter_tata":{"MCC":0.3434387431254286,"Acc":0.6716981132075472,"F1":0.6395721339668763},"InstaDeepAI_plant-genomic-benchmark_pro_seq.m_esculenta":{"MCC":0.026443470178981066,"Acc":0.4970443349753695,"F1":0.42957368354694225},"iPro-WAEL_Promoter_Arabidopsis_NonTATA":{"MCC":0.5458843996998081,"Acc":0.7656788032740616,"F1":0.7325407784831587},"iPro-WAEL_Promoter_Arabidopsis_TATA":{"MCC":0.46037774635257495,"Acc":0.7533891850723533,"F1":0.7141485395199894},"iPro-WAEL_Promoter_B_amyloliquefaciens":{"MCC":0.3374897594900189,"Acc":0.6588050314465409,"F1":0.64790196021387},"iPro-WAEL_Promoter_GM12878":{"MCC":0.5584248832781304,"Acc":0.7664727272727273,"F1":0.7422129489878828},"iPro-WAEL_Promoter_HUVEC":{"MCC":0.8197590776007736,"Acc":0.9048960429242119,"F1":0.9042160063050018},"iPro-WAEL_Promoter_Hela-S3":{"MCC":0.7962473336510326,"Acc":0.8945504087193459,"F1":0.8939906616364063},"iPro-WAEL_Promoter_NHEK":{"MCC":0.38993098859342795,"Acc":0.6768101761252446,"F1":0.6520921848998021},"iPro-WAEL_Promoter_R_capsulatus":{"MCC":0.055802885978322045,"Acc":0.5228346456692913,"F1":0.49094007967497183},"katarinagresova_Genomic_Benchmarks_human_nontata_promoters":{"MCC":0.5069652127630389,"Acc":0.7378569847243746,"F1":0.725790609997161},"leannmlindsey_GUE_prom_300_all":{"MCC":0.34250761735198104,"Acc":0.6562837837837838,"F1":0.620898515953017},"leannmlindsey_GUE_prom_300_notata":{"MCC":0.3955229474946759,"Acc":0.6534388543433203,"F1":0.6091576752545186},"leannmlindsey_GUE_prom_300_tata":{"MCC":0.042588123005624104,"Acc":0.5265905383360522,"F1":0.5014876263512374},"leannmlindsey_GUE_prom_core_all":{"MCC":0.15548809332031907,"Acc":0.5606418918918918,"F1":0.5125489289852527},"leannmlindsey_GUE_prom_core_notata":{"MCC":0.13166422316325657,"Acc":0.5537968720557754,"F1":0.4874217723923383},"leannmlindsey_GUE_prom_core_tata":{"MCC":0.12009714416452925,"Acc":0.5520391517128875,"F1":0.5073035455752554},"InstaDeepAI_nucleotide_transformer_downstream_tasks_enhancers":{"MCC":0.17057169017824722,"Acc":0.5805,"F1":0.5687782909104934},"InstaDeepAI_nucleotide_transformer_downstream_tasks_enhancers_types":{"MCC":0.09253085808042252,"Acc":0.397,"F1":0.350764573589528},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_enhancers":{"MCC":0.27236043151834244,"Acc":0.601,"F1":0.5557381508482664},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_enhancers_types":{"MCC":0.2164247670813876,"Acc":0.48026666666666673,"F1":0.3765212456735007},"katarinagresova_Genomic_Benchmarks_drosophila_enhancers_stark":{"MCC":0.04266082908597227,"Acc":0.5144508670520231,"F1":0.447345082961755},"katarinagresova_Genomic_Benchmarks_dummy_mouse_enhancers_ensembl":{"MCC":0.2616434403249849,"Acc":0.6123966942148761,"F1":0.5822377821926814},"katarinagresova_Genomic_Benchmarks_human_enhancers_cohn":{"MCC":0.09569420726153101,"Acc":0.5338802533103051,"F1":0.4810269407491125},"katarinagresova_Genomic_Benchmarks_human_enhancers_ensembl":{"MCC":0.14310126236454215,"Acc":0.5611688731030029,"F1":0.49987154185328225},"deep4mc_A.thaliana_4mC":{"MCC":-0.009105456065926784,"Acc":0.4952395133790968,"F1":0.46268832122558096},"deep4mc_C.elegans_4mC":{"MCC":0.0010281053858837389,"Acc":0.5018682345183801,"F1":0.4744373638027037},"deep4mc_D.melanogaster_4mC":{"MCC":0.026148297296205346,"Acc":0.5121291512915128,"F1":0.4836748392161108},"deep4mc_E.coli_4mC":{"MCC":-0.019782212301152714,"Acc":0.4214458478903521,"F1":0.37629312258232617},"deep4mc_G.pickeringii_4mC":{"MCC":0.006858754768461231,"Acc":0.4407799010573285,"F1":0.38687355040675964},"deep4mc_G.subterraneus_4mC":{"MCC":0.010754494986979137,"Acc":0.528444003964321,"F1":0.41500092252362125},"iDNA_ABF_5mC":{"MCC":0.10569193266494703,"Acc":0.5487201365187714,"F1":0.5277368977840048},"iDNA_ABF_6mA":{"MCC":0.029281438027612294,"Acc":0.5154358023344606,"F1":0.4907830493383038},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_acceptors":{"MCC":0.014619884720793785,"Acc":0.5137333333333334,"F1":0.48139727325155957},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_all":{"MCC":0.08962343812886893,"Acc":0.38813333333333333,"F1":0.35038705435120704},"InstaDeepAI_nucleotide_transformer_downstream_tasks_revised_splice_sites_donors":{"MCC":0.19687840884180957,"Acc":0.5856666666666666,"F1":0.5648142084956408},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_acceptors":{"MCC":0.13979491680623352,"Acc":0.5431920649233544,"F1":0.46226345512475636},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_all":{"MCC":0.08572405335508157,"Acc":0.3872,"F1":0.3699747117252376},"InstaDeepAI_nucleotide_transformer_downstream_tasks_splice_sites_donors":{"MCC":0.11666302598747416,"Acc":0.5439490445859873,"F1":0.4978648459054035},"leannmlindsey_GUE_splice_reconstructed":{"MCC":0.051293452448313695,"Acc":0.3463831652783867,"F1":0.2979891004763931},"InstaDeepAI_plant-genomic-benchmark_lncrna.g_max":{"MCC":0.04701186668794749,"Acc":0.5216326530612245,"F1":0.46574810503066527},"InstaDeepAI_plant-genomic-benchmark_lncrna.m_esculenta":{"MCC":0.000212755041488661,"Acc":0.5072222222222222,"F1":0.46281304792937455},"InstaDeepAI_plant-genomic-benchmark_lncrna.s_bicolor":{"MCC":0.03658520448921761,"Acc":0.5207084468664849,"F1":0.4754233851960025},"InstaDeepAI_plant-genomic-benchmark_lncrna.s_lycopersicum":{"MCC":0.042497705232940206,"Acc":0.5291044776119403,"F1":0.4618928063865826},"InstaDeepAI_plant-genomic-benchmark_lncrna.t_aestivum":{"MCC":0.013870445501690951,"Acc":0.503646408839779,"F1":0.47047018733972124},"InstaDeepAI_plant-genomic-benchmark_lncrna.z_mays":{"MCC":0.1301124491362449,"Acc":0.5467157765500307,"F1":0.5259159157818608},"leannmlindsey_GUE_mouse_0":{"MCC":0.0008010736708272348,"Acc":0.4948148148148149,"F1":0.430635024890338},"leannmlindsey_GUE_mouse_1":{"MCC":0.12447255038601548,"Acc":0.5522609340252039,"F1":0.5150596491599935},"leannmlindsey_GUE_mouse_2":{"MCC":0.14048439502397536,"Acc":0.5695121951219513,"F1":0.5653886153891741},"leannmlindsey_GUE_mouse_3":{"MCC":0.0985188317823002,"Acc":0.5447698744769875,"F1":0.5256782120678745},"leannmlindsey_GUE_mouse_4":{"MCC":0.04371811968623523,"Acc":0.5114179500796602,"F1":0.4295061801998683},"leannmlindsey_GUE_human_tf_0":{"MCC":0.07704721273401481,"Acc":0.5062,"F1":0.4480244118446849},"leannmlindsey_GUE_human_tf_1":{"MCC":0.2480217152510127,"Acc":0.6034,"F1":0.564414843612332},"leannmlindsey_GUE_human_tf_2":{"MCC":0.16240344449206956,"Acc":0.5684,"F1":0.5287955414085007},"leannmlindsey_GUE_human_tf_3":{"MCC":-0.007591143093756053,"Acc":0.4986,"F1":0.4714081359898417},"leannmlindsey_GUE_human_tf_4":{"MCC":0.1465514332964542,"Acc":0.5582,"F1":0.5261991046368661},"katarinagresova_Genomic_Benchmarks_demo_human_or_worm":{"MCC":0.47091407463846285,"Acc":0.704728,"F1":0.6804294245043075},"leannmlindsey_GUE_fungi_species_20":{"MCC":0.2387189523041749,"Acc":0.271,"F1":0.2326921768066244},"leannmlindsey_GUE_virus_species_40":{"MCC":0.1393196621096065,"Acc":0.1708,"F1":0.14630073861942133},"katarinagresova_Genomic_Benchmarks_human_ensembl_regulatory":{"MCC":0.08873764545781573,"Acc":0.3907646457470587,"F1":0.36947385029130736},"katarinagresova_Genomic_Benchmarks_human_ocr_ensembl":{"MCC":0.06356349470862942,"Acc":0.5291485465781645,"F1":0.49992728739990466},"leannmlindsey_GUE_phage_fragments":{"MCC":0.11737848309010308,"Acc":0.5583153347732182,"F1":0.5472960134138585},"leannmlindsey_GUE_virus_covid":{"MCC":0.0040724559954750965,"Acc":0.11239092495637,"F1":0.10052437917016921},"katarinagresova_Genomic_Benchmarks_demo_coding_vs_intergenomic_seqs":{"MCC":0.334950445213816,"Acc":0.66848,"F1":0.6576113340326722},"iDHS-EL_DNase_I":{"MCC":0.23317820388005286,"Acc":0.6483660130718955,"F1":0.5850975330908772}}}} \ No newline at end of file From 798f550208e5f3c80f2d5c896fcc140b1273648b Mon Sep 17 00:00:00 2001 From: Ken Chen Date: Fri, 14 Aug 2026 15:08:28 -0500 Subject: [PATCH 2/2] Handle non-BF16 GPUs and document runtime --- harness/extractors/splicebert.py | 4 ++-- model_cards/splicebert-1024nt.md | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/harness/extractors/splicebert.py b/harness/extractors/splicebert.py index bdf6481..27c1c05 100644 --- a/harness/extractors/splicebert.py +++ b/harness/extractors/splicebert.py @@ -143,8 +143,8 @@ def _masked_mean_pool(hidden: Tensor, attention_mask: Tensor) -> Tensor: def _inference_context(device: torch.device) -> ContextManager[object]: - """Return BF16 autocast on CUDA and a no-op context on CPU.""" - if device.type == "cuda": + """Return BF16 autocast when supported and FP32 otherwise.""" + if device.type == "cuda" and torch.cuda.is_bf16_supported(): return torch.autocast(device_type="cuda", dtype=torch.bfloat16) return nullcontext() diff --git a/model_cards/splicebert-1024nt.md b/model_cards/splicebert-1024nt.md index 79b6c5c..207ed00 100644 --- a/model_cards/splicebert-1024nt.md +++ b/model_cards/splicebert-1024nt.md @@ -12,7 +12,18 @@ Sequences up to 1,024 nt are embedded in one pass. Longer sequences use 1,024-nt windows with a stride of 512 nt. The final window is anchored to the sequence end so every nucleotide is covered, and window embeddings are averaged with equal weight to produce one sequence embedding. -Inference uses CUDA BF16 autocast and PyTorch scaled dot-product attention (SDPA). The GENEB probes use the frozen sequence embeddings produced by this procedure. +Inference uses PyTorch scaled dot-product attention (SDPA). CUDA devices with BF16 support use BF16 autocast; other CUDA devices and CPU use FP32. The submitted metrics were produced with CUDA BF16. The GENEB probes use the frozen sequence embeddings produced by this procedure. + +## Runtime + +Install the shared harness requirements and the model-specific dependencies: + +```bash +python -m pip install -r harness/requirements.txt +python -m pip install "torch==2.7.1" "transformers==4.53.3" +``` + +The submitted run used Python 3.11.13, PyTorch 2.7.1+cu128, Transformers 4.53.3, CUDA 12.8, and an NVIDIA RTX 5070 Ti. FP32 fallback requires more GPU memory, so lower `--batch_size` if needed. ## Training data