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! 🧬✨
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| vi-0.9.tar.gz | 368.3 kB | Without provenance | Details for vi-0.9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| vi-0.9-py3-none-any.whl | Python 3 | none | any | Details for vi-0.9-py3-none-any.whl |
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
|
Security for vi 0.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.