How MassSpecGym components work together
mainMassSpecGym provides a modular infrastructure for benchmarking molecular discovery tasks. The workflow typically follows this pattern:
- Data Loading: Use
load_massspecgym()to get the dataset as a pandas DataFrame, or useMassSpecDatasetto load it directly from Hugging Face into a PyTorch-compatible format. - Preprocessing: Apply
transforms(likeSpecTokenizerfor spectra orMolFingerprinterfor molecules) via theMassSpecDatasetclass. - Data Management: Use
MassSpecDataModule(a PyTorch LightningLightningDataModule) to handle data splitting (train/val/test) and batching. - Model Implementation: Inherit from a challenge-specific abstract class (e.g.,
RetrievalMassSpecGymModel) and implement theforwardandstepmethods to define your architecture and training/inference logic. - Training/Evaluation: Use a standard PyTorch Lightning
Trainerto run the training and testing loops.
from massspecgym.data import MassSpecDataset
from massspecgym.data.transforms import SpecTokenizer, MolFingerprinter
from massspecgym.data import MassSpecDataModule
# 1. Define transforms and dataset
dataset = MassSpecDataset(
spec_transform=SpecTokenizer(n_peaks=60),
mol_transform=MolFingerprinter(),
)
# 2. Initialize data module for Lightning
data_module = MassSpecDataModule(
dataset=dataset,
batch_size=32
)