A user-friendly web interface for quality control of 3D cell culture time-course imaging data.
The TRACE-QC web application provides an intuitive interface for biologists and researchers to:
- Upload spheroid position data
- Run the TRACE-QC algorithm without coding
- Visualize alignment results
- Review quality control metrics
- Download corrected data and reports
- 🖱️ Drag & Drop: Easy file upload interface
- 📊 Interactive Visualizations: Real-time plots and dashboards
- ✅ Automated QC: Immediate quality control feedback
- 💾 Export Results: Download corrected data and reports
- 📱 Responsive Design: Works on desktop and tablet devices
- Python 3.8 or higher
- pip package manager
- Navigate to the TRACEQC directory:
cd /path/to/TRACEQC- Install GUI dependencies:
pip install -r gui/requirements.txtAlternatively, if you've already installed the main package:
cd gui
pip install streamlit seaborn plotlyFrom the TRACEQC root directory:
streamlit run gui/app.pyOr from the gui directory:
cd gui
streamlit run app.pyThe application will automatically open in your default web browser at:
http://localhost:8501Press Ctrl+C in the terminal where the server is running.
- Navigate to the "Upload Data" tab
- Click "Browse files" or drag and drop your CSV/TXT file (<50 MB)
- Review the data preview and validation results
Your data file should contain X and Y coordinates for each spheroid at each time point.
Supported Format 1: Wide Format (Recommended)
spheroid_id,x_0h,y_0h,x_24h,y_24h,x_48h,y_48h,x_72h,y_72h
A,100.5,200.3,105.2,198.1,110.8,195.4,115.3,192.7
B,150.2,220.4,148.6,222.1,145.9,225.3,143.2,228.5
C,180.7,190.2,182.3,188.9,185.1,186.5,188.4,184.2Supported Format 2: Long Format
spheroid_id,timepoint,x,y
A,0h,100.5,200.3
A,24h,105.2,198.1
A,48h,110.8,195.4
B,0h,150.2,220.4
B,24h,148.6,222.1
B,48h,145.9,225.3- Go to the "Configure" tab
- Enter a descriptive name for your sample/well
- Verify detected time points are correct
- Adjust QC threshold if needed (default: 1.0)
- Select visualization options
QC Threshold:
- Values ≤ 1.0 indicate successful alignment (~90% accuracy)
- Increase threshold for more lenient QC
- Decrease threshold for stricter QC
- Navigate to the "Run Analysis" tab
- Review your configuration
- Click "Run TRACE-QC Analysis"
- Wait for the progress bar to complete
The analysis typically takes a few seconds for standard datasets (4-6 spheroids).
-
Go to the "Results" tab to see:
- Quality Control Summary: Overall pass/fail status
- Metrics Table: Normalized Fréchet distance for each time point
- Visualizations:
- Fréchet distance over time
- QC status pie chart
- Alignment geometry plots
- Spheroid trajectory analysis
-
Download results:
- Corrected Data (CSV): Aligned coordinates with corrected labels
- QC Report (TXT): Detailed quality control report
- Metrics (CSV): Quality metrics by time point
The alignment was successful. All time points show normalized Fréchet distances below the threshold. Your data can be used for downstream analysis with confidence.
One or more time points show extreme displacement. This may indicate:
- Matrix detachment or severe rotation
- Spheroid fusion or loss events
- Matrix degradation
- Experimental artifacts
Action: Review visualizations carefully and consider manual inspection of problematic time points.
A sample dataset is provided in gui/example_data/ for testing:
# Copy to downloads or desktop for easy access
cp gui/example_data/sample_spheroids.csv ~/Desktop/Then upload this file through the web interface to see how the application works.
Error: ModuleNotFoundError: No module named 'streamlit'
Solution: Install dependencies
pip install -r gui/requirements.txtError: "Could not detect data format"
Solution:
- Ensure your CSV has headers
- Check that column names follow the format:
x_0h,y_0h,x_24h,y_24h, etc. - Or use long format with columns:
spheroid_id,timepoint,x,y
Error: "Error during analysis"
Possible causes:
- Missing or NaN values in coordinate columns
- Mismatched number of X and Y columns
- Non-numeric values in coordinate columns
Solution:
- Review the validation errors in the Upload tab
- Check your data file for missing values
- Ensure all coordinates are numeric
For datasets with > 10 spheroids, the permutation step may be slow due to factorial complexity.
Solutions:
- Reduce the number of spheroids if possible
- Consider using the Python API directly for batch processing
- Use a more powerful machine
Run on a different port:
streamlit run gui/app.py --server.port 8502To access from other devices on your network:
streamlit run gui/app.py --server.address 0.0.0.0Then access at http://YOUR_IP:8501
streamlit run gui/app.py --help- Frontend: Streamlit (Python web framework)
- Backend: TRACE-QC
align_spheroidpackage - Visualization: Matplotlib, Seaborn, Plotly
- Data Processing: Pandas, NumPy
gui/
├── app.py # Main Streamlit application
├── requirements.txt # GUI dependencies
├── README.md # This file
├── utils/
│ ├── __init__.py # Package initialization
│ ├── data_parser.py # Data parsing and validation
│ └── visualization.py # Plotting functions
└── example_data/
└── sample_spheroids.csv # Example datasetFor issues, questions, or feature requests:
- GitHub Issues: https://github.com/emcramer/TRACEQC/issues
If you use TRACE-QC in your research, please cite:
Cramer et al., 2025, Cell Reports Methods 5, 101237 DOI: 10.1016/j.crmeth.2025.101237
MIT License - see LICENSE file for details.
TRACE-QC GUI was developed to make quality control of 3D cell culture imaging accessible to researchers without programming experience.
Special thanks to the Streamlit community for the excellent web framework.