VLMP (Virtual Lab Modeling Platform)
Table of Contents
Introduction
VLMP is a Python library designed for running parallelized simulations, specifically optimized for molecular dynamics and other continuous models. Built on the backend technology of UAMMD-structured, it leverages multi-level parallelization to achieve highly efficient simulation runs.
Features
- Multi-level Parallelization: Run multiple simulations concurrently on a single GPU or distribute across multiple GPUs.
- Optimized for Coarse-grained Models: Achieve better GPU utilization with small-scale simulations.
- Highly Configurable: Easily adaptable for a variety of scientific phenomena.
- Community Sharing: Distribute new models as VLMP modules.
Documentation
Installation
Prerequisites
VLMP can be used without any additional program ( but required Python libraries) for generating simulations input files. For execute these simulations UAMMD-structured must be available in the system. UAMMD-structured Documentation
Installing VLMP
Via pip:
pip install pyVLMP
Or clone the GitHub repository:
git clone https://github.com/PabloIbannez/VLMP.git
cd VLMP
pip install .
Verifying Installation
import VLMP
Getting Started
Here's a minimal example to simulate a set of DNA chains:
import VLMP
from VLMP.utils.units import picosecond2KcalMol_A_time
from numpy import random
# Convert picoseconds to AKMA time unit
ps2AKMA = picosecond2KcalMol_A_time()
# Number of sequences and sequence set size
Nsequence = 10
sequenceSetSize = 10
# Length of each sequence and the basis of DNA
sequenceLength = 100
basis = ['A', 'C', 'G', 'T']
# Generate random sequences
sequences = []
for i in range(Nsequence):
sequences.append(''.join(random.choice(basis, sequenceLength)))
# Populate simulation pool
simulationPool = []
for seq in sequences:
# Configure simulation parameters
simulationPool.append({
"system": [
{"type": "simulationName", "parameters": {"simulationName": seq}},
{"type": "backup", "parameters": {"backupIntervalStep": 100000}}
],
"units": [{"type": "KcalMol_A"}],
"types": [{"type": "basic"}],
"ensemble": [
{"type": "NVT", "parameters": {"box": [2000.0, 2000.0, 2000.0],
"temperature": 300.0}}
],
"integrators": [
{"type": "BBK", "parameters": {"timeStep": 0.02*ps2AKMA,
"frictionConstant": 0.2/ps2AKMA,
"integrationSteps": 1000000}}
],
"models": [
{"type": "MADna", "parameters": {"sequence": seq}}
],
"simulationSteps": [
{"type": "saveState", "parameters": {"intervalStep": 10000,
"outputFilePath": "traj",
"outputFormat": "dcd"}},
{"type": "thermodynamicMeasurement", "parameters": {"intervalStep": 10000,
"outputFilePath": "thermo.dat"}},
{"type": "info", "parameters": {"intervalStep": 10000}}
]
})
# Initialize VLMP and load simulation pool
vlmp = VLMP.VLMP()
vlmp.loadSimulationPool(simulationPool)
# Distribute simulations and set up
vlmp.distributeSimulationPool("size", sequenceSetSize)
vlmp.setUpSimulation("EXAMPLE")
Execute the simulations with:
cd EXAMPLE
python -m VLMP -s VLMPsession.json --local --gpu 0 1
Workflow
- Simulation Configuration: Define simulation parameters.
- Simulation Pool Creation: Prepare multiple configurations for batch execution.
- Simulation Distribution: Distribute simulations across computational resources.
- Simulation Execution: Execute simulations on GPU using UAMMD-structured.
License
Contact
For issues and contributions, please contact: GitHub Issues
Metadata
Release files for pyVLMP 1.0.75
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyvlmp-1.0.75-py3-none-any.whl | Python 3 | none | any | Details for pyvlmp-1.0.75-py3-none-any.whl |
Release files / pyvlmp-1.0.75-py3-none-any.whl
| Download URL | pyvlmp-1.0.75-py3-none-any.whl |
|---|---|
| Size | 204.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e94554076cafdcc65992ef9e3b6b682b6bdab0289be48800ec121845c622bea7
|
|
BLAKE2b-256 checksum How to use checksums |
0c793dc8ddc9ef23fecf5d8c796b422d34c2c68d68399a37595cf67d3775fd61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|
Security for pyVLMP 1.0.75
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.