mufu v1.0.0
MuFu, from CHM4930, fuses a frozen MoLFormer SMILES embedding, an ECFP4 fingerprint and a GINE graph encoder. For one SMILES it predicts EGFR and BACE1 pIC50 (with a conformal interval) and P(active), the 12 Tox21 assays and the 2 ClinTox tasks.
This is a 5-seed ensemble from commit 627f004, trained on data
with sha256 b340ddf73f38e10f8b6a2948156417661a269ffc9a6d9b097b538c4690e1b041. pIC50 is the members' mean, and probabilities are
averaged after each member's own calibration. The interval is
μ ± q · max(σ, floor), where σ² adds the mean MC-Dropout variance and the
variance between members, and q is fitted on validation.
The files only work as a set: each _mc_dropout.json is fitted to its checkpoint, and
mufu_ensemble.json to exactly these checkpoints. Don't mix files across tags.
Test metrics
| Task | Metric | Ensemble | Single model (mean ± std) | RF baseline |
|---|---|---|---|---|
| BACE1 pIC50 | RMSE | 0.795 | 0.827 ± 0.013 | 0.813 |
| BACE1 pIC50 | R² | 0.610 | 0.578 ± 0.013 | 0.592 |
| EGFR pIC50 | RMSE | 0.870 | 0.905 ± 0.015 | 0.877 |
| EGFR pIC50 | R² | 0.510 | 0.470 ± 0.018 | 0.502 |
| Tox21 (macro) | ROC AUC | 0.751 | 0.735 ± 0.011 | 0.712 |
| ClinTox (macro) | ROC AUC | 0.861 | 0.822 ± 0.043 | 0.652 |
Single-model numbers are over the 5 seeds; RF is a random forest on ECFP4.
Usage
With the code and ai/src on the path (MolFormer is downloaded from
ibm-research/MoLFormer-XL-both-10pct on first use):
from pathlib import Path
from huggingface_hub import snapshot_download
from encoders.smiles_encoder import SmilesEncoder
from mufu.ensemble import load_ensemble_params, load_members, member_paths
path = Path(snapshot_download("CHM4930/mufu", revision="v1.0.0"))
paths = member_paths(path, "mufu", range(5))
params = load_ensemble_params(paths, path, "mufu")
members = load_members(paths, SmilesEncoder(freeze=True))
Predict with mufu.ensemble.predict_with_ensemble_intervals, or serve it with
MUFU_HF_REPO=CHM4930/mufu MUFU_MODEL_VERSION=v1.0.0 (see ai/README.md). For a
single seed, use mufu.experiment.load_mufu_checkpoint.
Model tree for CHM4930/mufu
Base model
ibm-research/MoLFormer-XL-both-10pctEvaluation results
- Test RMSE on BACE1 (CHM4930 test split)test set self-reported0.795
- Test R² on BACE1 (CHM4930 test split)test set self-reported0.610
- Test RMSE on EGFR (CHM4930 test split)test set self-reported0.870
- Test R² on EGFR (CHM4930 test split)test set self-reported0.510
- Test ROC AUC on Tox21 (CHM4930 test split)test set self-reported0.751
- Test ROC AUC on ClinTox (CHM4930 test split)test set self-reported0.861