OSCR

Golden ratio organization in human EEG is associated with theta-alpha frequency convergence: a multi-dataset validation study.

Code ↔ Paper

11 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 11 matches
  1. [1] § Methods › Spectral analysis ↔ analysis/compute_pci.py, lines 164–216 · score 0.93 · Power spectral density, frontal channels, posterior channels, frontal theta validation, posterior alpha, Spectral centroids
  2. [2] § Methods › Aperiodic sensitivity analysis ↔ analysis/config.py, lines 40–47 · score 0.78 · peak width limits, aperiodic mode, peak height, FOOOF
  3. [3] § Methods › Datasets ↔ analysis/analyze_combined.py, lines 1–16 · score 0.74 · LEMON Mind Brain, PhysioNet, Body, EEGBCI, Cross
  4. [4] § Methods › Spectral analysis ↔ analysis/spectral_centroids.py, lines 27–67 · score 0.67 · Power spectral density, Spectral centroids, Hann, windows, overlap, Welch
  5. [5] § Methods › Datasets ↔ analysis/config.py, lines 60–66 · score 0.66 · closed baseline, PhysioNet, 160 Hz, eyes
  6. [6] § Methods › Phi coupling index ↔ analysis/compute_pci.py, lines 105–137 · score 0.64 · f_alpha, f_theta, Phi Coupling, harmonic, centroids, closer
  7. [7] § Methods › Validation procedures ↔ analysis/compute_pci.py, lines 164–216 · score 0.63 · Frontal theta validation, posterior channels, posterior alpha, PCI
  8. [8] § Methods › Theta-alpha convergence ↔ analysis/compute_pci.py, lines 140–161 · score 0.59 · Theta alpha convergence, f_alpha, f_theta, metric
  9. [9] § Methods › Pre processing ↔ analysis/preprocessing.py, lines 90–131 · score 0.59 · MNE, segmented, rejected, thresholds, exceeding, epochs
  10. [10] § Methods › Aperiodic sensitivity analysis ↔ analysis/spectral_centroids.py, lines 114–166 · score 0.58 · 1–40 Hz, spectral centroids, FOOOF, peak, power
  11. [11] § Methods › Pre processing ↔ analysis/config.py, lines 25–31 · score 0.58 · 1–45 Hz, bandpass, rejected, thresholds, epochs, preprocessed

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

