Skip to content

Latest commit

 

History

History
592 lines (441 loc) · 18.4 KB

CHANGELOG.rst

File metadata and controls

592 lines (441 loc) · 18.4 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

1.1.1

  • placeholder.

1.1.0

  • Add support for polyatomic core anchors.

1.0.0

  • Bump CAT to 1.0.0 in preparation for a new scientific paper.

0.11.1

  • Lay the groundwork for the new Nano-CAT ligand branching workflow.

0.11.0

  • Add the remove_anchor_hydrogens option to the cone-angle workflow
  • Minor improvements to computing the ligand conformer optimization cost function
  • Improve the ligand conformation search
  • Fix the CAT logger failing to write to stdout
  • Set the default Indium (formal) charge to 3+
  • Fix the ligand conformation optimizer failing for certain cyclic systems
  • Only disable the rdkit SANITIZE_ADJUSTHS when strictly required
  • Fix the anchor.kind = "mean" keyword being broke

0.10.6

  • Added a Nano-CAT workflow for computing ligand cone angles.
  • Allow multiple values for the bulkiness latice spacing.
  • Improve the conformation ligands.
  • Fix optimized geometries not being correctly written to .hdf5.
  • Ensure that ligands are properly aligned after PLAMS optimizations.

0.10.5

  • Fix an issue where certain properties could not be extracted from CP2K frequency jobs.
  • Add the anchor.multi_anchor_filter option.

0.10.4

  • Added the qd.dissociate.qd_opt keyword.
  • Fix thermochemical properties not properly being set to nan for crashed jobs.

0.10.3

  • Allow core.allignment: "surface" for cores with <4 anchor atoms.
  • Allow QMFlows-style keywords to be parsed by the BDE workflow.
  • Fix the qd.dissociate.core_atom and lig_count keys not being optional.
  • Added the qd.dissociate.xyn_pre_opt keyword.

0.10.2

  • Added the option to specify dummy atoms as anchor group.
  • Added the option to specify the format type of anchor groups (SMILES, SMARTS, etc.).
  • Fixed an issue wherein anchor-group-parsing could fail for mono-atomic anchors.
  • Added packaging and rdkit-pypi as dependencies; manually installing rdkit via conda is no longer necessary.

0.10.1

  • Added the option to manually specify angle offsets the ligand vectors.
  • Added the option to manually specify dihedral angle the ligand vectors.
  • Added the option to invert the core vectors.
  • Added the various ligand anchor parsing options to its core-based counterpart.
  • Deprecated usage of Molecule.get_formula in favor of a PLAMS <=1.5.1-based backport.
  • Fixed CAT modifiying global logging settings.

0.10.0

  • Add more advanced anchor-parsing options.
  • Update for AMS 2021.
  • Fixed various issues.

0.9.11

  • Changed the default optional.core.allignment option from "sphere" to "surface".

0.9.10

  • Added the new optional.core.anchor and optional.ligand.anchor options, which are respectively aliases for the old optional.core.dummy and optional.ligand.functional_groups options.
  • Added a new H3O+ .coskf file.
  • Added a new template for LogP calculations.
  • Enabled tests for Windows.
  • Fixed a recent readthedocs failure.

0.9.9

  • Improve the conformations of ringed systems; ring-substituents are now treated as fragments.

0.9.8

  • For some reason the matplotlib logger is going bananas; its level has been changed from DEBUG (default) to INFO in order to silence it.

0.9.7

0.9.6

0.9.5

  • Fixed a bug where rdkit molecules were not properly converted into numpy arrays.
  • Only perform optional.ligand.optimize.job2 if the preceding UFF optimization finishes without crashing.
  • Remove a ligand if its optimization fails (_i.e._ an exception is raised).
  • Fixed an issue where ligand anchoring groups could not be explicitly specified (docs).
  • Improved the conformations of ligands with tri- and penta-valent pnictogen anchors.

