You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`analysis_pipeline/config/`: YAML configs for full runs and class-variant runs.
14
-
-`scripts/download_bids.py`: automatic BIDS download helper (OpenNeuro CLI or archive URL).
15
-
-`docs/`: explicit methods notes for journal write-up.
14
+
This repository is intentionally separate from any BIDS descriptor or data-publication repository. Track code, configs, and documentation here; keep raw data and generated outputs local.
16
15
17
-
This repo should not be used to publish final BIDS data artifacts. Keep those in your separate data-descriptor repository.
`requirements.txt` covers the classic ML and signal-processing stack. Install PyTorch separately if you plan to run deep Stage 6 models such as `lstm1d`, `gru1d`, `cnn1d`, or `transformer`.
28
+
29
+
### 2. Acquire the BIDS dataset
31
30
32
-
Option A: OpenNeuro dataset ID
31
+
OpenNeuro dataset ID:
33
32
34
33
```powershell
35
34
python .\scripts\download_bids.py `
36
35
--dataset-id dsXXXXXX `
37
36
--target .\data\bids_arithmetic
38
37
```
39
38
40
-
Option B: Direct archive URL (`.zip`, `.tar`, `.tar.gz`, `.tgz`)
If the Linux machine already produced the baseline runs, copy these files from Linux into the same paths on Windows.
94
-
95
-
Required files to rebuild all baseline confusion reports on Windows:
69
+
The checked-in profiles write under `analysis_pipeline/runs/<profile_name>/`. Both set `outputs.clean_start: true`, so rerunning the same profile replaces that profile's run directory only. If you want to preserve an existing run, copy the YAML and change `outputs.root` or set `clean_start: false`.
| 2 |`stage2_preprocess.py`| Clean EEG, ECG, and pupil streams and write derivatives. |`<run_root>/derivatives/cleaned/`, preprocess logs |
98
+
| 3 |`stage3_epoch_trials.py`| Convert trials into fixed or overlapping epochs with drop accounting. |`<run_root>/derivatives/epochs/`, `epoch_manifest.tsv`, `epoch_summary.json`|
| 5 |`stage5_build_fused_table.py`| Build unimodal and fused ML tables plus split manifests. |`<run_root>/features/features_fused_tutorial_baseline.tsv`, `split_manifest_tutorial_baseline.json`|
101
+
| 6 |`stage6_train_classic_ml.py`| Benchmark classic and optional deep models across datasets, protocols, and class scenarios. |`<run_root>/reports/ml_results_*.json`, `<run_root>/reports/ml_summary_*.md`, `<run_root>/models/`|
102
+
| 6b |`stage6_highlight_confusions.py`| Curate top confusion matrices from Stage 6 results. |`<run_root>/reports/confusion_highlights_*.json`, markdown, PNGs |
103
+
| 6c |`stage6_build_publication_report.py`| Assemble a publication-facing run summary. |`<run_root>/reports/publication_full_report.md`, `.json`|
146
104
147
-
## Stage Summary
105
+
Stage 6 can also emit live confusion PNGs during training and EEG PSD/topomap QC figures when EEG is part of the selected dataset list.
148
106
149
-
- Stage 0: canonical trial table from BIDS events.
150
-
- Stage 1: QC summary.
151
-
- Stage 2: preprocessing (EEG/ECG/pupil).
152
-
- Stage 3: epoching from trial windows.
153
-
- Stage 4: feature extraction (unimodal).
154
-
- Stage 5: fused ML table + split manifest.
155
-
- Stage 6: split-aware ML benchmarking.
107
+
## Checked-in profiles
156
108
157
-
See `docs/pipeline_methods.md` for explicit methodological details, including how fixed 6-second arithmetic windows are converted into epochs and optional sub-windows.
158
-
For exact feature/model implementation details, see `docs/feature_ml_reference.md`.
109
+
| Profile | File | Intended use |
110
+
| --- | --- | --- |
111
+
| Baseline fixed-window run |`analysis_pipeline/config/pipeline_unified_classic_nn_baseline_preproc.yaml`| Canonical reproducible run: fixed 6 s calculation windows, classic plus deep model sweep, publication report enabled. |
112
+
| Overlap-window run |`analysis_pipeline/config/pipeline_unified_classic_nn_baseline_overlap3s_50pct_preproc.yaml`| Same pipeline family with 3 s windows, 1.5 s step size, and overlap enabled for Stage 3. |
159
113
160
-
## Notes for Manuscript Framing
114
+
Both profiles benchmark the `baseline_all_bins`, `baseline_omit_easiest`, `baseline_omit_hardest`, `baseline_low_high_omit_hardest`, and `baseline_grouped_4class_omit_hardest` class scenarios.
161
115
162
-
This codebase is designed for ML-psychology style reporting of physiological workload resolution:
0 commit comments