Don’t add null stereo elements (unspecified) to the container.
Checked exception now thrown for unset bond orders.
Dependencies not inherited (they are on the classpath but not when tested individually).
The primary MDL mol file used by the MDLV2000ReaderTest (i.e. SimpleChemObjectReaderTest) was not valid. The original bug (#58) reported that charges were not round tripped. This is because the charge column was not aligned. Adding the ‘M CHG’ of course resolved the issue but the file was not a valid MDL file in the first place.
The container being read may already have atoms - we can’t confirm it’s a query and must set the valence correctly.
Use a fresh set of chem objects for each generic read_chemobject test. Took a while to find the bug due to the same container was being used in different formats.
Lazy loading of MACCS keys.
Different style of comment allows us to skip easier.
Load and parse SMARTS when the keys are defined.
Configuring ring membership (i.e. not size based) by default - this is cheap enough we should just do it.
Cache recursive entries - without the caching queries in the MACCS fingerprint runs a lot slower. We use guava cache builder and weak keys allow entries to be GC’d when the AtomContainer has no other reference (i.e. if we are iterating over a file).
A filter for unique atom matches.
Avoid using SMARTQueryTool we can be more efficient as we know the number of matches we need to find.
Don’t actually partition the molecule - just count how many component there are.
MDL MACCS bit was taking the majority of the time - we can do it faster without using SMARTS.