Skip to main content

Virtual Laboratory for the simulation of Macromolecular Properties

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.61.tar.gz (107.0 kB view details)

Uploaded Source

Built Distribution

pyVLMP-1.0.61-py3-none-any.whl (162.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyVLMP-1.0.61.tar.gz
  • Upload date:
  • Size: 107.0 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.61.tar.gz
Algorithm Hash digest
SHA256 5aef405a2b1041a28c8fa5b6a934eefc531ac33d4101f429e7fe0e961084d862
MD5 c8f5bd957d2e9dad2e3d05ae4b0666dd
BLAKE2b-256 b2a4ed8e5778e77da3aae47064831539d07840509398cf3632b14747b622f3ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyVLMP-1.0.61-py3-none-any.whl
  • Upload date:
  • Size: 162.2 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.61-py3-none-any.whl
Algorithm Hash digest
SHA256 292fe6d09dd190ccaefaa298c58d109d364d96014d21d250beec004200087f90
MD5 1a5129d22e8c6d59fcdb05e0e100ea93
BLAKE2b-256 d2e65a12464699e78763dd2f29bbd4f50f46f71978fe4354ae148345bc6638fc

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