Skip to main content

Virtual Lab Modeling Platform

Project description

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

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

  1. Simulation Configuration: Define simulation parameters.
  2. Simulation Pool Creation: Prepare multiple configurations for batch execution.
  3. Simulation Distribution: Distribute simulations across computational resources.
  4. Simulation Execution: Execute simulations on GPU using UAMMD-structured.

License

GPLv3

Contact

For issues and contributions, please contact: GitHub Issues

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

pyVLMP-1.0.65.tar.gz (107.4 kB view details)

Uploaded Source

Built Distribution

pyVLMP-1.0.65-py3-none-any.whl (164.5 kB view details)

Uploaded Python 3

File details

Details for the file pyVLMP-1.0.65.tar.gz.

File metadata

  • Download URL: pyVLMP-1.0.65.tar.gz
  • Upload date:
  • Size: 107.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for pyVLMP-1.0.65.tar.gz
Algorithm Hash digest
SHA256 007a90369c204874734503047818e2cba5be75e95ef0647e63b0bc981e92a134
MD5 5940a006b147daf98b3a55e51bbc58b4
BLAKE2b-256 93688e12428648848042885d676db5b030cef80f8e306bdf145900237b93f701

See more details on using hashes here.

File details

Details for the file pyVLMP-1.0.65-py3-none-any.whl.

File metadata

  • Download URL: pyVLMP-1.0.65-py3-none-any.whl
  • Upload date:
  • Size: 164.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for pyVLMP-1.0.65-py3-none-any.whl
Algorithm Hash digest
SHA256 92648f8c9154fd234a6c68b87876ff1a6e81a511ab3c496d70912d523d173f5a
MD5 186dcb800714a2fe66c79f6c50fb7901
BLAKE2b-256 2dfb67cf6f12ea1f4756b6f095350ad6bfc367ca7749c994b5621c8cae513278

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page