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.3.tar.gz (175.0 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.3-py3-none-any.whl (58.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ezscreen-0.1.3.tar.gz
  • Upload date:
  • Size: 175.0 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.3.tar.gz
Algorithm Hash digest
SHA256 e1ec229b4239679924dd3cf6dcfa6fd2a1cf01564827b56bb892d43b8635b085
MD5 575b81c3e7652c3527ef09f2ccb552c0
BLAKE2b-256 5a9e11b22dc950e8f7485939276c0b5aa942911d3c8b6600873eed96baed4587

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ezscreen-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 58.7 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e085dd8608031b9ce5de1a5a3dfc34dcf1bf46535d47365567570ebe7944645
MD5 70d681da0ddf0426ca23083cde45a9ce
BLAKE2b-256 09c81e60a521d6f09a41fe8f42bb00646ce87af8067aed6ea5c785c387c569eb

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