Packora checkpoints
Project links
This repository contains Packora-M and Packora-L checkpoints for crystal structure prediction. Both files retain complete PyTorch Lightning state for inference or full-state stage-2 training resume. Public filenames intentionally do not encode the training epoch.
The nested layout is part of the loading interface: keep each checkpoint under
its model's checkpoints/ directory and retain the sibling
.hydra/config.yaml. Set the common data root before loading a model so its
standardizing scaler can read csd_clari/dataset_stats.json:
export PACKORA_DATA_ROOT=/path/to/Packora-data
Python API
from pathlib import Path
from src.prediction.api import PackoraPredictor
model_root = Path("/path/to/Packora-ckpt")
predictor = PackoraPredictor(
model_manifest_path=model_root / "model_manifest.json",
z_prior_path=model_root / "z_distribution.json",
)
result = predictor.predict(
{
"model": "packora-m",
"components": [{"smiles": "N#Cc1ccc(cc1)C#N", "ratio": 1}],
"z": 1,
},
seed=42,
)
print(result.summary)
The manifest configures both released checkpoints from repository-relative
entries. Pass checkpoint_paths to override either entry explicitly; direct
checkpoint paths take precedence and can also be used without a manifest.
The licensed CSD Python API is required for training-equivalent SMILES
featurization. Omitting z uses the included sanitized empirical
z_distribution.json prior.
Resume training
Use ckpt_path, not init_ckpt_path, to restore model, EMA, optimizer,
scheduler, loop, epoch, and global-step state. Set trainer.max_epochs to a
total greater than the epoch stored in the selected checkpoint:
python src/finetune.py \
data=csd_clari_finetune \
ckpt_path=/path/to/Packora-ckpt/packora-m/checkpoints/packora-m.ckpt \
paths.data_dir="$PACKORA_DATA_ROOT" \
trainer.max_epochs=<new-total-epoch-limit>
New checkpoint bookkeeping and outputs are rooted in the new Hydra run. Verify
downloaded artifacts with sha256sum -c SHA256SUMS.