vortexdock

VortexDock is a Python-based distributed molecular docking system, supports parallel computation across multiple nodes, utilizing idle resources to improve virtual screening efficiency.

https://github.com/capt-lappland/vortexdock

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

VortexDock is a Python-based distributed molecular docking system, supports parallel computation across multiple nodes, utilizing idle resources to improve virtual screening efficiency.

Basic Info
  • Host: GitHub
  • Owner: Capt-Lappland
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 13 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 5
  • Releases: 1
Created about 1 year ago · Last pushed 11 months ago
Metadata Files
Readme Citation

README.md

 __     __         _            ____             _    
 \ \   / /__  _ __| |_ _____  _|  _ \  ___   ___| | __
  \ \ / / _ \| '__| __/ _ \ \/ / | | |/ _ \ / __| |/ /
   \ V / (_) | |  | ||  __/>  <| |_| | (_) | (__|   < 
    \_/ \___/|_|   \__\___/_/\_\____/ \___/ \___|_|\_\

VortexDock: Distributed Molecular Docking System

VortexDock is a Python-based distributed molecular docking system consisting of a distribution server, a monitoring server, and compute nodes. It supports parallel computation across multiple nodes, utilizing idle resources to improve virtual screening efficiency. Currently, it supports AutoDock Vina, with plans to add more docking software.

Architecture

Distribution Server

Manages the task database, distributes receptor, ligand, and docking parameters, and collects docking results (ligand_out.pdbqt) from compute nodes.

Monitoring Server

Monitors the task database and visualizes task execution status.

Compute Node

Fetches tasks from the distribution server, performs docking, and submits results back to the server.

Installation

  1. Clone the repository.
  2. Install MySQL (current must, but we'll support SQLite soon)
  3. Install dependencies: bash pip install -r requirements.txt

Distribution Server Setup

  1. Navigate to the distribution_server directory.
  2. Edit config.py:
    • Database connection
    • Server port
    • Other parameters
  3. Initialize the database: bash python cli.py

Compute Node Setup

  1. Navigate to the compute_node directory.
  2. Edit config.py:
    • Server connection
    • Task parameters
    • System settings
  3. Ensure the vina program has execution permissions.

Usage

Start Distribution Server

bash cd distribution_server python server.py

Task Management

```bash

List all tasks

python cli.py -ls

Create a new task

python cli.py -zip -name

taskname.zip ├── receptor.pdbqt ├── parameter.txt │ ├── centerx = 233.7 │ ├── centery = 155.8 │ ├── centerz = 127.7 │ ├── sizex = 35.7 │ ├── sizey = 41.2 │ ├── sizez = 45.2 │ ├── nummodes = 9 │ ├── energy_range = 9 │ └── cpu = 8 └── ligands ├── 001.pdbqt ├── 002.pdbqt ├── 003.pdbqt └── ...

Pause/Resume a task

python cli.py -pause

Delete a task

python cli.py -rm ```

Start Monitoring Server

Python-based monitoring server: bash cd monitor_server python app.py # Default: localhost:9000

PHP-based monitoring server: Set the web root to monitor_server_PHP.

Start Compute Node

bash cd compute_node python client.py

Features

  • Distributed computation with multi-node support
  • Task resumption after interruption
  • Node heartbeat detection
  • Automatic retry for failed tasks
  • Temporary file management

Owner

  • Login: Capt-Lappland
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Wang
    given-names: Runze
    orcid: https://orcid.org/0009-0000-0204-9906/
title: "VortexDock"
version: 0.0.1
identifiers:
  - type: doi
    value: 10.5281/zenodo.15019935
date-released: 2025-03-13

GitHub Events

Total
  • Create event: 6
  • Release event: 1
  • Issues event: 10
  • Watch event: 66
  • Delete event: 3
  • Issue comment event: 6
  • Push event: 16
  • Public event: 1
  • Pull request event: 15
  • Fork event: 7
Last Year
  • Create event: 6
  • Release event: 1
  • Issues event: 10
  • Watch event: 66
  • Delete event: 3
  • Issue comment event: 6
  • Push event: 16
  • Public event: 1
  • Pull request event: 15
  • Fork event: 7

Dependencies

requirements.txt pypi
  • cryptography ==36.0.1
  • curses ==2.2.1
  • flask ==2.0.3
  • mysql-connector-python ==8.0.26
  • requests ==2.31.0
  • windows-curses ==2.2.1
.github/workflows/tests.yml.discard actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1 composite
  • mysql 8.0 docker