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 | Reset |
|---|---|---|---|---|
| pyvlmp-1.0.75-py3-none-any.whl | Python 3 | none | any | Details |
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
|