Skip to main content

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! 🧬✨

Release files for vi 0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vi 0.9
File Size Uploaded
vi-0.9.tar.gz 368.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vi 0.9
File Interpreter ABI Platform
vi-0.9-py3-none-any.whl Python 3 none any Details

Total release size: 522.7 kB

Release files / vi-0.9.tar.gz

Download URL vi-0.9.tar.gz
Size 368.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cd66d96f3e9eb2f10c56a7feb377d7098f1fcca02f5e8437b82245833464ae5b
BLAKE2b-256 checksum
How to use checksums
3c7af49f520bed23684a67c749863e288b02671b69ac261c08f7f850d54f3630
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / vi-0.9-py3-none-any.whl

Download URL vi-0.9-py3-none-any.whl
Size 154.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06ecb916033df4a29497b61e1b8624aab079b586bfe22a3ac355228806c56329
BLAKE2b-256 checksum
How to use checksums
a79052b0fce93fd6d80049dec3157a4dc2647e7bbd23e06ba59d34e76fe0f6a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.9 This release

2 release files

0.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page