Skip to content

ShEPhERD-score v1.3.2

Choose a tag to compare

@kentoabeywardane kentoabeywardane released this 02 Apr 22:00
· 26 commits to main since this release
3f0db95

What's Changed

  • Add Jax-based MoleculePairBatch to speed up timings of larger datasets by @kentoabeywardane in #21

This PR introduces the class MoleculePairBatch which operates on a list of MoleculePair objects for accelerated alignment and scoring with Jax. It also includes refactoring of the container module while maintaining backwards compatibility. Finally, it has extensive improvements to the documentation.

Container

  • This module was refactored into _core and _batch modules where the previous classes/functions in container were moved to _core.
  • MoleculePairBatch is introduced to accelerate cpu-based alignment with Jax for a list of MoleculePair objects.
    • supports alignment for Vol, Vol+ESP, Surf, Surf+ESP, Pharm where the largest throughput gains are for Vol, Vol+ESP, and Pharm.
    • Bucketing to reduce the number of padding and floating point operations is included.
    • Multi-cpu processing is supported via multiprocessing (MacOS only) and shard_map (requires Python>3.11 and Jax>0.9.0).
  • torch.compile implementations were tested for MoleculePairBatch, but were not found to improve speed so were omitted from this PR.

Scoring

  • Pharmacophore extended point scoring is now supported by an analytical implementation for PyTorch.

Documentation

  • Added a theory page for representations, scoring functions, and analytical gradients.
  • Benchmarking results for throughput of molecular alignments with MoleculePair and MoleculePairBatch at a variety of different settings.

Full Changelog: v1.3.1...v1.3.2