Skip to main content

MANIMOL

MANIMOL learns ensemble-derived pairwise mean and dispersion relational priors from molecular graphs and uses them to guide torsional conformer generation and reference-free compact-library construction.

The public project contains the active source implementation used by the paper's MANIMOL pipeline. It does not redistribute benchmark datasets, checkpoints, generated conformers, server outputs, or credentials.

Quick Start

Installation

pip install manimol

For the checkpoint-backed model pipeline:

pip install "manimol[full]"

The full extra provides PyTorch, PyTorch Geometric, RDKit, SciPy, tqdm, and PyYAML. The optional evaluation extra adds pandas, Matplotlib, and scikit-learn used by selected benchmark/reporting scripts. Install a CUDA-compatible PyTorch build separately when GPU inference is required.

What the public code runs

2D molecular graph
    -> graph encoder
    -> mean + dispersion relational priors
    -> cross-fragment torsional context
    -> circular torsion-state proposals
    -> probability-guided and noise-conditioned branches
    -> oversampled candidate pool
    -> reference-free selection
    -> ETKDG initialization and MMFF94s pool preparation
    -> optional final GFN2-xTB relaxation and RMSD deduplication
    -> final conformer library and metrics

The mean and dispersion predictions jointly form the torsional relational context. Dispersion also enters the separate bond-specific width pathway. The active mean--dispersion inference path uses the repository's MMFF94s pool preparation and can optionally run the existing GFN2-xTB final relaxation; the package does not claim that every research selector uses an identical energy-window rule. The README follows the implementation; it does not replace or simplify the model.

Inference command

The full inference entry point uses the same dataset-record contract as the paper experiments. It requires a compatible checkpoint and local data files:

manimol-infer \
  --base_checkpoint /path/to/stage2_best.pth \
  --denoiser_checkpoint /path/to/denoiser.pth \
  --checkpoint /path/to/stage2_best.pth \
  --dataset Drugs \
  --data_root /path/to/data \
  --raw_prefix geom_drugs \
  --split test \
  --device cuda \
  --use_dispersion_proposal \
  --select_candidates precision2r \
  --output_dir results/manimol

The public wrapper defaults to 15-fold oversampling. Override it with --oversample_factor when reproducing another protocol. All options from the real inference parser remain available:

manimol-infer --help

Training is also exposed through the original staged entry point:

manimol-train --stage stage1 ...
manimol-train --stage torsion ...
manimol-train --stage pbasin ...
manimol-train --stage denoiser ...

Python API

The lightweight numerical utilities are usable without the full dependencies:

import numpy as np
from manimol import density_centrality_select, ensemble_pairwise_prior

conformers = np.load("conformers.npy")
mean, dispersion = ensemble_pairwise_prior(conformers)
indices = density_centrality_select(conformers, k=20)
library = conformers[indices]

The checkpoint-backed wrapper delegates to the real inference modules:

from manimol import ManiMol

model = ManiMol.from_pretrained(
    "/path/to/stage2_best.pth",
    device="cuda",
    denoiser_checkpoint="/path/to/denoiser.pth",
)
model.generate(
    data_root="/path/to/data",
    output_dir="results/example",
    dataset="Drugs",
    raw_prefix="geom_drugs",
    split="test",
    select_candidates="precision2r",
)

The current production code requires graph/torsion/conformer dataset records; this release does not claim an unvalidated generate(smiles=...) adapter. That limitation is documented rather than hidden behind a second, simplified implementation.

Repository layout

  • src/manimol/: public utilities and thin runtime/CLI wrappers;
  • src/models/, src/dataset/, src/utils/: copied active implementation;
  • src/*.py: original training and inference entry modules;
  • configs/: public configuration templates;
  • scripts/: research and reproduction scripts copied from the active project. Some scripts require external datasets, PyMOL/Vina, or private experiment-only modules and are not part of the minimal public API;
  • tests/: copied tests from the active implementation;
  • checkpoints/: documentation only; weights are not committed;
  • MANIMOL_MODULE_AUDIT.md: source-to-method audit.

Development

python -m pip install -e ".[test,build]"
pytest
python -m build
python -m twine check dist/*

Before a public release, run a full inference smoke test with the exact checkpoint and dataset files intended for release. The project license and the repository URL in CITATION.cff are intentionally left for the authors to confirm. LICENSE_PENDING.md must be replaced by the authors' chosen license before publishing a public repository or a final PyPI release.

Metadata

Release files for manimol 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for manimol 0.2.1
File Size Uploaded Provenance
manimol-0.2.1.tar.gz 458.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for manimol 0.2.1
File Interpreter ABI Platform
manimol-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 981.7 kB

Release files / manimol-0.2.1.tar.gz

Download URL manimol-0.2.1.tar.gz
Size 458.8 kB
Tags Source
SHA-256 checksum
How to use checksums
37d09d428302d120511f94591eafeb8ca25bb7aadd82031397fccc50fcd829eb
BLAKE2b-256 checksum
How to use checksums
826a60852d6a6e27e4bbdb583480e8b593295fe160e249ec60359f43b9afe2d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.2

Release files / manimol-0.2.1-py3-none-any.whl

Download URL manimol-0.2.1-py3-none-any.whl
Size 522.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26fc1da0762c1dc5f2114a84b17a274471cbdcfac04d9f5e4419de97c64a9778
BLAKE2b-256 checksum
How to use checksums
312c59dc7066c6bc117379bbf18e9a540587489bd6af4a6b697cf8800b0583e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.2

Security for manimol 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page