Virtual Laboratory for the simulation of Macromolecular Properties
Project description
VLMP (Virtual Laboratory Massively Parallelized)
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
Coming soon.
Installation
Prerequisites
Install UAMMD-structured before proceeding. 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
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
File details
Details for the file pyVLMP-1.0.59.tar.gz
.
File metadata
- Download URL: pyVLMP-1.0.59.tar.gz
- Upload date:
- Size: 105.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b195ff0323d4eaf22e859fec64a865ff4827b1e6136476882f80c9107e48a7b1 |
|
MD5 | 92538e5c94868c7c1ebf37a2f028cc70 |
|
BLAKE2b-256 | 32eb7947c76a34bc705ca58814c07df033a4d01171d293109a3061aeb2796400 |
File details
Details for the file pyVLMP-1.0.59-py3-none-any.whl
.
File metadata
- Download URL: pyVLMP-1.0.59-py3-none-any.whl
- Upload date:
- Size: 158.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c24edd38cb4ec1333395c27623f40d9d32042cc4549227778c34c379c5b0e755 |
|
MD5 | cd0da9f31d9ba00fd96bea1c73c3194d |
|
BLAKE2b-256 | 36f81c776ce239a4077246fab72ac797fe36f8369e97c291bb5c2fee65ce943f |