Skip to content

Releases: timbernat/polymerist

1.0.2

25 Feb 04:55
43cb669

Choose a tag to compare

Minor improvements to docs and local-but-important bugfixes:

  • Bugfixes
    • Fixed sporadic stereochemistry inversion in some calls to rdcoords.tiling.tile_lattice_with_rdmol() (caused by bug in Jacobi rotation implementation in RDKit's ComputeCanonicalTransform; see related Issue)

    • Added support for arbitrary names to polymer repeat units from sequences passed to polymers.building.build_linear_polymer()

    • Added SetSerializer to fileutils.jsonio.serialize

    • Greatly extended test coverage, particularly for OpenMM runners and polymer build/sequencing

  • Docs
    • Included logo onto Docs page
    • Fixed malformatted and outdated links

What's Changed

Full Changelog: v1.0.1...v1.0.2

1.0.1

05 Sep 04:43
f10d1cf

Choose a tag to compare

Minor fixes after 1.0.0 release:

  • Documentation improvements
    • Fix errors on documentation examples page
      • Fixed broken links in section 3 ("workflows")
      • Corrected "miscellanous" typo
    • Improved docstrings in several modules:
      • polymers.specification
      • polymers.estimation
      • polymers.building.mbconvert
      • openfftools.topology
      • openfftools.boxvectors
  • Bugfixes
    • Fixed bug combine_mols call in ReactionAssembler.reactants, error no longer raised when a number of reactive groups other than 2 is input
    • Improve typing and robustness of importutils.pkgiter module trees
      • Added explicit Error + logging for ImportError
      • Fixed typehint on "blacklist" arg (from List to Container)
  • Packaging
    • Fix erroneous install of rdutils.rdconvert (deprecated on 2025/01/31 but 1.0.0 distribution was built incorrectly and included it anyway)

1.0.0

23 Aug 05:29
15f6132

Choose a tag to compare

First major release, following several large-scale changes!

Updates

  • Implemented new PINPRICS ring piercing detection algorithm and interfaces
  • General utilities (genutils)
    • fileutils
      • Added empty dir/file checkers
      • Added context manager for temporarily changing the current working directory
      • Moved allow_string_paths/allow_pathlib_paths decorators from decorators.functional to fileutils.pathutils to avoid
    • jsonio
      • Added TypeSerializer for numpy arrays to jsonio (NDArraySerializer)
      • Allowed make_jsonifiable to act on dataclasses with Optional[...] fields by fixing KEYWORD_ONLY signature detection
  • Added PDB atom labeller for polymer export
    • Provided virtual ("EP") site support for OpenMM PDB export
  • RDKit functionality:
    • Enhanced sanitization utilities
    • Enhanced atom/bond search by conditional queries
    • Added basic functionality for producing chemical graphs from RDKit Mols
    • Added calculation of effective radius of RDMol with one or more Conformer
      • Made calculation agnostic of RDKit-specific coordinate operations
  • Reactions:
    • Moved react/valid_reactant_ordering etc. from Reactor directly into AnnotatedReaction
    • Added detailed traces for following atom and bond provenance through a reaction
  • Fragment enumeration:
    • Generalized Reactor fragment search to iterative expand pool, rather than piping fragment directly through reaction; can now handle much broader classes of reactions
    • Included bond-weighted fragment strategy which given more chemically-reasonable cut choices
      • Deprecated ReseparateRGroups as default fragment strategy
    • Allowed fragment propagation to "resample" reactants, enabling autopolymerization modelling and detection
    • Added option to randomize rxn tree traversal
    • Expanded logging options when showing steps of reaction assembly
  • Polymer building:
    • Fixed conversion of charged atoms in spec SMARTS translator (non-neutral molecules are converted faithfully now)
      • Propagated awareness of charged into mBuild interface
    • Updated list of valid property queries to NIH CACTUS / PubChem
  • Molecular dynamics APIs
    • OpenFF
      • Dropped unnecessary "exclusion" parameter from pack_topology_with_solvent()
      • Added function to check if the unit cell defined by one set of box vectors is entirely contained in that of another
    • OpenMM
      • Added option to select thermostat/barostat, rather than using prescribed LangevinMiddle thermostat and MC barostat as before
        • Added new parameter sets for thermostat and barostat
        • Added auto-detection of named ensemble (e.g. NVE, NVT, NPT) rather than requiring user to provide this
    • LAMMPS
      • Reimplemented purely in terms of pylammps API calls (no more bespoke regex parsing)

Deprecations

  • Deprecated SANITIZE_AS_KEKULE throughout for Mol sanitization
  • Deprecated .analysis
  • Deprecated maths.statistics
  • Deprecated typetools.numpytypes.parametric
  • Deprecated graphics.named_colors
  • Deprecated openfftools.omminter and openfftools.mdobjects
  • Merged several submodules of mdtools.openmmtools into .serialization and .forces submodules

Bugfixes

  • Fixed long-standing barostat bleedover issue in OpenMM schedule runner - barostats will no longer persist from earlier simulations in a schedule
  • Fixed lammps single-point energy test failures due to misguided exact float comparison
  • Installation
    • Fixed slow lammps solver import
      • Removed need to perform mixed install via pip in devtools/conda-envs
    • Updated OpenFF stack version pins
    • Added helpful PrerequisitePackageErrors throughout to guide user through install of missing-but-essential packages

What's Changed

Full Changelog: v0.1.5rc1...v1.0.0

0.1.5rc1

17 Jan 04:05
11f0057

Choose a tag to compare

0.1.5rc1 Pre-release
Pre-release

Minor feature cleanup and improvements to kekulization handling and chemical database query services

  • Greatly expanded robustness of smileslib.chemdbqueries:
    • Reimplemented core via Strategy pattern and provided concrete implementations for
    • Added capability to check is services are online prior to attempting query
    • Compiled comprehensive lists of queryable chemical properties and namespaces for each implementations
    • Added service-agnostic get_chemical_property() wrapper for convenience
      *Provided greater control over Kekulization in RDKit-derived functionality
    • Added enable_kekulized_drawing() and disble_kekulized_drawing() config methods to rdutils.rdkdraw
      -* Made rdkdraw imported at toplevel rdutils
    • Added flag to disable Kekulization in SMILES string expansion (polymers.monomers.specification.expanded_SMILES(...))
  • Added procrustean_string(...) function to genutils.textual.prettyprint (related to PROCRUSTES algorithm implemented in .polymers for copolymer sequencing)

0.1.4rc1

04 Jan 03:50
a097fb1

Choose a tag to compare

0.1.4rc1 Pre-release
Pre-release

Minor fixes to README and optional dependencies

What's changed

  • Fixed issue with accidental file redirect in NAGL install command in README
  • Corrected typos in README
  • Added missing pubchempy requirement to "chemdb" optional dependency category

0.1.3rc1

04 Jan 02:40
3b84746

Choose a tag to compare

0.1.3rc1 Pre-release
Pre-release

Overhaul of README and improvements to dependency management

What's changed

  • Front-facing README completely rewritten to provide:
    • Details on compatible OS and package managers
    • More specific installation instruction
      • Pip-compatible installation instructions
    • Details on installing peripheral AM1-BCC toolkits
  • Simplified dependencies
    • Espaloma_charge is no longer required OR optional in pyproject.toml
    • espaloma_charge dependency in release-build.yml changed from pip-based to conda-based
    • Pre-import checks for cirpy and pubchempy added to smileslib.chemdbqueries
    • Fixed str.capitalize() call in use_case arg to MissingPrerequisitePackage, as this was causing unintended lowercasing later in the string
    • Former "jupyter" and "visuals" optional dependency categories consolidated into single "interactive" category
      • Made "rich" a required dependency

0.1.1rc1

19 Dec 01:39
9c50dec

Choose a tag to compare

0.1.1rc1 Pre-release
Pre-release

Minor tweaks to Python build files to get documentation and package index uploads working. No changes to code, only affects:

  • pyproject.toml: Added pip dependencies
  • readthedocs.yaml: Added pip install directive
  • devtools/conda-envs/release-build.yml: Added Sphinx theme requirement to nudge ReadTheDocs build along

0.1.0rc1

18 Dec 01:54
84a530d

Choose a tag to compare

0.1.0rc1 Pre-release
Pre-release

Release candidate in-transition from beta to official release

What's changed

  • Added new molfiles subpackage for handling molecule file writing
  • Consolidated dynamic imports and dependency checking into genutils.importutils subpackage
  • Added dependency check for non-pip installable dependencies (namely OpenFF stack, mBuild, OpenBabel, and OpenEye)
  • Added generic tree-like data structure interface, used to reimplement file and directory trees
  • Deprecated unintuitive "DOP" keyword in polymer builder in favor of explicit number of monomers
  • Added Validation, end group auto-generation, and several convencience methods to MonomerGroup
  • Added robust copolymer sequence checking and fitting ("PROCRUSTEAN sequence alignment"), including support for fractional base sequence repeats
  • Updated OpenFF NAGL models
  • Simplified OpenFF partial charge method and toolkit registration
  • Increased test coverage throughout (particularly for new features)

0.0.1 Beta version

26 Nov 00:45

Choose a tag to compare

0.0.1 Beta version Pre-release
Pre-release

Pre-release version of polymerist.

Intended to:

  • Checkpoint this version of polymerist prior to planned 1.0.0
  • Allow reversion to pre-release build for dependent code
  • Enable building of documentation for ReadTheDocs
  • Enable testing of pip-installable version

Full Changelog: https://github.com/timbernat/polymerist/commits/v0.0.1-beta