Interhemispheric neural connectivity of the human visual motion complex (hMT+) distinguishes between global perceptual integration and segregation
Analysis code and derivative data for a 3 T multiband-fMRI study testing whether interhemispheric functional connectivity between left and right hMT+ tracks the coherent (integrated / bound) versus incoherent (segregated / unbound) percept of a bistable moving-plaid stimulus, and whether that effect is preserved across four fMRI temporal resolutions (TR = 0.5, 0.75, 1.0 and 2.5 s).
See docs/Manuscript_Formatted.docx for the full manuscript.
The same paradigm is acquired at four TRs (acq-0500/0750/1000/2500) in two run
types — AA (ambiguous plaid) and UA (unambiguous, dot-disambiguated
plaid) — plus a 1 s localizer (loc) to define hMT+. Continuous button
presses give the perceptual state (coherent/incoherent) per volume. Preprocessing
is fMRIPrep 23 (MNI152NLin2009cAsym); all downstream analysis is Nilearn.
Event files label each volume with trial_type ∈
{discard, static, motion, coherent, incoherent, mae}: motion is the active
block, coherent/incoherent are the nested percept sub-labels, static is the
baseline.
| Step | File | Purpose |
|---|---|---|
| 01 | scripts/step-01_nilearn-glm_loc.ipynb |
Localizer GLM (movingPlaid − staticPlaid) → group hMT+ mask and per-subject maps |
| 02 | scripts/step-02_nilearn-glm_AAUA.ipynb |
Main-task GLM, motion − static |
| 02b | scripts/step-02_nilearn-glm_AAUA_cohincoh.ipynb |
Main-task GLM, coherent/incoherent − static |
| 03 | scripts/step-03_roiDefinition.ipynb |
Subject-specific hMT+ / V1 seed coordinates → roi_ss_matrix.txt |
| TC | scripts/py/feedback-TCextraction.py (+ src/feedbackFunctions.py) |
Extract ROI percent-signal-change time courses → data/timecourses/*_hp_std-psc_detrend.npy |
| 04 | scripts/step-04_nilearn-roianalysis-AAUA.ipynb |
Sample β / t inside the ROI spheres across TRs |
| 05 | scripts/step-05_feedback_new.ipynb |
Average ROI BOLD time courses |
| 06 | scripts/step-06_fc_new.ipynb |
Interhemispheric (and V1-partial) connectivity; perceptual-switch detection |
| 07 | scripts/step-07_mriqc.ipynb |
MRIQC sequence comparison |
| — | scripts/step-08_keypress-analysis.ipynb |
Behavioural key-press percept-duration analysis |
Supporting tooling: scripts/matlab/ converts button presses to interval events
(upstream of the BIDS events.tsv, using the .prt protocols) and
scripts/matlab-eyetracker/ computes the central-fixation metric reported in
Methods (edf-converter is its third-party dependency).
Each figure of the manuscript, traced back to the code and data that generate it.
The versions embedded in the manuscript are exported as stand-alone files in
results/.
| Figure | Generated by | Key inputs | Stand-alone file in results/ |
|---|---|---|---|
| Fig 1 – stimuli | illustration | — | Figure1_stimuli.png |
| Fig 2 – per-subject localizer maps | step-01 |
localizer BOLD + loc events |
Figure2_localizer_hMT_persubject.png, localizer_plot-z_*.{png,pdf} |
| Fig 3 – β / t across TRs (motion, coherent, incoherent − static) | step-04 |
data/nilearn-roianalysis-AAUA-{motion,coherent,incoherent}MinusStatic.tsv (from step-02/02b maps at step-03 ROIs) |
Figure3_hMT_activation_beta_tvalue.png |
| Fig 4 – interhemispheric correlation time courses | step-06_fc_new |
data/timecourses/*_hp_std-psc_detrend.npy, data/bids_events/ |
Figure4_interhemispheric_correlation_timecourses.png |
| Fig 5 – % of switches detected | step-06_fc_new |
sliding-window correlation + 10 % rule | Figure5_switch_detection_percentage.png |
| Fig 6 – time to detection | step-06_fc_new |
same as Fig 5 | Figure6_time_to_detection.png |
| Fig S3 – group localizer map | step-01 |
— | — |
| Fig S4 / S5 – average BOLD time courses (hMT+, V1) | step-05_feedback_new |
data/timecourses/*_hp_std-psc_detrend.npy |
— |
| Fig S6 / S7 – number of switches per run | step-06_fc_new |
data/bids_events/ |
— |
| Table 1 – sequence parameters / QC | step-07_mriqc |
data/mriqc_group_bold.tsv |
— |
| Table S2 – per-subject hMT+ MNI coordinates | step-03 |
roi_ss_matrix.txt |
— |
| V1 partial-correlation control (supplementary) | V1 branch of step-06_fc_new |
ROI time courses | — |
Only the _hp_std-psc_detrend ROI time-course variant is consumed
downstream — the PSC + detrended series described in the Methods.
scripts/ analysis notebooks (step-0X) + helper .py (scripts/py) + MATLAB tooling
src/ reusable Python (feedbackFunctions.py: ROI time-course extraction)
data/ derivative data (ROI tables, time courses, events, MRIQC, ...)
results/ exported manuscript figures
docs/ manuscript and figure sources
legacy/ superseded / unused scripts and derivatives (not tracked)
tests/ exploratory / development notebooks
The project began as a temporal-resolution optimisation for real-time neurofeedback and grew into the connectivity study above. The original questions were: whether offline ROI estimates (β / t-values) differ with TR; whether a feedback signal based on ROI BOLD percent-signal-change changes with TR; and how fast a rule-based interhemispheric-correlation feedback can detect a perceptual switch (detection ratio and lag) as a function of TR.