Python analysis of eye, cardiac and questionnaire data from 10 adults across three weekly sessions. The code checks recordings, measures within-session variation and compares session summaries.
Keywords: Physiological signals · Reliability analysis · PCA · scikit-learn
View full size · Edit in Figma · Design files
The repository includes 51 source CSV files, 24 raw sensor streams and 22 Jupyter notebooks. Eye and cardiac recordings are available. GSR collection was attempted; facial integration was unfinished.
The shared mms package uses NumPy, pandas and SciPy for analysis, Matplotlib for plots and scikit-learn for exploratory clustering. The questionnaires include HADS, STAI-S, STAI-T, BFI-10 and the Fear Questionnaire.
Use Python 3.11 or 3.12. From a clone of this repository:
python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev,notebooks,docs]'
python -m pytest tests -q
python -m scripts.build_group_summaries --check
python -m scripts.build_figures --check
python -m scripts.build_recording_figures --check
python -m scripts.build_group_sensitivity --checkThe --check commands read source data without writing files. Open the case study, group and individual notebooks with jupyter lab notebooks. Run python scripts/verify_notebooks.py to execute them in a temporary workspace and check that inputs stay unchanged.
See CONTRIBUTING.md for output settings and the hashed Linux environment. Installed wheels contain code only; use a repository checkout for the included data and notebooks.
The released group tables give the following ICC(1,1) estimates for the session-to-session reliability of within-session standard deviations. Each estimate uses 10 participant rows across three sessions and a 95% confidence interval.
| Within-session standard deviation | ICC | 95% interval |
|---|---|---|
| Interval samples | 0.22 | −0.13 to 0.66 |
| Pupil diameter | 0.45 | 0.07 to 0.79 |
| Response duration | 0.61 | 0.25 to 0.87 |
These calculations describe the released tables. The small sample and wide intervals do not establish diagnostic accuracy or stable traits. The Spearman correlation plot is also descriptive.
- Repeated cardiac interval samples are not verified unique beats. Cross-stream clock alignment is unverified.
- Two equality patterns in the group tables are suspected duplicates. Most participant rows cannot be reconstructed from the available raw recordings.
- The case-study summaries numerically match group row P02. That match does not independently confirm participant identity.
The data provenance describes schemas, units, source gaps and reconciliation tolerances. The figure notes record source hashes, filters and historical images, including photographs of the experimental setup.
Browse the documentation for the workflow, figures and data notes.
The original technical report, thesis and proposed protocol are preserved. Read the report corrections alongside them.
The author records consent for sharing and session photographs. Dates, device labels, responses and recognizable photos remain in the release; participant codes do not make it anonymous. Review the consent account, data terms and questionnaire rights before reuse. Code and notebooks use the MIT license. Cite the data using CITATION.cff.
