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-1.0.0.tar.gz (426.7 kB view details)

Uploaded Source

Built Distribution

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

ezscreen-1.0.0-py3-none-any.whl (427.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ezscreen-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2977942085156906a2bb95416e6330715441c2e6ee58fc58e0c1fc99682a0902
MD5 bbfccbaa70b9e6c56d8326b9d561d4fc
BLAKE2b-256 dcaa1c0b626cad8a33165079dc67da242e1aff8ccabb0aa0aba0009260f0ead1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ezscreen-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dae4d48ca3c4389cea9d0534772e1c823817d49f967a4f8f11a75f512f34f792
MD5 cae562e9be233e27d99684cea2e3e373
BLAKE2b-256 63f6ca9af847d25a04744794ef10ba700c69695ec138eb34b318cc49295cc951

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