NEBscape
NEBscape automates the sampling of minimum energy paths (MEPs) for surface reactions, combining global geometry optimization, atom-mapping, and NEB calculations into a single workflow — requiring minimal human input.
Installation from source
git clone https://gitlab.mpcdf.mpg.de/hjung/nebscape.git
pip install .
Required Inputs
This workflow prepares initial and final geometry with global optimization (e.g. minima hopping) and provides automatic atom-mapping and generates possible permutation of symmetric atoms. Only following three inputs are required.
- List of reaction SMILES string in
reaction_smiles.txt(e.g.O=[C][CH2][O]>>[C-]#[O+].[CH2]=O) - slab information in
slab.xyz(Slab should use tag to indicate which atoms are fixed (tag=0) and which atoms are relaxed(tag=1)) - Calculator (e.g. MLIP like MACE)
Setting
This workflow uses wfl and expyre for remote submission, so configure the following related settings
config.jsonfile has to be set for remote submission to HPC (Can be found in/example)- According to
config.json, theremote_infoentries should be adapted to your environment.
Quick Start
A minimal, fully local example (no HPC/remote submission, ASE's built-in EMT calculator) is provided in example/0_EMT. It contains everything needed to run the workflow from input to interpolations for NEB :
| File | Purpose |
|---|---|
reactions_list.txt |
reaction SMILES, one per line |
slab.xyz |
slab geometry with tag=0 (fixed) / tag=1 (relaxed) atoms |
params.yaml |
parameters for each workflow stage |
setting.py |
entry point: builds NEBscape with the EMT calculator and remote_info=None |
Note: It uses autoadsorbate to place adsorbate and relaxes only without minima hopping. The EMT calculator can dissociate the adsorbate during relaxation, so Hookean constraints are imposed and the post-alignment relaxation is skipped. This example demonstrates how NEBscape prepares an initial reaction trajectory from the inputs.
Run it:
git clone https://gitlab.mpcdf.mpg.de/hjung/nebscape.git
cd nebscape
pip install .
cd example/0_EMT
# run the whole pipeline (No NEBs because EMT is not good with this system)
python setting.py --run isolated dimers prepare
Documentation
- Home - overview
- Installation - installation
- Setting up Local Environment - setting for wfl and expyre
- Input Preparation - input file preparation
- Setting File - configuration settings
- Geometry Generation - generating initial geometries
- Minima Hopping - running minima hopping
- Autoadsorbate - adsorbate placement
- Interpolation Generation - generating initial minimum energy paths
- Atom Mapping - mapping atoms between endpoints
- Geometry Selection - selecting endpoint geometries
- FS-to-IS Alignment - aligning final to initial state
- Index Permutation - permuting atom indices
- Running NEB - running the NEB calculation
(We are currently working on improving the documentation / tutorial. Let us know if you need help or suggestions.)
References
If you use this code, please cite our paper:
Jung, H., Colombi Manzi, E., Goncalves, T.J. et al. From global optimization to transition state search: an automated workflow for surface reaction barriers. npj Comput Mater 12, 300 (2026). https://doi.org/10.1038/s41524-026-02298-1
@article{jung2026global,
title={From global optimization to transition state search: an automated workflow for surface reaction barriers},
author={Jung, Hyunwook and Colombi Manzi, Emanuel and Goncalves, Tiago J and Bukas, Vanessa J and De, Sandip and Margraf, Johannes T and Reuter, Karsten and Heenen, Hendrik H},
journal={npj Computational Materials},
volume={12},
number={1},
pages={300},
year={2026},
publisher={Nature Publishing Group UK London}
}
Contact
If you have any questions, please contact us at hjung@fhi.mpg.de Also for any bugs or issues, you can use gitlab issues.
License
The NEBscape code is published and distributed under the MIT License.
Metadata
Release files for nebscape 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nebscape-0.3.2.tar.gz | 129.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nebscape-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 267.6 kB
Release files / nebscape-0.3.2.tar.gz
| Download URL | nebscape-0.3.2.tar.gz |
|---|---|
| Size | 129.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
170256acc20ecd92f2aa29a68241b94e2d09620ea9ce8aad44e0343bcfeb57c3
|
|
BLAKE2b-256 checksum How to use checksums |
27cd28ad819151b3d0dd45824fb368a469460a767c4aca7dc1aded99bbacd403
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / nebscape-0.3.2-py3-none-any.whl
| Download URL | nebscape-0.3.2-py3-none-any.whl |
|---|---|
| Size | 138.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ac50f071ac5e2ad274a4c7e68e35ebcc4fdebcaae3c09274f88b43acbcb01e43
|
|
BLAKE2b-256 checksum How to use checksums |
03d380ec3593f535842173704e35de07ab20e0f37ce0b62872508d890aa805f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for nebscape 0.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.