Skip to content

Latest commit

 

History

History
177 lines (133 loc) · 7.46 KB

CHANGELOG.md

File metadata and controls

177 lines (133 loc) · 7.46 KB

PyAutoFEP change log

Notable changes to PyAutoFEP will be documented here. As of 2023-08-01, there is no versioned release, so for now major changes are referenced by commit. Sorry for this inconvenience.

[TBD] - 2023-09-21

This commit improves handling of pre-solvated systems. prepare_dual_topology.py now can correctly handle pre-solvated systems supplied along with topologies that uses a water molecule name different from SOL. Also, topology handling improved allowing for better parse of ParmEd topologies.

Added

Changed

  • In the runscript, call to mpirun now uses --oversubscribe by default. This prevents errors when running in a system with fewer CPUs than lambda windows. However, in case there is a problematic configuration, it may be less obvious to spot.
  • Using other residue and molecule names for water molecules in pre-solvated systems now correctly works.

Fixed

  • Fixed #113
  • Fixed #119

[2bd9a52] - 2023-08-01

This commit improves handling of pre_solvated systems. First, it adds the internal selection method to prepare_dual_topology.py, so that MDAnalysis is no longer required for working with such input. Second, prepare_dual_topology.py will try to automatically generate topology and position restraints for pre-solvated systems.

Added

  • Automated topology generation for pre-solvated systems

Changed

  • The default value: selection_method=internal now works
  • Water molecules are now renamed to SOL for pre-solvated systems

Fixed

  • Fixed #78
  • Fixed #95

[2c0b9da] 2023-06-2023

This commit sets a new default value: output_collecttype=python. Previously, the default collect script was a binary created using PyInstaller. This was done because back in 2020 not every cluster had a modern enough Python3 version, so this could save users some time in setting up an env just for a simple script. Nowadays Python3 is everywhere and keeping the old binary as default makes no sense. Note that output_collecttype=bin is still allowed, but I expect to drop support in the upcoming updates.

Added

Changed

  • New default value: output_collecttype=python

Fixed

  • Fixed #75
  • Fixed #90

[f20b3c0] 2023-01-11

This commit changes the poses reading. Before it, prepare_dual_topology.py would read poses for every molecule in the input molecules, although only the poses for which the A states are needed would ever be used. Now, only the poses needed will be read. This speeds up execution, specially when using pose_loader=superimpose.

Added

  • Sterechemistry code added to mol_util.obmol_to_rwmol

Changed

  • docking_readers.vina_loader now uses read_small_molecule_from_pdbqt
  • merge_topologies.constrained_embed_shapeselect and merge_topologies.constrained_embed_forcefield now enforce stereochemistry
  • prepare_dual_topology.py only reads/generates poses for molecules in A states

Fixed

  • Fixed #68
  • Fixed #59

[c6e427c] 2022-11-06

This commit fixes the restraint code. Restraints can be selected by passing mdp_substitution to prepare_dual_topology.py, eg:

mdp_substitution = define: -DPOSRES_PROTEIN_CA

The following restraints are automatically generated and can bu used in this manner.

Molecule make_ndx selection restraint Affected atoms Define
Ligand LIG All atoms POSRES_LIG
Protein Protein-H Protein's heavy atoms POSRES_PROTEIN
Protein C-alpha Protein's Cα POSRES_PROTEIN_CA
Protein Backbone Protein's backbond POSRES_PROTEIN_BB
Water Water Water molecules POSRES_WATER

Added

  • Position restraints are now supported

Changed

  • [DEBUG] verbosity level now prints molecule info in function calls

Fixed

  • Fixes #65

[f8324a3] 2022-09-22

This commit contains a massive backport of upcoming charge-changing perturbations to the topology reading code. This new code broadens the topology support, allowing for the following:

  • Topologies containing A and B states. Note, however, that B states will not be used to prepare the dual topology! Dual topology is built from distinct molecules. In case the input topology has both A and B states, prepare_dual_topology.py will merely check that states A and B match (eg, as generated by SwissParam), and use data from state A.
  • New code for concomitant perturbing charge and VdW parameter of atoms. Not really used yet, but paves way for charge-changing perturbations and perturbing atoms in rings.
  • General topology coverage. Online dihedrals and more terms are now supported.

Added

  • Massive addition of code to all_classes.py, much better topology support
  • SMILES can now be read when reading input molecules as PDB to set bond orders, valences etc

Changed

  • AcPYPE now run using OMP_NUM_THREADS=1

Fixed

  • Fixes #62
  • Fixes #5

[190bef6] 2022-06-06

This commit brings three new major features:

  • OpenBabel 3.X is now supported, along with backward compatibility with OpenBabel 2.4. Because OpenBabel 3 series is the one actively maintained upstream, all users are recommended to upgrade.
  • Reading of poses from Vina (and derivatives) .pdbqt files. prepare_dual_topology.py now accepts pose_loader=vina which reads .pdbqt files. Poses in a ligand file can be selected setting poses_advanced_options cluster_docking_data (see manual for more info).
  • Automated parameterization of input ligands. prepare_dual_topology.py can now run external small molecule parameterization tools automatically (using parameterize and related options, see manual for further info). Currently, the only parameterization software supported is AcPYPE, but I hope others can be added soon.

Furthermore, this update fixes some bugs and improves 3D MCS code, which is now more robust. Two defaults changed: in prepare_dual_topology.py, gmx_bin_run=gmx_mpi is now the default, as a MPI-enabled gmx executable is required and GROMACS compiles a gmx_mpi when using MPI. Also, generate_perturbation_map.py now will not save full_graph.svg and result_plot.svg unless the verbosity is at least INFO.

As always, please, fill issues should you experience any problems.

Added

  • OpenBabel 3.X now supported
  • Vina poses now supported
  • Automated parameterization using AcPYPE

Changed

  • New default: gmx_bin_run=gmx_mpi

Fixed

  • Fixes #62
  • Fixes #5

[fe41f7d] 2022-01-19

This commit introduces a bunch of new features and code changes. Even though I tested newly implemented and rewritten code, things may break. Please, fill issues should you experience any problem. Main changes:

  • Modifications to the atom matching functions in PyAutoFEP were done to implement support for user-supplied atom maps.
  • User-supplied atom maps are also available for the superimpose pose loader
  • Selecting 3D MCS for merge_topologies.merge_topologies is now supported (3D MCS in generate_perturbation_map.py and superimpose loader coming soon)
  • 3D MCS code rewritten for better support for ligand pairs with multiple atom matches

Added

  • Custom atom maps now supported (mcs_custom_atommap)
  • Selecting between 3D and graph based MCS now possible (mcs_type)

Changed

  • 3D MCS code rewritten, improved

Fixed

  • Fixes #29