OSCR

How Low-Frequency Neural Activity Structures Language in Time.

Code ↔ Paper

7 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 7 matches
  1. [1] § MATERIALS AND METHODS › Source-Level Analysis ↔ MATLAB/tcrc_sourceReconstruction_fixedOri.m, lines 142–232 · score 0.95 · unit noise gain, depth bias, Hilbert transformed, source reconstruction, source space, LCMV
  2. [2] § MATERIALS AND METHODS › Source-Level Analysis ↔ MATLAB/tcrc_sourceStatistic_templategrid.m, lines 72–93 · score 0.79 · MNI space, individual space, individual MRI, source reconstruction, warped, template
  3. [3] § MATERIALS AND METHODS › Sensor-Level Analysis ↔ MATLAB/tcrc_sourceReconstruction_fixedOri.m, lines 142–232 · score 0.70 · inter trial phase, Hilbert transform, coherence, activity, filtered, window
  4. [4] § MATERIALS AND METHODS › Electrophysiological Analysis ↔ MATLAB/tcrc_artefacts.m, lines 1–48 · score 0.68 · SQUID jump, artifact rejection, segmented, rejected, channel, FieldTrip
  5. [5] § MATERIALS AND METHODS › Sensor-Level Analysis ↔ R/tcrc_regression_ITPC_ERF.Rmd, lines 76–167 · score 0.64 · baseline model, Bonferroni corrected, intercepts, mixed, timepoint, magnetometers
  6. [6] § MATERIALS AND METHODS › Source-Level Analysis ↔ MATLAB/tcrc_prepareSouce.m, lines 162–189 · score 0.60 · head surface, MNE, vertices, BEMs, MEG
  7. [7] § MATERIALS AND METHODS › Sensor-Level Analysis ↔ MATLAB/tcrc_itpc_delta.m, lines 63–90 · score 0.53 · inter trial phase, coherence, signal, duration, ITPC

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

