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

Online 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

  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.71.tar.gz (133.9 kB view hashes)

Uploaded Source

Built Distribution

pyVLMP-1.0.71-py3-none-any.whl (202.6 kB view hashes)

Uploaded Python 3

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