Capstone C2, clean pipeline: raw BIDS to cleaned continuous data plus a QC report per subject, with a FULL_COHORT switch nb-c2-clean-pipeline
Downloads from ds-erpcore.
2 claims on this page are unverified. TODO(confirm) marks a specific statement the author has not yet checked against a
primary source. Everything else on this page has been reviewed. Treat a marked claim as
provisional and go to the cited source rather than quoting the sentence.
Write a script that takes raw BIDS data to cleaned continuous data plus a QC HTML report, per subject, for one full spine dataset — ds-eegbci via its CC0 BIDS mirror (OpenNeuro ds004362), or ds-erpcore. It must run unattended over every subject in the cohort you choose, driven entirely by a configuration file, and it must produce for each subject: a bad-channel table, the ICA components removed with reasons, the percentage of data rejected per condition, the filter settings with their justification, and a run log with package versions and the seed.
This is the level’s synthesis. Every decision you make here was argued somewhere in L2.1–L2.8; the capstone is where they become one artifact that someone else can run.
ds-erpcore is the richer choice because it has two conditions, so the per-condition rejection table is meaningful, and it has EOG channels, so blink handling can be compared across methods. ds-eegbci is the cheaper choice — smaller files, no download barrier, and a task structure simple enough that the pipeline, not the paradigm, stays the object of study. Pick one and say why in the report.
ds-eegbci through its BIDS mirror (ds004362, CC0), or ds-erpcore (CC BY 4.0, open access, per-subject downloadable; 30 EEG + 3 EOG channels, 1024 Hz, CMS reference, 60 Hz mains, no software filters, 40 participants per paradigm). TODO(confirm): the author mirrors the ERP CORE entry into data/registry.yaml (§10.11 item 8) and signs off the dataset page.ds-eegbci: subjects S088, S089, S092 and S100 carry inconsistent event timestamps (S038 and S104 are also commonly dropped), the channel labels need re-casing before a montage will attach, and there are no hardware filters. Whatever you decide about them belongs in the configuration file with its reason, not in a comment.pipelines/ package skeleton from nb-2-8-pipeline, if you built it there: run_subject(config, subject) and the step modules are the same structure this capstone asks for.Capstone notebooks run on a documented subset within the §11 limit of ten minutes on Colab’s free tier, and scale to the full cohort locally:
ds-eegbci the list must state how the documented defective subjects were handled; for ds-erpcore it must state which paradigm (the site’s Level 2 and 3 work uses P3).FULL_COHORT switch at the top of the notebook (default False) extends the run to every subject for local execution. The per-subject function is identical, so the only thing that changes is how many rows the group table has.data/scripts/ and shipped as assets, so the group-level figures can be reproduced without the full download._shared/helpers.py, contains no absolute paths, states every pipeline parameter in one place, and prints in its final cell the numbers the rubric asks for.run_subject(config, subject) — a function that executes the canonical order (load → montage → bad-channel detection → filter → interpolate → re-reference → ICA → epoch → reject), writes the cleaned continuous data, and returns a structured run log. It must not stop the cohort when one subject fails; a failure is a row in the report.pf-interpolation-rank).pf-overcleaning-ica).FULL_COHORT state of the run being reported.Estimated time: TODO(confirm) — the minutes value in the frontmatter is a site-design estimate, not from the spec.
Check each item you can honestly demonstrate in your report. This is the "submit" step: it is stored in your browser only.
0 / 3 rubric items checked. Self-assessment only; stored in this browser.
Downloads from ds-erpcore.