← All Projects
Software & data analysis

Sleep Study Analyzer

Signal analysis across 5,000 multimodal entries

Duke University Sleep Study Analyzer course project cover; illustrative signals

Brief

Analyze multimodal sleep-study signals and identify apnea and hypoxia events in a course project.

My role

Python developer · team of three

Tools & methods

Python · NumPy · SciPy · Matplotlib · Git

Result

The tool passed all course test cases. This was an educational project, not a clinically deployed diagnostic system.

My Contribution

I developed the blood-pressure analysis module, turning pressure readings and timestamps into summary statistics and flagged gaps between beats. Working with two teammates, I helped build a Python workflow for reviewing ECG, blood pressure, respiration, and oxygen saturation signals.

From CSV to Report

Prepare the Signals

The team pipeline used NumPy to load CSV files, separate timestamp and signal columns, and flatten them into analysis arrays. Header-based signal selection supported files with different available channels. Users could select a time window, with the same slice applied across signals to preserve alignment.

Detect Peaks and Events

My blood-pressure module identified local pressure maxima above a threshold, found the minimum pressure between successive peaks, and calculated average systolic and diastolic pressures. It also tracked unusually long intervals between peaks to flag possible missing beats.

In the shared analyzer, SciPy’s find_peaks supported ECG, blood-pressure, and respiration analysis. The course logic flagged breathing gaps of at least ten seconds and oxygen-saturation readings below the project’s threshold. These were rule-based flags for the supplied datasets.

Check and Communicate Results

I compared calculated pressure extrema and detected peaks against plotted signals, then adjusted the peak and gap conditions when the results did not match the visual data. My module included JSON output for three supplied test runs.

The broader application used Matplotlib for signal plots, Tkinter for file selection, and FPDF for a report combining plots and summary metrics. We used Git to coordinate changes across the team.

Technical Stack

Python · NumPy · SciPy · Matplotlib · Tkinter · FPDF · JSON · Git

Project Details & Media

PYTHON · SIGNAL PROCESSING · TEAM PROJECT

Finding Patterns in Physiological Signals

Developed a Python tool with two collaborators to detect sleep apnea and hypoxia across 5,000 multimodal data entries.

Explore the project +

My work: Developed the blood-pressure analysis module and contributed to the shared signal-analysis workflow.

Collaboration: Used Git to manage the code with two teammates.

Outcome: The class project passed all course test cases. It was an educational project, with no clinical deployment.

Explore all projects ↗