1.5.8 Release Notes

johnmay edited this page Sep 11, 2014 · 13 revisions

DOI

Summary

  • Substance API conceptualisation
  • The CDK now has a mechanism for deprecating old code (on top of the @deprecated tags). A new module cdk-legacy is a high-level module (depends on a lot) that will be the home to older code. The code in these modules either has been replaced with a better method or is no longer maintained (or unmaintainable). This code is not necessarily scheduled to be removed. The main release will bundle the cdk-legacy module allowing backwards compatibility. The classes that have been moved currently are:
    • CDKHuekuelAromaticityDetector, DoubleBondAcceptingAromaticityDetector, AromaticityCalculator - use the new Aromaticity class.
    • SwissArmyKnife - not used
    • SSSRFinder, FiguerasSSSRFinder and associated classes - use the new Cycles facade.
    • NomParser and associated classes - use OPSIN (http://opsin.ch.cam.ac.uk/information.html).
    • GeometryTools - use the new GeometryUtil
    • cdk-qm module - all code from the quantum mechanics module has been move to the legacy module
  • Standardized on atom type name of "X" to represent an atom that has been passed to an atom typer but did not match any known type.
  • CML conventions stack allowing for nested custom semantics.
  • A lot of the code base has been cleaned up guided primarily by PMD warnings.
  • All cdk-base modules have had dependency on java.awt.* removed. This allows this classes to run on Java ME / Andriod. The main change here required the GeometryTools/GeometryUtil change listed above.
  • A new rendering generator has been added - an introduction to the StandardGenerator is available here.
  • Identity templates are now used in layout generation allow de facto orrientations of common ring systems - doc

Test status

The additional fails are new unit tests added by Mark W and Alison to highlight deficiencies in the MMFF partial charge implementation.

21,453  (+488) tests
27 (+8) failures
0 errors

Committers

   191  John May
    41  Egon Willighagen
    28  Mark B Vine
     4  Oliver Stueker
     4  AndyHowlettGitHub
     3  Mark Williamson
     1  Sambit Gaan
     1  Alison Choy

Reviewers

 178  Egon Willighagen 
  79  John May 

Change log

  • Bumping version for release. f424d60
  • Hydrogen count needs to be set for test. 9c7a5bc
  • Include hydrogens when counting degree. In practice this means carboxylic groups are always placed with the carbonyl pointing up or down when at the end of a chain. e14c3c4
  • Subtle bug, the provision of a start vector means chains were not being placed horizontal. By setting the default bond vector as static we can check if the caller has really provided a vector to use. If the default was provided we can now still place the chain horizontal. a1f55e9
  • Allow users to turn off identity templates. 06abb91
  • Use the ring templates in the SDG. 95ab9c3
  • Utility to create skeleton copies of molecules. These are normalized representations when every except the element type is removed. c8118df
  • 2D identity templates created from ChEBI 118. Tools are in 'cdk-build-util' but not committed yet (depend on this patch). 1e4c160
  • In memory identity template library. ba8b0e1
  • Partition extended tetrahedral elements 6d6b6ba
  • Make tests OS newline independent. f310ccd
  • Make unit tests assertions relative allowing them to pass independent of the OS. Two unit tests needed to be ignored as they were testing exact values which differ between systems. 3674a72
  • Generation of bond annotations. 6e1a7d4
  • Midpoint calculation and call new annotation methods from static context. This will simplify the annotation of bonds. ac04f59
  • Allow the bond generator to add annotations also. 9de00e7
  • Remove unused import. 7f68075
  • Simple method for indicating an annotation should be italic. This needs to be an attribute of the annotation and not a general rendering parameter as annotation styles may be mixed. 23ed97c
  • Some aesthetic tweaks to parameters and annotation vector calculation. e9d0a50
  • Handle annotations bound to AtomSymbols. 5cc802f
  • Allow annotations to be bound to an atom symbol. As the atom symbol may move - the annotation needs to move with it. 57a222e
  • Avoid hydrogen adjunct location. 67c544d
  • Dodge the atom symbol by moving the base point to the intersection with the convex hull. a29aaa6
  • Generate annotations in one place. 35d273f
  • Annotation of atoms without a symbol displayed. b3bc2ef
  • Property to set and access annotation labels. 8b34f86
  • A method for generating a vector along which annotations can be placed. 529f4df
  • Include access to a directional vector for each hydrogen position. 8be1bb6
  • Utility for create a vector in the largest 'space' of a bonded atom. 656317f
  • Including parameters for configuring annotation display. 6f115a9
  • Allow atom generation to include annotations (e.g. atom numbers). 7b0bd51
  • Use the improve hydrogen positioning when there are more than two neighbors. 2694dc6
  • Improved selection of hydrogen position. 4212380
  • Reorder hydrogen positions and include the direction each position is pointing. 2494dd5
  • Rename sweep() to extent(). d023b26
  • Utility for calculating the ccw sweep. The sweep is useful to determine where labels can be placed. e8ee1a7
  • An extra default rendering parameter was added. This parameter (SelectionColor) is included by default. 3545b7a
  • Substituted String by Char arguments in String.indexOf() calls for single-char strings (PMD report). 336fd92
  • Resolve PMD String warnings. 1089555
  • Removed unused field. 2c73d76
  • Resolve PMD warning - combine if statement. Also refactored to a method to make conditional clearer. fd79091
  • Resolve PMD warning - same method/field name. 13c0da0
  • Link to the Wiki page in the documentation. a38822e
  • Update documentation to refer to 2D depictions and avoid confusion the the HydrogenPlacer. 4d32d07
  • Correct variable naming. 69f69b6
  • Removed unused local variables (PMD report). cee9ed1
  • Removed unused import. de6ebbd
  • Removed unused formal parameters from private factory methods. bd3fa7d
  • Removed unused formal parameters from private factory methods. a277dbd
  • Replaced Boolean instantiation by predefined Boolean constant (PMD report). dcfc5c0
  • Removed Boolean instantiation. Expanded star import. 505f1c1
  • Changed single-character strings to Chars in StringBuffer/Builder.append() calls (PMD reports). 50382c1
  • Fixed up the javadoc for the .mapTemplates() API change. 0a09160
  • Fixed incorrect type in formal parameter to TemplateHandler3d.mapTemplates(). b1685ee
  • Fixed incorrect spelling of an Element. d245645
  • Added CAS Registry Numbers for recently-named elements (numbers ex Wikipedia). 324d30c
  • Refactored code using some boolean convenience functions to improve code readability. 3ad1362
  • Added some utility methods prior to refactoring. Changed bitwise ANDs to boolean ANDs. 31e196e
  • Update tests to new API. 315e6bf
  • Update test to new API. b034e68
  • Update tests to new API. ed770dc
  • Use the new SelectionColor parameter. 9aab0f7
  • Pickup symbol visibility from the RendererModel selection also. c02bf32
  • Pickup selection/highlight from the renderer model as well as the ChemObject property. 64c95a7
  • Correct to offset ring bond rendering. We still need to check for displayed symbols. fd139fb
  • Creating rendering element directly for wavy bond - rather than convert from AWT. 915bfd2
  • Allow the offset bond to be inverted for a special case in large rings. 9595c7c
  • Improve the chance that offset double bonds are drawn inside cycles. 1ae178f
  • Wave spacing should be a floating point. 8732789
  • Remove property from the selection visibility. 1e195f1
  • Ensure the symbols are not colored when outer glow is used. bd45217
  • Use a single property for emphasis and choose style based on another parameter. 55b72f0
  • Allow inherited parameters to be set in the render model. This would previously require an explicit cast. 4c045a9
  • Don't bracket unpaired electrons when there is no charge. 22c102b
  • Citing relevant papers in the public JavaDoc and reformatting the standard generator. a59c4ae
  • Rename symbol visibility option, terminal carbon may not always be a methyl group. fe726e8
  • Selections that are disconnected need their atom symbol displayed. 3d80992
  • Enable outer glow option. 329a5cb
  • Highlight should be on front layer. 7c2cb79
  • Adding highlighting option. 99727a4
  • Recoloring rendering elements will enable highlighting. aa0f406
  • Allowing disabling of stroke limits and caching. This is primarily useful for vector graphics output. 25a7eea
  • Correct join parameter for stroke setting. d905943
  • Define wavy bond spacing in a similar manner to hashed bond spacing. e1c6890
  • Define hash spacing instead of number of sections. This seems the norm and simplified the generation slightly. 88d9f3c
  • Define bond separation / spacing relative to the bond length. 6d8175a
  • Stricter threshold for fancy hashed wedges. 057e878
  • Correct conditional for special double bond offset next to wedges. 7ba953e
  • Incorrect conditional for special bond offset. 3ffca9c
  • Ensure hashed wedges are not streched for abnormal bond lengths. f731cf1
  • Allow the fancy rendering of wedges to be turned disabled. 968cb50
  • Slanted hashed wedge bonds also. edf308e
  • Special case when offset bonds are preferred is when the double bond is at the wide end of an edge. ed2d08c
  • Ensure slanted wedges are flush with the adjacent bond. d27093e
  • Fancy bold wedge rendering aligns the wedge flush with adjacent bonds. 6e10216
  • Including intersection calculation in VecmathUtil. 8fee95a
  • Parse 'toBonds' to bold wedge generation. ab0f89e
  • Generation of wavy bonds. a2d36af
  • Minor cleanup to documentation and an unused import. d52fd24
  • Include median bond length in the new GeometryUil class. 232540b
  • Cleanup STDOUT messages. 7b45da4
  • Median bond length calculation. 2454282
  • Removing todo comment, these options are now parameterised. 781dd91
  • Generation of a basic crossed bond, aesthetics could be improved. 3380539
  • Generate dashed bonds. 902ad6a
  • Formatting. 90e2b14
  • Document the bond types and their hierarchy. 93ba72d
  • Parameterise the standard generator. The font could also be set in this manner, but providing it via the constructor will allow us to cache the symbol generation. This also mirrors that the font manager is separate for other renderers. 9d2e29b
  • Including configurable atom generation parameters. fe04dad
  • IUPAC recommends uniform colouring. This will be configured by an option, but there is currently no atom colorer that does a single colour. 4dc19e0
  • Generating a rendering element for hashed wedge bonds that accounts for atom symbols. 78736cf
  • Cleaner calculations for bold wedge generation. 60f7437
  • Account for back off when generating the wedge shape. 4ce4bec
  • Formatting. d23bbfb
  • Basic bold wedge rendering, no back off yet. 400f41c
  • Offset bonds are actually backed off by the midpoint angle. This obtained by summing the two vectors together. 811591a
  • Corner case, ensures bonds are always flush even if the angle of adjacent bonds is acute to the double bond. 4dd6000
  • Adjust the double bond lines such that they are flush with adjacent bonds. 8d1ed6e
  • Make it clearer we have two perpendicular vectors. f6ebb17
  • Centered double bonds may also have then end points adjusted, this precomputes the default points such that they can be optionally modified. 392688e
  • Assertions that the method is only called when atom1 doesn't have a symbol displayed. 302f036
  • Implementing offset bonds. d081bb5
  • Triple bond generation is simply a composition of the single and double bond generation. fe432df
  • Method for deciding on how to render double bonds and the simple 'centerred' rendering case. 1a0442f
  • Including generation of plain single bonds and back off calculations. 3174ee0
  • Resize first and then centre 69ec1de
  • Typo in comment and ensure the alignment is set (immutable object). 1bc06ac
  • Tracing out the methods for the standard bond generator and how the API is called from the StandardGenerator. Implementation and documentation to follow. e42fe06
  • First part of bond generation, determine the order of rings to display double bonds inside. e20d4e7
  • Tracing out the structure of the StandardGenerator. Parameters need to be added. 6feb9ec
  • Missed parameter documentation. b5ba6e3
  • Generation of atom symbols. 63e765c
  • Access methods for attributes. 063d517
  • Isotopes are also displayed. 77d494d
  • A predicate class that defines whether an atom symbol is visible. Could be reused in other generators. a93f32d
  • An atom symbol for storing a displayed symbol. 01d3c59
  • Convex-hull for Java 2D shapes. 55af617
  • Enumeration of hydrogen positions and methods that decide this position. b9e67d0
  • Internal class for holding and modifying text represented as a Java 2D shape. 72ccb85
  • Internal static utility class for the upcoming generator. 05f7096
  • Fixed bug where AtomPlacer3D().numberOfUnplacedHeavyAtoms() counts explicit hydrogens as heavy atoms. 1b2bcaa
  • Added test to demonstrate bug where AtomPlacer3D().numberOfUnplacedHeavyAtoms() counts explicit hydrogens as heavy atoms. 4f77889
  • Inlined test molecule creation from MoleculeFactory.java. 131e16f
  • Inlined test molecule creation from MoleculeFactory.java. 367e647
  • Replaced single-character strings in StringBuffer.append() and replaced StringBuffer by StringBuilder where appropriate. e200c63
  • Removed some unused local variables (PMD reports). 17d1251
  • fixed up use of == to test for string equality rather than .equals(). 3bf8615
  • Remove the use of awt.Dimension which is not available on JavaME/Andriod. The new methods aren't super clean but are not used elsewhere in the library. Note the new API for shifting lines up with the return value of getMinMax which getRectangle2D was previously boxing. 8443d1c
  • Correct license header. 39b58c3
  • Remove the use of awt.Dimension which is not available on JavaME/Andriod. The new methods aren't super clean but are not used elsewhere in the library. 214785c
  • Fixing IDE warnings. ebd2f1a
  • Minor clean up - private constructor etc. 8bc0b7c
  • Reformat GeometryUtil. e65266c
  • Utilise GeometryUtil in other modules. 95b9ba3
  • Move GeometryTools to legacy for deprecation - the new GeometryUtil will take its place. bbdc460
  • Moved IAtomColorer from the interfaces to the render module 210a930
  • Removed an unnecessary Integer instantiation in a boolean test. 02b3849
  • Removed a bunch of unused local variables (PMD reports) e6bf941
  • Pack color in TXTBasedAtomTypeConfigurator. fb8b0d2
  • Simplified fully qualified names where an existing import is present (PMD Reports). 1273835
  • Removed unnecessary import from the same package. 49eec3d
  • Removed more unused local variables (PMD report). 3bdfc6a
  • Add Mark Vine to contributors. 2ad6c76
  • Removed unused local variables (PMD report). f6656e0
  • Removed some unused imports (PMD report). d54f38e
  • Some changes which I had done in order to run the tests succesfully. 7c953f0
  • Newer guava version. ba7f758
  • More spelling fixes cb690f9
  • Spelling fixes 1729215
  • Include Andy H in authors/contributor info. 38beb95
  • Removed code that added hydrogen counts to hydrogens, as these are supposed to be present in CML, and should not be inferred. 5cf1c87
  • Added unit test for reading of atomParity elements. e3d39a7
  • R groups no longer get the symbol "H". Hydrogens now get their hydrogen counts set (needed for SMILES output). Tidied code. Formatting changes. 7e1fa97
  • Added to CMLCoreModule capability to read atomParity elements. Corrected spelling error. Formatting changes. b0f1f7f
  • Fixed a few spelling errors 80fd3af
  • Reinstated to previous methods, so that the API is preserved. ac6ea6b
  • Another compile fix df832de
  • A few more compile errors of which I do not understand why they had not been showing up with 'mvn compile' yet :( c759872
  • Made independent from interface implementations 85d6063
  • Made the stack independent from interface implementations b171684
  • Made the stack independent from interface implementations ca8145b
  • Also updated the silent MolecularFormula class 1fe75a7
  • Various optimizations. 29c967d
  • Use indexOf(char) instead of indexOf(String) whenever possible 4d84653
  • Use equals() to compare String's 270a09f
  • Simpler and/or more efficient String handling 1558c34
  • Removed redundant check e549541
  • Use Integer|Double.valueof() c8261e8
  • Synchronized the APIs with the changes introduced in commit 5baedfeec823813395bffdaf14dbd0c4fc19f395 e960aad
  • Removed redundant, floating JavaDoc cdab730
  • Removed unused imports ac9cabe
  • Removed redundant, floating JavaDoc da2f30b
  • Added more closing of IO resources c1c8e49
  • Typed the Comparator 7ac5e2c
  • Parameterized generic types 5e8275e
  • Parameterized generic types 159944c
  • Double check locking of chem object builders. Follows on from a jonalv pre-maven patch (pull/34). 942de8d
  • Synchronise bits in IntArrayFingerprint, old pre-maven patch (pull/34). 9916706
  • Resolve review comments. Ensure copyright is intact and added a hyperlink. db18454
  • Move all 'cdk-qm' code to 'cdk-legacy'. The custom PMD rulesets (no removed) seem no different from '/pmd/custom-data.xml' and was not specific to 'qm' code. 4a3966d
  • Migrating NomParser to 'cdk-legacy'. 833dd50
  • Fifth batch of updates to remove old SVN tags 70dbb3c
  • Parameterized generic types a2831a6
  • Parameterized generic types b4e8bfa
  • Fourth batch of updates to remove old SVN tags b2ccffd
  • Removed SVN revision tag from test data 3c0f727
  • Third batch of updates to remove old SVN tags 14379ca
  • Second batch of updates to remove old SVN tags c55fa73
  • First batch of updates to remove old SVN tags 27be7e5
  • Added closing of many IO resources, fixing PMD warnings e3573a6
  • Removed a needless String variable 8e655f7
  • Use IAtom instead of Atom 5a2bd1d
  • Updated to use Map and Iterator instead of Hashtable and Enumeration d5cff66
  • Test the CIFReader can read input. Some guards have been added to prevent this. 3d03484
  • Ensure canonical labelling can still be computed with explicit hydrogens. This was broken in a previous patch. bf0ddd1
  • jgrapht is now only required by the 'cdk-legacy' module. 7d01881
  • Move over SSSRFinder helper classes (we have alternatives for these). BiconnectivityInspector = RingSearch, MinimalPathIterator = ShortestPaths.pathsTo(). d9ef05e
  • Move BFSShortestPath to 'cdk-legacy' module. 1e9acf3
  • Minor optimisation - shortest path only needs to computed once. 8e0f1d8
  • Replace BFSShortestPath usage. b741861
  • Migrate SSSRFinder to 'cdk-legacy' along with helper classes. 81e8021
  • Replace SSSRFinder usage with the more recent 'Cycles' impl. c5efe45
  • Migrating FiguerasSSSRFinder to 'cdk-legacy' and the helper 'Queue' class. 5c3dcda
  • updated older Mopac formats and unit tests 8bc6c74
  • added unit tests for MopacFormats 2007,2009 & 2012 0b65222
  • includes suggestions from John May f5374a0
  • Added recognition of MOPAC 2007, 2009 and 2012 output files. 3450bf1
  • Junit should have test scope. 1e9c3c2
  • Removing duplicate dependency. fd9b33b
  • Improving test coverage of MMFF atom type perception. Some code could be simplified. d496ac0
  • Resolving some PMD warnings in MMFF atom type assignment. 4568746
  • Include cdk-legacy in cdk-bundle. 06dbb14
  • Update build config to include cdk-testdata. cfd3f27
  • Bumped the version to match the current master branch 74389ed
  • Additional documentation. d6fc361
  • Test that clearing configuration doesn't remove atomic number. 9811bc1
  • Put back copyright overwritten by IDE. bcbf747
  • Atom typing needed for aromaticity perception in this test. 6ba93b8
  • Pseudo atoms are assigned atom type 'X' (already the case) by the CDKAtomTypeMatcher. These do not need to be skipped here. 82f526a
  • Special handling of atom type 'X', leave hydrogens alone unless the value is null and we then set it to 0. Note this conditional was only added recently to ensure pseudo atoms don't have an unset hydrogen count. a952ead
  • Special behaviour for atom type "X" - otherwise the default values corrupt the actual information set on the atom. 3836141
  • Aromaticity can not proceed on structures that have been typed but have no 'type'. 06afdc4
  • Additional classes that were expected unset set atom types. bd91073
  • Regressions in reaction module to new atom type behaviour. This similar code needed updating to check for untyped atoms. 194a191
  • Default atom type is now "X" not null. This allows us to tell when something has been typed and when it hasn't. 62c987f
  • Ensure atom types are percevied in fragmenter tests. 6e07a21
  • To obtain correct output in the fragmenters we need to clear all existing configurations and reperceive atom types. Could be improved. a879718
  • Treat atomic number as symbol and leave set when other properties are cleared. 5543196
  • Aromaticity perception was previously being skipped on initial fragmentation. Now that aromaticity is set, some expected output has changed, note the specified single bonds in SMILES. 3711b53
  • Aromaticity was being silently skip for these tests - adding the correct setup in now means the expected data changed. 41d23b4
  • New aromaticity perception complains on unset atom types - these tests are regressions as the atom types have not been set. That is, they were silently being ignored. dee2721
  • Deprecate SwissArmyKnife. 31d9a3a
  • SwissArmyKnife is not used and is moved to cdk-legacy. a7c6a26
  • Moving the deprecated DoubleBondAcceptingAromaticityDetector to 'cdk-legacy'. 05ee9f8
  • Move old aromaticity implementations to the legacy module. 9614d54
  • Replacing usage of CDKHueckelAromaticityDetector. 9107024
  • Simplified access to a new aromaticity implementation that replicates the now deprecated CDKHuekelAromaticityDetector. 439016c
  • A module for deprecated and legacy code. 70e9287
  • Display CH4 not C1H4 for HTML. 680669d
  • Use StringBuilder to construct HTML formula string. 8193a52
  • Ensure writer.close() is invoked by CMLWriter. 91d2592
  • Added Alison Choy as new author 33c6627
  • Removed FIXME. 44e8cb4
  • Allow compilation. 4c6d1d0
  • Further explanation of ignored test. b96318f
  • Ignore tests in error. d8aa21f
  • Enumerate all molecules in table V of the MMFF94 paper II. Unit tests still failing. 4a145e2
  • Migrate PartialTChargeMMFF94DescriptorTest to a simpler, InChi input based approach 88a54c6
  • Added the ISubstance interface 0e641e2
  • Make it visible to subclasses of AbstractAtomContainerSetTest 32e8a8b
  • Latest version of cdk-build-utils. Includes updated formatter config for Java 1.6 rather than 1.8. fdbf768
  • Adding Mark W to AUTHORS. f6c5ae7
  • Adding Mark W to pom contributors. 6084cc6
  • Bumping version 1.5.8-SNAPSHOT, open for changes. 7abd634
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.