Installable Streamlit GUI for R-backed Python meta-analysis runners.
Project description
Meta-Analysis Streamlit App
An installable Streamlit GUI for the R-backed Python meta-analysis runners in
/Volumes/Firecuda-4TB/R-code_to-python.
Author: Anuraj Sudhakaran.
The original source directory is treated as read-only. The runner files were
copied into this package under meta_analysis_streamlit/runners/ so the app can
be installed and launched without editing the source folder.
What It Runs
- Workbook-level auto routing through the original
main.py - Binary pairwise meta-analysis
- Continuous pairwise meta-analysis
- Single-arm proportion and mean meta-analysis
- Diagnostic accuracy meta-analysis
- Frequentist and Bayesian network meta-analysis
- LM Studio model detection, with manual study-characteristic controls when LM Studio is not reachable
- Ollama local model support at
http://localhost:11434/v1, with hardware-aware model suggestions and CLI setup guidance when LM Studio is not available
Install
From PyPI after the first release:
python3 -m pip install ams-meta_analysis
meta-analysis-install-r --dry-run
meta-analysis-install-r
meta-analysis-doctor
ams-meta_analysis
If R is installed but Rscript is not on PATH, the app and command-line
runner automatically try common R install locations and add the discovered
Rscript folder to the current process and analysis runs. To add it permanently
in your shell too, run the command shown by meta-analysis-doctor, for example:
export PATH="/Library/Frameworks/R.framework/Resources/bin:$PATH"
From this folder:
python3 -m pip install -e ".[dev]"
For a normal local wheel install:
python3 -m pip install .
Launch the GUI:
ams-meta_analysis
Examples
Binary adverse events. Upload a sheet with study labels plus treatment and control event/total columns. Choose Binary pairwise or let the app assess the sheet, then run to generate summaries, forest plots, and logs.
Multi-outcome workbook. Upload an Excel workbook with sheets such as
Adverse Events, Clinical Success, Reintervention, and Length of Stay.
Choose Select all sheets with Auto route workbook so the app can route
each outcome to the appropriate runner and collect outputs.
Subgroups and meta-regression. Use the GUI to select columns such as etiology, control type, study design, publication year, or sample size. Supported pairwise runners pass those choices into subgroup and meta-regression analyses.
Local model assistance. If LM Studio is unavailable, select Ollama in the sidebar. The app suggests a local model based on available hardware and shows the CLI commands to install Ollama and pull the model.
Updates
The Streamlit sidebar includes a Package updates panel. It checks PyPI for a
newer ams-meta_analysis release and can run the upgrade command from inside
the app:
python -m pip install --upgrade ams-meta_analysis
After an in-app update, restart Streamlit so the running process loads the new package files.
Local LLM Options
The app first checks LM Studio. If LM Studio is not reachable, it can use Ollama as a local OpenAI-compatible provider. The sidebar estimates whether the machine has GPU support and suggests one model:
- CPU-only or lower-memory systems:
llama3.2:3b - GPU systems with typical memory:
llama3.1:8b - Higher-memory GPU systems:
qwen3:14b
Install and start Ollama from the command line, then pull the suggested model:
# macOS with Homebrew
brew install --cask ollama
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows
winget install Ollama.Ollama
ollama serve
ollama pull llama3.2:3b
Run the original workbook orchestrator from the installed package:
meta-analysis-runner "/path/to/workbook.xlsx" --yes
Check the local environment:
meta-analysis-doctor
Install or repair the external R runtime after pip install:
meta-analysis-install-r --dry-run
meta-analysis-install-r
If R is already installed outside PATH, meta-analysis-install-r uses the
discovered absolute Rscript path automatically when installing R packages.
When R is missing, the Streamlit sidebar also shows an Install R Runtime
button that runs the same setup helper from inside the app.
External Requirements
Python dependencies are installed by pip, but the statistical analyses still
need R and the R packages used by the original generated scripts. The package
does not silently install system software during pip install; instead it
installs a helper command that shows and runs the platform-specific R setup:
meta-analysis-install-r --dry-run
meta-analysis-install-r
If you prefer to manage R yourself, install R, make sure Rscript is on PATH,
then install the common R packages:
install.packages(c(
"meta",
"metafor",
"readxl",
"dplyr",
"ggplot2",
"netmeta",
"gemtc",
"rjags",
"RTSA"
))
Bayesian network meta-analysis also needs JAGS installed on the system.
Trial sequential analysis can use the external TSA engine expected by the original code. If needed, point to it with:
export TSA_ANALYSIS_PY="/path/to/tsa_analysis.py"
LLM Provider Behavior
By default, the app checks http://localhost:1234/v1 for LM Studio. If LM
Studio is not available, it can use OpenAI-compatible hosted APIs instead.
Supported GUI options:
- LM Studio:
http://localhost:1234/v1 - OpenAI:
https://api.openai.com/v1 - Gemini through Google's OpenAI-compatible endpoint:
https://generativelanguage.googleapis.com/v1beta/openai - Custom OpenAI-compatible endpoint
- Manual/no LLM
The app auto-selects the first available option in this order: LM Studio,
OPENAI_API_KEY, GEMINI_API_KEY or GOOGLE_API_KEY,
META_ANALYSIS_LLM_API_KEY, then manual mode.
For command-line runs, hosted APIs can also be used with the original
--lmstudio-url option because the packaged runners now support
OpenAI-compatible authentication headers:
export META_ANALYSIS_LLM_API_KEY="$OPENAI_API_KEY"
meta-analysis-runner "/path/to/workbook.xlsx" \
--lmstudio-url "https://api.openai.com/v1" \
--model "your-model" \
--yes
For Gemini:
export META_ANALYSIS_LLM_API_KEY="$GEMINI_API_KEY"
meta-analysis-runner "/path/to/workbook.xlsx" \
--lmstudio-url "https://generativelanguage.googleapis.com/v1beta/openai" \
--model "your-gemini-model" \
--yes
When no provider is reachable, the GUI still works: it passes --no-lmstudio
and asks you to choose basic study characteristics such as analysis route,
binary effect size, single-arm outcome type, diagnostic mode, and network model
settings.
Output Location
Uploaded workbooks and generated outputs are staged under:
~/.meta_analysis_streamlit/runs/
The app writes a run log and offers a zip download for completed outputs.
Development
Run the tests:
pytest
Build a wheel:
python3 -m build
python3 -m twine check dist/*
See PUBLISHING.md for PyPI release steps, including Trusted Publishing through GitHub Actions.
The project is ready to commit and push from
/Volumes/Firecuda-4TB/meta-streamlit-app.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ams_meta_analysis-0.1.10.tar.gz.
File metadata
- Download URL: ams_meta_analysis-0.1.10.tar.gz
- Upload date:
- Size: 195.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bee519cce339bf5aa1ad22b12f4508564e178bc3f3493fadd9bee6183435fc97
|
|
| MD5 |
109bff93d4045c417401e95239187ea2
|
|
| BLAKE2b-256 |
27975f81d0575c0975164b3a9c857b6f73d8db06f8b4f3c2d5d9537f32b3a41a
|
File details
Details for the file ams_meta_analysis-0.1.10-py3-none-any.whl.
File metadata
- Download URL: ams_meta_analysis-0.1.10-py3-none-any.whl
- Upload date:
- Size: 200.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb8b370fdac64bd95443eb1367059cf8fdcc24ada53721d16da6030913223ed
|
|
| MD5 |
ffa56aa52a5409852a1d704662d24fd4
|
|
| BLAKE2b-256 |
1e797cfd387168d5b849643c963d734f2c4b184c5c68584b8153e2004fcf0965
|