Desktop Application
ResHelp Tools
An open-source Windows desktop app that brings PubChem downloads, IMPPAT extraction, AutoDock Vina docking and log analysis into one GUI.
- Workflows
- 4
- License
- Apache 2.0
Problem
Computational biology screening on Windows meant juggling separate tools and scripts: batch compound downloads from PubChem, phytochemical data from IMPPAT, ligand preparation with OpenBabel, docking with AutoDock Vina, and manual extraction of binding affinities from Vina logs.
Approach
ResHelp Tools is a PyQt6 application with four tabs (PubChem, IMPPAT, Docking and Logs). Downloads run concurrently with retries and backoff and can resume from their logs; the docking tab drives OpenBabel, AutoDock Vina and vina_split and organises the output poses; the log tab parses Vina output and ranks the best affinities. Every run writes rotating text and JSONL logs, a headless CLI and Docker image support reproducible testing, and PyInstaller packages the whole thing as a Windows executable.
Highlights
- Four workflows in one app: PubChem, IMPPAT, Docking and Vina log analysis
- Concurrent downloads with retry/backoff and resumable runs
- Rotating text and JSONL logs for every run
- Headless CLI and Docker image, plus a PyInstaller Windows build
Architecture
Select a layer to read why it is there.
Paths to external tools such as OpenBabel and Vina are set once in preferences instead of being assumed on PATH.
Eight concurrent workers; retries on rate limits and server errors apply only to idempotent requests.
Each docking run prepares ligands, docks them, then splits the output into individual poses.
Text logs for people, JSONL logs for scripts, both rotated so they cannot grow without limit.
The CLI covers log parsing for headless use, and the Docker image runs the tests.
Decisions & trade-offs
Retry only what is safe to retry
PubChem downloads run on a pool of eight workers, and the HTTP session retries rate-limit and server errors only for idempotent requests (GET, HEAD, OPTIONS), so a retry can never repeat a side effect.
Resume from the log
A failed batch does not have to start over: a retry action reads the run log and re-requests only the downloads that failed.
Two log formats
Every run writes a rotating text log for people and a JSONL log for other tools, each capped at 5 MB with two backups. It is a little more code, and it makes any run auditable after the fact.
Package for the people who use it
A PyInstaller build ships the app as a Windows executable for researchers, while a headless CLI and a Docker image keep testing reproducible away from Windows.
Impact
Collapses a fragmented docking toolchain into one installable application, lowering the setup barrier for Windows-based researchers and making each run auditable through structured logs.
Outcome
- One installable application with four tabs: PubChem, IMPPAT, Docking and Logs.
- Released as open source under Apache 2.0.
- Tests are deliberately narrow: focused checks on the retry policy and the Vina log parser.