Global optimization of atomic clusters using ASE with Basin Hopping and Genetic Algorithms, MLIP calculators (MACE, UMA), surface/adsorbate workflows, and NEB transition-state search.
Project description
SCGO: Simple Cluster Global Optimization
A compact toolkit for global optimization of atomic clusters using ASE. SCGO provides a focused API for Basin Hopping (BH) and Genetic Algorithm (GA) workflows with practical defaults.
Documentation: Read the Docs
Features
- Basin Hopping and Genetic Algorithm global optimization with automatic algorithm selection by cluster size
- MLIP support — MACE and UMA (fairchem) for GPU-accelerated optimization via TorchSim
- Surface workflows — slab-supported clusters and adsorbates with hull-site placement and tag-aware GA operators
- Transition state search — NEB-based TS search with automated pair selection and PBC-aware endpoint alignment
- Flexible API — high-level runners (
run_go,run_go_ts, …) and low-level control for custom workflows - Reproducible initialization — composition-canonical atom ordering for multi-element GA runs; mass-biased placement with per-structure RNG threading
Install
Install with exactly one MLIP extra per environment ([mace] or [uma]):
pip install "scgo[mace]" # or: pip install "scgo[uma]"
Requires Python 3.12+ and SQLite with the JSON1 extension. See the installation guide for conda, editable installs, development extras, and HPC notes.
Quick start
from scgo import run_go
from scgo.param_presets import get_testing_params
results = run_go(
["Pt"] * 4,
params=get_testing_params(),
seed=42,
system_type="gas_cluster",
)
results is a list of (energy, Atoms) unique minima, sorted by energy. For sequential multi-composition runs, use run_go_campaign.
Workflows
| Goal | Entry point | Documentation |
|---|---|---|
| Single composition GO | run_go |
Quick start |
| Multi-composition GO | run_go_campaign |
Quick start — Campaigns |
| TS from existing minima | run_ts_search |
Quick start — Transition States |
| GO then TS | run_go_ts |
Quick start — Transition States |
| Multi-composition TS | run_ts_campaign |
Quick start — Campaigns |
| Multi-composition GO+TS | run_go_ts_campaign |
Quick start — Campaigns |
Pass one of four system_type values on every run: gas_cluster, surface_cluster, gas_cluster_adsorbate, or surface_cluster_adsorbate. See system types for when to use each.
Output layout depends on the runner: run_go writes directly to {formula}_searches/ (default in the current directory); combined and TS workflows use a campaign root with sibling {formula}_searches/ and {formula}_ts_results/ subdirectories. See output directories and on-disk layout (run IDs, provenance, timing).
Examples
Runnable scripts in examples/ (MACE + TorchSim by default):
| Script | system_type |
Notes |
|---|---|---|
examples/example_pt5_gas.py |
gas_cluster |
Gas-phase Pt5 |
examples/example_pt5_graphite.py |
surface_cluster |
Pt5 on preset graphite |
examples/example_pt5_oh_gas.py |
gas_cluster_adsorbate |
Pt5 + OH in gas phase |
examples/example_pt5_2oh_graphite.py |
surface_cluster_adsorbate |
Pt5 + 2 OH on graphite |
Development
pip install -e ".[mace,dev]" # or: pip install -e ".[uma,dev]"
pre-commit install
pytest tests/ -m "not slow"
Long-running MLIP regression sweeps live in benchmark/ (see benchmark/README.md).
MIT License — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scgo-0.5.2.tar.gz.
File metadata
- Download URL: scgo-0.5.2.tar.gz
- Upload date:
- Size: 561.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34ac09db53c602432e2a22e3c0f3ebc5b600dfa073e0d43e1c6666f99db5df27
|
|
| MD5 |
e96f4784eb2b00994d151676a0135b68
|
|
| BLAKE2b-256 |
7ce4ff4c4fd04f18643bf58de099441ca037cd750305b7e6624c27b44c94eae5
|
Provenance
The following attestation bundles were made for scgo-0.5.2.tar.gz:
Publisher:
publish-pypi.yml on rlaplaza-lab/scgo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scgo-0.5.2.tar.gz -
Subject digest:
34ac09db53c602432e2a22e3c0f3ebc5b600dfa073e0d43e1c6666f99db5df27 - Sigstore transparency entry: 2123705976
- Sigstore integration time:
-
Permalink:
rlaplaza-lab/scgo@332dca2fc138fcff0f7b1bd7ac89ce94a7e9572b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/rlaplaza-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@332dca2fc138fcff0f7b1bd7ac89ce94a7e9572b -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file scgo-0.5.2-py3-none-any.whl.
File metadata
- Download URL: scgo-0.5.2-py3-none-any.whl
- Upload date:
- Size: 678.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a70d7617aeb6ef8efa70eae5dce1ec82c267ee1caff9e77cab44dfc91793b0df
|
|
| MD5 |
be1b385beca85b708d249f69b8c14a25
|
|
| BLAKE2b-256 |
ac21a50a45e28dee028ee9b8750870641885035a9e45f1f3291ea3dbb80040e6
|
Provenance
The following attestation bundles were made for scgo-0.5.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on rlaplaza-lab/scgo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scgo-0.5.2-py3-none-any.whl -
Subject digest:
a70d7617aeb6ef8efa70eae5dce1ec82c267ee1caff9e77cab44dfc91793b0df - Sigstore transparency entry: 2123706045
- Sigstore integration time:
-
Permalink:
rlaplaza-lab/scgo@332dca2fc138fcff0f7b1bd7ac89ce94a7e9572b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/rlaplaza-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@332dca2fc138fcff0f7b1bd7ac89ce94a7e9572b -
Trigger Event:
workflow_dispatch
-
Statement type: