Skip to main content

ABMPTools (ABINIT-MP Tools)

A Python toolkit for pre-processing, post-processing, and analysis of Fragment Molecular Orbital (FMO) calculations with ABINIT-MP.

Features

IFIE/PIEDA Analysis (getifiepieda, anlfmo, cpf2ifielist, getcharge)

  • Distance-filtered IFIE tables for target fragments or molecules
  • Fragment–fragment interaction matrices (1:1, 1:N, N:1, N:N)
  • Time-series IFIE from MD-FMO trajectory snapshots
  • SVD-based interaction decomposition
  • Charge extraction from ABINIT-MP logs

CPF Management (cpfmanager, convertcpf, generate_difie, log2cpf)

  • Parse and write CPF files (versions 4.201, 7.0 MIZUHO, 10, 23)
  • Version conversion between CPF formats
  • Residue-based CPF extraction
  • Dynamic IFIE (DIFIE) averaging across MD snapshots with mean/σ statistics
  • Generate CPF from ABINIT-MP log files

FMO Input Generation (generateajf, pdb2fmo, udf2fmo, setfmo, addsolvfrag)

  • Auto-generate AJF input files from PDB structures
  • Fragment assignment for proteins and molecular assemblies
  • Solvation fragment addition
  • Support for sp2 fragmentation and various basis sets

File Format Conversion

  • CIF → PDB/XYZ (readcif) with symmetry operations
  • ABINIT-MP log → fragment config (log2config, ajf2config)
  • PDB editing and serial AJF generation (pdbmodify, ajfserial)

GROMACS ↔ OCTA COGNAC Conversion

  • udf2gro: Convert OCTA UDF files to GROMACS format (.gro, .top, .mdp, .itp)
  • gro2udf: Convert GROMACS files to OCTA UDF format (supports --from-top mode)
  • udfcharge: Transfer per-atom partial charges from a single-molecule UDF to bulk molecules (transfer), or restore a neutralized UDF's charges to a target integer formal charge (restore)

Geometry Optimization (geomopt)

  • MacePdbOptimizer: MACE/ASE-based PDB structure optimization
  • OpenFFOpenMMMinimizer: OpenFF force-field minimization via OpenMM
  • QMOptimizerPySCF: Quantum chemistry optimization with PySCF

Amorphous Structure Building (amorphous, build_amorphous.py)

  • Multi-component amorphous system construction (API + polymer / API + API / binary mixture)
  • Initial structures from either SMILES (OpenFF conformer generation), external 3D SDF/MOL files (--mol), or PubChem CID / name (--pubchem_cid / --pubchem_name, auto-downloads MMFF94 3D SDF; raises PubChemNo3DError when no 3D conformer exists)
  • Packmol-based packing + OpenFF force field parameterization + AM1-BCC charges
  • Auto-generates GROMACS inputs and a 5-stage annealing protocol (EM → high-T NVT → high-T NPT → simulated annealing → low-T NPT equilibration)
  • Bundled md/run_all.sh drives the MD run; md/wrap_pbc.sh post-processes trajectories with gmx trjconv -pbc mol -ur compact for VMD-friendly *_pbc.xtc / _pbc.gro outputs

Supported ABINIT-MP Versions

  • ABINIT-MP v1: Rev.10–23
  • ABINIT-MP v2: Rev.4–8

Installation

From PyPI (normal use)

pip install abmptools

Updating:

pip install --upgrade abmptools

Checking what you actually got — run this outside the repository, since a source tree in the current directory shadows the installed package:

cd /tmp
pip show abmptools | head -2
python -c "import abmptools; print(abmptools.__file__)"

If Location and __file__ disagree, another copy is winning.

Optional extras pull in the plotting and chemistry dependencies a given subpackage needs, e.g. pip install 'abmptools[amorphous]'.

From source (development)

Editable install is recommended for day-to-day use and development:

pip install -e .

Non-editable install (e.g. for production deployment):

pip install .

--user is usually unnecessary; pip handles both virtual environments and system Python appropriately.

Requirements

  • Required: Python 3.8+, numpy, pandas
  • Optional: UDFManager (OCTA COGNAC), OpenBabel, PySCF, ASE, OpenMM, Packmol

Testing

pytest tests/ -v                     # 927 tests collected (2.12.0 時点)
pytest tests/ -v -k molcalc          # specific module
pytest tests/test_regression.py -v   # regression tests (60 bundled + 16 gated)

See tests/TEST_COVERAGE.md for details.

Regression Tests

tests/test_regression.py compares current CLI output against reference fixtures stored in tests/regression/reference/ (generated from the pre-refactor state). This guards against behavior drift during refactoring.

Covered tools: generateajf, log2cpf, convertcpf, udf2gro, gro2udf, and getifiepieda.

Developer-only tests: the 16 getifiepieda regression cases require external sample data (the internal abmptools-sample repository) at:

../abmptools-sample/sample/getifiepieda/
├── 6lu7-multi-fmolog/    (extracted from abmptools-fmolog-sample.tar.bz2)
├── cd7-fmolog/
├── 6m0j-pb-fmolog/
└── xyzfile/

These tests are automatically skipped when the data is not available, so public CI runs are unaffected.

Samples

Each sample/ subdirectory contains input data and a run.sh / run_sample.sh script:

# FMO / IFIE / CPF samples
cd sample/generateajf            && bash run.sh
cd sample/log2cpf                && bash run.sh
cd sample/generate_difie/TrpCage && bash run.sh
cd sample/convertcpf             && bash run.sh

# Amorphous structure builder samples — see sample/amorphous/README.md for the full index
cd sample/amorphous/pentane_benzene     && bash run_sample.sh   # pentane / benzene mixture (SMILES)
cd sample/amorphous/ketoprofen          && bash run_sample.sh   # ketoprofen (SMILES)
cd sample/amorphous/ketoprofen_pubchem  && bash run_sample.sh   # ketoprofen via PubChem 3D SDF (CID 3825)
cd sample/amorphous/mixture_json        && bash run_sample.sh   # multi-component via JSON config

See docs/amorphous_tutorial.md for the hands-on walk-through and sample/amorphous/ketoprofen/README.md for an annotated run log of the ketoprofen build.

Beyond this package

abmptools covers the generic layer: file formats, established-method utilities, and the analysis and conversion tools around ABINIT-MP. Workflows for methods still under active development are maintained separately, in a private package (moldeck) that builds on this one. It currently covers:

Area What it automates
DPD / coarse-grained input Building Cognac UDF and OCTA viewer inputs from a segmented structure, assigning interaction parameters, composing systems
FMO fragmentation Proposing fragment splits for arbitrary molecules and exporting segment_data
Martini 3 builders Peptide systems, and peptide-membrane PMF via umbrella sampling
Organic-crystal FMO CIF to FMO inputs, lattice energy and deformation
Enhanced sampling / binding free energy GENESIS gREST_SSCR and MM/GBSA end to end
Hydrogen-bond analysis Detection, per-functional-group roles, lifetimes, and trajectory colouring
Peptide formulation Solvated peptide + excipient systems end to end: build, equilibrate, then aggregation, contacts, secondary structure, SASA and release PMF
FMO interaction maps Ligand-pocket contribution maps from IFIE/PIEDA

The dependency runs one way — those workflows import abmptools, never the reverse — so nothing here depends on having them.

It is not publicly distributed: it is proprietary and handed out individually, on request and subject to approval. Contact the author below if you have a use for it.

How to cite

If you use ABMPTools in academic or scientific work, please cite the project. GitHub's "Cite this repository" button on the repo home page generates BibTeX / APA / etc. from CITATION.cff.

A peer-reviewed publication and Zenodo DOI will be added on the first release tag; until then, use:

Okuwaki, K. (2026). ABMPTools: a Python toolkit for ABINIT-MP Fragment Molecular Orbital pre/post-processing. https://github.com/kojioku/abmptools

Author

Koji Okuwaki

Release files for abmptools 2.13.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for abmptools 2.13.7
File Size Uploaded
abmptools-2.13.7.tar.gz 391.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for abmptools 2.13.7
File Interpreter ABI Platform
abmptools-2.13.7-py3-none-any.whl Python 3 none any Details

Total release size: 720.3 kB

Release files / abmptools-2.13.7.tar.gz

Download URL abmptools-2.13.7.tar.gz
Size 391.4 kB
Tags Source
SHA-256 checksum
How to use checksums
3ae94590d96b083c3607752d9a6ccc9f7f87225c4063a75f83681cac481b7495
BLAKE2b-256 checksum
How to use checksums
3a3ffd66fc0e16580e4c58cec871a0b3c80d749c0cea44318b03c7475d7c0cd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / abmptools-2.13.7-py3-none-any.whl

Download URL abmptools-2.13.7-py3-none-any.whl
Size 328.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ef64978ad45084f07e047feecfe280b6d3c0de1e4f6b5cfe87d016895b44220
BLAKE2b-256 checksum
How to use checksums
ecc91f2b22885c11c18a4639f373aebc94e794f807af9f98b62a0ed89e0a2ebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release history Release notifications | RSS feed

2.16.0

2 release files

2.15.0

2 release files

2.14.1

2 release files

2.14.0

2 release files

This release

2.13.7 This release

2 release files

2.13.6

2 release files

2.13.5

2 release files

2.13.4

2 release files

2.13.3

2 release files

2.13.2

2 release files

2.13.1

2 release files

2.13.0

2 release files

1.15.4

2 release files

1.15.3

2 release files

1.15.2

2 release files

1.15.1

2 release files

1.15.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page