ShapeDatabaseChunker

Split a database into n_servers chunks. Due to the nature of the OEShapeDatabase the chunking is performed based upon the number of heavy atoms in each molecule. The OEShapeDatabase will actually triage molecules by heavy atom counts, so it is better to keep molecules with similar heavy atom counts together.

The chunker also takes the opportunity to cache a self shape term into the OEB file using the OESetCachedSelfShape function. This significantly improves (~5x) database load time.

Code