Simple Molecular Dynamics Expandable Library - easy to start MD library
Project description
SiMDEL
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]
- Combinations of pip and conda are allowed, but package versions must be kept consistent to avoid conflicts.
- Keep the versions of packages installed via pip and conda identical. This prevents overwriting with mismatched duplicates.
- Do not change the installation order
1. GROMACS
Required: MD engine
Options:
-
Regular without PLUMED (see documentation)
-
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
-
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:
- UV
uv pip install .
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
481864b28fcb3832e26d52f715db0abb973b1298acbb8848438c6ab4b3829fe0
|
|
| MD5 |
678f047e3912492b67278735f96f91de
|
|
| BLAKE2b-256 |
cae2ca677068f0abbde058a7b21beb3945edb20ac51fd1450c9b659473e30032
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e64ca6d7ad249ee79f4c69d3d9672cc9f73719aa58497ec09f4f58468a4d831d
|
|
| MD5 |
5092c712162ce403d48e18f779eb1fae
|
|
| BLAKE2b-256 |
ee35fc27e7d28f86064f9d6c138bc4d1aed2f5f1b784a69b3d4a7f84fdf40aec
|