NUDGE
NUDGE — an "honesty engine" for AI-driven science.
Core trick
Reports which parameters a differentiable model can identify from the data and withholds numbers for unidentifiable ones, then designs a discriminating trial.
Tags
Description
NUDGE — an "honesty engine" for AI-driven science. Point it at a
differentiable model of a biological system; it tells you which parameters you
can actually trust, and designs the experiment that resolves the ones you
can't.
Why we built it: AI can now fit any model and hand you confident numbers —
including confident wrong ones. In a drug trial that's dangerous: when amyloid
plaque falls, you can't tell if the drug did it or the body did. We wanted a
tool that reports what it measured, not what it guessed.
What we found: a capable AI agent can already derive this math by hand — so
the real value isn't capability, it's trust: NUDGE gives audited,
reproducible, guarded answers. It refuses to over-abstain (won't throw out a
sloppy-but-predictive model), refuses to over-claim (won't fake a number on an
unidentifiable design), designs the trial that separates a drug's effect from
natural clearance (~259× sharper, same scans), and every figure ships with
the code to reproduce it byte-for-byte.
README excerpt
<p align="center"> <img src="docs/assets/nudge-logo.png" width="480" alt="NUDGE"> </p> <p align="center"> <a href="https://pypi.org/project/nudge-bio/"><img src="https://img.shields.io/badge/PyPI-v0.4.2-3775A9?logo=pypi&logoColor=white" alt="PyPI version"></a> <a href="https://pypi.org/project/nudge-bio/"><img src="https://img.shields.io/pypi/pyversions/nudge-bio" alt="Python versions"></a> <a href="https://github.com/NicholasEhsanRoy/NUDGE/blob/main/LICENSE"><img src="https://img.shields.io/github/license/NicholasEhsanRoy/NUDGE" alt="License: MIT"></a> <a href="https://github.com/NicholasEhsanRoy/NUDGE/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/NicholasEhsanRoy/NUDGE/ci.yml?branch=main&label=CI" alt="CI status"></a> </p> <p align="center"> <a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.10+-3776AB?logo=python&logoColor=white" alt="Python"></a> <a href="https://modelcontextprotocol.io/"><img src="https://img.shields.io/badge/MCP-server-1f6feb?logo=modelcontextprotocol&logoColor=white" alt="MCP server"></a> <a href="https://claude.ai/"><img src="https://img.shields.io/badge/Built%20with-Claude%3A%20Life%20Sciences-D97757?logo=claude&logoColor=white" alt="Built with Claude: Life Sciences"></a> </p> <p align="center"> <b>Mechanism attribution for perturbation screens — threshold vs gain vs ceiling, and it abstains when it can't tell.</b> </p> --- ## What is NUDGE **N**ode/edg