nebscape 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nebscape-0.1.0/PKG-INFO +99 -0
- nebscape-0.1.0/README.md +73 -0
- nebscape-0.1.0/pyproject.toml +66 -0
- nebscape-0.1.0/src/nebscape/__init__.py +3 -0
- nebscape-0.1.0/src/nebscape/analysis.py +597 -0
- nebscape-0.1.0/src/nebscape/atommapper.py +418 -0
- nebscape-0.1.0/src/nebscape/index_permutation.py +577 -0
- nebscape-0.1.0/src/nebscape/minhop_helpers.py +1304 -0
- nebscape-0.1.0/src/nebscape/minimize_rmsd.py +1158 -0
- nebscape-0.1.0/src/nebscape/modified_minimahopping.py +781 -0
- nebscape-0.1.0/src/nebscape/neb_from_globalmin.py +1463 -0
- nebscape-0.1.0/src/nebscape/neb_helpers.py +669 -0
- nebscape-0.1.0/src/nebscape/nebscape.py +766 -0
- nebscape-0.1.0/src/nebscape/objects.py +1081 -0
- nebscape-0.1.0/src/nebscape/resolve_pbc.py +662 -0
- nebscape-0.1.0/src/nebscape/utils.py +468 -0
- nebscape-0.1.0/src/nebscape/wfl_minimahopping.py +348 -0
- nebscape-0.1.0/src/nebscape/wfl_stepwise_NEB.py +405 -0
- nebscape-0.1.0/src/nebscape/wfl_vibration.py +103 -0
nebscape-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: nebscape
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Automated workflow for surface reactions.
|
|
5
|
+
Keywords: chemistry,materials,catalyst
|
|
6
|
+
Author: Hyunwook Jung
|
|
7
|
+
Author-email: Hyunwook Jung <hjung@fhi.mpg.de>
|
|
8
|
+
License: MIT
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Requires-Dist: pandas>=2.2.3,<3.0.0
|
|
12
|
+
Requires-Dist: rdkit>=2024.9.6,<2025.0.0
|
|
13
|
+
Requires-Dist: igraph>=0.11.8,<0.12.0
|
|
14
|
+
Requires-Dist: networkx>=3.4.2,<4.0.0
|
|
15
|
+
Requires-Dist: dscribe>=2.1.1,<3.0.0
|
|
16
|
+
Requires-Dist: ase>=3.25.0,<4.0.0
|
|
17
|
+
Requires-Dist: wfl>=0.3.5
|
|
18
|
+
Requires-Dist: scikit-learn>=1.6.1,<2.0.0
|
|
19
|
+
Requires-Dist: pymatgen==2025.10.7
|
|
20
|
+
Requires-Dist: pytest ; extra == 'dev'
|
|
21
|
+
Requires-Dist: ruff ; extra == 'dev'
|
|
22
|
+
Requires-Dist: pre-commit ; extra == 'dev'
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# NEBscape
|
|
28
|
+
[](https://doi.org/10.26434/chemrxiv.15002133/v1)
|
|
29
|
+
[](https://doi.org/10.26434/chemrxiv.15002133/v1)
|
|
30
|
+
|
|
31
|
+
[](https://opensource.org/licenses/MIT)
|
|
32
|
+
|
|
33
|
+
[](https://gitlab.mpcdf.mpg.de/hjung/nebscape)
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
Automated workflow for sampling minimum energy path for surface reactions with minimal human input.
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+
|
|
40
|
+
## Installation from source
|
|
41
|
+
```
|
|
42
|
+
git clone https://gitlab.mpcdf.mpg.de/hjung/nebscape.git
|
|
43
|
+
pip install .
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Required Inputs
|
|
47
|
+
This workflow prepares initial and final geometry with global optimization (e.g. minima hopping) and provides automatic atom-mapping and generates possbile permutation of symmetric atoms. Only following three inputs are required.
|
|
48
|
+
|
|
49
|
+
1. List of reaction SMILES string in `reaction_smiles.txt`
|
|
50
|
+
(e.g. `O=[C][CH2][O]>>[C-]#[O+].[CH2]=O`)
|
|
51
|
+
2. slab information in `slab.xyz`
|
|
52
|
+
(Slab should use tag to indicate which atoms are fixed (tag=0) and which atoms are relaxsed(tag=1))
|
|
53
|
+
3. Calculator (e.g. MLIP like MACE)
|
|
54
|
+
|
|
55
|
+
## Setting
|
|
56
|
+
This workflow uses [wfl](https://github.com/libAtoms/workflow) and [expyre](https://github.com/libAtoms/ExPyRe) for remote submission, so it is advised to configure related settings
|
|
57
|
+
- `config.json` file has to be set for remote submission to HPC (Can be found in `/example`)
|
|
58
|
+
- According to `config.json`, several `remote_info` should also be adapted on user's environment.
|
|
59
|
+
|
|
60
|
+
## Documentation
|
|
61
|
+
|
|
62
|
+
* **[Home](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/home)** - overview
|
|
63
|
+
* **[Installation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/page-1)** - installation
|
|
64
|
+
* **[Setting up local environment](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/page-2)** - setting for wfl and expyre
|
|
65
|
+
* **[Input preparation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/Input-Preparation)** - input file preparation
|
|
66
|
+
* **[Geometry generation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/page-4)** - running minima hopping
|
|
67
|
+
* **[Interpolation generation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/Interpolation-generation)** - generating initial minimum energy paths
|
|
68
|
+
|
|
69
|
+
(We are currently working on improving the documentation / tutorial. Let us know if you need help or suggestions.)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## References
|
|
73
|
+
If you use this code, please cite our paper:
|
|
74
|
+
|
|
75
|
+
Hyunwook Jung, Emanuel Colombi Manzi, Tiago J. Goncalves, et al. From Global Optimization to Transition State Search: An Automated Workflow for Surface Reaction Barriers. ChemRxiv. 17 April 2026.
|
|
76
|
+
|
|
77
|
+
https://doi.org/10.26434/chemrxiv.15002133/v1
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
@article{
|
|
81
|
+
doi:10.26434/chemrxiv.15002133/v1,
|
|
82
|
+
author = {Hyunwook Jung and Emanuel Colombi Manzi and Tiago J. Goncalves and Vanessa J. Bukas and Sandip De and Johannes T. Margraf and Karsten Reuter and Hendrik H. Heenen },
|
|
83
|
+
title = {From Global Optimization to Transition State Search: An Automated Workflow for Surface Reaction Barriers},
|
|
84
|
+
journal = {ChemRxiv},
|
|
85
|
+
volume = {2026},
|
|
86
|
+
number = {0417},
|
|
87
|
+
pages = {},
|
|
88
|
+
year = {2026},
|
|
89
|
+
doi = {10.26434/chemrxiv.15002133/v1},
|
|
90
|
+
URL = {https://chemrxiv.org/doi/abs/10.26434/chemrxiv.15002133/v1},
|
|
91
|
+
eprint = {https://chemrxiv.org/doi/pdf/10.26434/chemrxiv.15002133/v1}}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Contact
|
|
95
|
+
If you have any questions, please contact us at hjung@fhi.mpg.de
|
|
96
|
+
Also for any bugs or issues, you can use [gitlab issues](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/issues).
|
|
97
|
+
|
|
98
|
+
## License
|
|
99
|
+
The NEBscape code is published and distributed under the [MIT License](LICENSE).
|
nebscape-0.1.0/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# NEBscape
|
|
2
|
+
[](https://doi.org/10.26434/chemrxiv.15002133/v1)
|
|
3
|
+
[](https://doi.org/10.26434/chemrxiv.15002133/v1)
|
|
4
|
+
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
[](https://gitlab.mpcdf.mpg.de/hjung/nebscape)
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
Automated workflow for sampling minimum energy path for surface reactions with minimal human input.
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
## Installation from source
|
|
15
|
+
```
|
|
16
|
+
git clone https://gitlab.mpcdf.mpg.de/hjung/nebscape.git
|
|
17
|
+
pip install .
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Required Inputs
|
|
21
|
+
This workflow prepares initial and final geometry with global optimization (e.g. minima hopping) and provides automatic atom-mapping and generates possbile permutation of symmetric atoms. Only following three inputs are required.
|
|
22
|
+
|
|
23
|
+
1. List of reaction SMILES string in `reaction_smiles.txt`
|
|
24
|
+
(e.g. `O=[C][CH2][O]>>[C-]#[O+].[CH2]=O`)
|
|
25
|
+
2. slab information in `slab.xyz`
|
|
26
|
+
(Slab should use tag to indicate which atoms are fixed (tag=0) and which atoms are relaxsed(tag=1))
|
|
27
|
+
3. Calculator (e.g. MLIP like MACE)
|
|
28
|
+
|
|
29
|
+
## Setting
|
|
30
|
+
This workflow uses [wfl](https://github.com/libAtoms/workflow) and [expyre](https://github.com/libAtoms/ExPyRe) for remote submission, so it is advised to configure related settings
|
|
31
|
+
- `config.json` file has to be set for remote submission to HPC (Can be found in `/example`)
|
|
32
|
+
- According to `config.json`, several `remote_info` should also be adapted on user's environment.
|
|
33
|
+
|
|
34
|
+
## Documentation
|
|
35
|
+
|
|
36
|
+
* **[Home](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/home)** - overview
|
|
37
|
+
* **[Installation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/page-1)** - installation
|
|
38
|
+
* **[Setting up local environment](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/page-2)** - setting for wfl and expyre
|
|
39
|
+
* **[Input preparation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/Input-Preparation)** - input file preparation
|
|
40
|
+
* **[Geometry generation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/page-4)** - running minima hopping
|
|
41
|
+
* **[Interpolation generation](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/wikis/Interpolation-generation)** - generating initial minimum energy paths
|
|
42
|
+
|
|
43
|
+
(We are currently working on improving the documentation / tutorial. Let us know if you need help or suggestions.)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## References
|
|
47
|
+
If you use this code, please cite our paper:
|
|
48
|
+
|
|
49
|
+
Hyunwook Jung, Emanuel Colombi Manzi, Tiago J. Goncalves, et al. From Global Optimization to Transition State Search: An Automated Workflow for Surface Reaction Barriers. ChemRxiv. 17 April 2026.
|
|
50
|
+
|
|
51
|
+
https://doi.org/10.26434/chemrxiv.15002133/v1
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
@article{
|
|
55
|
+
doi:10.26434/chemrxiv.15002133/v1,
|
|
56
|
+
author = {Hyunwook Jung and Emanuel Colombi Manzi and Tiago J. Goncalves and Vanessa J. Bukas and Sandip De and Johannes T. Margraf and Karsten Reuter and Hendrik H. Heenen },
|
|
57
|
+
title = {From Global Optimization to Transition State Search: An Automated Workflow for Surface Reaction Barriers},
|
|
58
|
+
journal = {ChemRxiv},
|
|
59
|
+
volume = {2026},
|
|
60
|
+
number = {0417},
|
|
61
|
+
pages = {},
|
|
62
|
+
year = {2026},
|
|
63
|
+
doi = {10.26434/chemrxiv.15002133/v1},
|
|
64
|
+
URL = {https://chemrxiv.org/doi/abs/10.26434/chemrxiv.15002133/v1},
|
|
65
|
+
eprint = {https://chemrxiv.org/doi/pdf/10.26434/chemrxiv.15002133/v1}}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Contact
|
|
69
|
+
If you have any questions, please contact us at hjung@fhi.mpg.de
|
|
70
|
+
Also for any bugs or issues, you can use [gitlab issues](https://gitlab.mpcdf.mpg.de/hjung/nebscape/-/issues).
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
The NEBscape code is published and distributed under the [MIT License](LICENSE).
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "nebscape"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Automated workflow for surface reactions."
|
|
5
|
+
license = { text = "MIT" } # or your actual license
|
|
6
|
+
keywords = ["chemistry", "materials", "catalyst"]
|
|
7
|
+
classifiers = [
|
|
8
|
+
"Programming Language :: Python :: 3",
|
|
9
|
+
"Programming Language :: Python :: 3.12",
|
|
10
|
+
]
|
|
11
|
+
authors = [
|
|
12
|
+
{name = "Hyunwook Jung",email = "hjung@fhi.mpg.de"}
|
|
13
|
+
]
|
|
14
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
15
|
+
requires-python = ">=3.10"
|
|
16
|
+
dependencies = [
|
|
17
|
+
"pandas (>=2.2.3,<3.0.0)",
|
|
18
|
+
"rdkit (>=2024.9.6,<2025.0.0)",
|
|
19
|
+
"igraph (>=0.11.8,<0.12.0)",
|
|
20
|
+
"networkx (>=3.4.2,<4.0.0)",
|
|
21
|
+
"dscribe (>=2.1.1,<3.0.0)",
|
|
22
|
+
"ase (>=3.25.0,<4.0.0)",
|
|
23
|
+
"wfl (>=0.3.5)",
|
|
24
|
+
"scikit-learn (>=1.6.1,<2.0.0)",
|
|
25
|
+
"pymatgen==2025.10.7",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
[build-system]
|
|
30
|
+
requires = ["uv_build >= 0.10.10, <0.11.0"]
|
|
31
|
+
build-backend = "uv_build"
|
|
32
|
+
|
|
33
|
+
[tool.pytest.ini_options]
|
|
34
|
+
testpaths = ["tests"]
|
|
35
|
+
|
|
36
|
+
[tool.ruff]
|
|
37
|
+
line-length = 100
|
|
38
|
+
|
|
39
|
+
[project.optional-dependencies]
|
|
40
|
+
dev = [
|
|
41
|
+
"pytest",
|
|
42
|
+
"ruff",
|
|
43
|
+
"pre-commit",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[tool.numpydoc_validation]
|
|
47
|
+
checks = [
|
|
48
|
+
"all", # report on all checks, except the below
|
|
49
|
+
"EX01",
|
|
50
|
+
"SA01",
|
|
51
|
+
"ES01",
|
|
52
|
+
"PR08",
|
|
53
|
+
"PR09"
|
|
54
|
+
]
|
|
55
|
+
exclude = [
|
|
56
|
+
"RT02",
|
|
57
|
+
"\\._.*" # ignore private methods
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
[dependency-groups]
|
|
61
|
+
dev = [
|
|
62
|
+
"pytest>=9.0.2",
|
|
63
|
+
]
|
|
64
|
+
|
|
65
|
+
[tool.uv.extra-build-dependencies]
|
|
66
|
+
torch-scatter = ["torch"]
|