VI - Vector Interpreter
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
- 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
- Submit task:
labkit push task.yml
- 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 pushto submit tasks
Workflow
- Users write YAML configuration files to describe computational tasks
- Use
labkit pushto submit tasks to the queue - Cluster automatically allocates resources and executes tasks in parallel
- 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
untilconditions - Loop Control: Support for
repeatparameters - 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 interfacelabkit-api: API serverlabkit front: Frontend servicelabkit worker: Worker nodeslabkit push: Task submission
🛠️ Development and Extension
Adding New Modules
- Create new Python modules in the appropriate directory
- Implement required computational functionality
- 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
- GitHub: https://github.com/lhrkkk/vi
- Issue Tracker: https://github.com/lhrkkk/vi/issues
- License: GPL v2
👥 Contributing
Contributions are welcome! Please follow these steps:
- Fork the project
- Create a feature branch
- Commit your changes
- Send a Pull Request
📄 License
This project is licensed under GPL v2. See LICENSE file for details.
👨💻 Author
- Author: lhr
- Email: airhenry@gmail.com
- Homepage: http://about.me/air.henry
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)
| File | Size | Uploaded | |
|---|---|---|---|
| vi-0.9.tar.gz | 368.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|