2.3 Release Notes
Download complete JAR: cdk-2.3.jar
(26MB)
Lhasa have contributed a new LogP descriptor as described Plante and Werner, 2018.
JPlogPDescriptor desc = new JPlogPDescriptor();
DescriptorValue answer = desc.calculate(struct);
DoubleResult result = (DoubleResult) answer.getValue();
The JPLogP paper highlighted the CDK's ALogP descriptor was underperforming compared to different implementations. On closer inspection it was found the atom typing was inadequate and with help from Cosimo Toma and comparison to VEGA the CDK's ALogP implementation was corrected and optimized.
CDK 2.2:
Sample Size: 10000 N < 0.01 diff: 1048 Difference Sum: 15542.94 RMSE: 7.14
CDK 2.3:
Sample Size: 10000 N < 0.01 diff: 8665 Difference Sum: 838.09 RMSE: 0.10
It is now possible to render donuts in delocalised rings. The display is default when there are no bond orders assigned, for example when a structure can not be kekulized:
To enable this display on small (<8) aromatic rings by default set the display option: 'withAromaticDisplay()':
DepictionGenerator depictor = new DepictionGenerator().withAromaticDisplay();
depictor.depict(mol).writeTo("/tmp/tmp.svg");
The new bond display property allows greater flexibility in how bonds are displayed. For example we can now add in dative bonds to structures like Fe(acac)3. CDK Depict will actually do this automatically if you give it a hypervalent representation:
CC1=CC(C)=[O][Fe]234(O1)OC(C)=CC(C)=[O]2.CC(O3)=CC(C)=[O]4
Internally you can choose to display these as dot/dashed etc. The bond display also allows bonds to be "bold":
mol.getBond(3).setDisplay(IBond.Display.Bold);
Support the i
(is unsaturated) in LOOSE parsing mode since multiple toolkits support this and it is not ambiguous.
Support inequalities [D>2]
in addition to the already supported bounded ranges D{2-4}
.
163 John Mayfield
22 Egon Willighagen
10 Kazuya Ujihara
6 ficolas2
5 Jeffrey Plante
2 Markus Sitzmann
1 martin morissette
1 Qinqing Liu
- Version 2.3-SNAPSHOT. John Mayfield on 2018-10-30
- Added two recent new authors Egon Willighagen on 2018-10-30
- Resolve issue with cloning SRU groups that have brackets with coordinates defined. John Mayfield on 2018-10-30
- Fix Expr documentation. John Mayfield on 2018-10-30
- Fix new elements' period and group Kazuya Ujihara on 2018-11-04
- Failure test of RDFProtonDescriptor_G3R Kazuya Ujihara on 2018-11-10
- Fix loop logic of RDFProtonDescriptors Kazuya Ujihara on 2018-11-10
- Fix RuleOfFiveDescriptor always pass molecular weight test Kazuya Ujihara on 2018-11-19
- Remove unused code Kazuya Ujihara on 2018-11-28
- Fix maybeCrossed in LayoutRefiner Kazuya Ujihara on 2018-11-30
- Allow isotopes to be shown for pseudo atoms. John Mayfield on 2018-12-03
- contract on hetero flag. John Mayfield on 2018-12-03
- Watch out for ambiguity, we cannot collapse "N" "iPr" to "NiPr" as it is ambiguous with "Ni", "Pr". John Mayfield on 2018-12-03
- Ignore prefix underscore on R labels. John Mayfield on 2018-12-03
- Avoid test error. John Mayfield on 2018-12-03
- Now fixed... John Mayfield on 2018-12-03
- Failure test of mass difference. Kazuya Ujihara on 2018-12-08
- Fix reading mass difference field. Kazuya Ujihara on 2018-12-08
- Final Version of JPlogP Jeffrey Plante on 2018-12-17
- Removed redundant hydrogen perception from tests Jeffrey Plante on 2018-12-19
- Extracted JPlogP calculations into separate class Jeffrey Plante on 2018-12-19
- Comments and misc tidying Jeffrey Plante on 2018-12-19
- Auto calculate the surface when the class is created. John Mayfield on 2018-12-20
- Should backup and rollback all charges not just the current atom. John Mayfield on 2018-12-20
- Improved error logging for multithreaded making sure the entire lines get printed. Multiline errors may still be interleaved. John Mayfield on 2018-12-21
- Update Beam and SmilesParser to be more relaxed on double bond stereo issues. Beam changes - allowing strict/relaxed parsing from external API - better reporting of double bond stereo errors - ignore double bond stereo errors if in relaxed mode John Mayfield on 2018-12-21
- Resolve #523 1 larger codec is OK John Mayfield on 2019-01-02
- Resolve #523 2 Move always false condition hybrid=Sp to where oxnum==0 is tested. John Mayfield on 2019-01-02
- Resolve #523 3 Ensure points is initialised and don't use C style array syntax. John Mayfield on 2019-01-02
- Resolve #523 4 test zero length before access John Mayfield on 2019-01-02
- Resolve #523 5 Test null, also update doc links. John Mayfield on 2019-01-02
- Resolve #523 7 Better null checks on CIF block command skips. Also clean up == false. John Mayfield on 2019-01-02
- Resolve #523 8 Null check should be first. John Mayfield on 2019-01-02
- Resolve #523 9 Correct "copy" constructor from a Matrix. We can just clone the realmatrix. John Mayfield on 2019-01-02
- Resolve #523 10 Correct logic, we break when we see a second space. Also use StringBuilder. John Mayfield on 2019-01-02
- Resolve #523 13 Don't need to check line length > 6 (as > 7 already) also replace indexOf with contains check. John Mayfield on 2019-01-02
- Resolve #523 14 Correct logic John Mayfield on 2019-01-02
- Resolve #523 15 Remove duplicate check John Mayfield on 2019-01-02
- Resolve #523 16 Need to flip conditions, all ICrystals and IAtomContainers. John Mayfield on 2019-01-02
- Resolve #523 17 Flip instanceof conditions and use ArrayList instead of Vector. John Mayfield on 2019-01-02
- Allow multiple spaces when parsing "<HOSE_CODE>+" John Mayfield on 2019-01-03
- Correct location for codec bound test. John Mayfield on 2019-01-03
- Added Copyright and eliminated unused import Jeffrey Plante on 2019-01-04
- Added a new author Egon Willighagen on 2019-01-05
- Use the full reference Egon Willighagen on 2019-01-05
- Do not use the default (system) Locale, but force US notation for numbers Egon Willighagen on 2019-01-05
- X coordinates should also be formatted using the same format Egon Willighagen on 2019-01-05
- Use the proper locale here too Egon Willighagen on 2019-01-05
- Use one second, because on my system W0.01 gets practically interpreted as W0, which is no timeout at all Egon Willighagen on 2019-01-05
- Use Locale.ROOT instead of .US Egon Willighagen on 2019-01-07
- Format the decimal according to the locale of the system Egon Willighagen on 2019-01-07
- Restored the test (this syntax is now supported again) Egon Willighagen on 2019-01-07
- Small typo fix. Egon Willighagen on 2019-01-07
- Fix IntelliJ inspections, String init, unused monomer variable. John Mayfield on 2019-01-10
- Fix redundant if, deprecated method call, and remove unused map field. John Mayfield on 2019-01-10
- Tidy imports. John Mayfield on 2019-01-10
- bondMap not needed, stereo in InChI is all atom based. John Mayfield on 2019-01-10
- Cleanup HOST descriptors. John Mayfield on 2019-01-10
- Remove unsed sList array. John Mayfield on 2019-01-10
- Params should be set on reaction type, clean up code. John Mayfield on 2019-01-10
- Initial cleanup, this class had a lot of warnings. John Mayfield on 2019-01-10
- Remove unused ZORders John Mayfield on 2019-01-10
- Class cleanup John Mayfield on 2019-01-10
- Remove unused variable. John Mayfield on 2019-01-10
- Capturing pseudo atom logic was previously wrong and removed, remove the now redundant variable. John Mayfield on 2019-01-10
- getDescriptorNames() replicates the redundant code. John Mayfield on 2019-01-10
- Cleanup John Mayfield on 2019-01-10
- Add test and correct logic, trueBits needs to be set again. John Mayfield on 2019-01-10
- Remove unused atomArom and clean up warnings/style. John Mayfield on 2019-01-10
- bondsToHydrogens should be updated here. John Mayfield on 2019-01-10
- Default to warn level. John Mayfield on 2019-01-10
- Resolve assertion warnings. John Mayfield on 2019-01-10
- Old classic, remove Integer vs int John Mayfield on 2019-01-10
- Okay maybe a warning rather than a fail, @egonw can decide. John Mayfield on 2019-01-10
- Use @cdk.cite for the reference Egon Willighagen on 2019-01-23
- Use generics in java.util.List so we can remove redundant casts, ensure htype gets set in alogpfrag. John Mayfield on 2019-01-28
- Don't need to perceive atom types or "add" hydrogens anymore. Conversion to explicit still needed though. John Mayfield on 2019-01-28
- Hydrogens need to be added because we build the molecule from scratch. John Mayfield on 2019-01-28
- Simplify and correct alpha carbon hydrogen check, type := 51. John Mayfield on 2019-01-29
- The class expects aromatic flags to be set on the ringset, this was never the case semantics so the test IsInSameAromatic ring was not working correctly. John Mayfield on 2019-01-29
- Hydrogen missed in this case. John Mayfield on 2019-01-30
- elem != 6 also means Hydrogen, which is wrong. The paper gives a strict definition of hetreo atoms allows so let's use that. John Mayfield on 2019-01-30
- Add logic for atom type 40. John Mayfield on 2019-01-30
- Hydrogens now handled all in one place for nitrogen atom types. John Mayfield on 2019-01-30
- Simplified oxNum, central atom is always a carbon so any of the hetero atoms is okay. Wow forgot about "destroyBondOrder", definitely not clear it simply "unboxed" the enum to a number! John Mayfield on 2019-01-30
- More changes to htype 51, maybe still needs more work. John Mayfield on 2019-01-30
- Remove unnecessary qualification. John Mayfield on 2019-01-30
- Overhaul hydrogen atom typing. John Mayfield on 2019-01-31
- Alpha carbon check should only apply to Sp3 carbons... move it to where we have this value. John Mayfield on 2019-02-01
- Handle HCl, HF, HBr etc as though they were Cl-, F-, Br- etc. John Mayfield on 2019-02-01
- When there are three atoms in the ring we need to make a choice for these atom types. To be consistent with VEGA we prioritise putting X (hetero) in the ring. John Mayfield on 2019-02-01
- Correct atom type double bonds come first: "SssdNp" => "SdssNp". Also handle both forms of nitro. John Mayfield on 2019-02-01
- Missed imports John Mayfield on 2019-02-01
- Correct handling of hydroxy atom types OH vs PhOh, C=COH and CO2OH. John Mayfield on 2019-02-01
- Handle exo-bond aromaticity, not strictly correct (doesn't match AlogP model) but fine. John Mayfield on 2019-02-01
- Additional nitrogen Estate signatures. John Mayfield on 2019-02-01
- Missed commit - simple variable naming and use typed list. John Mayfield on 2019-02-01
- Make frags public, easier to debug, note alogpfrag[] is already public. John Mayfield on 2019-02-01
- Cleanup correct Ar-C(=X)-R and Ar-C(=X)-X John Mayfield on 2019-02-01
- Remove fall through comment and bound Oxygen type 60, and Nitrogen type 72. John Mayfield on 2019-02-01
- Add atype 112 John Mayfield on 2019-02-01
- Add atype 115 John Mayfield on 2019-02-01
- Correct handling of halogens on hetero atoms. John Mayfield on 2019-02-01
- Make ALogP work with implicit hydrogens, we can now also avoid the clone. John Mayfield on 2019-02-01
- Correct alpha carbon detection. John Mayfield on 2019-02-01
- B and Si also considered Hetero atoms, any single aromatic bond is okay for alpha carbon. John Mayfield on 2019-02-01
- Urge stupid null hydrogen count! John Mayfield on 2019-02-01
- Avoid out of bounds. John Mayfield on 2019-02-01
- Correct test values John Mayfield on 2019-02-01
- We don't care if a descriptor sets the ring status... it is invariant. John Mayfield on 2019-02-01
- New version of beam, only change is to allow handling of Any atoms (*) in aromatic rings. John Mayfield on 2019-02-03
- Now this is actually supported in BEAM the semantics are different. A '' atom in an aromatic system is presumed to have a conjugated double bond. Previously this example was allowed because '' was always aliphatic but this was not by design. Update the example with the same intended behavior. John Mayfield on 2019-02-03
- Modified WeightDescriptor calculate method to return natural mass. Updated unit tests martin morissette on 2019-02-07
- Useful utility to suppress query hydrogens (e.g. in SMARTS). John Mayfield on 2019-02-08
- Nicer expression ordering. John Mayfield on 2019-02-17
- Make test fail after timeout, if it does fail then the user has mixed locale and no obvious workaround ATM. Fail is better then hanging. John Mayfield on 2019-02-17
- Implement custom toArray function, some of our code reuses the underlying array and so the out-of-the box solution doesn't work as expected. John Mayfield on 2019-03-15
- Add option to set program name in CTfile output. John Mayfield on 2019-03-15
- Minor typo in a comment Egon Willighagen on 2019-03-15
- Correct handling of the error, allowing it to be picked up by error handlers (while still throwing the Exception in STRICT mode) Egon Willighagen on 2019-03-15
- Another recent contributor Egon Willighagen on 2019-03-15
- Modified breakExtractor to allow more formulas ficolas2 on 2019-04-03
- Updated breakExtractor for nested parenthesis ficolas2 on 2019-04-03
- Added test for new features in getMolecularFormula ficolas2 on 2019-04-03
- Forgot imports... woops ficolas2 on 2019-04-03
- Added an explanation for the regex. ficolas2 on 2019-04-03
- Updated with a non regex aproach ficolas2 on 2019-04-04
- Removed a broken link. Egon Willighagen on 2019-04-06
- Use generic types, no other changes. John Mayfield on 2019-04-09
- Correct logic for box hashing. John Mayfield on 2019-04-09
- Less stringy more efficient algoirthm. Use a local class to key of the map rather than creating a string 'key'. John Mayfield on 2019-04-09
- This calculation is already provided by Vecmath Point3d. John Mayfield on 2019-04-09
- Difficult to find a reference for the value, very likely it was wrong to start with. This value changes due to 5f2ddf1e0b. John Mayfield on 2019-04-09
- Add a method for Numerical Surface: Can get both coordinates and atom type Qinqing Liu on 2019-04-11
- Cleanup code using generics John Mayfield on 2019-04-11
- Remove introduced Point_Type and replace with a map, add test on 1CRN. John Mayfield on 2019-04-11
- Cleanup imports in test. John Mayfield on 2019-04-11
- pdb reader needed for test. John Mayfield on 2019-04-11
- Case specific filename! John Mayfield on 2019-04-11
- Failure test of AtomPairs2DFingerprinter. Kazuya Ujihara on 2019-04-11
- Fix NullPointerException in AtomPairs2DFingerPrinter.getBitFingerprint. Kazuya Ujihara on 2019-04-11
- Utility methods in the isotope factory. John Mayfield on 2019-04-13
- Cleaner calling, we should not add an isotope if the count is 0. John Mayfield on 2019-04-13
- Cleanup imports. John Mayfield on 2019-04-13
- Utility to get the most abundant MF (MAMF). John Mayfield on 2019-04-13
- Don't correct for null charge. John Mayfield on 2019-04-13
- New getMass function that unifies and replaces the existing functions. John Mayfield on 2019-04-13
- getMass function for molecules, values mirror the function for formulas. John Mayfield on 2019-04-13
- New test and make fields public John Mayfield on 2019-04-13
- Rename and improve description. John Mayfield on 2019-04-13
- Missing import John Mayfield on 2019-04-14
- Incorrect option name John Mayfield on 2019-04-14
- Incorrect option name John Mayfield on 2019-04-14
- s/molecule/molecular/ John Mayfield on 2019-04-15
- Minor wording changes in doc John Mayfield on 2019-04-15
- Bumped the copyright year Egon Willighagen on 2019-04-15
- Unit test for writing a custom title Egon Willighagen on 2019-05-15
- Added the missing customization method Egon Willighagen on 2019-05-15
- Use the static field from MDLV2000Writer Egon Willighagen on 2019-05-15
- Typo fix Egon Willighagen on 2019-05-15
- Null check molecules. John Mayfield on 2019-06-18
- Allow whole molecules to be highlighted. John Mayfield on 2019-06-18
- ensure2d can reorder components, call this after we have assigned ids. John Mayfield on 2019-06-18
- Roll back last change and extend comment to indicate why we want this. John Mayfield on 2019-06-18
- Need to remove reference. John Mayfield on 2019-06-21
- Some invalid smarts John Mayfield on 2019-06-24
- BEAM v1.3.3. Handle explicit aromatic bonds and aromatic astrix atoms. https://github.com/johnmay/beam/commit/deeb196d7c3b42414631bcda04dbbf5c6c15f1e3https://github.com/johnmay/beam/commit/4c6e61638f53069ce875c66e065caec54fc49ae8 John Mayfield on 2019-06-24
- Improved thread safety. John Mayfield on 2019-07-03
- DecimalFormat not thread safe, just use String.format John Mayfield on 2019-07-03
- Fixup John Mayfield on 2019-07-03
- Additional ring template John Mayfield on 2019-07-03
- Critical bug, in some cases the firstBondVector get's passed down to the AtomPlacer where it is modified. Since we used a static default there was a race condition generating malformed coordinates. John Mayfield on 2019-07-03
- Beam version 1.3.3 resolving some issues with explicit aromatic bonds ':'. John Mayfield on 2019-07-03
- Move static fields to the top the file. John Mayfield on 2019-07-03
- Minor tweaks to selecting rotation of structure. John Mayfield on 2019-07-03
- Use non-static decimal format. John Mayfield on 2019-07-03
- Fixup IdentityTemplate handler. John Mayfield on 2019-07-03
- Fixup format. John Mayfield on 2019-07-03
- Test case and fix misaligned (when at end of line) MDL int parsing. John Mayfield on 2019-07-03
- Improved angle snapping replacing countAlignedBonds with a more general histogram method. First a histogram is calculated for angles wrapper 0..60, we then use this to click into place and then rotate at 60 degree increments. John Mayfield on 2019-07-04
- Only snap if > 50% bonds are aligned John Mayfield on 2019-07-06
- Additional template John Mayfield on 2019-07-06
- Fixes https://github.com/cdk/depict/issues/15 John Mayfield on 2019-07-06
- Added a recent new contributor Egon Willighagen on 2019-07-07
- Extra negation by mistake. John Mayfield on 2019-07-08
- Fixes #579... took this out accidentally. John Mayfield on 2019-07-08
- fixing locate problems on Locate.de_de system (Windows 10, OpenJDK8) Markus Sitzmann on 2019-07-09
- no locate changes for the InChI input adapter Markus Sitzmann on 2019-07-15
- TBS should not be reversed. John Mayfield on 2019-07-23
- New Bond display property. Will eventually drop the IBond.Stereo all together but for now we just make sure if it's set the display is updated. John Mayfield on 2019-07-27
- Rendering of new bond display types. John Mayfield on 2019-07-27
- Slight adjustment to double bond spacing. John Mayfield on 2019-07-27
- Aromatic donuts. John Mayfield on 2019-07-27
- Improved donut display! John Mayfield on 2019-07-28
- Move donut generation to a separate class, this will allow us to move charges too. John Mayfield on 2019-07-28
- Charges should be delocalised in the middle of the ring, e.g. cyclopentadiene. John Mayfield on 2019-07-28
- Put the smallest rings in a field so we can reuse from the bond generator. John Mayfield on 2019-07-28
- Reuse the relatively expensive ring set if it was already calculated for the donuts. John Mayfield on 2019-07-28
- isMetal utility function. John Mayfield on 2019-07-28
- When deciding which side to place a double bond also consider if a ring contains a metal. John Mayfield on 2019-07-28
- Metaloids also non-metals. John Mayfield on 2019-07-28
- Seems to make sense, depict metals at as co-linear rather than bent. John Mayfield on 2019-07-28
- For D4 terminal atoms (e.g. tButyl, CF3, SO3H etc) lay these out at 90 degree angles. John Mayfield on 2019-07-28
- Extra check John Mayfield on 2019-07-28
- Update JavaDoc, also constraint should be ring size < 8. John Mayfield on 2019-07-31
- Add stroke property to oval element. John Mayfield on 2019-07-31
- Lilly/CACTVS/NextMove support inequalities in expressions (e.g. D>1). John Mayfield on 2019-08-08
- IS_INSATURATED is unambiguous so support this in loose mode. John Mayfield on 2019-08-08
- Fixup test case John Mayfield on 2019-08-08
- Version 2.3 John Mayfield on 2019-08-09