This project analyzes immune cell population data from a clinical trial to understand how treatment affects immune composition and treatment response. The analysis includes data normalization, statistical comparisons between responders and non-responders, and an interactive dashboard for exploring results.
The workflow consists of:
- Loading raw cell count data into a normalized relational database
- Generating derived analytical tables for analysis
- Performing statistical comparisons of immune cell populations
- Visualizing results in an interactive dashboard (streamlit)
├── app.py # streamlit dashboard application
├── build_database.ipynb # database schema creation and data loading
├── cell_data.db # SQLite database
├── cell-count.csv # raw input data
└── README.md
The data is stored in a normalized SQLite relational database designed to scale to:
- Hundreds of projects
- Thousands of subjects and samples
- Additional immune cell populations and analyses
For example, if you wanted to add more projects to the current existing three, you would just have to update the project lookup table. The database can also easily include more conditions, cell counts, and treatments in the same fashion, just have to look at their respective lookup table.
This design supports flexible analytical queries while remaining efficient for joins and aggregations.
I had written this in a python notebook to better demonstrate my thought process while going through the steps of putting the data into a database. Each cell and markdown block was my step by step thought process. You can run the whole notebook (provided that the input csv file is in the same directory) and output the same database that I included.
An interactive dashboard was built using Streamlit to allow users to:
- View normalized immune cell population tables
- Compare responders vs non-responders visually
- Explore filtered subsets of the data dynamically
I was unaware of this Python library before starting this assessment, learned about a new tool today.
- Open the Python Notebook
- Run all cells
- Install Dependencies
- pip install seaborn streamlit matplotlib scipy
- Run the dashboard
- streamlit run app.py
https://teikoassessment-goalaso.streamlit.app
Author: Jacob Lin