Skip to main content

Prism Pruner

License Powered by: Pixi Code style: ruff GitHub Workflow Status Codecov PyPI - Version

PRISM logo

PRISM (Pruning Interface for Similar Molecules) is the modular similarity pruning code originally from FIRECODE, in a polished standalone package. It filters out duplicate structures from conformational ensembles, leaving behind non-redundant states.

The code implements a cached, iterative, divide-and-conquer approach on increasingly large subsets of the ensemble and removes duplicates as assessed by one of three metrics:

  • Relative deviation of the moments of inertia on the principal axes
  • Heavy-atom RMSD and maximum deviation
  • Rotamer-corrected heavy-atom RMSD and maximum deviation

Installation

The package is distributed through PyPI. Installation through uv is recommended.

uv pip install prism_pruner

Usage

The main pruning functions are in prism_pruner.pruning, and a wrapper that chains up to all three is also available. The functions return the pruned ensemble structures and the relative boolean mask.

from prism_pruner.conformer_ensemble import ConformerEnsemble
from prism_pruner.pruner import prune

ensemble = ConformerEnsemble.from_xyz("ensemble.xyz")

ensemble.coords.shape # (1086, 136, 3)

pruned, mask = prune(
    ensemble.coords,
    ensemble.atoms,

    # the third pruning routine can be
    # slow and is often not necessary,
    # so it's off by default
    rot_corr_rmsd_pruning=False,

    debugfunction=print,
)

pruned.shape # (387, 136, 3)
mask.shape # (1086,)
# where pruned is ensemble.coords[mask]

For additional performance, it is also possible to read/provide energies to only evaluate the similarity of structures that are energetically close.

For additional usage, see the examples folder.

CLI usage

A simple CLI is also provided:

usage: prism_pruner [-h] [-e] [-t TIMEOUT] inputfile

Will write the pruned ensemble to inputfile_pruned.xyz.

Credits

This package was created with Cookiecutter and the jevandezande/pixi-cookiecutter project template.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prism_pruner-0.1.2.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prism_pruner-0.1.2-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file prism_pruner-0.1.2.tar.gz.

File metadata

  • Download URL: prism_pruner-0.1.2.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for prism_pruner-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b7e81a512be61a78c492f20e5bfe9e82fa4aedc653f36ec108afab92178e96f8
MD5 e7ba0c9f1ea056112842d831913c29e4
BLAKE2b-256 229d660b3e6743a46ccf382d1182e3d93cfc02463d61dae608715ff79dad8655

See more details on using hashes here.

File details

Details for the file prism_pruner-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: prism_pruner-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for prism_pruner-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f859dcde6b2a949d2740068fb426311dbe3c110ab5356a3a924a7c0b645bc6b5
MD5 c13ea3174c2101138244de4447819e31
BLAKE2b-256 b8797eb34987fae388ff3447af7b996c120b0058543f952cfd2fdc243b21e8c9

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page