GPU-accelerated virtual screening CLI — powered by Kaggle T4 GPUs
Project description
ezscreen ??
GPU-accelerated virtual screening powered by Kaggle T4 GPUs.
ezscreen is a full-featured CLI tool that orchestrates virtual screening campaigns (molecular docking) completely inside the Kaggle environment, leveraging their free T4 GPUs. It handles everything from receptor preparation and ligand filtering to submitting Kaggle kernels, polling for completion, merging shards, and visualising the results.
Prerequisites
- Python 3.11+
- A Kaggle account with an API token
- (Optional) NVIDIA NIM API key for Stage 2 validation with DiffDock-L
Installation
pip install ezscreen
Optional: Install scrubber for enhanced ligand prep
forlilab/scrubber provides tautomer enumeration and pH-driven protonation. It is not on PyPI, so install it separately:
pip install git+https://github.com/forlilab/scrubber.git
Without it, ezscreen falls back to RDKit-only preparation (still fully functional for most use cases).
Setup
First, configure your credentials:
ezscreen auth
(This will ask for your Kaggle kaggle.json credentials and optionally an NVIDIA NIM API key).
Quickstart
To run an interactive virtual screening campaign:
ezscreen run
You will be guided through a series of steps:
- Receptors (PDB ID or local file)
- Chain selection
- Binding site definition
- Ligand selection (from Enamine/ChemSpace subsets or a custom CSV/SDF/SMI file)
- ADMET rules filtering
- Submission to Kaggle.
After the run finishes, view the results interactively:
ezscreen view results/ezs-<RUN_ID>
Features
- End-to-End Orchestration: Automatically chunks massive ligand sets, spawns parallel Kaggle notebooks, runs them on T4 GPUs, and downloads/merges the results.
- Docking Engines: Uses UniDock-Pro by default (if available), with automatic fallback to AutoDock Vina/UniDock.
- ADMET Filtering: Built-in interactive filters (Lipinski, Veber, PAINS, Brenk) to drop problematic compounds before wasting compute time.
- DiffDock-L Validation: Native integration with NVIDIA NIM for high-accuracy re-docking of top hits (
ezscreen validate). - 3D Visualisation: Self-contained py3Dmol HTML viewer (
ezscreen view). - Resilience: Exponential backoff polling, chunking, and state database ensure your runs can survive network drops.
Other Commands
ezscreen status: See all recent runs and their completion percentage (use--liveto auto-refresh).ezscreen admet: Run standalone filtering on any SDF/CSV file.ezscreen clean <run_id>: Delete artifacts from Kaggle to free up space.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezscreen-0.1.2.tar.gz.
File metadata
- Download URL: ezscreen-0.1.2.tar.gz
- Upload date:
- Size: 89.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e241b069d39645c86012d7c58ad0a86de8b7c959d811ae48e8b74a5b4c09a896
|
|
| MD5 |
ab58babb8917bf40bfd5feb39237c02f
|
|
| BLAKE2b-256 |
30d06b8189fbd174a81b0079fc3348dc0665c0d9aef4d9db68a4796742b47625
|
File details
Details for the file ezscreen-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ezscreen-0.1.2-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f931de770ae4c478979ffed1a0deb220b0de4598d9e6891c1267f8c7770efe4
|
|
| MD5 |
bf960c9053bfd6d49d25b9fd0fa2c820
|
|
| BLAKE2b-256 |
f9035a81a660d58046fe434ca2eb402eab864e89a1fdabc016c2085e51bf4c0f
|