Skip to main content

Fast algorithms for MD trajectories

Project description

Rust Simulation Tools

CI/CD PyPI version

Fast, numerically stable MD trajectory processing implemented in Rust with a clean python API. Installable via pip, integrates smoothly with MDAnalysis or mdtraj, and ships with tests.

Installation

pip install rust-simulation-tools

Features

  • Fast: Rust implementation with SIMD optimizations
  • 🎯 Accurate: Numerically stable Kabsch alignment and fragment-based unwrapping
  • 🧪 Well tested: Comprehensive test suite with >80% coverage
  • 🧩 Easy integration: Works directly with MDAnalysis selections/indices

Usage

import MDAnalysis as mda
from rust_simulation_tools import kabsch_align

# Load trajectory
u = mda.Universe("topology.pdb", "trajectory.dcd")

# Select alignment atoms
align_selection = u.select_atoms("backbone")
align_indices = align_selection.indices.astype(np.int32)

# Get coordinates
reference = u.atoms.positions.copy().astype(np.float32)
trajectory = np.array([ts.positions for ts in u.trajectory], dtype=np.float32)

# Align
aligned = kabsch_align(trajectory, reference, align_indices)

API Reference

kabsch_align(
    trajectory: np.ndarray,      # float, shape [n_frames, n_atoms, 3]
    reference: np.ndarray,       # float, shape [n_atoms, 3]
    align_idx: np.ndarray        # int,   shape [n_alignment_atoms]
) -> np.ndarray                  # float, shape [n_frames, n_atoms, 3]

unwrap_system(
    trajectory: np.ndarray,      # float, shape [n_frames, n_atoms, 3]
    box_dimensions: np.ndarray,  # float, shape [n_frames, 3]
    fragment_idx: np.ndarray     # int,   shape [n_atoms]
) -> np.ndarray                  # float, shape [n_frames, n_atoms, 3]

calculate_sasa_trajectory(
    coordinates: np.ndarray,     # np.float64, shape [n_frames, n_atoms, 3]
    radii: list,                 # int, shape [n_atoms]
    residue_indices: np.ndarray  # np.int64, shape [n_atoms]
    probe_radius: float=1.4      # float, default 1.4
    n_sphere_points: int=960     # int, default 960
) -> dict[str, np.ndarray]       # np.float64, keys ['total', 'per_atom', 'per_residue']

Development

# Clone repository
git clone https://github.com/msinclair-py/rust-simulation-tools.git
cd rust-simulation-tools

# Install development dependencies
pip install maturin pytest pytest-cov numpy

# Build and install in development mode
maturin develop --release

# Install with pip
pip install target/wheels/name-of-package.whl

# Run tests
pytest tests/ -v --cov

License

MIT License

Project details


Download files

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

Source Distribution

rust_simulation_tools-0.1.11.tar.gz (2.1 MB view details)

Uploaded Source

Built Distributions

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

rust_simulation_tools-0.1.11-cp312-cp312-win_amd64.whl (284.2 kB view details)

Uploaded CPython 3.12Windows x86-64

