Releases: qcscine/molassembler
Release 3.0.0
Release 2.0.1
Changes:
- Update address in license
Release 2.0.0
Changes:
- Cleaving graphs always returns Cleave object including ComponentMap
- Changed C++ standard from C++14 to C++17
- BondStereopermutator update on atom deletion
- Dependency handling for Boost versions >1.70
- BondStereoPermutator determination on eta bonds
- Nitrogen thermalization in cyclic systems
- Feasible stereopermutations consistency between serialization and deserialization
- The gradient target for the conformer optimization is now passed correctly
Release 1.2.1
Changes:
- Include the shape position groups into the serialization to ensure the correct reconstruction of site to vertex maps. This should make the molecule serialization and deserialization more consistent (and less error prone).
- DirectedConformerGenerator::binMidpointIntegers deprecated because it returns dihedral angles that are defined differently from DirectedConformerGenerator::Relabeler::add.
Release 1.2.0
Changes:
- Increase flatness threshold for rings (from 0.05 to 0.07)
- Symmetry reduced dihedral calculation in conformer and decision list generation
- Decision list: random atom choice in dihedral representation, now: fixed choice
Release 1.1.0
Added
-
Molecule
:- Bond stereopermutator addition and removal functions
- Manual atom stereopermutator thermalization control
-
Graph
: Added modifying functions to the interface for stand-alone class use -
Graph algorithms
- Ranking equivalent groups and ranking distinct atoms algorithms exploiting ranking results to classify chemical equivalence.
- Shortest path generator between vertices in the graph
- Edit distance. Algorithm to calculate minimal set of vertex and edge alterations to transform one graph into another.
- Reaction edit distance. Variation of the graph edit distance algorithm that conserves element types. Also adds an associated function that plots the edits.
-
Conformer deduplication: More
Relabeler
-related functions -
Experimental SMILES emitter:
IO/SmilesEmitter.h
-
Limited support for periodic boundary conditions via
Utils::PeriodicSystem
. Periodic systems can be interpreted, canonicalized and serialized, but not conformer generated. Ranking across boundaries is yet unsupported. -
Python bindings:
- Added modifying functions to
Graph
- Direct copying support for
Molecule
instead of via pickling - Added build-time generation of typing stubs with pybind11-stubgen
- Added modifying functions to
Changed
-
Graph and Molecule are now implementations of a common interface for graph information and modification. This interface might be expanded in the future.
-
More colorful graphviz rendering for elements
-
Conan: Better integration with community packages. No longer require full CMake from all dependencies but follow conan
packaging philosophy <https://github.com/conan-io/conan-center-index/blob/master/docs/faqs.md#why-are-cmake-findconfig-files-and-pkg-config-files-not-packaged>
_. -
CMake: option
MOLASSEMBLER_PARALLELIZE
is nowSCINE_PARALLELIZE
to follow SCINE convention. -
Interpretations without bond orders infer bond orders in binary fashion from Utils' BondDetector instead of from UFF parameters
-
Bond stereopermutator alignment:
BondStereopermutator::Alignment::BetweenEclipsedAndStaggered
now generates the same amount of alignments asBondStereopermutator::Alignment::Eclipsed
, not twice as many. -
Auxiliary library
Temple
- Refactor
map
to be able to apply it to tuples and arrays, too. - Clean up
ContainerTraits.h
- Refactor
-
SMILES parser
- Parsing errors as part of exception string, not written to stdout
- Perfect matching of aromatic subgraphs, error reporting
- Fix valence filling bug for atom types with multiple valid valences
-
Python bindings
- Altered name of
ChiralStatePreservation
enum member fromNone
toDoNotPreserve
(the former is a reserved keyword) - Better automatic type signature annotations in docstrings
- Altered name of
Deprecated
Graph
propertiesN
andB
for the number of atoms and the number of bonds have been deprecated in favor of newV
andE
properties in order to match complexity annotations and single-letter object propertiesStereopermutatorList
methodtry_remove
is deprecated in favor ofremove
, which now behaves astry_remove
would (no throwing).- Several
AtomStereopermutator
methods have been deprecated in favor of refactors with other function arguments not tightly coupled to theGraph
class, permitting stand-alone class use
Removed
- Several constant global data variables in the private API have been replaced with stateless functions or function-local caches.
- Constexpr shape property generation: It was clang-only and provided no tangible performance benefits. Best code is no code. Got rid of a few global variables in the process.
Fixed
-
Conformer generation: Removed an incorrect check for non-terminal vertices without an atom stereopermutator failing in some haptic cases
-
Permutator propagation:
- Fixed missing propagation of atom stereopermutator placement and re-keying the atom stereopermutator map in StereopermutatorList
- Add missing propagation of bond stereopermutator state on vertex removal
- Trial stereopermutation vertex links weren't permuted along with the site indices
-
Directed conformer generation: Fixed incorrect precondition check with unassigned stereopermutators
-
Python bindings'
interpret.interpret
has been renamed to aninterpret.molecules
overload as originally intended. -
Shape mapping generator between the same two shapes did not return the identity mapping
Release 1.0.0
Added
-
Add Conan support
-
Explicit definition of which headers make up the public API in the
tutorial-like documentation -
Molecule canonicalization: After canonicalization, isomorphism checks reduce
to an identity comparison. -
GraphAlgorithms.h for public graph algorithms. Currently contains only a
graph distance BFS algorithm -
A
doc
target that builds the Doxygen documentation, which is now more
extensive and contains the beginnings of a tutorial -
Many parameters of Distance Geometry can now be altered by passing a
non-defaultedConfiguration
object. -
Isomer predicate and generator header
Isomers.h
-
Higher-level editing functionality in
Editing.h
-
More shapes up to icosahedron and cuboctahedron (size 12)
-
Continuous symmetry, shape measures
-
Experimental SMILES Parser
-
Python bindings
- Molecule instances integrate nicely with notebooks using
_repr_svg_
- Doctested examples
- Molecule instances integrate nicely with notebooks using
Changed
- The PRNG Engine is seeded directly instead of a wrapper object that helps
with generating random numbers. The PRNG engine is part of molassembler's
public interface instead of the sublibrary temple. The engine is constructed
on first use. - Molassembler's validation and analysis binaries are no longer built by
default (see CMake options) - Add BSD-3 license marker to all files and a checker script
- Adopt Scine code conventions regarding namespace formatting
- Enclose temple, shapes, and stereopermutation sub-libraries in molassembler
namespace