If you’ve still using chemfp-1.0 then have I got a treat for you! The new release includes many performance optimizations. When chemfp starts, it looks at your CPU to figure out the fastest popcount method. The built-in POPCNT instruction is about 4x faster than the byte table lookup. It can use OpenMP to take advantage of multiple cores. There’s even special functions for symmetric searches. On some benchmarks, the new code is 30x faster than the old one.
There are other API changes too. The search hits are now first class objects instead of Python arrays, with new ways to reorder the hits and count the hits or raw scores in a given interval. You can look up fingerprints by identifier, and make a new arena from a selected subset of an old arena.
And there’s support for more fingerprint types from RDKit and OpenEye.
With chemfp-1.1 comes the start of a new business model. The chemfp-1.1 is available to anyone at no cost, and it will remain that way. However, updates will first go to paying customers and only after at least a year, and more likely two years, will they be made distributed at no cost.
If you wish to purchase the commercial license and support contract, please contact email@example.com .
To download the no-cost version, go to chemfp-1.1.tar.gz .