Skip to content

SMSD Pro 8.0.3

Choose a tag to compare

@asad asad released this 25 Oct 10:05
· 24 commits to master since this release

SMSD Pro 8.0.3 corrects complete-ring MCS matching, the status of MCS results
that depend on truncated ring perception, and the built-in named SMARTS
predicates. It adds opt-in Metal fingerprint screening for C++ source builds
on macOS and a Python call that fingerprints many molecules at once. The
changelog lists every change.

Changes

  • C++ and Java MCIS searches with stereochemistry find the largest mapping
    that keeps the configuration of mapped stereocentres and double bonds.
  • C++ MCIS searches return the maximum mapping whatever the atom and bond
    order of the target.
  • Complete-ring MCS matching recognises rings in graphs built without ring
    flags.
  • With complete rings or strict ring fusion, MCS keeps its mappings but no
    longer reports them as proved when it depends on truncated ring perception.
  • GPU similarity-bound screening returns the same hits as the CPU screen,
    including scores at the threshold and molecules with very large atom
    counts. The float-valued Metal similarity API is unchanged.
  • Metal fingerprint screening for C++ source builds on macOS returns the same
    hits, in the same order, as the CPU screen. It runs only when requested
    explicitly. The C++ guide
    gives its requirements and CPU fallback. The Python wheels use the CPU for
    screening on macOS.
  • The built-in named SMARTS predicates have corrected definitions, shared by
    C++ and Java and listed in the Java guide.
    isKetone and isEster now mark the carbonyl carbon.
  • Python fingerprints computes the fingerprints of many molecules or SMILES
    strings in one call, each identical to fingerprint and in input order.

Upgrading from 8.0.2

Patterns that use the built-in named predicates can match different atoms.
Java expands names made of ASCII letters, digits and underscores, including
inside recursive SMARTS; a registered name containing other characters is no
longer expanded.

With complete rings or strict ring fusion, a search that depends on truncated
ring perception now reports LimitReached, with optimal and complete
false, instead of Completed. isMappingMaximal (Python
is_mapping_maximal) then raises its proof-unavailable error rather than
returning a value.

In C++ and Python, a single-result connected MCIS search without
stereochemistry or ring options can return a different mapping of the same
size when every atom of the target is bonded to every other.

Downloads

The installation guide lists the
supported platforms and runtime requirements. Python CPU wheels target CPython
3.10–3.14 on macOS arm64, Linux x86_64 and aarch64, and Windows x86_64. The
optional smsd-cuda package targets Linux x86_64 and must match the smsd
version. The Java CLI is supplied as a portable distribution and as Windows
x86_64 MSI, macOS arm64 DMG and Linux amd64 DEB installers that include
Java 25. CPU Docker image archives target Linux amd64 and arm64; the GPU
Docker image archive targets Linux amd64 and needs a compatible NVIDIA GPU and
driver.

See the GitHub releases page for the
files and SHA256SUMS. Install with python -m pip install "smsd==8.0.3",
and add "smsd-cuda==8.0.3" for GPU screening with an NVIDIA GPU.