by DoctorDean
An agent that takes a dead research repo and turns it into a callable pipeline component.
# Add to your Claude Code skills
git clone https://github.com/DoctorDean/lazaruslazarus is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by DoctorDean. An agent that takes a dead research repo and turns it into a callable pipeline component. It has 51 GitHub stars.
lazarus's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/DoctorDean/lazarus" and add it to your Claude Code skills directory (see the Installation section above).
lazarus is primarily written in Python. It is open-source under DoctorDean on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh lazarus against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
decay-check · Compose pipelines · Give backComputational science has a reproducibility problem. A huge fraction of published methods are open, cited, and unrunnable within a few years: the repo is stale, wired to a stack that no longer resolves, and the real capability is buried in scripts with no API. If you're on a small, budget-constrained ML-for-biology team, you hit this constantly — the exact method you need exists, but getting it to run costs days you don't have, so it gets abandoned.
Lazarus is an agent that revives dead research code, lets you compose the revivals into pipelines, and gives the fixes back to the community.
Each revived from its own dead environment using only general heuristics (no repo-specific notes), each emitting a callable package that passes its own smoke test standalone:
| Repo | Flavor | Turns | Result on 4ZQK_A |
|---|---|---|---|
| MaSIF-site (LPDI-EPFL/masif) | Py3.6 · TF 1.12 · surface + MSMS/APBS (revive-and-carve) | 18 | interaction site, ROC-AUC 0.9137 |
| ScanNet (jertubiana/ScanNet) | Py3.6 · TF 1.14 · Keras (revive-and-carve) | 19 | binding site, ROC-AUC 0.9233 |
| dMaSIF (FreyrS/dMaSIF) | Py3.6 · torch cu111 · PyKeOps · GPU, built from scratch | 51 | binding site, ROC-AUC 0.8390 |
| fpocket (2010 SourceForge) | 2010 C, built on modern GCC — a different flavor entirely | 32 | 3 druggable pockets |
The dMaSIF run built a whole CUDA/KeOps GPU environment from a bare image and patched a
source bug to unlock GPU execution the original forced to CPU. The fpocket run fought a
SourceForge download interstitial, a modern-ld link-order break, and a 15-year-old
overlapping-sprintf undefined-behavior bug that modern glibc exposed. Three genuinely
different resurrection flavors — TF/CUDA/C.
Three-way head-to-head (the three site predictors, scored by one script on identical
PD-L1 residue labels): ScanNet 0.915 · dMaSIF 0.854 · MaSIF 0.823. All localize the
interface (a 13-residue consensus core); the two surface methods (MaSIF & dMaSIF)
agree most (Spearman ρ 0.70). Details: analysis/RESULTS.md.
You don't hand Lazarus a goal; you hand it a link. A web-enabled Scout reads the repo and paper (and only those — never your notes) and drafts the whole plan: the capability to revive, a base image, and a falsifiable sanity check. Then it pauses for your OK before spending a turn.
lazarus resurrect https://github.com/jertubiana/ScanNet
Run cold against ScanNet with no hints, the Scout reconstructed — from the URL alone — a plan matching the one a human expert hand-wrote after days of work:
| Human, after days of setup | Scout, from the URL alone | |
|---|---|---|
| Capability | per-residue binding-site probabilities | ✅ same |
| Test input | 4ZQK chain A (PD-L1) | ✅ same |
| Sanity check | ROC-AUC ≥ 0.70 vs the 5 Å interface | ✅ identical |
| Base image | (supplied by hand) | ✅ found the real jertubiana/scannet on Docker Hub |
| Known traps | issues #14 & #15 (hand-noted) | ✅ surfaced both unaided — the two we later fixed upstream |
That's the democratization step: the expert judgment of what "revived" even means becomes something you get from pasting a link.
Then we pointed it at a repo we'd never touched, in a different field entirely. From just
github.com/davek44/Basset — a 2016 Lua Torch7 genomics CNN (chromatin accessibility from DNA
sequence) — the Scout planned it and the agent revived it end to end. Along the way it cleared a
new class of decay (the README's 2016 Docker image ships a manifest modern Docker refuses to pull
— converted with skopeo), and caught a silent scientific-correctness bug: the naive run scored
mean AUROC 0.675, but the agent traced it to hg19's soft-masked lowercase bases falling through
Basset's uppercase-only one-hot encoder, patched it, and reproduced the paper — mean AUROC 0.8944
vs 0.895 across all 164 cell types. A fifth brick, a new domain (genomics, not protein surfaces),
a fourth dead framework — from a link. Details: docs/CHALLENGES.md §5.
And the one that shows the integrity of the sanity check: from github.com/gcorso/DiffDock
— the ICLR-2023 diffusion molecular-docking model, ~2 years stale — the Scout revived it on
GPU. Its shipped example is a hard case (top-1 ~5 Å, under DiffDock's own < 2 Å bar), so rather
than fake a pass, Lazarus docked 8 complexes from DiffDock's own test set, reproduced its
~40 % top-1 success rate, and found a rock-solid hero case (6MOA: RMSD 0.35 Å — the predicted
pose sitting on the crystal ligand). It refused to ship a green checkmark it hadn't earned. Details:
docs/CHALLENGES.md §6.
examples/pipelines/binder_triage.yaml assembles methods that were each individually
unrunnable a week ago into one binder-triage pipeline:
structure ─▶ ScanNet ─┐
─▶ dMaSIF ──┼─▶ consensus ─▶ interface residues that also line a druggable pocket
─▶ fpocket ─┘
lazarus run examples/pipelines/binder_triage.yaml \
--input structure=4ZQK.pdb \
--registry examples --registry components \
--docker-host ssh://you@your-x86-gpu-box
Run live on PD-L1, it concluded: 27 interface residues (115, 123, 56, 121, 113…), but
0 druggable pockets → "the interface is clearly localized but not a druggable small-
molecule pocket — a flat protein-protein interface, i.e. an antibody/biologic target."
That's textbook immuno-oncology (PD-1/PD-L1 is an antibody target), reproduced from dead
code. Sample output: examples/pipelines/sample_output_4ZQK/.
For the genuinely-abandoned repos, Lazarus prepares maintainer-ready PRs — the real fix plus a CI smoke test so it can't silently rot again:
giveback/masif/library_folder=''
made to auto-detect the repo root; verified. → giveback/scannet/(dMaSIF is skipped — CC BY-NC-ND, no-derivatives; fpocket's upstream is alive.)
A smoke test proves a method runs; a benchmark proves it's *the method