CLI tools for quick protein structure cleanup and optimization with OpenMM.
Project description
StructOpt
structopt is a Python package and CLI to quickly clean and optimize protein structures from
predicted or experimental sources (.pdb, .cif, .mmcif).
It combines:
PDBFixerfor structure cleanup.- OpenMM minimization (implicit solvent by default).
- Optional short MD refinement.
- Optional GAFF small-molecule handling (for ligands like
LIG1).
Install
Install from PyPI:
pip install structopt
If you want ligand/GAFF support, also install openmmforcefields in the same environment.
Depending on your platform, it may be easier to use the provided mamba environment for that setup.
Install From Source
Sync the project environment with uv:
uv sync
To include dev tools:
uv sync --group dev
For GAFF ligand support from source, install openmmforcefields, rdkit, and AmberTools
in the active environment. If your package index cannot resolve those, use mamba:
mamba env create -f environment.mamba.yml
mamba activate structopt
pip install -e .
CLI
Run the command below to see all the possible options you can have for your optimisation
uv run structopt optimize --help
Example:
uv run structopt optimize tests/data/geraniol_model_0.cif
Useful options:
uv run structopt optimize tests/data/geraniol_model_0.cif \
--mode both \
--ph 7.2 \
--ligand-name LIG1 \
--npt-steps 50000 \
--temperature 300 \
--pressure 1.0
If GAFF ligand parametrization cannot be inferred from the structure alone, provide an SDF:
uv run structopt optimize tests/data/geraniol_model_0.cif \
--ligand-name LIG1 \
--ligand-sdf path/to/ligand.sdf
Notes
- Default cleanup adds hydrogens at pH
7.2. - Minimization uses explicit by default or possibly implicit solvent (
gbn2orobc2). - MD refinement uses short explicit-solvent NPT by default.
- For GAFF workflows, install AmberTools in your environment.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file structopt-0.2.0.tar.gz.
File metadata
- Download URL: structopt-0.2.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8953bb50dc413c2ce7c968cd367b1e495842020a0b004a3355de58e0ee70afc5
|
|
| MD5 |
5de781225a4e6fab896d5056dad445aa
|
|
| BLAKE2b-256 |
3d07afee3d4af5634d0ef05e60361b54efaf639ef70077fee0a89c965e1ea388
|
Provenance
The following attestation bundles were made for structopt-0.2.0.tar.gz:
Publisher:
ci-cd.yml on Desperadus/StructOpt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
structopt-0.2.0.tar.gz -
Subject digest:
8953bb50dc413c2ce7c968cd367b1e495842020a0b004a3355de58e0ee70afc5 - Sigstore transparency entry: 1043791786
- Sigstore integration time:
-
Permalink:
Desperadus/StructOpt@56ccd9bb7b2a2a4016ea4c6ddb760e32f375783e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Desperadus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@56ccd9bb7b2a2a4016ea4c6ddb760e32f375783e -
Trigger Event:
push
-
Statement type:
File details
Details for the file structopt-0.2.0-py3-none-any.whl.
File metadata
- Download URL: structopt-0.2.0-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d0133ebcbe15c6deba0665ae9d0672a91288d79a53dbc40725f027205edbc9f
|
|
| MD5 |
0fb612774e3a23bbbd87dc60e89f69f4
|
|
| BLAKE2b-256 |
6b339dde8e8d34261fe114ee41f2f72da4e73f3b11e871638b1cd6b6231fbf50
|
Provenance
The following attestation bundles were made for structopt-0.2.0-py3-none-any.whl:
Publisher:
ci-cd.yml on Desperadus/StructOpt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
structopt-0.2.0-py3-none-any.whl -
Subject digest:
3d0133ebcbe15c6deba0665ae9d0672a91288d79a53dbc40725f027205edbc9f - Sigstore transparency entry: 1043791883
- Sigstore integration time:
-
Permalink:
Desperadus/StructOpt@56ccd9bb7b2a2a4016ea4c6ddb760e32f375783e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Desperadus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@56ccd9bb7b2a2a4016ea4c6ddb760e32f375783e -
Trigger Event:
push
-
Statement type: