Skip to main content

GPU-accelerated virtual screening CLI — powered by Kaggle GPUs

Project description

ezscreen

GPU-accelerated virtual screening powered by Kaggle GPUs.

ezscreen is a CLI tool that runs molecular docking campaigns on Kaggle's free GPUs. It handles receptor preparation, ligand prep, ADMET filtering, Kaggle kernel submission, result download, and hit visualisation — all from a single interactive command.

Prerequisites

  • Python 3.11+
  • A Kaggle account with GPU quota and an API token (kaggle.json)
  • (Optional) NVIDIA NIM API key for Stage 2 validation with DiffDock-L

Installation

pip install ezscreen

Optional: scrubber for enhanced ligand prep

forlilab/scrubber provides tautomer enumeration and pH-driven protonation. Not on PyPI — install separately:

pip install git+https://github.com/forlilab/scrubber.git

Without it, ezscreen falls back to RDKit-only preparation (still fully functional).

Setup

ezscreen auth

Prompts for your Kaggle kaggle.json path and optionally an NVIDIA NIM API key.

Quickstart

ezscreen run

Interactive wizard guides you through:

  1. Receptor — PDB ID (auto-downloaded) or local .pdb file
  2. Chain selection
  3. Binding site — co-crystal ligand, residue list, P2Rank prediction, or blind
  4. Ligand file — .smi, .smiles, or .sdf
  5. ADMET filtering (Lipinski, Veber, PAINS, Brenk)
  6. Search depth — Fast / Balanced / Thorough
  7. Submit to Kaggle

When the run completes, results are downloaded automatically and displayed:

ezscreen view ezs-<run_id>

Commands

Command Description
ezscreen run Interactive screening wizard
ezscreen auth Configure Kaggle and NIM credentials
ezscreen view <run_id> Show results table + open 3D viewer
ezscreen download <run_id> Re-download results for a completed run
ezscreen status List all runs with status (--live to auto-refresh)
ezscreen resume <run_id> Resume an interrupted run
ezscreen admet <file> Standalone ADMET filtering on any SDF/SMI file
ezscreen validate <receptor> <hits> Stage 2 re-docking via NVIDIA NIM DiffDock-L
ezscreen clean <run_id> Delete Kaggle dataset and kernel artifacts

Features

  • UniDock GPU docking — builds UniDock from source on Kaggle to match the installed CUDA toolkit, avoiding pre-built binary ABI mismatches
  • Compound identity — results include the original name and SMILES from your input file alongside docking scores
  • Artifact filtering — unphysical scores (< −15 kcal/mol) from GPU batching edge cases are automatically removed
  • Resilient download — retries with exponential backoff; recovers scores locally from docked PDBQTs if the Kaggle download fails mid-transfer
  • ADMET filtering — Lipinski, Veber, PAINS, Brenk rules applied locally before submitting to reduce wasted compute
  • 3D viewer — self-contained py3Dmol HTML viewer for top poses
  • DiffDock-L validation — native NVIDIA NIM integration for high-accuracy re-docking of top hits

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezscreen-0.1.0.tar.gz (58.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezscreen-0.1.0-py3-none-any.whl (54.8 kB view details)

Uploaded Python 3

File details

Details for the file ezscreen-0.1.0.tar.gz.

File metadata

  • Download URL: ezscreen-0.1.0.tar.gz
  • Upload date:
  • Size: 58.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for ezscreen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fa5c5ba8e0aa92a1b8af9f64e3e38951d5807178e9cbb7232f91f9ceaf1ac0e7
MD5 565571a1126cbbf0e9bae865b5ac87be
BLAKE2b-256 4b7ab2a486620065c6c259900485820f05d904a3951a29bd7921f7a9ff69ce8a

See more details on using hashes here.

File details

Details for the file ezscreen-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ezscreen-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 54.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for ezscreen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95bb59e785b46de6a0ca3bfe2161334c86a6c696b66587b3373a7169ebf8ba92
MD5 19288aa59c9419bb97d4bca9ba13f39d
BLAKE2b-256 b1104862ca868be34b40fb04a4f8680e8ed301b5b5165a788ad9b0c615a91a0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page