Vector Interpreter - computational toolkit for biophysical design platforms
Project description
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! 🧬✨
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd66d96f3e9eb2f10c56a7feb377d7098f1fcca02f5e8437b82245833464ae5b
|
|
| MD5 |
168ef8345690a927305922710d36b8eb
|
|
| BLAKE2b-256 |
3c7af49f520bed23684a67c749863e288b02671b69ac261c08f7f850d54f3630
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06ecb916033df4a29497b61e1b8624aab079b586bfe22a3ac355228806c56329
|
|
| MD5 |
3ced03fdc0e6a8dfb41bebcf761d5d8d
|
|
| BLAKE2b-256 |
a79052b0fce93fd6d80049dec3157a4dc2647e7bbd23e06ba59d34e76fe0f6a9
|