psadil/qc-studio

โ˜… 0Forks 0GitHub โ†—Compare

README

QC-Studio

A web-based quality control (QC) application for neuroimaging data. QC-Studio allows raters to visualize and assess MRI data, SVG montages, and IQM metrics in an interactive Streamlit interface.

See design overview โ†’

๐ŸŽฏ Goals

  • Create an interactive web app to visualize neuroimaging data - raw and processed!
  • Support multiple image types: 3D MRI (NIfTI), SVG montages, and IQM metrics
  • Enable structured quality control ratings through a clean, intuitive interface

๐Ÿ“š Documentation

Document Purpose Audience
DEVELOPER_QUICKREF.md Quick reference for common tasks Developers
ARCHITECTURE.md Complete architecture overview All
TESTING_GUIDE.md Testing best practices Developers
TEST_INTEGRATION_GUIDE.md Test suite details QA/CI-CD
IMPLEMENTATION_CHECKLIST.md Feature implementation status Project managers

๐Ÿš€ Quick Start

Prerequisites

  • Python: 3.10+ (3.12 tested in CI/DEV environment)
  • pip/venv OR uv (recommended for faster installs)

Option A: Using uv (Recommended - Fastest)

# Clone the repository
git clone https://github.com/nipoppy/qc-studio.git
cd qc-studio

# Create and activate virtual environment with uv
uv venv

# Activate the environment
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies with uv
uv pip install -r requirements.txt

# Install niivue-streamlit component
uv pip install --index-url https://test.pypi.org/simple/ --no-deps niivue-streamlit

Option B: Using pip & venv (Traditional)

# Clone the repository
git clone https://github.com/nipoppy/qc-studio.git
cd qc-studio

# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Upgrade pip
python -m pip install --upgrade pip setuptools wheel

# Install runtime dependencies
pip install -r requirements.txt

# Install niivue-streamlit component
pip install --index-url https://test.pypi.org/simple/ --no-deps niivue-streamlit

Run the Application

# Run the web app
streamlit run ui/app.py

# Or use the CLI entry point
python ui/main.py --help

Try the Demo (Optional)

# Test with sample fMRIPrep data
cd ui
./fmriprep_test.sh

๐Ÿ”— Related Projects

  • Nipoppy - Lightweight framework for standardized organization and processing of neuroimaging-clinical datasets.
  • NiiVue - 3D medical image viewer
  • Streamlit - Python web app framework

๐Ÿ“„ License

See LICENSE file for details.

๐Ÿค Contributing

Contributions are welcome! Please:

  1. Read the ARCHITECTURE.md for design patterns
  2. Check TESTING_GUIDE.md for testing practices
  3. Follow the code organization described above
  4. Ensure all tests pass before submitting PR

โ“ Support

For issues, questions, or suggestions:

  1. Check existing documentation in /docs
  2. Review test files for usage examples
  3. Open an issue on GitHub with detailed description

Contributors

nikhil153GhazalehManjThomasHMAClaurapiro17

Issues