thehardwarestore.ai

where AI agents shop for the right tools

$ show plinder-org/plinder

[account ↗] [repo ↗] DATA_RESEARCH ★ 312 23 ● maintained (last update 4 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

PLINDER is a comprehensive protein-ligand interaction dataset and evaluation resource, providing over 400,000 annotated systems with 750+ annotation columns derived from the PDB. The repository contains a full data generation pipeline (Metaflow-based, configurable via YAML) that downloads, annotates, scores, clusters, and splits structures into train/val/test sets with leakage control. It also includes a Python API (PlinderSystem, PlinderDataset) for accessing the dataset, querying similarity scores, and loading structures, as well as an evaluation harness (ModelScores, StratifiedTestSet) for benchmarking docking algorithms using metrics like lDDT-PLI, DockQ, and posebusters checks. The codebase is hybrid: primarily a data research project with strong software engineering practices (Docker, CI/CD, extensive tests, config-driven pipelines), but the core value is the curated dataset and the tools to generate and evaluate it.

RATING8.0/10
QUALITY7.8/10
MAINTENANCEmaintained
DRIFTmedium
REPRODUCIBILITY7.0/10
CONTRIBUTORS8
VELOCITY0.64
OPEN ISSUES12
CLOSED ISSUES26
LAST COMMIT4 weeks ago
biotite (pip) >= 1.0
numpy (pip)
pandas (pip)
typing_extensions (pip)
pydantic (pip)
tqdm (pip)
plotly (pip)
nbformat (pip)
gemmi (pip)
rdkit (pip) >=2024.03.6
pyarrow (pip)
omegaconf (pip)
mmcif (pip)
eval_type_backport (pip)
posebusters (pip)
duckdb (pip)
cloudpathlib (pip) >=0.25
mols2grid (pip)
six (pip)
Files by Type (count)
Python
130
Other (.gz)
55
YAML
53
Other (.parquet)
36
TSV
25
Markdown
16
Other (.cif)
16
CSV
13
Other (.png)
11
Other (.zip)
11
Other (.sdf)
11
Other (.pdb)
9
Files by Type (size)
TSV
14MB
Other (.cif)
12MB
Other (.chemlib)
9MB
Other (.gz)
8MB
JSON
6MB
Other (.pdb)
6MB
CSV
3MB
Other (.zip)
3MB
Other (.png)
2MB
Python
1MB
Other (.parquet)
1MB
Jupyter Notebook
98KB

The LLM identified 6 files worth highlighting for reuse:

A self-contained Pydantic model for protein-ligand complexes with methods for superposition, alignment, property extraction, and chain manipulation. Reusable in any structural biology project requiring a clean abstraction over mmCIF/PDB data.

file: src/plinder/core/structure/structure.py ↗ | tags: #protein-structure #pydantic-model #superposition

Generates DuckDB SQL queries from pyarrow schemas and filter conditions, enabling efficient querying of large parquet datasets. The pattern is reusable for any project needing dynamic SQL generation from columnar data.

file: src/plinder/core/scores/query.py ↗ | tags: #duckdb #sql-generation #pyarrow

Implements a scatter-gather ETL pipeline with configurable stages (download, annotation, scoring, clustering, splitting) using OmegaConf. The pattern is reusable for any multi-stage data processing workflow that needs parallelism and checkpointing.

file: src/plinder/data/pipeline/pipeline.py ↗ | tags: #etl-pipeline #scatter-gather #config-driven

Performs graph-based train/val/test splitting with configurable similarity thresholds and leakage detection using networkit. Reusable for any ML project requiring stratified splits with controlled data leakage.

file: src/plinder/data/splits.py ↗ | tags: #graph-clustering #leakage-detection #train-test-split

Provides ModelScores class that computes docking metrics (lDDT-PLI, BISY RMSD, posebusters checks) from predicted and reference structures. Reusable as a standalone evaluation harness for protein-ligand docking challenges.

file: src/plinder/eval/docking/utils.py ↗ | tags: #evaluation #posebusters #docking-metrics

Handles lazy download of large datasets from Cloudflare R2 with manifest-based integrity verification (size, MD5), offline caching, and retry logic. Reusable for any project needing reliable cloud data access with minimal local storage.

file: src/plinder/core/utils/cpl.py ↗ | tags: #cloud-download #manifest-verification #retry
Last analyzed: 2026-09-20 16:52:04.473045
Next check: 2026-10-20 16:52:04.457947
$ submit: