The reproducibility crisis is real. Only ~40% of psychology studies replicate successfully. Most researchers never check the numbers. ReproHub changes that β upload a paper and its dataset, and get a full reproducibility verdict in seconds.
ReproHub is an automated research reproducibility verification platform. It takes a research paper (PDF) and its underlying dataset (CSV), re-runs every statistical test from scratch, and tells you exactly how well the reported results hold up against the raw data.
No manual checking. No guesswork. Just evidence.
| Feature | Description | |
|---|---|---|
| π | Smart PDF Parsing | Upload any research paper β ReproHub extracts every statistical claim automatically |
| π€ | Regex-Based Extraction | Detects APA-style results: t-tests, ANOVA, correlations, regressions, and more |
| π¬ | Real Statistical Re-runs | Actually executes the tests on your data β no simulation, no shortcuts |
| π | Composite Scoring | Multi-factor verdict weighing p-values, effect sizes, and test statistics together |
| πΊοΈ | Column Mapping UI | Fuzzy-matches paper prose to dataset columns; fully editable before verification |
| π‘ | Remediation Guidance | Pinpoints the weakest component when a claim fails β not just "failed" |
| π | PDF Report Export | Download a professional reproducibility report for sharing or publishing |
| π | No API Keys Required | Fully open-source, runs locally, no external services needed |
# Clone the repository
git clone https://github.com/Junaid-Ahmed-Rupok/ReproHub.git
cd ReproHub
# Install dependencies
pip install -r requirements.txt
# Launch the app
streamlit run app/main.pyπ Live Demo: reprohub.streamlit.app
| Test | Effect Size Reported |
|---|---|
| Independent t-test | Cohen's d |
| Paired t-test | Cohen's d |
| One-way ANOVA | Eta-squared (Ξ·Β²) |
| Pearson Correlation | r |
| Linear Regression | RΒ², Adj-RΒ², per-coefficient p-values |
| Logistic Regression | McFadden pseudo-RΒ², LR chi-square |
| Test | Effect Size Reported |
|---|---|
| Mann-Whitney U | Rank-biserial correlation |
| Kruskal-Wallis H | Eta-squared approximation |
| Wilcoxon Signed-Rank | Rank-biserial correlation |
| Spearman Correlation | Ο (rho) |
| Chi-square | CramΓ©r's V |
ReproHub uses a composite scoring model β not just p-value comparison.
Composite Score = (p-value agreement Γ 50%)
+ (effect size agreement Γ 30%)
+ (test statistic agreement Γ 20%)
Each component is scored 0β1 using exponential decay, so small differences are penalised gradually and large differences are penalised heavily.
| Score | Status | Meaning |
|---|---|---|
| β₯ 0.80 | β Reproduced | Results align across all dimensions |
| β₯ 0.55 | Close but meaningful discrepancies exist | |
| < 0.55 | β Not Reproduced | Results do not hold up against the data |
| β | β Could Not Verify | Missing columns, unsupported test, or insufficient data |
Why composite scoring? A claim with matching p-values but wildly different effect sizes (e.g. Cohen's d = 0.2 vs 0.8) should not be called "reproduced." The old p-value-only approach missed this. ReproHub doesn't.
βββββββββββββββ ββββββββββββββββ βββββββββββββββββββ ββββββββββββββββ
β Upload PDF ββββββΆβ Extract ββββββΆβ Map Columns ββββββΆβ Re-run Tests β
β + CSV Data β β Claims β β (Fuzzy Match + β β (SciPy / β
βββββββββββββββ β (Regex/APA) β β Manual Review) β β statsmodels)β
ββββββββββββββββ βββββββββββββββββββ ββββββββ¬ββββββββ
β
ββββββββββββββββ ββββββββββββββββββββ β
β Export PDF βββββββ Composite Score βββββββββββββ
β Report β β + Explanation β
ββββββββββββββββ ββββββββββββββββββββ
Step 1 β Upload: Provide a PDF paper and its CSV dataset.
Step 2 β Extract: ReproHub scans for APA-style statistical notation and pulls out every claim automatically.
Step 3 β Review: Check the auto-mapped column assignments, fix anything the fuzzy matcher got wrong, and confirm each claim.
Step 4 β Verify: ReproHub re-runs the actual statistical tests and scores each claim using composite scoring.
Step 5 β Report: Download a detailed reproducibility report with per-claim breakdowns, scores, and remediation advice.
ReproHub/
βββ app/ # Streamlit web application
β βββ pages/
β β βββ 1_upload.py # File upload + claim extraction
β β βββ 2_review.py # Column mapping + claim confirmation
β β βββ 3_dashboard.py # Results visualisation
β β βββ 4_report.py # PDF report generation
β β βββ 5_about.py # About page
β βββ config.py # App configuration
β βββ main.py # Entry point + navigation
β
βββ core/ # Core logic
β βββ engine.py # Statistical test engine (11 tests)
β βββ extractor.py # Regex-based claim extraction
β βββ comparator.py # Composite reproducibility scoring
β βββ matcher.py # Fuzzy column matching
β βββ validator.py # Claim validation
β βββ remediation.py # Remediation guidance
β βββ schema.py # Shared data schemas
β
βββ models/ # Pydantic data models
β βββ claim.py
β βββ result.py # Result model with composite scoring
β βββ report.py
β βββ validation.py
β
βββ utils/ # Utility functions
β βββ pdf_parser.py # PDF text extraction
β βββ fuzzy_matcher.py # FuzzyWuzzy wrapper
β βββ file_handlers.py
β βββ report_generator.py # PDF report generation
β βββ visualizations.py
β βββ helpers.py
β
βββ tests/ # Unit tests
βββ data/ # Raw, processed, benchmark data
βββ static/ # CSS, images, templates
βββ docs/ # Documentation
βββ requirements.txt
βββ README.md
| Layer | Technology |
|---|---|
| Framework | Streamlit |
| Language | Python 3.9+ |
| Statistics | SciPy, statsmodels |
| ML / Encoding | scikit-learn |
| Visualization | Plotly, Matplotlib, Seaborn |
| PDF Processing | PyPDF, pdfplumber |
| Report Generation | ReportLab, Jinja2 |
| Fuzzy Matching | FuzzyWuzzy + python-Levenshtein |
| Data Models | Pydantic v2 |
| Deployment | Streamlit Cloud |
pandas >= 2.0.0
numpy >= 1.24.0
scipy >= 1.10.0
statsmodels >= 0.14.0
scikit-learn >= 1.3.0
streamlit >= 1.29.0
plotly >= 5.17.0
matplotlib >= 3.7.0
pypdf >= 3.0.0
pdfplumber >= 0.10.0
reportlab >= 4.0.0
jinja2 >= 3.1.0
pydantic >= 2.0.0
fuzzywuzzy >= 0.18.0
python-Levenshtein >= 0.21.0
Contributions are welcome. Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes with clear, documented code
- Write or update tests where applicable
- Commit with a descriptive message (
git commit -m 'feat: add X') - Push to your branch (
git push origin feature/your-feature) - Open a Pull Request
Please open an issue first for major changes so we can discuss the approach.
- LLM-powered claim extraction (prose-level, not just APA notation)
- LLM-powered column mapping (semantic, not just fuzzy string matching)
- Claim deduplication (same result across abstract + results section)
- Support for Excel, SPSS, Stata, and
.docxinput formats - Batch mode (verify multiple papers at once)
- Unit test coverage for all core modules
Data Scientist & Machine Learning Engineer
Transforming complex data into strategic decisions through rigorous statistical modeling and production-ready machine learning systems.
Specializations: Statistical ML Β· Causal Inference Β· Trustworthy AI Β· Fairness-Aware ML Β· RAG Systems
Selected Research:
- π Ahmed, S.J. et al. (2026). Machine Learning for Crime Classification: A Fairness-Aware Approach to Class Imbalance. Journal of Machine Learning and Applications, 2(1), 9β17. DOI: 10.61577/jmla.2026.100002
- π Ahmed, S.J. et al. (2026). CF-EGAT: A Causal Fairness-Aware Equity Graph Attention Network for Country-Level Environmental Livability Classification. SPECTRA 2026. π 1st Best Paper Award
- π Ahmed, S.J. (2025). Multi-Dimensional Statistical Similarity for Governance Classification: Beyond Arbitrary Thresholds. APMEE 2025. π Best Research Paper Award
Other Deployed Projects:
- π¬ ReproHub β Automated research reproducibility platform with composite scoring across 11 statistical tests
- π StatsPro β AI-powered statistical analysis platform with automated CSV-to-report workflows
Honors: π 1st Best Paper β SPECTRA 2026 Β Β·Β π Best Research Paper β APMEE 2025 Β Β·Β ποΈ Esteemed Alumni Award β YLRL RUET 2024 Β Β·Β β Perfect GPA 5.00/5.00 β SSC & HSC Β Β·Β π National Merit Scholarship β 2009 & 2013
This project is licensed under the MIT License β see LICENSE for details.
Built in response to the reproducibility crisis in scientific research. Powered entirely by open-source Python libraries.
Built with Streamlit Β· LangChain Β· Groq Β· FAISS Β· sentence-transformers
Made with β€οΈ for open science and reproducible research