MATLAB · 232 lines · 9.6 KB · no license · 2 matches

  1. %% TCRC perform source reconstruction
  2. clear; close all;
  3. restoredefaultpath;
  4. %addpath '/Fieldtrip/fieldtrip-20210807/';
  5. addpath '/Fieldtrip/fieldtrip-20230125/';
  6. ft_defaults
  7. addpath '/Fieldtrip/fieldtrip-20230125/external/mne/';
  8. addpath '/Fieldtrip/fieldtrip-20230125/external/freesurfer/';
  9. subjects = table2cell(readtable('/tcrc/cfg/list_of_subjects_all.lst', 'FileType', 'text', 'ReadVariableNames', false));
  10. blocks = {'2' '3' '4' '5' '6' '7'}; % only experimental blocks
  11. rawDIR = '/tcrc/';
  12. proDIR = '/prepro/';
  13. % load ITPC Stats
  14. load([proDIR 'stats/ITPCStats_0.2_4.mat']);
  15. % get on and offset time across both clusters
  16. onOff = ITPCStats.time([find(any(ITPCStats.mask),1,'first') find(any(ITPCStats.mask),1,'last')]);
  17. for s = 1:length(subjects)
  18. SUBJECT = subjects{s};
  19. %% directories
  20. % input
  21. headmodelFILE = [proDIR SUBJECT filesep SUBJECT '-headmodel.mat'];
  22. sourcespaceFILE = [proDIR SUBJECT filesep SUBJECT '-sourcespace.mat'];
  23. realignedmriFILE = [proDIR SUBJECT filesep SUBJECT '-realignedMRI.mat'];
  24. mnePath = [rawDIR 'freesurfer/' SUBJECT '/surf/'];
  25. concatFILE = [proDIR SUBJECT filesep SUBJECT '_concat_0.2_30_7.mat'];
  26. artfFILE = [proDIR SUBJECT filesep SUBJECT '_rejectedTrials_0.2_30_7_manualRemoval_2.mat'];
  27. templategridFILE = [proDIR SUBJECT filesep SUBJECT '-templateGRID_5mm.mat'];
  28. % output
  29. sourceITPCFILE = [proDIR SUBJECT filesep SUBJECT '_sourceITPC_cluster_2s_lambda5_fixedOri_noNormal_ung_templateGrid_5mm.mat']; % itpc
  30. % loading
  31. load(headmodelFILE); % headmodel
  32. load(sourcespaceFILE); % sourcespace
  33. load(realignedmriFILE); % realignedmri
  34. load(templategridFILE); % templategrid
  35. disp('Loading headmodel, sourcespace and aligned MRI.')
  36. %% Prepare data
  37. load(concatFILE); % concatenated data
  38. % downsample
  39. cfg = [];
  40. cfg.resamplefs = 100;
  41. downDATA = ft_resampledata(cfg, concatDATA);
  42. % remove trials maked as artf
  43. load(artfFILE);
  44. fullTrials = 1:length(downDATA.trialinfo);
  45. fullTrials(trialIdx_art) = [];
  46. cfg = [];
  47. cfg.trials = fullTrials;
  48. downDATA = ft_selectdata(cfg, downDATA);
  49. % removed Trials across all blocks
  50. removedFILE = [proDIR SUBJECT filesep SUBJECT '_removedTrials_acrossBlocks.mat'];
  51. load(removedFILE, 'allTrials');
  52. % low-pass filter at 4 Hz
  53. srate = downDATA.fsample;
  54. for t = 1:length(downDATA.trial)
  55. % Padding with reflection
  56. len = length(downDATA.trial{t});
  57. pad = fliplr(downDATA.trial{t});
  58. pad_data = [pad downDATA.trial{t} pad];
  59. [b,a] = butter(8, 4/(srate/2), 'low');
  60. lp_data = filtfilt(b, a, pad_data')';
  61. downDATA.trial{t} = lp_data(:, 1+len:end-len);
  62. end
  63. %% Compute solution for each block individually
  64. activity_across_blocks = cell(6,1);
  65. for b = 1:6
  66. BLOCK = blocks{b};
  67. % output
  68. leadfieldFILE = [proDIR SUBJECT filesep SUBJECT BLOCK '-leadfield_noNormal_templateGrid_5mm.mat'];
  69. % sensors
  70. sensorFILE = [rawDIR SUBJECT filesep SUBJECT BLOCK '_ts.fif'];
  71. sens = ft_read_sens(sensorFILE, 'senstype', 'meg');
  72. sens = ft_convert_units(sens, 'cm');
  73. %% Compute forward solution in Fieldtrip - Sensors for each block individually
  74. % plotting as test
  75. % figure;
  76. % ft_plot_headmodel(headmodel, 'edgecolor', 'none', 'facecolor', 'cortex'); alpha 0.5;
  77. % ft_plot_sens(sens, 'coilshape', 'point', 'style', 'r.');
  78. % ft_plot_mesh(templategrid.pos(templategrid.inside,:));
  79. % view([0 90 0]);
  80. % needs sourcespace & volume conductor & timelock data
  81. % make leadfield for magnetometers only
  82. if ~exist(leadfieldFILE, 'file')
  83. cfg = [];
  84. cfg.grad = sens; %data.grad
  85. cfg.channel = {'*1'}; % magnetometers only
  86. cfg.sourcemodel = templategrid; %sourcespace;
  87. cfg.headmodel = headmodel;
  88. cfg.method = 'singleshell';
  89. cfg.normalize = 'no'; % EITHER leadfield normalisation OR beamformer; to remove depth bias (Q in eq. 27 of van Veen et al, 1997)
  90. leadfield = ft_prepare_leadfield(cfg);
  91. % Save Leadfield
  92. save(leadfieldFILE, 'leadfield');
  93. else
  94. load(leadfieldFILE) % load if exists
  95. disp('Loading existing leadfield file.')
  96. end
  97. % make a figure of the single subject headmodel, and grid positions
  98. % figure;
  99. % ft_plot_headmodel(headmodel, 'edgecolor', 'none'); alpha 0.4;
  100. % ft_plot_mesh(leadfield.pos(leadfield.inside,:), 'facecolor', 'cortex'); hold off;
  101. % rotate3d
  102. %% Apply a common filter in beamforming - to make comparisons across conditions
  103. % Differences in source activity can then be ascribed to
  104. % differences in conditions, not to differences between the filters.
  105. % add condition to allTrials
  106. if length(allTrials) ~= length(downDATA.trialinfo)
  107. disp(['CAUTION: Something in the trials does not match for ' SUBJECT])
  108. pause;
  109. else
  110. allTrials(:,4) = downDATA.trialinfo;
  111. end
  112. % select trials for one block !
  113. cfg = [];
  114. cfg.trials = allTrials(find(allTrials(:,2) == b),3);
  115. trials = ft_selectdata(cfg, downDATA);
  116. %% (1) calculate the cross-spectral density matrix of the combined conditions
  117. % (1) GA ERF
  118. % https://brittas-summerofcode.blogspot.com/2017/08/the-hilbert-beamformer-pipeline_29.html
  119. cfg = [];
  120. % covariance required for later source localisation
  121. cfg.covariance = 'yes';
  122. cfg.covariancewindow = [onOff(1)-1 onOff(2)+1];
  123. cfg.latency = [onOff(1)-1 onOff(2)+1]; % define time window of interest based on ITPC
  124. timelock{s,b} = ft_timelockanalysis(cfg, trials);
  125. % (2) compute the spatial filters on GA
  126. % create spatial filter using the lcmv beamformer
  127. cfg = [];
  128. cfg.method = 'lcmv';
  129. cfg.sourcemodel = leadfield;
  130. cfg.headmodel = headmodel;
  131. cfg.lcmv.keepfilter = 'yes'; % keep spatial filter, can be used to reconstruct single trial time servies as virtual channel
  132. cfg.lcmv.fixedori = 'yes'; % project on axis of most variance
  133. cfg.lcmv.lambda = '5%'; % 1 or 5 % changes the filter
  134. cfg.lcmv.weightnorm = 'unitnoisegain'; % unit-noise-gain beamfomrmer (weight normalization) against depth bias
  135. sourceAll = ft_sourceanalysis(cfg, timelock{s,b});
  136. % (3) Hilbert transform raw data
  137. for t = 1:length(trials.trial)
  138. trials.trial{t} = hilbert(trials.trial{t}').'; % single-trial data in hilbert format
  139. end
  140. % (4) Beamforming: get single-trial source-space time courses
  141. % project all single trials through these filters
  142. beamformer = sourceAll.avg.filter;
  143. n_nodes = length(beamformer);
  144. activity_in_node = cell(1, length(trials.trial));
  145. % trial loop
  146. for t = 1:length(trials.trial)
  147. megtrldata = trials.trial{t}; % single-trial data
  148. datalen = size(megtrldata, 2); % number of data points
  149. trldata_in_node = zeros(n_nodes, datalen);
  150. % node loop
  151. for nodei = 1:n_nodes
  152. node = beamformer{nodei};
  153. mom = node*megtrldata;
  154. trldata_in_node(nodei,:) = mom;
  155. end
  156. activity_in_node{t} = trldata_in_node;
  157. fprintf('node time course: %s, trial %d/%d... \n', [SUBJECT BLOCK], t, length(trials.trial));
  158. end
  159. activity_across_blocks{b} = activity_in_node;
  160. end
  161. % (5) Compute ITPC for each level across blocks
  162. % combine activity across blocks
  163. trialSourceDATA = cat(2, activity_across_blocks{:});
  164. for duration = 1:7
  165. % select trials for duration
  166. durTrials = find(floor(allTrials(:,4)./10) == duration);
  167. itpc_data = trialSourceDATA(durTrials);
  168. % transform data dimensions
  169. tmp = cat(3, itpc_data{:}); % source x duration x trials
  170. fourierspctrm = permute(tmp, [3,1,2]); % trials x source x duration
  171. % put into fieldtrip structure
  172. itpc = [];
  173. itpc.pos = sourceAll.pos;
  174. itpc.inside = sourceAll.inside;
  175. itpc.time = trials.time{1};
  176. % compute inter-trial phase coherence (itpc)
  177. itpc.itpc = fourierspctrm./abs(fourierspctrm); % divide by amplitude
  178. itpc.itpc = sum(itpc.itpc,1); % sum angles
  179. itpc.itpc = abs(itpc.itpc)/size(fourierspctrm,1); % take the absolute value and normalize
  180. itpc.itpc = squeeze(itpc.itpc);
  181. itpc.avg = itpc.itpc;
  182. sourceITPC{s, duration} = itpc;
  183. clear itpc fourierspctrm tmp durTrials itpc_data;
  184. % plot itpc timecourse across conditions for random node
  185. % figure(s);
  186. % plot(sourceITPC{s, duration}.itpc(1,:)); hold on;
  187. end
  188. % save individual ITPC source
  189. indITPC = sourceITPC(s,:);
  190. save(sourceITPCFILE, 'indITPC');
  191. end

tcrc_sourceReconstruction_fixedOri.m, no license · at the source

Overview

  1. Max Planck Research Group Language Cycles, Max Planck Institute for Human Cognitive and Brain Sciences, Leipzig, Germany
  2. Methods and Development Group Brain Networks, Max Planck Institute for Human Cognitive and Brain Sciences, Leipzig, Germany
  3. Clinic for Phoniatrics and Pediatric Audiology, University Hospital Münster, Münster, Germany
Journal: Neurobiology of language (Cambridge, Mass.), volume 7, article NOL.a.249
Dates: received 25 August 2025; accepted 23 February 2026; published online 5 May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1162/nol.a.249 · PMID 42137739 · PMCID PMC13171203 · OpenAlex W7133489750
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: cognitive (subfield)
Methods: Spectral & time-frequency, Statistics, Smoothing, state filtering, decompositions, Connectivity, Preprocessing, Physiology & signal measures
Keywords: chunking, closure positive shift, delta-band oscillations, phase-locking, temporal constraint
Topic: Neuroscience and Music Perception (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: Max-Planck-Gesellschaft (Max Planck Society) (MPRG Language Cycles)
Citations: not cited yet (Europe PMC); 119 references in the paper

Abstract

The integration of sensory information in humans may be confined to a time window of 2–3 s. In language, this time window constrains the grouping of words into multi-word chunks, required for comprehension. Chunk boundaries are known to elicit a characteristic event-related brain potential, the Closure Positive Shift (CPS). The likelihood of a CPS increases with the duration of the chunk. In the frequency-domain, boundaries have been associated with neural oscillations in the delta band (<4 Hz). Here, we assessed whether the pace for chunking might be imposed by electrophysiological processing cycles of the brain with phase-locking of such activity underlying the CPS. We recorded participants’ magnetoencephalogram while they listened to globally ambiguous sentences allowing for two alternative ways of chunking. Chunking was not externally imposed, but the temporal limits of integration windows influenced chunk termination. Phase-locking of narrow-band low-frequency neural activity (i.e., <4 Hz) at the boundaries of multi-word chunks increased with sentence duration, and covaried with event-related fields. Behavioral data further indicate subtle interindividual differences in the duration of the integration time window. Source localization revealed neural generators in bilateral posterior temporal and right anterior regions. The brain appears to project duration-limited integration windows onto the incoming auditory speech signal, thus structuring language comprehension in time.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 7 matches between paragraphs and lines of code.

OSF h3c9j

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Languages: MATLAB (15), R (2)
Size: 18 files, 17 scripts
Software Heritage: not checked
Found in: “DATA AVAILABILITY STATEMENT”
Holds: README, 2 notebooks
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: FieldTrip (13 files), Signal Processing Toolbox (4 files), ggplot2 (2 files), lme4 (2 files), tidyverse (2 files), easystats (1 file), emmeans (1 file), ggpubr (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
  • 28 September 2026: the link answers (HTTP 200)
18 files

The paper's code and data availability statement is in the Data section.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 17 scripts, each with its path and the digest of its content;
  • 7 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Data availability statement

Raw data cannot be made publicly available due to ethical permissions and legal restrictions. Aggregated data to evaluate the conclusions in the paper are available on Zenodo (https://doi.org/10.5281/zenodo.18742644). Code is available in an OSF repository (https://doi.org/10.17605/OSF.IO/H3C9J).

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 28 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 3 authors, 5 keywords, 1 funder, 110 references.

Cite

This paper

Henke, L., Maess, B., & Meyer, L. (2026). How Low-Frequency Neural Activity Structures Language in Time. Neurobiology of language (Cambridge, Mass.), 7, NOL.a.249. https://doi.org/10.1162/nol.a.249

BibTeX

@article{henke2026how,
author = {Henke, Lena and Maess, Burkhard and Meyer, Lars},
title = {{How Low-Frequency Neural Activity Structures Language in Time}},
journal = {Neurobiology of language (Cambridge, Mass.)},
year = {2026},
month = may,
volume = {7},
pages = {NOL.a.249},
publisher = {MIT Press},
issn = {2641-4368},
doi = {10.1162/nol.a.249},
url = {https://doi.org/10.1162/nol.a.249},
pmid = {42137739},
pmcid = {PMC13171203}
}

RIS

TY - JOUR
AU - Henke, Lena
AU - Maess, Burkhard
AU - Meyer, Lars
TI - How Low-Frequency Neural Activity Structures Language in Time
T2 - Neurobiology of language (Cambridge, Mass.)
J2 - Neurobiol Lang (Camb)
PY - 2026
DA - 2026/05/05
VL - 7
SP - NOL.a.249
SN - 2641-4368
PB - MIT Press
DO - 10.1162/nol.a.249
UR - https://doi.org/10.1162/nol.a.249
LA - en
ER -

CSL-JSON

{
"id": "10.1162/nol.a.249",
"type": "article-journal",
"title": "How Low-Frequency Neural Activity Structures Language in Time",
"container-title": "Neurobiology of language (Cambridge, Mass.)",
"author": [
{
"family": "Henke",
"given": "Lena"
},
{
"family": "Maess",
"given": "Burkhard"
},
{
"family": "Meyer",
"given": "Lars"
}
],
"container-title-short": "Neurobiol Lang (Camb)",
"volume": "7",
"page": "NOL.a.249",
"DOI": "10.1162/nol.a.249",
"PMID": "42137739",
"PMCID": "PMC13171203",
"ISSN": "2641-4368",
"publisher": "MIT Press",
"URL": "https://doi.org/10.1162/nol.a.249",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
5
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1016/j.isci.2026.116458 [code]
Neural tracking of prosodic and statistical rhythms jointly supports artificial language learning.
Journal: iScience
In common: FieldTrip, emmeans, lme4, 2 other tools, cognitive, 13 references
[2] doi:10.1093/braincomms/fcag261 [code]
Cortical speech envelope tracking reflects lesion-symptom profiles in post-stroke aphasia.
Journal: Brain communications
In common: emmeans, lme4, tidyverse, cognitive, 8 references
[3] doi:10.1371/journal.pbio.3003924
Endogenous auditory and motor brain rhythms predict individual speech tracking.
Journal: PLoS biology
In common: cognitive, 11 references
[4] doi:10.1111/ejn.70481 [code]
Neural and Behavioral Tracking of Musical Phrases Occurs Without Temporal Regularity.
Journal: The European journal of neuroscience
In common: FieldTrip, lme4, ggpubr, 3 other tools, cognitive, 5 references
[5] doi:10.7554/elife.107088 [code]
Development of auditory and spontaneous movement responses to music over the first postnatal year.
Journal: eLife
In common: easystats, FieldTrip, emmeans, 5 other tools, 2 references
[6] doi:10.64898/2026.05.08.26348885 [code]
Insights from nine nights of self-applied, low-density sleep EEG during sleep restriction therapy: a proof-of-concept evaluation
Journal: medRxiv (preprint)
In common: easystats, FieldTrip, emmeans, 5 other tools, 1 reference
[7] doi:10.1038/s41598-026-57256-0 [code]
Pupil- and gaze dynamics track emotion content in naturalistic speech.
Journal: Scientific reports
In common: FieldTrip, cognitive, 6 references
[8] doi:10.1093/cercor/bhag077 [code]
The longitudinal development of intrinsic timescales in infancy and their relation to alpha brain rhythm.
Journal: Cerebral cortex (New York, N.Y. : 1991)
In common: easystats, FieldTrip, lme4, 3 other tools, 2 references
[9] doi:10.1038/s41467-026-75799-8 [code]
Behaviourally driven closed-loop beta-tACS enhances beta activity and motor behaviour.
Journal: Nature communications
In common: easystats, FieldTrip, emmeans, 3 other tools, 2 references
[10] doi:10.1162/imag.a.1305
Can you &lt;i&gt;feel&lt;/i&gt; what I am saying? Speech-based vibrotactile stimulation enhances the cortical tracking of attended speech in a multi-talker background.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: cognitive, 7 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.