Skip to content

A Critical Appraisal Plot Visualiser for Risk of Bias Assessments in Systematic Reviews and Meta-Analyses

License

Notifications You must be signed in to change notification settings

aurumz-rgb/Critiplot-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Preview

Python Version Streamlit Demo License DOI

Critiplot is an open-source Python tool and interactive web app for visualizing risk-of-bias (RoB) assessments across multiple evidence synthesis tools:

  • Newcastle-Ottawa Scale (NOS)
  • JBI Critical Appraisal Checklists (Case Report / Case Series)
  • GRADE certainty of evidence
  • ROBIS for systematic reviews

It produces publication-ready traffic-light plots and stacked bar charts, allowing researchers to summarize study quality clearly in systematic reviews and meta-analyses.


πŸ”— Interactive web app: critiplot.vercel.app

Example Result11 Vercel User-Inferface

Example Result22

Example Result33 Streamlit User-Inferface

πŸ“‚ Code & archive (Zenodo DOI): 10.5281/zenodo.17236600


✨ Key Features

  • Converts risk-of-bias ratings into traffic-light plots.
  • Generates publication-quality figures in multiple formats: .png, .pdf, .svg, .eps.
  • Supports NOS, JBI (Case Report / Case Series), GRADE, and ROBIS.
  • Open-source, fully reproducible, usable via Python scripts or Streamlit web app.
  • Adjustable themes, figure sizes, line thickness, and legends.

Data & Template

  • Please strictly follow the Data & Template (available as .csv & excel format) as mentioned in the main Critiplot Web: critiplot.vercel.app

πŸ“₯ Installation

git clone https://github.com/aurumz-rgb/Critiplot-main.git
cd Critiplot
pip install -r requirements.txt

Tested with Python 3.10+, Matplotlib, Seaborn, and Pandas.


⚑ Usage

1️⃣ Python Scripts

Separate scripts are available for each assessment tool:

Script Input Output Notes
nos_plot.py NOS CSV/XLSX PNG/PDF/SVG/EPS Traffic-light & stacked bar plots for NOS studies
jbi_case_report_plot.py JBI Case Report CSV/XLSX PNG/PDF/SVG/EPS For individual case reports
jbi_case_series_plot.py JBI Case Series CSV/XLSX PNG/PDF/SVG/EPS For case series studies
grade_plot.py GRADE CSV/XLSX PNG/PDF/SVG/EPS Summarizes certainty of evidence
robis_plot.py ROBIS CSV/XLSX PNG/PDF/SVG/EPS Summarizes systematic review risk-of-bias

Example Commands

# NOS
python3 nos_plot.py nos_data.csv nos_plot.png
python3 nos_plot.py nos_data.xlsx nos_plot.png

# JBI Case Report
python3 jbi_case_report_plot.py case_report.csv report_plot.png
python3 jbi_case_report_plot.py case_report.xlsx report_plot.png

# JBI Case Series
python3 jbi_case_series_plot.py case_series.csv series_plot.png
python3 jbi_case_series_plot.py case_series.xlsx series_plot.png

# GRADE
python3 grade_plot.py grade_data.csv grade_plot.png
python3 grade_plot.py grade_data.xlsx grade_plot.png

# ROBIS
python3 robis_plot.py robis_data.csv robis_plot.png
python3 robis_plot.py robis_data.xlsx robis_plot.png

Optional [theme] argument for NOS, JBI Case Report / Case Series, and ROBIS: "default", "blue", "gray", "smiley", "smiley_blue"

⚠️ Note: For GRADE, these themes are not available. Instead, GRADE supports: "default", "green", "blue"

Example Usage:

# NOS
python3 nos_plot.py nos_data.csv nos_plot.png smiley_blue

# ROBIS
python3 robis_plot.py robis_data.xlsx robis_plot.png blue

# GRADE (only default/green/blue)
python3 grade_plot.py grade_data.csv grade_plot.png green

If the theme argument is omitted, the default theme will be used.


Sample

Sample Result


2️⃣ Streamlit Web App

streamlit run app.py
  • Upload your CSV/XLSX file to visualize traffic-light plots.
  • Select the risk-of-bias tool: NOS, JBI, GRADE, or ROBIS.
  • Choose your plot theme for a publication-ready figure.
  • Download plots in PNG, PDF, SVG, or EPS formats directly.

The web provides example CSV/XLSX templates for each tool to guide formatting.


πŸ“– Methods Notes

  • RoB assessment: Follows the original scoring/checklists of each tool.
  • Visualisation: Traffic-light and weighted bar plots generated with Matplotlib / Seaborn.
  • Transparency: Raw scores should be included in supplementary tables.
  • Reproducibility: Code and sample datasets archived via Zenodo DOI.
  • Scope: Critiplot is a visualisation tool only; it does not compute risk-of-bias.

πŸ”Ή How Scores Are Converted to Risk-of-Bias (RoB)

NOS

  • Selection domain (0–4 stars): 3–4 β†’ Low, 2 β†’ Moderate, 0–1 β†’ High
  • Comparability domain (0–2 stars): 2 β†’ Low, 1 β†’ Moderate, 0 β†’ High
  • Outcome/Exposure domain (0–3 stars): 3 β†’ Low, 2 β†’ Moderate, 0–1 β†’ High

JBI

  • Each domain is binary: 1 = low risk, 0 = high risk (case reports & series).

GRADE

  • High / Moderate / Low / Very Low certainty mapped to traffic-light colors.

ROBIS

  • Domains evaluated as Low / High / Unclear risk and visualized similarly.

πŸ“„ Citation

If you use Critiplot in your work, please cite:

APA:

Sahu, V. (2025). Critiplot: A Critical Appraisal Plot Visualiser for Risk of Bias in Systematic Reviews and Meta-Analyses (v1.0.3). (https://doi.org/10.5281/zenodo.17236600)

Other formats:

Harvard, MLA, Chicago, IEEE, Vancouver (see full web for options).

Download RIS/BibTeX citation files directly from the web.


πŸ“œ License

Apache 2.0 Β© 2025 Vihaan Sahu


Example / Result

Here’s an example traffic-light plot generated using Critiplot with different themes:

Example Result Example Result11 Example Result22 Example Result33 Example Result44 NOS

Example Result1 Example Result12 Example Result13 GRADE

Example Result2 Example Result21 Example Result23 Example Result29 Example Result26 ROBIS

Example Result3 Example Result34 Example Result36 Example Result37 Example Result38 JBI Case Report

Example Result4 Example Result41 Example Result42 Example Result43 Example Result46 JBI Case Series