abmptools 1.15.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.
- abmptools-1.15.0/LICENSE +21 -0
- abmptools-1.15.0/PKG-INFO +166 -0
- abmptools-1.15.0/README.md +124 -0
- abmptools-1.15.0/abmptools/__init__.py +24 -0
- abmptools-1.15.0/abmptools/abinit_io.py +2025 -0
- abmptools-1.15.0/abmptools/addsolvfrag.py +328 -0
- abmptools-1.15.0/abmptools/ajf2config.py +50 -0
- abmptools-1.15.0/abmptools/ajfserial.py +75 -0
- abmptools-1.15.0/abmptools/amorphous/__init__.py +26 -0
- abmptools-1.15.0/abmptools/amorphous/__main__.py +5 -0
- abmptools-1.15.0/abmptools/amorphous/builder.py +232 -0
- abmptools-1.15.0/abmptools/amorphous/cli.py +154 -0
- abmptools-1.15.0/abmptools/amorphous/density.py +90 -0
- abmptools-1.15.0/abmptools/amorphous/mdp_protocol.py +258 -0
- abmptools-1.15.0/abmptools/amorphous/models.py +72 -0
- abmptools-1.15.0/abmptools/amorphous/molecule_prep.py +131 -0
- abmptools-1.15.0/abmptools/amorphous/ndx_writer.py +67 -0
- abmptools-1.15.0/abmptools/amorphous/packing.py +157 -0
- abmptools-1.15.0/abmptools/amorphous/parameterizer.py +130 -0
- abmptools-1.15.0/abmptools/anlfmo.py +3760 -0
- abmptools-1.15.0/abmptools/convertcpf.py +68 -0
- abmptools-1.15.0/abmptools/core/__init__.py +6 -0
- abmptools-1.15.0/abmptools/core/system_model.py +302 -0
- abmptools-1.15.0/abmptools/cpf2ifielist.py +96 -0
- abmptools-1.15.0/abmptools/cpfmanager.py +1164 -0
- abmptools-1.15.0/abmptools/f90/bin/readifiepiedalib.so +0 -0
- abmptools-1.15.0/abmptools/generate_difie.py +293 -0
- abmptools-1.15.0/abmptools/generateajf.py +291 -0
- abmptools-1.15.0/abmptools/geomopt/__init__.py +37 -0
- abmptools-1.15.0/abmptools/geomopt/mace_optimizer.py +331 -0
- abmptools-1.15.0/abmptools/geomopt/openff_openmm_minimizer.py +651 -0
- abmptools-1.15.0/abmptools/geomopt/pyscf_optimizer.py +679 -0
- abmptools-1.15.0/abmptools/getcharge.py +81 -0
- abmptools-1.15.0/abmptools/getifiepieda.py +328 -0
- abmptools-1.15.0/abmptools/gro2udf/__init__.py +34 -0
- abmptools-1.15.0/abmptools/gro2udf/__main__.py +13 -0
- abmptools-1.15.0/abmptools/gro2udf/cli.py +123 -0
- abmptools-1.15.0/abmptools/gro2udf/default_template.udf +202 -0
- abmptools-1.15.0/abmptools/gro2udf/exporter.py +112 -0
- abmptools-1.15.0/abmptools/gro2udf/gro_adapter.py +140 -0
- abmptools-1.15.0/abmptools/gro2udf/gro_parser.py +159 -0
- abmptools-1.15.0/abmptools/gro2udf/mdp_parser.py +101 -0
- abmptools-1.15.0/abmptools/gro2udf/top_adapter.py +395 -0
- abmptools-1.15.0/abmptools/gro2udf/top_exporter.py +465 -0
- abmptools-1.15.0/abmptools/gro2udf/top_model.py +223 -0
- abmptools-1.15.0/abmptools/gro2udf/top_parser.py +647 -0
- abmptools-1.15.0/abmptools/gro2udf/udf_writer.py +94 -0
- abmptools-1.15.0/abmptools/log2config.py +84 -0
- abmptools-1.15.0/abmptools/log2cpf.py +127 -0
- abmptools-1.15.0/abmptools/logmanager.py +1427 -0
- abmptools-1.15.0/abmptools/mol_io.py +230 -0
- abmptools-1.15.0/abmptools/molcalc.py +1631 -0
- abmptools-1.15.0/abmptools/pdb2fmo.py +121 -0
- abmptools-1.15.0/abmptools/pdb_io.py +1041 -0
- abmptools-1.15.0/abmptools/pdbmodify.py +337 -0
- abmptools-1.15.0/abmptools/readcif.py +982 -0
- abmptools-1.15.0/abmptools/setfmo.py +640 -0
- abmptools-1.15.0/abmptools/udf2fmo.py +113 -0
- abmptools-1.15.0/abmptools/udf2gro/__init__.py +19 -0
- abmptools-1.15.0/abmptools/udf2gro/__main__.py +11 -0
- abmptools-1.15.0/abmptools/udf2gro/cli.py +46 -0
- abmptools-1.15.0/abmptools/udf2gro/exporter.py +99 -0
- abmptools-1.15.0/abmptools/udf2gro/gromacs/__init__.py +1 -0
- abmptools-1.15.0/abmptools/udf2gro/gromacs/writers/__init__.py +7 -0
- abmptools-1.15.0/abmptools/udf2gro/gromacs/writers/gro_writer.py +76 -0
- abmptools-1.15.0/abmptools/udf2gro/gromacs/writers/itp_writer.py +22 -0
- abmptools-1.15.0/abmptools/udf2gro/gromacs/writers/mdp_writer.py +150 -0
- abmptools-1.15.0/abmptools/udf2gro/gromacs/writers/top_writer.py +307 -0
- abmptools-1.15.0/abmptools/udf2gro/udf_adapter.py +1274 -0
- abmptools-1.15.0/abmptools/udf_io.py +903 -0
- abmptools-1.15.0/abmptools/udfcreate.py +1455 -0
- abmptools-1.15.0/abmptools/udfrm_io.py +173 -0
- abmptools-1.15.0/abmptools.egg-info/PKG-INFO +166 -0
- abmptools-1.15.0/abmptools.egg-info/SOURCES.txt +108 -0
- abmptools-1.15.0/abmptools.egg-info/dependency_links.txt +1 -0
- abmptools-1.15.0/abmptools.egg-info/entry_points.txt +15 -0
- abmptools-1.15.0/abmptools.egg-info/requires.txt +19 -0
- abmptools-1.15.0/abmptools.egg-info/top_level.txt +1 -0
- abmptools-1.15.0/pyproject.toml +83 -0
- abmptools-1.15.0/setup.cfg +4 -0
- abmptools-1.15.0/setup.py +6 -0
- abmptools-1.15.0/tests/test_abinit_io.py +597 -0
- abmptools-1.15.0/tests/test_amorphous_models.py +109 -0
- abmptools-1.15.0/tests/test_anlfmo.py +407 -0
- abmptools-1.15.0/tests/test_cli_scripts.py +815 -0
- abmptools-1.15.0/tests/test_cpfmanager.py +371 -0
- abmptools-1.15.0/tests/test_density.py +93 -0
- abmptools-1.15.0/tests/test_getifiepieda.py +344 -0
- abmptools-1.15.0/tests/test_gro_adapter.py +131 -0
- abmptools-1.15.0/tests/test_gro_parser.py +127 -0
- abmptools-1.15.0/tests/test_gro_writer.py +149 -0
- abmptools-1.15.0/tests/test_logmanager.py +265 -0
- abmptools-1.15.0/tests/test_mdp_parser.py +92 -0
- abmptools-1.15.0/tests/test_mdp_protocol.py +85 -0
- abmptools-1.15.0/tests/test_mdp_writer.py +117 -0
- abmptools-1.15.0/tests/test_mol_io.py +242 -0
- abmptools-1.15.0/tests/test_molcalc.py +569 -0
- abmptools-1.15.0/tests/test_ndx_writer.py +74 -0
- abmptools-1.15.0/tests/test_pdb_io.py +505 -0
- abmptools-1.15.0/tests/test_pyscf_optimizer.py +0 -0
- abmptools-1.15.0/tests/test_pyscf_parsers.py +152 -0
- abmptools-1.15.0/tests/test_readcif.py +203 -0
- abmptools-1.15.0/tests/test_setfmo.py +171 -0
- abmptools-1.15.0/tests/test_system_model.py +156 -0
- abmptools-1.15.0/tests/test_top_model.py +92 -0
- abmptools-1.15.0/tests/test_top_parser.py +153 -0
- abmptools-1.15.0/tests/test_top_writer.py +163 -0
- abmptools-1.15.0/tests/test_udf_io.py +77 -0
- abmptools-1.15.0/tests/test_udfcreate.py +196 -0
- abmptools-1.15.0/tests/test_udfrm_io.py +180 -0
abmptools-1.15.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Koji Okuwaki
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abmptools
|
|
3
|
+
Version: 1.15.0
|
|
4
|
+
Summary: Pre/post-processing and analysis toolkit for ABINIT-MP Fragment Molecular Orbital calculations
|
|
5
|
+
Author-email: Koji Okuwaki <koujioku81@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/kojioku/abmptools
|
|
8
|
+
Project-URL: Repository, https://github.com/kojioku/abmptools
|
|
9
|
+
Project-URL: Documentation, https://github.com/kojioku/abmptools/blob/main/docs/ABMPTools-user-manual.md
|
|
10
|
+
Project-URL: Changelog, https://github.com/kojioku/abmptools/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: FMO,ABINIT-MP,IFIE,PIEDA,fragment molecular orbital,computational chemistry
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
23
|
+
Requires-Python: >=3.8
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: numpy
|
|
27
|
+
Requires-Dist: pandas
|
|
28
|
+
Provides-Extra: amorphous
|
|
29
|
+
Requires-Dist: openff-toolkit>=0.14.0; extra == "amorphous"
|
|
30
|
+
Requires-Dist: openff-interchange>=0.3.0; extra == "amorphous"
|
|
31
|
+
Requires-Dist: openmm>=8.0; extra == "amorphous"
|
|
32
|
+
Provides-Extra: geomopt
|
|
33
|
+
Requires-Dist: pyscf; extra == "geomopt"
|
|
34
|
+
Requires-Dist: ase; extra == "geomopt"
|
|
35
|
+
Provides-Extra: mace
|
|
36
|
+
Requires-Dist: ase; extra == "mace"
|
|
37
|
+
Requires-Dist: mace-torch; extra == "mace"
|
|
38
|
+
Requires-Dist: torch; extra == "mace"
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest; extra == "test"
|
|
41
|
+
Dynamic: license-file
|
|
42
|
+
|
|
43
|
+
# ABMPTools (ABINIT-MP Tools)
|
|
44
|
+
|
|
45
|
+
A Python toolkit for pre-processing, post-processing, and analysis of Fragment Molecular Orbital (FMO) calculations with [ABINIT-MP](https://fmodd.jp/member_contents/manual_ABINIT-MP/).
|
|
46
|
+
|
|
47
|
+
## Features
|
|
48
|
+
|
|
49
|
+
### IFIE/PIEDA Analysis (`getifiepieda`, `anlfmo`, `cpf2ifielist`, `getcharge`)
|
|
50
|
+
|
|
51
|
+
- Distance-filtered IFIE tables for target fragments or molecules
|
|
52
|
+
- Fragment–fragment interaction matrices (1:1, 1:N, N:1, N:N)
|
|
53
|
+
- Time-series IFIE from MD-FMO trajectory snapshots
|
|
54
|
+
- SVD-based interaction decomposition
|
|
55
|
+
- Charge extraction from ABINIT-MP logs
|
|
56
|
+
|
|
57
|
+
### CPF Management (`cpfmanager`, `convertcpf`, `generate_difie`, `log2cpf`)
|
|
58
|
+
|
|
59
|
+
- Parse and write CPF files (versions 4.201, 7.0 MIZUHO, 10, 23)
|
|
60
|
+
- Version conversion between CPF formats
|
|
61
|
+
- Residue-based CPF extraction
|
|
62
|
+
- Dynamic IFIE (DIFIE) averaging across MD snapshots with mean/σ statistics
|
|
63
|
+
- Generate CPF from ABINIT-MP log files
|
|
64
|
+
|
|
65
|
+
### FMO Input Generation (`generateajf`, `pdb2fmo`, `udf2fmo`, `setfmo`, `addsolvfrag`)
|
|
66
|
+
|
|
67
|
+
- Auto-generate AJF input files from PDB structures
|
|
68
|
+
- Fragment assignment for proteins and molecular assemblies
|
|
69
|
+
- Solvation fragment addition
|
|
70
|
+
- Support for sp2 fragmentation and various basis sets
|
|
71
|
+
|
|
72
|
+
### File Format Conversion
|
|
73
|
+
|
|
74
|
+
- CIF → PDB/XYZ (`readcif`) with symmetry operations
|
|
75
|
+
- ABINIT-MP log → fragment config (`log2config`, `ajf2config`)
|
|
76
|
+
- PDB editing and serial AJF generation (`pdbmodify`, `ajfserial`)
|
|
77
|
+
|
|
78
|
+
### GROMACS ↔ OCTA COGNAC Conversion
|
|
79
|
+
|
|
80
|
+
- **udf2gro**: Convert OCTA UDF files to GROMACS format (`.gro`, `.top`, `.mdp`, `.itp`)
|
|
81
|
+
- **gro2udf**: Convert GROMACS files to OCTA UDF format (supports `--from-top` mode)
|
|
82
|
+
|
|
83
|
+
### Geometry Optimization (`geomopt`)
|
|
84
|
+
|
|
85
|
+
- **MacePdbOptimizer**: MACE/ASE-based PDB structure optimization
|
|
86
|
+
- **OpenFFOpenMMMinimizer**: OpenFF force-field minimization via OpenMM
|
|
87
|
+
- **QMOptimizerPySCF**: Quantum chemistry optimization with PySCF
|
|
88
|
+
|
|
89
|
+
### Amorphous Structure Building (`amorphous`)
|
|
90
|
+
|
|
91
|
+
- Multi-component amorphous system construction using Packmol and OpenMM
|
|
92
|
+
|
|
93
|
+
## Supported ABINIT-MP Versions
|
|
94
|
+
|
|
95
|
+
- ABINIT-MP v1: Rev.10–23
|
|
96
|
+
- ABINIT-MP v2: Rev.4–8
|
|
97
|
+
|
|
98
|
+
## Installation
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pip install --user .
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This runs `make` during install to compile the optional Fortran shared library for accelerated IFIE/PIEDA reading. If `gfortran` is not available, the install still succeeds without Fortran acceleration.
|
|
105
|
+
|
|
106
|
+
### Requirements
|
|
107
|
+
|
|
108
|
+
- **Required**: Python 3.8+, numpy, pandas
|
|
109
|
+
- **Optional**: UDFManager (OCTA COGNAC), gfortran, OpenBabel, PySCF, ASE, OpenMM, Packmol
|
|
110
|
+
|
|
111
|
+
## Quick Start
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Extract IFIE for fragment 10, within 8 Å
|
|
115
|
+
python -m abmptools.getifiepieda --frag 10 -d 8.0 -i calculation.log
|
|
116
|
+
|
|
117
|
+
# Generate AJF input from PDB
|
|
118
|
+
python -m abmptools.generateajf -i protein.pdb -basis 6-31G* --method MP2
|
|
119
|
+
|
|
120
|
+
# Convert log to CPF
|
|
121
|
+
python -m abmptools.log2cpf -i calculation.log -o output.cpf
|
|
122
|
+
|
|
123
|
+
# Create DIFIE-averaged CPF from trajectory
|
|
124
|
+
python -m abmptools.generate_difie -i traj-xxx.cpf -t 1 10 1 -f 1-100 -np 4
|
|
125
|
+
|
|
126
|
+
# Convert UDF to GROMACS
|
|
127
|
+
python -m abmptools.udf2gro.cli -i system.udf -o output
|
|
128
|
+
|
|
129
|
+
# Convert GROMACS to UDF
|
|
130
|
+
python -m abmptools.gro2udf.cli -i system.gro -t system.top -o output.udf
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Use `-h` with any module for full option details.
|
|
134
|
+
|
|
135
|
+
## Documentation
|
|
136
|
+
|
|
137
|
+
- **[User Manual](docs/ABMPTools-user-manual.md)** — CLI options, output formats, and workflow examples
|
|
138
|
+
- **[Architecture](docs/architecture.md)** — Class hierarchy and design overview
|
|
139
|
+
- **[Developer Quickstart](docs/dev_quickstart.md)** — Setup and code conventions
|
|
140
|
+
- **[I/O Spec](docs/io_spec.md)** — File format specifications
|
|
141
|
+
- **[gro2udf](docs/gro2udf.md)** / **[udf2gro](docs/udf2gro.md)** — GROMACS ↔ OCTA conversion
|
|
142
|
+
- **[geomopt](docs/geomopt.md)** / **[amorphous](docs/amorphous.md)** — Optimization and structure building
|
|
143
|
+
|
|
144
|
+
## Testing
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
pytest tests/ -v # 658 tests
|
|
148
|
+
pytest tests/ -v -k molcalc # specific module
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
See [tests/TEST_COVERAGE.md](tests/TEST_COVERAGE.md) for details.
|
|
152
|
+
|
|
153
|
+
## Samples
|
|
154
|
+
|
|
155
|
+
Each `sample/` subdirectory contains input data and a `run.sh` script:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
cd sample/generateajf && bash run.sh
|
|
159
|
+
cd sample/log2cpf && bash run.sh
|
|
160
|
+
cd sample/generate_difie/TrpCage && bash run.sh
|
|
161
|
+
cd sample/convertcpf && bash run.sh
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Author
|
|
165
|
+
|
|
166
|
+
[Koji Okuwaki](mailto:koujioku81@gmail.com)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# ABMPTools (ABINIT-MP Tools)
|
|
2
|
+
|
|
3
|
+
A Python toolkit for pre-processing, post-processing, and analysis of Fragment Molecular Orbital (FMO) calculations with [ABINIT-MP](https://fmodd.jp/member_contents/manual_ABINIT-MP/).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
### IFIE/PIEDA Analysis (`getifiepieda`, `anlfmo`, `cpf2ifielist`, `getcharge`)
|
|
8
|
+
|
|
9
|
+
- Distance-filtered IFIE tables for target fragments or molecules
|
|
10
|
+
- Fragment–fragment interaction matrices (1:1, 1:N, N:1, N:N)
|
|
11
|
+
- Time-series IFIE from MD-FMO trajectory snapshots
|
|
12
|
+
- SVD-based interaction decomposition
|
|
13
|
+
- Charge extraction from ABINIT-MP logs
|
|
14
|
+
|
|
15
|
+
### CPF Management (`cpfmanager`, `convertcpf`, `generate_difie`, `log2cpf`)
|
|
16
|
+
|
|
17
|
+
- Parse and write CPF files (versions 4.201, 7.0 MIZUHO, 10, 23)
|
|
18
|
+
- Version conversion between CPF formats
|
|
19
|
+
- Residue-based CPF extraction
|
|
20
|
+
- Dynamic IFIE (DIFIE) averaging across MD snapshots with mean/σ statistics
|
|
21
|
+
- Generate CPF from ABINIT-MP log files
|
|
22
|
+
|
|
23
|
+
### FMO Input Generation (`generateajf`, `pdb2fmo`, `udf2fmo`, `setfmo`, `addsolvfrag`)
|
|
24
|
+
|
|
25
|
+
- Auto-generate AJF input files from PDB structures
|
|
26
|
+
- Fragment assignment for proteins and molecular assemblies
|
|
27
|
+
- Solvation fragment addition
|
|
28
|
+
- Support for sp2 fragmentation and various basis sets
|
|
29
|
+
|
|
30
|
+
### File Format Conversion
|
|
31
|
+
|
|
32
|
+
- CIF → PDB/XYZ (`readcif`) with symmetry operations
|
|
33
|
+
- ABINIT-MP log → fragment config (`log2config`, `ajf2config`)
|
|
34
|
+
- PDB editing and serial AJF generation (`pdbmodify`, `ajfserial`)
|
|
35
|
+
|
|
36
|
+
### GROMACS ↔ OCTA COGNAC Conversion
|
|
37
|
+
|
|
38
|
+
- **udf2gro**: Convert OCTA UDF files to GROMACS format (`.gro`, `.top`, `.mdp`, `.itp`)
|
|
39
|
+
- **gro2udf**: Convert GROMACS files to OCTA UDF format (supports `--from-top` mode)
|
|
40
|
+
|
|
41
|
+
### Geometry Optimization (`geomopt`)
|
|
42
|
+
|
|
43
|
+
- **MacePdbOptimizer**: MACE/ASE-based PDB structure optimization
|
|
44
|
+
- **OpenFFOpenMMMinimizer**: OpenFF force-field minimization via OpenMM
|
|
45
|
+
- **QMOptimizerPySCF**: Quantum chemistry optimization with PySCF
|
|
46
|
+
|
|
47
|
+
### Amorphous Structure Building (`amorphous`)
|
|
48
|
+
|
|
49
|
+
- Multi-component amorphous system construction using Packmol and OpenMM
|
|
50
|
+
|
|
51
|
+
## Supported ABINIT-MP Versions
|
|
52
|
+
|
|
53
|
+
- ABINIT-MP v1: Rev.10–23
|
|
54
|
+
- ABINIT-MP v2: Rev.4–8
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install --user .
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This runs `make` during install to compile the optional Fortran shared library for accelerated IFIE/PIEDA reading. If `gfortran` is not available, the install still succeeds without Fortran acceleration.
|
|
63
|
+
|
|
64
|
+
### Requirements
|
|
65
|
+
|
|
66
|
+
- **Required**: Python 3.8+, numpy, pandas
|
|
67
|
+
- **Optional**: UDFManager (OCTA COGNAC), gfortran, OpenBabel, PySCF, ASE, OpenMM, Packmol
|
|
68
|
+
|
|
69
|
+
## Quick Start
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Extract IFIE for fragment 10, within 8 Å
|
|
73
|
+
python -m abmptools.getifiepieda --frag 10 -d 8.0 -i calculation.log
|
|
74
|
+
|
|
75
|
+
# Generate AJF input from PDB
|
|
76
|
+
python -m abmptools.generateajf -i protein.pdb -basis 6-31G* --method MP2
|
|
77
|
+
|
|
78
|
+
# Convert log to CPF
|
|
79
|
+
python -m abmptools.log2cpf -i calculation.log -o output.cpf
|
|
80
|
+
|
|
81
|
+
# Create DIFIE-averaged CPF from trajectory
|
|
82
|
+
python -m abmptools.generate_difie -i traj-xxx.cpf -t 1 10 1 -f 1-100 -np 4
|
|
83
|
+
|
|
84
|
+
# Convert UDF to GROMACS
|
|
85
|
+
python -m abmptools.udf2gro.cli -i system.udf -o output
|
|
86
|
+
|
|
87
|
+
# Convert GROMACS to UDF
|
|
88
|
+
python -m abmptools.gro2udf.cli -i system.gro -t system.top -o output.udf
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Use `-h` with any module for full option details.
|
|
92
|
+
|
|
93
|
+
## Documentation
|
|
94
|
+
|
|
95
|
+
- **[User Manual](docs/ABMPTools-user-manual.md)** — CLI options, output formats, and workflow examples
|
|
96
|
+
- **[Architecture](docs/architecture.md)** — Class hierarchy and design overview
|
|
97
|
+
- **[Developer Quickstart](docs/dev_quickstart.md)** — Setup and code conventions
|
|
98
|
+
- **[I/O Spec](docs/io_spec.md)** — File format specifications
|
|
99
|
+
- **[gro2udf](docs/gro2udf.md)** / **[udf2gro](docs/udf2gro.md)** — GROMACS ↔ OCTA conversion
|
|
100
|
+
- **[geomopt](docs/geomopt.md)** / **[amorphous](docs/amorphous.md)** — Optimization and structure building
|
|
101
|
+
|
|
102
|
+
## Testing
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pytest tests/ -v # 658 tests
|
|
106
|
+
pytest tests/ -v -k molcalc # specific module
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
See [tests/TEST_COVERAGE.md](tests/TEST_COVERAGE.md) for details.
|
|
110
|
+
|
|
111
|
+
## Samples
|
|
112
|
+
|
|
113
|
+
Each `sample/` subdirectory contains input data and a `run.sh` script:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
cd sample/generateajf && bash run.sh
|
|
117
|
+
cd sample/log2cpf && bash run.sh
|
|
118
|
+
cd sample/generate_difie/TrpCage && bash run.sh
|
|
119
|
+
cd sample/convertcpf && bash run.sh
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Author
|
|
123
|
+
|
|
124
|
+
[Koji Okuwaki](mailto:koujioku81@gmail.com)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from .pdb_io import pdb_io
|
|
2
|
+
from .abinit_io import abinit_io
|
|
3
|
+
from .setfmo import setfmo
|
|
4
|
+
from .mol_io import mol_io
|
|
5
|
+
from .molcalc import molcalc
|
|
6
|
+
from .udfrm_io import udfrm_io
|
|
7
|
+
from .udf_io import udf_io
|
|
8
|
+
from .udfcreate import udfcreate
|
|
9
|
+
from .anlfmo import anlfmo
|
|
10
|
+
from .cpfmanager import CPFManager
|
|
11
|
+
from .logmanager import LOGManager
|
|
12
|
+
# udf2gro and gro2udf are imported lazily because they require UDFManager (optional dep)
|
|
13
|
+
try:
|
|
14
|
+
from .udf2gro import Exporter as Udf2groExporter
|
|
15
|
+
except ImportError:
|
|
16
|
+
pass
|
|
17
|
+
try:
|
|
18
|
+
from .gro2udf import Exporter as Gro2udfExporter
|
|
19
|
+
except ImportError:
|
|
20
|
+
pass
|
|
21
|
+
try:
|
|
22
|
+
from .amorphous import AmorphousBuilder
|
|
23
|
+
except ImportError:
|
|
24
|
+
pass
|