chemfp 3.4.1 is available

I've just released chemfp 3.4.1, which is the latest version of the commercial chemfp development track. Use the following to download pre-compiled packages for most Linux-based operating systems:

python -m pip install chemfp -i

These are available at no cost under the Chemfp Base License Agreement. This license lets you use most chemfp features in-house, and generate FPS files for any purpose.

Some features are either limited or disabled. See the chemfp licensing page to learn how to request an evaluation key and to learn about the different licensing options.

What's new in 3.4.1

The main changes improved chemfp performance for a wider range of fingerprint sizes. For very small fingerprints, like 128 bits and 256 bits, chemfp 3.4.1 is over 25% faster than 3.4. For most other cases the new code is about 10% faster. Note: these improvements only affect fingerprints which are 8-byte aligned, which is chemfp's default.

There is also a ~30% speedup with new AVX2 support for 1280 and 1538 bit fingerprints (160- and 192-bytes).

At the API level, there are two new arena methods. The "sample()" method returns a new arena containing N randomly sampled fingerprints from the original arena. The "train_test_split()" function returns two new randomly sampled, disjoint arenas, which are expected to be a training set and a test set.

Finally, there are a couple of bug fixes. There was an error in the AVX2 implementation for 128 bytes when the fingerprint size was under 1024 bits, and there was a bug in simsearch output when using the --reorder flag.

See the chemfp 3.4.1 documentation for more details.