Skip to main content

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

Python PyPI License: MIT

SCGO Logo

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

scgo-0.5.1.tar.gz (553.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scgo-0.5.1-py3-none-any.whl (668.9 kB view details)

Uploaded Python 3

File details

Details for the file scgo-0.5.1.tar.gz.

File metadata

  • Download URL: scgo-0.5.1.tar.gz
  • Upload date:
  • Size: 553.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scgo-0.5.1.tar.gz
Algorithm Hash digest
SHA256 985df45d6df657322cda4312b428344bd1429bd444cc644a9b0d5bf82c071d31
MD5 6ab69f9b68f003295e9eca7413fb97e1
BLAKE2b-256 39695f54bf5c3ac9a9d26ceaba1e57bbe22c4d5d34f05a02fa67f17a3886abb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for scgo-0.5.1.tar.gz:

Publisher: publish-pypi.yml on rlaplaza-lab/scgo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scgo-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: scgo-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 668.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scgo-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24ecedc518e913e1d1aa2f84920de1bb8eb3b2793713941b2c26541004c7b767
MD5 378b6da1faa263f4b049eb362a78c26c
BLAKE2b-256 b38de4b52fad4e1b15b0d1c79dffcfbdab1b61f0c040b556696c39c115d3e270

See more details on using hashes here.

Provenance

The following attestation bundles were made for scgo-0.5.1-py3-none-any.whl:

Publisher: publish-pypi.yml on rlaplaza-lab/scgo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page