rust_simulation_tools-0.1.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (408.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rust_simulation_tools-0.1.11-cp312-cp312-macosx_11_0_arm64.whl (348.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rust_simulation_tools-0.1.11-cp311-cp311-win_amd64.whl (282.4 kB view details)

Uploaded CPython 3.11Windows x86-64

rust_simulation_tools-0.1.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (408.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rust_simulation_tools-0.1.11-cp311-cp311-macosx_11_0_arm64.whl (347.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rust_simulation_tools-0.1.11-cp310-cp310-win_amd64.whl (282.4 kB view details)

Uploaded CPython 3.10Windows x86-64

rust_simulation_tools-0.1.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (408.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rust_simulation_tools-0.1.11-cp310-cp310-macosx_11_0_arm64.whl (347.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rust_simulation_tools-0.1.11-cp39-cp39-win_amd64.whl (282.6 kB view details)

Uploaded CPython 3.9Windows x86-64

rust_simulation_tools-0.1.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (408.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

rust_simulation_tools-0.1.11-cp39-cp39-macosx_11_0_arm64.whl (348.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file rust_simulation_tools-0.1.11.tar.gz.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11.tar.gz
Algorithm Hash digest
SHA256 47ac089cb69e30796c3459ae42cc349c7e742a12916f68ef090eb919c90df6d9
MD5 5c3ad37ed699a7613344d36906f9bcf5
BLAKE2b-256 c7941ec9c4a2801d8a106a19719d6cc433015e718e6ed1f46e73bbc7f121999e

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 edddc5e1b5b5ee1a1c38b021cd2133e75136cdc77b53938992840bca71ee4993
MD5 d3383befadcca37728d80df8945057c2
BLAKE2b-256 2602760d4356859a1304fd5be58384713078dcc902307a591297e36effdafcc1

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5bcdb1d9d7756bedd6c04415d3a429f43cfdde27c137f8a68a2b8ea4db68a988
MD5 c00ba4fed0250dfca24b4a34cb67ed90
BLAKE2b-256 994db7190b338cdd2336b0ad00cef0960af9ea1bdb1a2ca969e1ea85f5c36231

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce73a51a04fef9e67517264c3095aa0657137c7a351cdb3a522bc3337e77d533
MD5 99f081a21b2fd2534c6e88d4a386253e
BLAKE2b-256 067c3fb8379512039267a08e0fcb7b7ea7ec9dbdf330572d980dfe73fc043766

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a20b4806d74d673282fb08a9b6075fbe5266f725ad08f33ec1ecceea6a571c0f
MD5 b134ac32e8f58d3f7f6220c2b470e590
BLAKE2b-256 386e129545e96eaa8aab78bdb94ee1838fae13ad12b12687e9020a7ddb6bb2ff

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4495123c4f2cc92a95f44078293e16ea77e8a9270672fe98d2b1b3e8d1f3337
MD5 b8ca97969230c7172a6c9fdf8b009f04
BLAKE2b-256 2184b60d205ba5ed7581aa2404395bfea90351a78408389d610ed43301fecfc8

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0987c725b96b81e0f9bc8b8455c2b53bdc2f071d3aea166b80039ee66398e78e
MD5 02366a00158b817628b8626f4718fbca
BLAKE2b-256 cae38d47eae5ca21fe75bdad843fe859384bdfc25bf33c14fd1846eba409fb75

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 961ff60568f8f5021abe42b756d8a8cfe4cf6b4eb509e2abc8235cc2852e40ae
MD5 2636cdecc82f6ef650ac79cc3c8758fc
BLAKE2b-256 600f1774abe61f414743f23c4160076fbfb17e0647789c0cf1e5f00d5561cf95

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f8b2270bc6f787e8b27daae49ffa39cc0ae18ccd66cd26e96d8750c5e828eb1
MD5 74cf2c79b78508f5bee87e56f7e711ab
BLAKE2b-256 4cf1ae73e9f21765444c92b94358dd665e5393a60b83b914a61539473f593d60

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdf29831b8eecb91041da48a1270c7f3f1b3da8b7436a8d18340ce565d793211
MD5 c19e5af49af36f8da173f5c0787f8d2a
BLAKE2b-256 112f03304f8cc3d47a87ccdc50a34fdaf80e3f02bc47f5c57073cfbe5dfd233a

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 828743dc69d1617577fe12a555e91dc47d4c86c29bf01b4e7727905131f40aab
MD5 d42baa30324ad7ce179170608ec0a4b1
BLAKE2b-256 f6334e12cd39a588d6726b6f075fde16416e0fb2639dbf2b58abdfdc8112586a

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53b4537289e16fdf242dba8ee3d4eab7208d5fcaf6c6511ece622a66ee68ff1d
MD5 418f5c2bda2ea360abd8439cb07e5570
BLAKE2b-256 ed732ea3efddd4933c92039fd2644edca36f17a770b80c5c50d561728ec5f9fc

See more details on using hashes here.

File details

Details for the file rust_simulation_tools-0.1.11-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_simulation_tools-0.1.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b65108b82967d2c9dfd70b5a40842cdb13cd49c02be91f5f1f9d5a3deaf6d4f
MD5 a4e427e70c53755481829aee69f0f31a
BLAKE2b-256 635252b54792b290eccfdba4629c00d0021de82d04d1f467977719b8ea063640

See more details on using hashes here.

Supported by

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