Skip to main content

Vector Interpreter - computational toolkit for biophysical design platforms

Project description

VI - Vector Interpreter

PyPI version Python versions License: GPL v2

Vi (Vector Interpreter) is a computational toolkit for biophysical design platforms that supports automatic parallel execution of user-submitted tasks, providing a complete molecular simulation workflow solution.

✨ Key Features

  • 🚀 Automatic Parallel Processing: User-submitted tasks are automatically executed in parallel on clusters
  • 📝 YAML Configuration: Use simple YAML configuration files to describe algorithms and workflows
  • 🔧 Modular Design: Supports dynamic module loading, easy to extend and customize
  • 🖥️ Distributed Architecture: Supports Linux cluster deployment
  • 🔄 Workflow Management: Complete task scheduling and status management
  • 📊 Multiple Compute Engines: Integrated with various molecular simulation and computational tools

📦 Core Modules

  • General: Framework and common utility library
  • Compute: Computation engines (supports Gaussian, LAMMPS, etc.)
  • Ensemble: Ensemble and statistical analysis
  • Interpreter: YAML configuration parser
  • Scheduler: Task scheduling system
  • Parallel: Parallel computing support

🚀 Quick Start

Installation

Install using pip:

pip install vi

Or install from source:

git clone https://github.com/lhrkkk/vi.git
cd vi
python setup.py install

Basic Usage

  1. Create a configuration file (task.yml):
# Example: Molecular dynamics simulation task
- module: compute.gaussian
  input_file: molecule.xyz
  method: B3LYP
  basis_set: 6-31G*

- module: ensemble.analysis
  trajectory: output.traj
  properties:
    - energy
    - rmsd
  1. Submit task:
labkit push task.yml
  1. Start worker nodes:
# Frontend server
labkit front

# Compute nodes
labkit worker

🏗️ System Architecture

Cluster Deployment

Vi is designed for Linux cluster environments:

  • Frontend Server: Run labkit front, requires beanstalkd and MongoDB
  • Compute Nodes: Run labkit worker
  • Client: Use labkit push to submit tasks

Workflow

  1. Users write YAML configuration files to describe computational tasks
  2. Use labkit push to submit tasks to the queue
  3. Cluster automatically allocates resources and executes tasks in parallel
  4. Returns computational results

📝 Configuration File Syntax

Vi uses YAML format configuration files with the following syntax:

Basic Structure

# Lists
- item1
- item2

# Mappings
key: value

# Loop control
- module: some.module
  repeat: 100
  until: convergence_condition

Advanced Features

  • Conditional Execution: Support for until conditions
  • Loop Control: Support for repeat parameters
  • Variable Assignment: Support for dynamic variables
  • Module Parameters: Flexible parameter passing

🔧 Command Line Tools

Vi provides a series of command line tools:

  • labkit: Main command line interface
  • labkit-api: API server
  • labkit front: Frontend service
  • labkit worker: Worker nodes
  • labkit push: Task submission

🛠️ Development and Extension

Adding New Modules

  1. Create new Python modules in the appropriate directory
  2. Implement required computational functionality
  3. Reference new modules in YAML configuration

Module Development Principles

  • Data-Driven: Core data structures like conformer, ensemble
  • Loose Coupling: Modules decoupled through configuration files
  • Testable: Support modular testing during development

📋 System Requirements

  • Python: 2.7, 3.6+
  • Operating System: Linux (recommended)
  • Dependencies: beanstalkd, MongoDB
  • Cluster: Supports job schedulers like PBS/SLURM

📚 Documentation and Support

👥 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the project
  2. Create a feature branch
  3. Commit your changes
  4. Send a Pull Request

📄 License

This project is licensed under GPL v2. See LICENSE file for details.

👨‍💻 Author


Vi (Vector Interpreter) makes molecular simulation simple and powerful! 🧬✨

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

vi-0.9.tar.gz (368.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vi-0.9-py3-none-any.whl (154.4 kB view details)

Uploaded Python 3

File details

Details for the file vi-0.9.tar.gz.

File metadata

  • Download URL: vi-0.9.tar.gz
  • Upload date:
  • Size: 368.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for vi-0.9.tar.gz
Algorithm Hash digest
SHA256 cd66d96f3e9eb2f10c56a7feb377d7098f1fcca02f5e8437b82245833464ae5b
MD5 168ef8345690a927305922710d36b8eb
BLAKE2b-256 3c7af49f520bed23684a67c749863e288b02671b69ac261c08f7f850d54f3630

See more details on using hashes here.

File details

Details for the file vi-0.9-py3-none-any.whl.

File metadata

  • Download URL: vi-0.9-py3-none-any.whl
  • Upload date:
  • Size: 154.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for vi-0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 06ecb916033df4a29497b61e1b8624aab079b586bfe22a3ac355228806c56329
MD5 3ced03fdc0e6a8dfb41bebcf761d5d8d
BLAKE2b-256 a79052b0fce93fd6d80049dec3157a4dc2647e7bbd23e06ba59d34e76fe0f6a9

See more details on using hashes here.

Supported by

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