Skip to main content

Simple Molecular Dynamics Expandable Library - easy to start MD library

Project description

SiMDEL

Russian version

Simple Molecular Dynamics Expandable Library - a library for molecular dynamics.

Setting up and running molecular dynamics simulations can be done entirely from Python. No file editing, no conversion to other formats - completely seamless molecular dynamics!

Basic Principles

Architecture: The library represents a GROMACS molecular system as a set of related tabular structures (similar to a relational database), allowing pandas to perform complex manipulations quickly.

Immutability: The system object is immutable. This, together with other core classes, guarantees consistency across the library.

Pure Functions: All operations on the system are implemented as pure functions that return a new system. The only permitted side effect is the creation of folders for intermediate files. This design makes execution equally straightforward both locally and remotely.

Pipelines: Individual functions are combined into pipeline stages. Each stage also has at most one side effect - the creation of a working directory.


Installation

The library requires several types of dependencies:

  • Core: PyPi dependencies, GROMACS
  • Conda packages - optional, Linux/WSL/Mac only. (OpenFF parameterization, FEP transition graphs. )
  • PLUMED - optional. (Metadynamics)
  • PMX - optional. (FEP)

[!IMPORTANT]

  1. Combinations of pip and conda are allowed, but package versions must be kept consistent to avoid conflicts.
  2. Keep the versions of packages installed via pip and conda identical. This prevents overwriting with mismatched duplicates.
  3. Do not change the installation order

1. GROMACS

Required: MD engine

Options:

  1. Regular without PLUMED (see documentation)

  2. Regular with PLUMED (PLUMED flag)

    [!NOTE] Built command example

     cmake .. \
    -DGMX_BUILD_OWN_FFTW=ON \
    -DREGRESSIONTEST_DOWNLOAD=ON \
    -DGMX_USE_PLUMED=ON # most important - PLUMED usage
    
  3. Via conda - no GPU support, cannot enable PLUMED: see below

2. PLUMED

Optional: funnel and default metadynamics

GROMACS must be built with PLUMED enabled. Build from source - PLUMED installation docs:

cd plumed_dir
./configure --enable-modules=all
make -j 4
make doc # this is optional and requires proper doxygen version installed
make install

3. Conda

Optional: OpenFF parameterization, transition graph construction for FEP

Only works on Linux/WSL/Mac.

conda create -n simdel_env python=3.10
conda activate simdel_env
conda install -f conda.yml -y

[!NOTE] If you want GROMACS from conda, install it after creating the environment

conda install gromacs

4. Pip

Required: basic classes and functions

Options:

  1. UV
uv pip install .
  1. Poetry
poetry install

5. PMX

Optional: FEP

[!WARNING] The original package is outdated. The only working solution right now is to install the pmx fork from this project

cd pmx
pip install .

P.S.

The simplest video game mechanics are shooting and moving with WASD.

Many libraries are tailored to a specific task: parameterization, MD simulation, analysis, or assembling a molecular system from individual molecules. As a result, one has to build a custom pipeline, sacrificing versatility and scalability, and facing difficulties when integrating different tools.

The main problem is inconsistency - different interfaces, different operating principles. You have to keep track of each tool’s quirks and format conversion pitfalls; building wrappers becomes time-consuming. Ready-made frameworks rarely allow adding custom functions without deep integration into their code.

That’s why the idea emerged: the simplest possible library connecting individual tools under a single interface. What could be simpler than calling a function with arguments? That would allow anyone to easily add new functions and argument types to the common pool. This is how SiMDel was born.

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

simdel-0.0.1.tar.gz (363.0 kB view details)

Uploaded Source

Built Distribution

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

simdel-0.0.1-py3-none-any.whl (446.6 kB view details)

Uploaded Python 3

File details

Details for the file simdel-0.0.1.tar.gz.

File metadata

  • Download URL: simdel-0.0.1.tar.gz
  • Upload date:
  • Size: 363.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for simdel-0.0.1.tar.gz
Algorithm Hash digest
SHA256 481864b28fcb3832e26d52f715db0abb973b1298acbb8848438c6ab4b3829fe0
MD5 678f047e3912492b67278735f96f91de
BLAKE2b-256 cae2ca677068f0abbde058a7b21beb3945edb20ac51fd1450c9b659473e30032

See more details on using hashes here.

File details

Details for the file simdel-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: simdel-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 446.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for simdel-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e64ca6d7ad249ee79f4c69d3d9672cc9f73719aa58497ec09f4f58468a4d831d
MD5 5092c712162ce403d48e18f779eb1fae
BLAKE2b-256 ee35fc27e7d28f86064f9d6c138bc4d1aed2f5f1b784a69b3d4a7f84fdf40aec

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