Skip to main content

SCGO: Simple Cluster Global Optimization

Python PyPI License: MIT

SCGO Logo

SCGO finds low-energy atomic structures with global optimization. It uses Basin Hopping, Genetic Algorithms, NEB transition-state search, and machine learning potentials (MACE, UMA, UPET) through ASE and TorchSim.

A cluster (also called the core when molecules are present) is the metal nanoparticle whose shape you are searching. An adsorbate is a small molecule or fragment (for example OH or CO) attached to the cluster or the surface. A slab is a periodic surface the cluster or adsorbate sits on. You can also search the top layers of the slab itself, with the bottom layers held still.

Six system types combine these pieces: gas_cluster, surface_cluster, gas_cluster_adsorbate, surface_cluster_adsorbate, surface, and surface_adsorbate.

Documentation: Read the Docs

Install

Exactly one MLIP extra per environment:

pip install "scgo[mace]"   # or [uma] / [upet]

UPET note: After pip install "scgo[upet]", manually install vesin==0.6.0:

pip install 'vesin==0.6.0' --force-reinstall --no-deps

Python 3.12+, SQLite JSON1. Details: installation guide.

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 (energy-sorted).

Algorithms: SCGO auto-selects based on system size:

  • ≤2 mobile atoms: Simple relaxation
  • 3 atoms, no adsorbate: Basin Hopping
  • 3+ atoms with adsorbate: Genetic Algorithm
  • ≥4 atoms: Genetic Algorithm

Workflows

Goal Entry point
Single composition GO run_go
Multi-composition GO run_go_campaign
TS from existing minima run_ts_search
GO then TS run_go_ts
Multi-composition TS / GO+TS run_ts_campaign / run_go_ts_campaign

system_type is always a run argument (never inside go_params / optimizer_params slots). Surfaces prefer surface_config= as a run argument; a top-level surface_config in go_params / ts_params is enough when the run argument is omitted (both must agree when set). Adsorbates need adsorbates=.

Output: run_go writes {path_key}_searches/ with datetime-tagged run_*/ subdirectories. GO+TS creates sibling {path_key}_ts_results/. The path_key combines nanoparticle formula, adsorbate fragments, and surface name (for example Pt5, Pt5_OH_OH_graphite). See quickstart.

Examples

examples/ holds MACE + TorchSim smoke scripts for all six system types. See examples/README.md for details.

Development

pip install -e ".[mace,dev]"   # or [uma,dev] / [upet,dev]
pre-commit install
pytest tests/ -m "not slow and not integration and not requires_cuda and not requires_upet and not requires_uma"

Long MLIP sweeps: benchmark/.


MIT License. See LICENSE.

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.8.0.tar.gz (803.4 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.8.0-py3-none-any.whl (967.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scgo-0.8.0.tar.gz
  • Upload date:
  • Size: 803.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scgo-0.8.0.tar.gz
Algorithm Hash digest
SHA256 237e6a34410451810568067027cad48d1897820371e47b843f42ea7e1dbd1f8f
MD5 b60766dfb8c0bedf46128267b45d3713
BLAKE2b-256 5631fce71a4f4e3c237c4d4c44d19ed7b69ae21712331fcdda54d3616ddff331

See more details on using hashes here.

Provenance

The following attestation bundles were made for scgo-0.8.0.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.8.0-py3-none-any.whl.

File metadata

  • Download URL: scgo-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 967.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scgo-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 572b5982f2e358dc64fabfe3ae4e7d38c7c3ffe382caa9d1b7933b0a1d677985
MD5 7615bfddc9de133a840afdfe16b13475
BLAKE2b-256 80325019eb87eea15e209e513f0bf5dcf308c91645a0d1a1f4182cb3760d5b91

See more details on using hashes here.

Provenance

The following attestation bundles were made for scgo-0.8.0-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.

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 files

0.7.0

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.4.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

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