Python · 263 lines · 7 KB · MIT · 4 matches

  1. """
  2. compute_pci.py - Core functions for Phi Coupling Index analysis
  3. Golden Ratio Organization in Human EEG
  4. Author: Andrei Condrea
  5. ORCID: 0009-0002-6114-5011
  6. """
  7. import numpy as np
  8. from scipy import signal
  9. # Constants
  10. PHI = 1.618034 # Golden ratio
  11. EPSILON = 0.1 # Regularization parameter
  12. THETA_BAND = (4, 8)
  13. ALPHA_BAND = (8, 13)
  14. def compute_psd_welch(data, sfreq, fmin=1, fmax=45):
  15. """
  16. Compute Power Spectral Density using Welch's method.
  17. Parameters
  18. ----------
  19. data : array
  20. EEG time series (samples,)
  21. sfreq : float
  22. Sampling frequency in Hz
  23. fmin, fmax : float
  24. Frequency range of interest
  25. Returns
  26. -------
  27. freqs : array
  28. Frequency values
  29. psd : array
  30. Power spectral density values
  31. """
  32. nperseg = min(int(4 * sfreq), len(data)) # 4-second windows
  33. freqs, psd = signal.welch(data, sfreq, nperseg=nperseg, noverlap=nperseg//2)
  34. mask = (freqs >= fmin) & (freqs <= fmax)
  35. return freqs[mask], psd[mask]
  36. def compute_spectral_centroid(psd, freqs, fmin, fmax):
  37. """
  38. Compute spectral centroid (center of mass) within frequency band.
  39. Parameters
  40. ----------
  41. psd : array
  42. Power spectral density
  43. freqs : array
  44. Corresponding frequencies
  45. fmin, fmax : float
  46. Band limits in Hz
  47. Returns
  48. -------
  49. float
  50. Centroid frequency in Hz
  51. """
  52. mask = (freqs >= fmin) & (freqs <= fmax)
  53. freqs_band = freqs[mask]
  54. psd_band = psd[mask]
  55. if psd_band.sum() == 0:
  56. return np.nan
  57. return np.sum(freqs_band * psd_band) / np.sum(psd_band)
  58. def compute_peak_frequency(psd, freqs, fmin, fmax):
  59. """
  60. Find peak frequency within frequency band.
  61. Parameters
  62. ----------
  63. psd : array
  64. Power spectral density
  65. freqs : array
  66. Corresponding frequencies
  67. fmin, fmax : float
  68. Band limits in Hz
  69. Returns
  70. -------
  71. float
  72. Peak frequency in Hz
  73. """
  74. from scipy.ndimage import uniform_filter1d
  75. mask = (freqs >= fmin) & (freqs <= fmax)
  76. freqs_band = freqs[mask]
  77. psd_band = psd[mask]
  78. if len(psd_band) == 0:
  79. return np.nan
  80. # Smooth to avoid noise peaks
  81. psd_smooth = uniform_filter1d(psd_band, size=3)
  82. return freqs_band[np.argmax(psd_smooth)]
  83. def compute_pci(f_alpha, f_theta, epsilon=EPSILON):
  84. """
  85. Compute Phi Coupling Index.
  86. PCI = log((|R - 2| + ε) / (|R - φ| + ε))
  87. Where R = f_alpha / f_theta
  88. Parameters
  89. ----------
  90. f_alpha : float
  91. Alpha frequency (centroid or peak) in Hz
  92. f_theta : float
  93. Theta frequency (centroid or peak) in Hz
  94. epsilon : float
  95. Regularization parameter (default: 0.1)
  96. Returns
  97. -------
  98. float
  99. PCI value
  100. - PCI > 0: closer to φ (1.618) than to 2:1
  101. - PCI < 0: closer to 2:1 than to φ
  102. """
  103. if np.isnan(f_alpha) or np.isnan(f_theta) or f_theta == 0:
  104. return np.nan
  105. ratio = f_alpha / f_theta
  106. distance_to_harmonic = np.abs(ratio - 2.0)
  107. distance_to_phi = np.abs(ratio - PHI)
  108. return np.log((distance_to_harmonic + epsilon) / (distance_to_phi + epsilon))
  109. def compute_convergence(f_alpha, f_theta):
  110. """
  111. Compute theta-alpha convergence metric.
  112. Convergence = 1 / |f_alpha - f_theta|
  113. Parameters
  114. ----------
  115. f_alpha : float
  116. Alpha frequency in Hz
  117. f_theta : float
  118. Theta frequency in Hz
  119. Returns
  120. -------
  121. float
  122. Convergence value (higher = frequencies closer together)
  123. """
  124. diff = np.abs(f_alpha - f_theta)
  125. if diff == 0:
  126. return np.nan
  127. return 1 / diff
  128. def analyze_subject(data, sfreq, posterior_channels=None, frontal_channels=None):
  129. """
  130. Complete analysis pipeline for a single subject.
  131. Parameters
  132. ----------
  133. data : array
  134. EEG data (channels x samples)
  135. sfreq : float
  136. Sampling frequency
  137. posterior_channels : list
  138. Indices of posterior channels for averaging
  139. frontal_channels : list, optional
  140. Indices of frontal channels for theta validation
  141. Returns
  142. -------
  143. dict
  144. Dictionary with all computed metrics
  145. """
  146. results = {}
  147. # Average posterior channels
  148. if posterior_channels is not None:
  149. posterior_data = data[posterior_channels].mean(axis=0)
  150. else:
  151. posterior_data = data.mean(axis=0)
  152. # Compute PSD
  153. freqs, psd = compute_psd_welch(posterior_data, sfreq)
  154. # Compute spectral metrics
  155. results['theta_centroid'] = compute_spectral_centroid(psd, freqs, *THETA_BAND)
  156. results['alpha_centroid'] = compute_spectral_centroid(psd, freqs, *ALPHA_BAND)
  157. results['theta_peak'] = compute_peak_frequency(psd, freqs, *THETA_BAND)
  158. results['alpha_peak'] = compute_peak_frequency(psd, freqs, *ALPHA_BAND)
  159. # Compute derived metrics
  160. results['ratio'] = results['alpha_centroid'] / results['theta_centroid']
  161. results['PCI'] = compute_pci(results['alpha_centroid'], results['theta_centroid'])
  162. results['convergence'] = compute_convergence(results['alpha_centroid'], results['theta_centroid'])
  163. # Frontal theta analysis (if channels provided)
  164. if frontal_channels is not None and len(frontal_channels) >= 2:
  165. frontal_data = data[frontal_channels].mean(axis=0)
  166. freqs_f, psd_f = compute_psd_welch(frontal_data, sfreq)
  167. results['theta_frontal'] = compute_spectral_centroid(psd_f, freqs_f, *THETA_BAND)
  168. # Frontal-based PCI (frontal theta, posterior alpha)
  169. results['PCI_frontal'] = compute_pci(results['alpha_centroid'], results['theta_frontal'])
  170. results['convergence_frontal'] = compute_convergence(results['alpha_centroid'], results['theta_frontal'])
  171. return results
  172. def epsilon_sensitivity(f_alpha, f_theta, epsilons=None):
  173. """
  174. Test PCI stability across epsilon values.
  175. Parameters
  176. ----------
  177. f_alpha : float
  178. Alpha frequency
  179. f_theta : float
  180. Theta frequency
  181. epsilons : list, optional
  182. Epsilon values to test (default: [0.001, 0.01, 0.1, 0.5, 1.0])
  183. Returns
  184. -------
  185. dict
  186. Epsilon -> PCI mapping
  187. """
  188. if epsilons is None:
  189. epsilons = [0.001, 0.01, 0.1, 0.5, 1.0]
  190. return {eps: compute_pci(f_alpha, f_theta, epsilon=eps) for eps in epsilons}
  191. if __name__ == "__main__":
  192. # Example usage
  193. print("Phi Coupling Index Analysis")
  194. print("="*50)
  195. print(f"Golden ratio (φ): {PHI}")
  196. print(f"Theta band: {THETA_BAND} Hz")
  197. print(f"Alpha band: {ALPHA_BAND} Hz")
  198. print()
  199. # Example calculation
  200. f_theta = 6.0 # Hz
  201. f_alpha = 10.0 # Hz
  202. ratio = f_alpha / f_theta
  203. pci = compute_pci(f_alpha, f_theta)
  204. conv = compute_convergence(f_alpha, f_theta)
  205. print(f"Example: θ={f_theta} Hz, α={f_alpha} Hz")
  206. print(f" Ratio: {ratio:.3f}")
  207. print(f" PCI: {pci:.3f} ({'φ-organized' if pci > 0 else '2:1 organized'})")
  208. print(f" Convergence: {conv:.3f}")

compute_pci.py at commit c64a0da, under MIT · at the source

Overview

Authors: Andrei Ursachi1
ORCID iDs: Andrei Ursachi
  1. Independent Researcher, Bucharest, Romania
Journal: Frontiers in human neuroscience, volume 20, article 1781338
Dates: received 5 January 2026; accepted 11 February 2026; published online 4 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.3389/fnhum.2026.1781338 · PMID 41859481 · PMCID PMC12996120 · OpenAlex W7133531784
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: EEG (modality), human (organism), methods / tools (subfield)
Methods: Spectral & time-frequency, Connectivity, Preprocessing, Statistics
Keywords: cross-frequency coupling, EEG, golden ratio, individual differences, oscillations, spectral analysis, theta-alpha
Topic: Functional Brain Connectivity Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Citations: not cited yet (Europe PMC); 28 references in the paper

Abstract

Background: The golden ratio (ϕ ≈ 1. 618) has been proposed as an organizing principle for EEG frequency bands, potentially minimizing spurious cross-frequency synchronization. However, whether individual differences in ϕ-organization have functional correlates remains unexplored.

Objective: We investigated whether proximity of theta-alpha frequency ratios to ϕ is associated with theta-alpha frequency convergence near the 8 Hz boundary.

Methods: We developed the Phi Coupling Index (PCI), which quantifies spectral frequency ratio proximity (note: “coupling” here refers to frequency ratio relationships, not phase-amplitude coupling), quantifying proximity to ϕ vs. harmonic 2:1 organization. Spectral centroids were computed from eyes-closed resting-state EEG across two independent datasets (N = 320): PhysioNet EEGBCI (N = 109) and LEMON Mind-Brain-Body (N = 211). We performed comprehensive validation including: (1) null model simulation, (2) per-dataset replication, (3) robust statistics, (4) ϕ-specificity parameter sweep, (5) epsilon sensitivity analysis, and (6) frontal theta validation.

Results: Across 320 subjects, 80.0% showed ϕ-organization (PCI > 0). PCI was strongly associated with theta-alpha convergence [r = 0.54, p < 10−25; Spearman ρ = 0.82 (higher rank correlation reflects monotonic association with bounded transform)]. This effect: (1) exceeded null model expectation by >5 SD; (2) replicated across both datasets (r = 0.50-0.63); (3) was robust to outliers; (4) showed ϕ-specificity in parameter sweep; (5) remained qualitatively consistent across epsilon values (r = 0.41-0.78); and (6) critically, frontal theta analysis yielded even stronger effects (r = 0.718, p ≈ 10−35), providing evidence against volume conduction artifacts. Demographic controls in LEMON (partial correlation controlling for age) yielded r = 0.490, virtually identical to uncorrected r = 0.497, indicating age does not substantially confound the effect. However, pre-planned exploratory subgroup analyses revealed meaningful individual differences: the association was stronger in younger adults (age < 40: r = 0.574, N = 142) than older adults (r = 0.344, N = 69; note: reduced statistical power in older subgroup), and notably stronger in females (r = 0.680, N = 77) than males (r = 0.429, N = 134), consistent with known sex differences in alpha oscillation characteristics. High-ϕ subjects (PCI > median) showed frequency profiles converging toward the 8 Hz boundary (θ = 6.24 Hz, α = 9.75 Hz) compared to low-ϕ subjects (θ = 5.85 Hz, α = 10.20 Hz), with no age confound (mean ages 37.7 vs. 35.7 years).

Conclusions: PCI demonstrates a robust association with theta-alpha convergence that exceeds structural expectations, replicates across datasets, and shows specificity to the golden ratio. The striking frontal theta validation (r = 0.718) provides converging evidence against a simple spatial-mixing explanation and is consistent with neurophysiological organization.

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 11 matches between paragraphs and lines of code.

ExeqTer91/eeg-phi-coupling

License: MIT
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: c64a0da59953b63403e57a74d6addc02f447ab12, 19 February 2026
Languages: Python (7)
Size: 16 files, 7 scripts
Software Heritage: not archived
Found in: “Data availability statement”
Holds: README, license file, CITATION.cff, environment (requirements.txt)
Not found: tests, continuous integration, documentation
Tools: NumPy (6 files), SciPy (4 files), pandas (3 files), MNE-Python (2 files), Matplotlib (1 file), seaborn (1 file), specparam (formerly FOOOF) (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
9 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;
  • 7 scripts, each with its path and the digest of its content;
  • 11 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

Publicly available datasets were analyzed in this study. PhysioNet EEGBCI: https://physionet.org/content/eegmmidb/. LEMON: https://fcon_1000.projects.nitrc.org/indi/retro/MPI_LEMON.html. Analysis code: https://github.com/ExeqTer91/eeg-phi-coupling.

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, 30 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 1 author, 7 keywords, 28 references.

Cite

This paper

Ursachi, A. (2026). Golden ratio organization in human EEG is associated with theta-alpha frequency convergence: a multi-dataset validation study. Frontiers in human neuroscience, 20, 1781338. https://doi.org/10.3389/fnhum.2026.1781338

BibTeX

@article{ursachi2026golden,
author = {Ursachi, Andrei},
title = {{Golden ratio organization in human EEG is associated with theta-alpha frequency convergence: a multi-dataset validation study}},
journal = {Frontiers in human neuroscience},
year = {2026},
month = mar,
volume = {20},
pages = {1781338},
publisher = {Frontiers Media SA},
issn = {1662-5161},
doi = {10.3389/fnhum.2026.1781338},
url = {https://doi.org/10.3389/fnhum.2026.1781338},
pmid = {41859481},
pmcid = {PMC12996120}
}

RIS

TY - JOUR
AU - Ursachi, Andrei
TI - Golden ratio organization in human EEG is associated with theta-alpha frequency convergence: a multi-dataset validation study
T2 - Frontiers in human neuroscience
J2 - Front Hum Neurosci
PY - 2026
DA - 2026/03/04
VL - 20
SP - 1781338
SN - 1662-5161
PB - Frontiers Media SA
DO - 10.3389/fnhum.2026.1781338
UR - https://doi.org/10.3389/fnhum.2026.1781338
LA - en
ER -

CSL-JSON

{
"id": "10.3389/fnhum.2026.1781338",
"type": "article-journal",
"title": "Golden ratio organization in human EEG is associated with theta-alpha frequency convergence: a multi-dataset validation study",
"container-title": "Frontiers in human neuroscience",
"author": [
{
"family": "Ursachi",
"given": "Andrei"
}
],
"container-title-short": "Front Hum Neurosci",
"volume": "20",
"page": "1781338",
"DOI": "10.3389/fnhum.2026.1781338",
"PMID": "41859481",
"PMCID": "PMC12996120",
"ISSN": "1662-5161",
"publisher": "Frontiers Media SA",
"URL": "https://doi.org/10.3389/fnhum.2026.1781338",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
4
]
]
}
}

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.3389/fncom.2026.1786996 [code]
Schumann-anchored golden ratio organization of human neural oscillations.
Journal: Frontiers in computational neuroscience
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 4 other tools, EEG, 8 references
[2] doi:10.1038/s41467-026-70287-5 [code]
Cortical-limbic circuit dynamics of approach-avoidance conflict in humans.
Journal: Nature communications
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 4 other tools, EEG, 4 references
[3] doi:10.3390/s26134019 [code]
NeuroStat: An Open-Source EEG Connectivity Platform for Randomised Controlled Trials.
Journal: Sensors (Basel, Switzerland)
In common: MNE-Python, pandas, SciPy, 2 other tools, physionet.org/content/eegmmidb, EEG, 3 references
[4] doi:10.1093/cercor/bhag113 [code]
Long-term reliability and stability of parameterized resting state EEG: evidence from a five-year follow-up.
Journal: Cerebral cortex (New York, N.Y. : 1991)
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 4 other tools, methods / tools, EEG, 3 references
[5] doi:10.1162/imag.a.1169 [code]
Diazepam alters the shape of alpha oscillations recorded from human cortex using EEG.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 4 other tools, EEG, 3 references
[6] doi:10.7554/elife.100605 [code]
Age-related changes in ‘cortical’ 1/f dynamics are linked to cardiac activity
Journal: n/a
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 4 other tools, 3 references
[7] doi:10.1371/journal.pone.0353371 [code]
Inter-brain functional connectivity: Are we measuring the right thing?
Journal: PloS one
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 3 other tools, EEG, 3 references
[8] doi:10.1162/imag.a.1321 [code]
Phase similarity between similar objects indicates representational merging across retrieval training but not sleep.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: MNE-Python, seaborn, pandas, 3 other tools, EEG, 3 references
[9] doi:10.64898/2026.03.06.710026 [code]
Distinct beta burst motifs exhibit opposing error relationships during motor adaptation
Journal: bioRxiv (preprint)
In common: specparam (formerly FOOOF), MNE-Python, seaborn, 4 other tools, 2 references
[10] doi:10.1093/bioinformatics/btag169 [code]
Bidirectional Mamba-2 boosts EEG super-resolution via regression and diffusion.
Journal: Bioinformatics (Oxford, England)
In common: MNE-Python, pandas, SciPy, 2 other tools, physionet.org/content/eegmmidb, methods / tools, EEG

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.