Views
No views yet
Input Representations
|
+-------+-------+-------+
| | | |
1D 2D 3D Conformers
| | |
Transformer GIN SchNet
| | |
| | Conformer
| | Attention
| | |
+-------+-------+
|
Cross-Modal Fusion
|
Context Conditioning (FiLM)
|
Prediction Head + Uncertainty| Dataset | Task | Metric | MolFM-Lite | Previous SOTA | Improvement |
|---|---|---|---|---|---|
| BBBP | Blood-Brain Barrier | AUC | 0.956 | 0.894 | +6.9% |
| BACE | Beta-secretase Inhibition | AUC | 0.902 | 0.878 | +2.7% |
| Tox21 | Toxicity (12 tasks) | AUC | 0.848 | 0.795 | +6.7% |
| Lipophilicity | Solubility | RMSE | 0.570 | 0.631 | -9.7% |
model_bbbp.pt - Fine-tuned on BBBP (Blood-Brain Barrier Penetration)model_bace.pt - Fine-tuned on BACE (Beta-secretase Inhibition)model_tox21.pt - Fine-tuned on Tox21 (Toxicity prediction, 12 tasks)model_lipophilicity.pt - Fine-tuned on Lipophilicity (Solubility prediction)1import torch
2from src.models.molfm import MolFMLite
3from src.data.preprocessing import MoleculePreprocessor
4
5# Load model
6model = MolFMLite(
7 hidden_dim=256,
8 hidden_dim_3d=128,
9 num_layers_1d=4,
10 num_layers_2d=4,
11)
12
13# Load checkpoint
14checkpoint = torch.load("model_bbbp.pt", map_location="cpu")
15model.load_state_dict(checkpoint["model_state_dict"])
16model.eval()
17
18# Process molecule
19preprocessor = MoleculePreprocessor()
20features = preprocessor.process_molecule("CC(=O)OC1=CC=CC=C1C(=O)O") # Aspirin
21
22# Predict
23with torch.no_grad():
24 prediction = model(features)
25 print(f"BBB Penetration Probability: {prediction.item():.3f}")| Parameter | Value |
|---|---|
| Hidden Dimension (1D/2D) | 256 |
| Hidden Dimension (3D) | 128 |
| Transformer Layers | 4 |
| GIN Layers | 4 |
| SchNet Interactions | 3 |
| Conformers per Molecule | 5 |
| Attention Heads | 8 |
1@article{shah2026molfm,
2 title={MolFM-Lite: A Multi-Modal Molecular Foundation Model with Context-Aware Predictions},
3 author={Shah, Syed Omer},
4 journal={GitHub},
5 year={2026},
6 url={https://github.com/Syedomershah99/molfm-lite}
7}