Author: Dr. Aneesh Joseph
Status: Production Ready
License: MIT
PRISM is a research and educational tool. It is NOT intended for:
- Medical diagnosis or treatment decisions
- Legal advice or proceedings
- Financial investment decisions
- Regulatory approval submissions
PRISM provides exploratory analysis to aid human decision-making. Always consult qualified professionals for medical, legal, or financial decisions. The author assumes no liability for decisions made based on PRISM outputs.
PRISM is a Bayesian framework for quantitative hypothesis evaluation that integrates multiple statistical methods to convert heterogeneous scientific evidence into calibrated probability estimates.
"Kill the weak hypotheses so the truth may survive."
Key Features:
- Bayesian updating with reference class priors (with uncertainty quantification)
- Hierarchical correlation correction (addresses the "deadly product" problem)
- REML meta-analysis with Hartung-Knapp adjustment
- P-curve publication bias detection
- Optimizer's curse correction for multiple comparisons
- Uncertainty decomposition (statistical + prior + model)
- Kalman filtering for temporal evidence streams
# Clone the repository
git clone https://github.com/Dr-AneeshJoseph/Prism.git
cd Prism
# Install dependencies
pip install -r requirements.txt
# Run example
python examples/example_osteoarthritis.py- Python 3.8+
- NumPy
- SciPy
from prism_v2_2 import Hypothesis, Evidence, Domain
# Create hypothesis with reference class prior
h = Hypothesis(
"Drug X reduces symptoms by >20%",
Domain.MEDICAL,
ref_class="phase2_clinical" # 15% base rate from FDA data
)
# Add evidence
h.add_evidence(Evidence(
id="rct_2024",
content="RCT shows 25% reduction",
source="NEJM 2024",
domain=Domain.MEDICAL,
study_design="rct",
sample_size=200,
supports=True,
p_value=0.01,
effect_size=-0.45,
effect_var=0.0144,
authors=["Smith"]
))
# Analyze
results = h.analyze()
print(f"Posterior: {results['posterior_bayes']:.1%}")
print(f"95% CI: [{results['ci_bayes'][0]:.1%}, {results['ci_bayes'][1]:.1%}]")PRISM includes a Claude skill that enables AI-assisted hypothesis analysis with automatic evidence extraction from the web.
- Download
Claude/SKILL.mdfrom this repo - In a Claude chat, upload the file
- Ask Claude: "Install this as a user skill for PRISM"
- Done! Future Claude sessions will know how to use PRISM
Simply ask:
"Use PRISM to find the best treatment for [condition]"
Claude will:
- Search for relevant studies
- Extract evidence automatically
- Run PRISM analysis
- Present ranked results with uncertainty
See Claude/README_CLAUDE.md for detailed instructions.
Mobile users: See Claude/MOBILE_QUICK_START.md for quick setup.
Prism/
├── prism_v2_2.py # Core PRISM engine
├── requirements.txt # Python dependencies
├── README.md # This file
├── THEORY_OF_OPERATION.md # Scientific methodology
│
├── Claude/ # Claude AI integration
│ ├── SKILL.md # Skill file for Claude
│ ├── prism_session.py # Session management
│ ├── README_CLAUDE.md # Claude usage guide
│ └── MOBILE_QUICK_START.md # Mobile quick start
│
├── examples/ # Example analyses
│ └── example_osteoarthritis.py
│
└── Versions/ # Previous versions
└── prism_v1.py
Instead of point estimates, priors are now Beta distributions with credible intervals:
# Phase 2 clinical: 15% [8%, 24%] based on FDA 2000-2020 data
h = Hypothesis("Drug efficacy", Domain.MEDICAL, ref_class="phase2_clinical")Addresses the "deadly product" problem where naive LR multiplication gives overconfident results:
# Automatically detects correlated evidence (same authors, similar methods)
# Applies design effect adjustment: LR^(1/√DEFF)When comparing multiple hypotheses, the "winner" is shrunk to account for selection bias:
# Raw: 85% → Corrected (n=10 hypotheses): 71%TF-IDF + author overlap + source overlap to detect redundant evidence.
| Reference Class | Prior | 95% CI | Source |
|---|---|---|---|
phase2_clinical |
15% | [8%, 24%] | FDA 2000-2020 |
phase3_clinical |
35% | [26%, 45%] | FDA 2000-2020 |
drug_approval |
10% | [5%, 18%] | FDA 2000-2020 |
startup_5yr |
10% | [5%, 18%] | CB Insights |
replication |
40% | [31%, 50%] | OSF 2015 |
general |
50% | [32%, 68%] | Uninformative |
# Compare treatments - see examples/example_osteoarthritis.py
python examples/example_osteoarthritis.pyYou: "Use PRISM to compare treatments for knee osteoarthritis"
Claude: [Searches literature, extracts evidence, runs analysis]
Result:
🏆 Combined weight loss + exercise: 84.2%
🥈 Exercise alone: 78.5%
🥉 Weight loss alone: 76.1%
...
If you use PRISM in your research, please cite:
@software{joseph2025prism,
author = {Joseph, Aneesh},
title = {PRISM: Protocol for Rigorous Investigation of Scientific Mechanisms},
year = {2025},
version = {2.2},
url = {https://github.com/Dr-AneeshJoseph/Prism}
}Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
See Contributing.md for detailed guidelines.
- Reference class priors with Beta distribution uncertainty
- Hierarchical correlation correction
- Optimizer's curse adjustment
- P-curve publication bias detection
- Kalman filtering for temporal evidence
- Claude AI integration with skills
- Initial public release
- Basic 5-layer architecture
- Safety limits and kill switches
MIT License - see LICENSE for details.
Dr. Aneesh Joseph
GitHub: @Dr-AneeshJoseph
Claude AI integration developed in collaboration with Anthropic's Claude.
- Exploratory analysis and hypothesis generation
- Research prioritization and resource allocation
- Structured evidence synthesis
- Treatment comparison and decision support
- Teaching Bayesian reasoning
- Regulatory approval decisions (use established methods)
- Legal proceedings (requires validated forensic tools)
- Fully automated decision-making
- Single-study evaluation
- Medical diagnosis without professional oversight