Installation¶
SCGO is on PyPI. Use exactly one MLIP
extra per environment ([mace], [uma], or [upet]); the stacks conflict.
Prerequisites¶
Python 3.12+
SQLite with JSON1 (
pysqlite3-binaryif your build lacks it)CUDA for GPU MLIPs
PyPI¶
pip install "scgo[mace]" # or [uma] / [upet]
# UPET only:
# pip install 'vesin==0.6.0' --force-reinstall --no-deps
For MACE/TorchSim pip installs, ensure nvalchemi-toolkit-ops is available
and avoid vesin / vesin-torch unless you are on the UPET extra.
Unsupported calculator device values raise SCGOValidationError (no silent
CPU fallback).
From source¶
git clone https://github.com/rlaplaza-lab/scgo.git
cd scgo
conda env create -f environment.yml # [mace,dev]; or:
# pip install -e ".[mace,dev]" # or [uma,dev] / [upet,dev]
conda activate scgo
pre-commit install
environment.yml is MACE-oriented. Use a separate env for UMA or UPET
(vesin==0.6.0 for UPET).
Optional: Sella (needs a C toolchain). scipy>=1.14,<3 for fairchem UMA.
Parallel jobs and HPC¶
Run folders are unique (run_YYYYMMDD_HHMMSS_ffffff), so parallel jobs under
the same parent usually write different *.db files. Prefer one output
directory (or scratch) per job when sharing a filesystem.
SQLite defaults to WAL off (fewer -wal/-shm issues on Lustre/GPFS/NFS).
Discovery may write .scgo_db_registry.json / .scgo_db_registry.lock at the
*_searches root. If flock is unreliable, avoid concurrent registry updates.
Set SCGO_LOCAL_DEV=1 or configure_logging(..., hpc_mode=False) for noisier
local logs.
Direct ga_go / bh_go knobs (not accepted in run_* go_params):
db_enable_expression_indexes, ga_adaptive_retry_enabled,
ga_fast_prefilter_enabled.
Publishing releases¶
Maintainers: GitHub Actions Publish to PyPI (workflow_dispatch,
confirm=publish). Configure trusted publishing for the pypi environment
(and testpypi if used).