0.9.4

  • Fixed an issue where certain AMSJobs would have duplicate keys.
  • Fixed an issue where certain ligands weren't exported when constructing multi-ligand quantum dots (see #115).
  • Re-enabled tests for Python 3.6 (see #125).

0.9.3

  • Switched from travis to GitHub Actions.
  • Added tests using flake8, pydocstyle and doctest.

0.9.2

  • Updated the Database documentation (see nlesc-nano/data-CAT#23).
  • Upped the minimum Sphinx version to 2.1.
  • Removed sphinx-autodoc-typehints.
  • Removed requirements.txt in favor of .readthedocs.yml.

0.9.1

0.9.0

  • Moved a number of functions to the nanoutils package.

0.8.9

  • Added the option to perform ligand geometry optimizations at arbitrary levels of theory.

0.8.8

  • Fixed a bug where ligands weren't properly rotated when using optional.ligand.optimize = False.
  • Added tests for CAT.utils.SetAttr.

0.8.7

  • Replaced print() calls with logger.warning() in all dye-related functions.
  • Added a recipe for calculating the synthetic accessibility score (SAS) as adapted from MolGAN.

0.8.6

  • Added documentation for the new Nano-CAT multi_ligand_job() recipe.

0.8.5

  • Version bump.

0.8.4

  • Turned the dye functionality into a recipe in CAT.recipes.

0.8.3

  • Merged all features from the dye branch into the master.
  • Fixed an issue where custom forcefield settings are not properly parsed: #99.
  • Added a try/except clause for job hashing in case rerun prevention is disabled: #98.
  • Added new recipes to the documentation: #95 & #96.
  • Fixed an issue where creating an object array would unpack a Molecule into Atoms: #94.
  • Raise an Exception when failing to identify any atoms: #93.

0.8.2

  • Added the option to decorate a qd surface with more than one type of ligand.

0.8.1

  • Added the optional.core.allignment keyword for determining how ligands should be alligned with the core. Accepted values are "sphere" and "surface".
  • #87: Ensure that part of the core-surface is accounted for when rotating ligands.
  • #85 & #86: Issue a warning when atoms are too close when constructing QDs.
  • #85 & #86: Improved warning handling.

0.8.0

  • Moved the CAT.recipes module to Nano-CAT.
  • Moved the CAT.attachment.qd_opt_ff module to Nano-CAT.
  • Created the CAT.workflow.key_map module for storing aliases for DataFrame() columns.
  • Cleaned the modules in CAT.workflows.
  • Updated tests.

0.7.15

  • Moved test_distribute() to it's own module: CAT.attachment.distribution_utils.
  • Added the brute_uniform_idx() for creating uniform/clustered distributions in a brute-force manner, i.e. by finding the global minimum/maximum within the set of all valid atom combinations.
  • Generalized the array_combinations() function, it now accepts any array-like object and can generate combinations along any user-specified axis.
  • Added the get_nearest_neighbors() function for finding the k nearest-neighbors within a molecule.
  • Added a recipe for marking a (sub-)set of surface atoms: CAT.recipes.mark_surface().
  • Added a recipe for dissociating specific sets of surface atoms: CAT.recipes.dissociate_surface().
  • Update to the general structure of the CAT.recipes modules.
  • Multiple minor documentation adjustments.

0.7.14

  • Changed the default value of the CP2K EI_SCALE14 keyword from 0.0 to 1.0 (i.e. the CHARMM forcefield default).
  • Renamed the CAT activation_strain.scale_elstat keyword to .el_scale14.
  • Renamed the CAT activation_strain.scale_lj keyword to .lj_scale14.
  • Added the CAT activation_strain.dump_csv keyword for writing the raw potential energies to a set of .csv files.
  • Added the CAT activation_strain.shift_cutoff keyword. Sets the value of all non-bonded potential to zero at activation_strain.distance_upper_bound.
  • A number of consistency improvements to the Schemas.

0.7.13

  • Small optimization improvements to edge_dist().
  • Moved a number of functions around in the CAT.utils module.
  • Added the optional.qd.dissociate.lig_pairs keyword for the BDE workflow.

0.7.12

  • Fixed a bug qd_opt_ff() where the wrong dictionary key was validated.
  • Multiple updates to the CP2K MD template.
  • Employ a more duck-typing based approach during the schema validation.
  • Fixed a bug in the jobs module where incorrect Results() instances were returned.
  • Multiple documentation updates.

0.7.11

0.7.10

  • The function for applying distance weights during the subset-generation process is now configurable.
  • The default distance weighting function has been changed to weight = "np.exp(-x)". The old p-norm with p=-2 is still accessible via: weight = "x**-2"

0.7.9

  • Added the option to interpolate between "uniform" / "cluster" and "random".
  • The order of the p-norm is now configurable.
  • The variable representing the anchor-atom subset size has been changed from p to f. p is now reserved for the order of the p-norm.
  • #70: Fixed an issue with the _parse_cluster_size() index offset.

0.7.8

  • It is now possible to create "uniform" distributions of clusters, the size of each cluster being user-specified.

0.7.7

  • The "uniform" and "cluster" distributions are now weighted by the distance rather than using a, less robust, distance truncation.

0.7.6

  • Added the option, when constructing core atom subsets, the use a distance matrix representing the shortest paths along the edges of a polyhedron, rather than through space. Enabling this option will result in more accurate "uniform" and "cluster" distributions at the cost of increased computational time.
  • Updated and improved the "uniform" and "cluster" distributions.
  • #65: Fixed a bug where uniform_idx() yielded the rolled, rather than unshifted, indices.
  • #64: Bug fix: the subset Schema now checks for instances of int Or float.
  • #66: Return the identity (rotation) matrix if a FloatingPointError is encountered during the creation of rotation matrices. This can occur if a ligand consists of a single atom.
  • #66: Fixed a bug in the parsing of the mode parameter of distribute_idx(); "uniform" and "cluster" will now correctly link to np.argmax and np.argmin instead of the other way around.

0.7.5

  • Added the ability to populate only a (random-ish) subset of core anchors with ligands.

0.7.4

  • The ligand rotation check is now substantially faster: a distance cutoff has been implemented for the construction of distance matrices.

0.7.3

  • Added an option perform an ensemble-averaged QD activation strain analyses in Nano-CAT.
  • Removed a number of redundant modules.
  • QD optimization now properly respect the optional.qd.opt.use_ff keyword.

0.7.2

  • Minor tweaks to the default forcefield-related CP2K input files.
  • Fixed a couple of bugs in the ligand dissociation workflow.
  • Reworked the ligand dissociation procedure in Nano-CAT.

0.7.1

  • Bug fix: Added a missing value to the to-be exported ASA columns.

0.7.0

  • Finalize the introduction of a new CAT template system (WorkFlow()).
  • WiP: Implement an acitvation strain workflow with custom MATCH-based forcefields in Nano-CAT.

0.6.5

  • Updated Nano-CAT to 0.2.4: nlesc-nano/nano-CAT#20.
  • Updated Data-CAT to 0.1.5: nlesc-nano/data-CAT#17.
  • Import assertions from AssertionLib rather than CAT.
  • Simplified to AsArray() context manager.
  • Added the ["keep_files"] option for quantum dot optimizations.
  • Removed CRSJob() and CRSResults(); import them from PLAMS instead.
  • WiP: Introduction of a new CAT template system (WorkFlow()).

0.6.4

  • Moved the ligand bulkiness workflow from the ligand to the qd block in the CAT input. See nano-CAT 0.2.3.
  • Updated the formula for the ligand bulkiness calculation. See nano-CAT 0.2.3.

0.6.3

  • Fixed a bug where hypervalent atoms where assigned incorrect atomic charges.

0.6.2

  • Added multiple improvements (and bug fixes) to the ligand conformation optimizer.
  • Added a context manager for the plams.Molecule.as_array() method.
  • Added an optimizer for the ligand vector.
  • Updated the ligand bulkiness workflow in nano-CAT 0.2.2.

0.6.1

  • Added a workflow for calculating ligand bulkiness in nano-CAT 0.2.1.

0.6.0

  • Implemented an interface to MATCH (Multipurpose Atom-Typer for CHARMM) in Nano-CAT.
  • Added a workflow for creating CP2K input files with the MATCH-assigned atom types & charges.
  • Updated the handling of assertions, see CAT.assertions.assertion_manager.

0.5.5

  • Lowered Python version requirement from >=3.7 to >=3.6.

0.5.4

  • Minor updates to the logger.
  • Cleaned up CAT.jobs.py.
  • check_sys_var() is now only called if an ADF-specific Job is requirest.
  • Job hashes are now stored in (and retrieved from) $JN.hash files (plain text).
  • Added a permanent Database instance to .optional.database.db.
  • Parsing of functional group SMILES strings is now carried out during the Schema validation.
  • Updated Data-CAT to 0.1.2; changed status from pre-alpha to alpha (see nlesc-nano/data-CAT#13).

0.5.3

  • Moved Molecule to file exporting (i.e. .xyz and .pdb creation) from data-CAT to CAT.
  • Molecules can now be exported to .mol and .mol2 formats (in addition to .pdb and .xyz format).
  • Increased the clarity of many exceptions (see #45).
  • Updated the documentation.
  • Introduced a proper logger (see #46).
  • Updated data-CAT to 0.1.1 (nlesc-nano/data-CAT#12) and nano_CAT to 0.1.2 (nlesc-nano/nano-CAT#10).

0.5.2

  • Added more tests.
  • Added a more explicit error message to _smiles_to_rdmol().

0.5.1

0.5.0

  • CAT has been split into 3 seperate packages (see #39):
    • CAT: A collection of tools designed for the automatic construction of composite chemical compounds.
    • nano-CAT: A collection of tools for the analysis of nanocrystals.
    • data-CAT: A databasing framework for the Compound Attachment Tools package (CAT).
  • Docstrings have been changed into NumPy style.
  • Added typehints.
  • Added the CAT.SettingsDataFrame and CAT.SettingsSeries classes.
  • Added more tests.
  • Cleaned up all input-parsing related modules.
  • Custom function groups (i.e. SMILES strings) can now be specified in the input under the optional.ligand.functional_groups key (see #13).

0.4.6

0.4.5

  • All raw input scripts are now stored in the structures.hdf5 file (see: #36).

0.4.4

  • Split CAT_database.py into database.py and database_functions.py.
  • Unoptimized starting structures are now exported to the database.
  • Added the sphinx autosummary extension.

0.4.3

  • Improved interaction between the database and BDE module.
  • Cleaned up BDE module.
  • HDF5 indices are now always sorted when itneraction with the database.

0.4.2

  • Numerous bug fixes.
  • A couple of code-style changes.

0.4.1

  • COSMO-RS calculations now allow for COSMO-surface construction at the DFT level.

0.4.0

  • Introduction of the CAT.Database class.
  • Central object of CAT has been changed into a dataframe of molecules rather than lists molecules.
  • Updated a number of tests.

0.3.3

0.3.2

  • Further (minor) updates and bug fixes to the database interaction.
  • Overhaul of the bond dissociation energy (BDE) module.
  • Job settings are now stored in the database.

0.3.0

  • Massive overhaul of the CAT database interaction.
  • Moved functions related to functiona group recognizition to CAT.attachment.ligand_anchoring.py.
  • Multiple minor bug fixes.

[Unreleased]

  • Empty Python project directory structure.