CDK 2.8
Key Changes
- JDK Versions:
- JDK 8 (minimum)
- JDK 11 (minimum if not using cdk-iordf)
- JDK 17 (recommended)
- The project is now built with Java 11+ but compiled to target Java 8. If you have any issues please let us know.
- The master branch has been renamed to main.
- logj4-core is no longer a dependency of cdk-log4j, you should include these separately if you intend to use Log4j
- A new cdk-slf4j module allows connecting logging to SLF4J
- MayGen structure generator, provides the ability to generate millions and millions of structures that have a given formulae.
Maygen maygen = new Maygen(SilentChemObjectBuilder.getInstance());
maygen.setFormula("C3Cl2H4");
maygen.setConsumer(new SmiOutputConsumer(new OutputStreamWriter(System.out)));
maygen.run();Maygen is pure Java, if you need more speed consider Surge by the same author.
- New Smallest Ring utilities for single atom/bond
if (Cycles.smallRingSize(atom, 7) != 0) {
// atom is in a ring 7 or smaller
}
if (Cycles.smallRingSize(bond, 7) != 0) {
// bond is in a ring 7 or smaller
}- RAW/Count Path Fingerprints
IFingerprinter fpr = new Fingerprinter();
Map<String, Integer> feats = fpr.getRawFingerprint(mol);-
Where possible "Re-inflate" convex rings on cyclcophanes:
Before:now:
-
New substructure/copy utility that allows a whole or part of a structure to be copied. Atoms are bonds are selected by providing a predicate:
IAtomContainer dst = builder.newAtomContainer();
AtomContainerManipulator.copy(dst, src, a -> a.isInRing(), b -> b.isInRing()); // select the cyclic part of a molecule
// select atoms in a set, the bonds will also be selected
Set<IAtom> subset = ...
AtomContainerManipulator.copy(dst, src, a -> subset.contains(a)); - New exclusive atoms filter that provides non-overlapping substructure matches, note the input order can determine which matches are selected.
for (int[] mapping : Pattern.findSubstructure(query).matchAll(mol).exclusiveAtoms()) {
// ...
}Summary
- Merged all PRs and resolved all open issues related to bugs
- InChINumbersTools: Use JNA InChI options by @johnmay in #799
- Avoid integer overflow in MF by @johnmay in #808, #810
- Ensure correct stereo consistency (Fix #812) by @johnmay in #813
- SMILES: Fix an issue with stereochemistry being lost on generic atoms - @johnmay in #814, #866
- Maygen structure generator by @MehmetAzizYirik in #811
- Weighted path descriptor performance improvements by @johnmay in #817
- Depiction: Fix missing bond annotations by @johnmay in #819
- Utility functions for determining the smallest ring size of an atom/b… by @johnmay in #820
- Better consistentcy in Stereochemistry and Sgroups when removing atoms by @johnmay in #821
- Unify MOLfile V2000/V3000 options by @johnmay in #824, #852
- Improved stereochemistry perception by @johnmay in #826, #839
- Replace Atom symbol (String) comparison with atomic number (integer) by @johnmay in #827
- Improved/fix bugs with XLogP, PiContact, and BCUT, HuLuIndex descriptors by @johnmay in #833, #656, #822, #832
- Additional Raw and count path fingerprints by @johnmay in #834
- "Re-inflate" convex rings in macrocycles. The macrocycle layout can en… by @johnmay in #836
- Fix a corner case in repeat crossing bonds when we have variable atta… by @johnmay in #835
- Restore space as delimiter for string-based definition of InChI options by @marco-foscato in #846
- Update to Apache Jena 4.2 (requires JDK 11) by @egonw in #748
- Fix localisation of alpha channel floats in SVG by @egonw in #868
- Check string bounds on PDB COMPND line. Fixes #870 by @johnmay in #871
- Methods to manipulate atom types in ReactionManipulator by @uli-f in #883, #879
- Added ChemObjectBuilder.newReaction() by @uli-f in #888
- Utilities for selecting a substructure of a molecule. by @johnmay in #889
- Improved CDK Log4J/SLF4J interactions by @johnmay in #878, #876
- Additional SMARTS/matching utilities by @johnmay in #896, #900
- Use Junit5 by @johnmay in #901
- Fix issue with hose code nesting by @johnmay in #828
Authors
278 John Mayfield
13 Egon Willighagen
11 Uli Fechner
5 Mark Williamson
3 Valentyn Kolesnikov
2 MehmetAzizYirik
2 Marco Foscato
1 dependabot[bot]
1 Tim Dudgeon
1 Otto Brinkhaus
1 Christoph Steinbeck
1 Alex
New Contributors
- @marco-foscato made their first contribution in #846
- @tdudgeon made their first contribution in #847
- @OBrink made their first contribution in #851
- @sashashura made their first contribution in #885
Full Changelog: cdk-2.7.1...cdk-2.8