Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
offPELE/_version.py export-subst
*.py diff=python
peleffy/_version.py export-subst
6 changes: 4 additions & 2 deletions .github/workflows/conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest]
python-version: [3.8, 3.9]
os: [ubuntu-latest, ]
python-version: [3.9, ]
#os: [ubuntu-latest, macOS-latest] No need to make multiple releases anymore
#python-version: [3.8, 3.9] No need to make multiple releases anymore
name: Python ${{ matrix.python-version }} at ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down
9 changes: 5 additions & 4 deletions devtools/conda/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,17 @@ requirements:
- setuptools

run:
- python
- python >=3.12
- numpy
- ipython
- matplotlib
- pytest
- networkx
- rdkit
- rdkit >=2025.03.6
- ambertools
- openff-toolkit==0.10.7
- openff-forcefields==2023.05.1
- openff-toolkit ==0.18.0
- openff-forcefields ==2026.01.0
- openff-nagl ==0.5.4

about:
home: https://github.com/martimunicoy/peleffy
Expand Down
9 changes: 5 additions & 4 deletions devtools/envs/standard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ channels:
- conda-forge

dependencies:
- python
- python=3.12
- pip
- flake8
- pytest
Expand All @@ -12,7 +12,8 @@ dependencies:
- coverage
- ipython
- ambertools
- rdkit
- openff-toolkit==0.10.7
- openff-forcefields==2023.05.1
- rdkit==2025.03.6
- openff-toolkit==0.18.0
- openff-forcefields==2026.01.0
- openff-nagl==0.5.4

28 changes: 27 additions & 1 deletion docs/releasehistory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,37 @@ Releases follow the ``major.minor.micro`` scheme recommended by `PEP440 <https:/
* ``minor`` increments add features but do not break API compatibility
* ``micro`` increments represent bugfix releases or improvements in documentation

1.6.0 - Migration to Python 3.12, OpenFF upgrade and NAGL charge method
------------------------------------------------------------------------

This is a major release of peleffy that migrates the package to Python 3.12 and upgrades
the OpenFF toolkit and force fields to their latest versions. It also introduces a new
``OpenFF230ForceField`` class and the NAGL charge assignment method, which uses a Graph
Convolutional Network (GCN) model to assign AM1-BCC charges directly from the molecular
graph without requiring 3D conformers.

New features
""""""""""""
- Migration to Python 3.12 and upgrade of all core dependencies (RDKit, OpenFF Toolkit, OpenFF Force Fields)
- Upgrade of ``versioneer`` to v0.29 for full Python 3.12 compatibility
- New ``OpenFF230ForceField`` class in ``peleffy.forcefield`` that uses ``openff_unconstrained-2.3.0.offxml`` as the underlying force field. This version is specifically designed to be used with NAGL charges and enforces their use as the only compatible charge method
- New ``NAGLCalculator`` class in ``peleffy.forcefield.calculators`` that assigns partial charges using the OpenFF NAGL GCN model ``openff-gnn-am1bcc-1.0.0.pt`` via the OpenFF Toolkit's ``assign_partial_charges`` method. Charges are computed directly from the molecular graph and do not require 3D conformers
- ``ForceFieldSelector`` now returns ``OpenFF230ForceField`` when ``openff_unconstrained-2.3.0.offxml`` is requested, separating it from other OpenFF versions
- ``ChargeCalculatorSelector`` now includes ``nagl`` as an available charge method
- ``setup.py`` updated with ``python_requires='>=3.12'`` and Python 3.12 classifier
- ``devtools/conda/meta.yaml`` updated to reflect current dependency versions including ``openff-nagl``

Bugfixes
""""""""
- Fixed ``SyntaxWarning: invalid escape sequence '\s'`` in ``versioneer.py`` v0.18 that appeared on Python 3.12
- Fixed amide bond detection in rotamer library: the SMARTS pattern for rotatable bonds used ``[NH]`` which failed to exclude amide C–N bonds when explicit hydrogens were present (``[NH]`` requires implicit H count, but RDKit assigns explicit H atoms). Changed to ``[N]`` to correctly exclude any nitrogen bonded to a carbonyl from being part of a rotatable bond, regardless of hydrogen representation
- Fixed ``ffld_server`` output handling: replaced ``-out_file`` flag with Python-level stdout redirection


1.5.2 - Improvements for alchemistry
------------------------------------

This is a minor release of peleffy that adds several improvements to the alchemistry module
This is a minor release of peleffy that adds several improvements to the alchemistry module.

New features
""""""""""""
Expand Down
13 changes: 11 additions & 2 deletions docs/usage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ It sets the method to compute the partial charges.

- Flag: ``-c NAME``, ``--charge_method NAME``
- Type: ``string``
- Choices: one of [``gasteiger``, ``am1bcc``, ``OPLS``]
- Choices: one of [``gasteiger``, ``am1bcc``, ``OPLS``, ``mulliken``, ``nagl``]
- Default: ``am1bcc``
- Example: the code below will calculate partial charges using 'gasteiger' method

Expand Down Expand Up @@ -256,4 +256,13 @@ It generates an Impact template that will be compatible with PELE's AMBER force

.. code-block:: bash

$ python -m peleffy.main path/to/my_ligand.pdb --for_amber
$ python -m peleffy.main path/to/my_ligand.pdb --for_amber

OpenFF 2.3.0
------------
Version 2.3.0 of OpenFF requires a specific charge method, which is NAGL. To select this charge method along with OpenFF-2.3.0 use the following command:

.. code-block:: bash

$ python -m peleffy.main path/to/my_ligand.pdb -f openff_unconstrained-2.3.0.offxml -c nagl

3 changes: 3 additions & 0 deletions peleffy/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
from ._version import get_versions
__version__ = get_versions()['version']
del get_versions

from . import _version
__version__ = _version.get_versions()['version']
Loading