A Cortico-Basal Ganglia-Thalamic Network Model Linking Intermittent Postural Control to Sway-Related Beta-Band Oscillations.
The 4 matches
- [1] § Materials and Methods › Implementation of the intermittent and forced-choice continuous-like CBGT controllers › Intermittent CBGT controller ↔ code_CBGT/Agent_intermittent.py, lines 31–160 · score 0.64 · action selection, NoGo, Firing rate, GPi, window, thalamus
- [2] § Materials and Methods › Implementation of the intermittent and forced-choice continuous-like CBGT controllers › Intermittent CBGT controller ↔ code_CBGT/Agent_continuous.py, lines 31–88 · score 0.62 · action selection, NoGo, Firing rate, GPi, window, thalamus
- [3] § Materials and Methods › Signal processing and statistical averaging ↔ code_CBGT/myfunc0829.py, lines 71–136 · score 0.59 · scipy.signal.find_peaks, chattering, offset, prominent, cycles
- [4] § Materials and Methods › Implementation of the intermittent and forced-choice continuous-like CBGT controllers › Intermittent CBGT controller ↔ code_CBGT/Agent_intermittent.py, lines 31–160 · score 0.58 · action selections, NoGo, intermittent control, S3, S2, S4
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 · 283 lines · 15 KB · Apache-2.0 · 2 matches
- """大脳皮質‐基底核回路ネットワーククラス"""
- from Neuron import LIFmodel
- from Input import PoissonNeuron
- from myfunc0829 import GetSynapsepath
- import numpy as np
- from numpy import dot
- import pickle
- from concurrent.futures import ThreadPoolExecutor
- import os
- rng = np.random.default_rng()
- def parallel_matrix_multiplication(matrices_A, matrices_B):
- """複数の行列積を並列に計算する"""
- # if len(matrices_A) != len(matrices_B):
- # raise ValueError("matrices_A and matrices_B must have the same length.") # 行列の数が違ったらエラー
- # 並列計算のための準備
- with ThreadPoolExecutor() as executor:
- futures = [executor.submit(dot, A, B) for A, B in zip(matrices_A, matrices_B)] # 並列に実行するタスクを設定
- results = [future.result() for future in futures] # 並列計算の結果を取得
- return results
- def mycauchy(w, size):
- return w * np.abs(rng.standard_cauchy(size))
- class BGmodel:
- def __init__(self, N, dt, N_in, N_state, firing_rate=100, w_lat=1.185e-2, w_S2C=7.5e-3, w_T2C=9.64e-3, w_S2G=6.5e-3, w_C2G=2.54e-3, w_S2N=1.1e-2,
- w_C2N=4.475e-3, w_STN2E=2.85e-2, w_N2E=2.6e-2, w_STN2I=5.345e-2, w_G2I=3.225e-2, w_E2I=3.25e-2, w_C2STN=2.925e-2, w_E2STN=2.085e-2,
- w_C2T=4.665e-2, w_I2T=2.875e-2, alpha=3.25, beta=-3.9, I_E=18, I_I=24, Gmax=1e-2, Gmin=3e-3, Nmax=1.7e-2, Nmin=5e-3, window=0.1, threshold=100, D=1):
- self.dt = dt # time step for simulation
- self.num_spike_1 = np.zeros(round(window/self.dt))
- self.num_spike_2 = np.zeros(round(window/self.dt))
- self.threshold = threshold # threshold for action selection
- # 外部入力配列の作成
- self.ext_inp = np.concatenate([np.zeros(1000), np.full(1000, alpha*D), np.full(1000, beta*D), np.full(1000, I_E),
- np.full(1000, I_I), np.zeros(1500)])
- # import neuron module
- self.S = PoissonNeuron(N_fire=N_in, dt=self.dt, fr=firing_rate) # 感覚入力
- self.Neurons = LIFmodel(N=N*13, dt=self.dt) # ネットワークを構成するニューロン
- """
- 0-999: Cortex
- 1000-1999: Go
- 2000-2999: NoGo
- 3000-3999: GPe
- 4000-4999: GPi
- 5000-5499: STN
- 5500-6499: Thalamus
- """
- # 結合重み行列の作成
- load = pickle.load
- synapse_path = GetSynapsepath() # シナプス行列を保存しているパスを取得
- self.l_0_def = load(open(os.path.join(synapse_path, "l_0.pickle"), 'rb'))
- self.S2C_1_def = load(open(os.path.join(synapse_path, "S2C_1.pickle"), 'rb'))
- self.S2C_2_def = load(open(os.path.join(synapse_path, "S2C_2.pickle"), 'rb'))
- self.T2C_1_def = load(open(os.path.join(synapse_path, "T2C_1.pickle"), 'rb'))
- self.T2C_2_def = load(open(os.path.join(synapse_path, "T2C_2.pickle"), 'rb'))
- self.S2G_1_def = load(open(os.path.join(synapse_path, "S2G_1.pickle"), 'rb'))
- self.S2G_2_def = load(open(os.path.join(synapse_path, "S2G_2.pickle"), 'rb'))
- self.C2G_1_def = load(open(os.path.join(synapse_path, "C2G_1.pickle"), 'rb'))
- self.C2G_2_def = load(open(os.path.join(synapse_path, "C2G_2.pickle"), 'rb'))
- self.S2N_1_def = load(open(os.path.join(synapse_path, "S2N_1.pickle"), 'rb'))
- self.S2N_2_def = load(open(os.path.join(synapse_path, "S2N_2.pickle"), 'rb'))
- self.C2N_1_def = load(open(os.path.join(synapse_path, "C2N_1.pickle"), 'rb'))
- self.C2N_2_def = load(open(os.path.join(synapse_path, "C2N_2.pickle"), 'rb'))
- self.STN2E_1_def = load(open(os.path.join(synapse_path, "STN2E_1.pickle"), 'rb'))
- self.STN2E_2_def = load(open(os.path.join(synapse_path, "STN2E_2.pickle"), 'rb'))
- self.N2E_1_def = load(open(os.path.join(synapse_path, "N2E_1.pickle"), 'rb'))
- self.N2E_2_def = load(open(os.path.join(synapse_path, "N2E_2.pickle"), 'rb'))
- self.STN2I_1_def = load(open(os.path.join(synapse_path, "STN2I_1.pickle"), 'rb'))
- self.STN2I_2_def = load(open(os.path.join(synapse_path, "STN2I_2.pickle"), 'rb'))
- self.G2I_1_def = load(open(os.path.join(synapse_path, "G2I_1.pickle"), 'rb'))
- self.G2I_2_def = load(open(os.path.join(synapse_path, "G2I_2.pickle"), 'rb'))
- self.E2I_1_def = load(open(os.path.join(synapse_path, "E2I_1.pickle"), 'rb'))
- self.E2I_2_def = load(open(os.path.join(synapse_path, "E2I_2.pickle"), 'rb'))
- self.C2STN_1_def = load(open(os.path.join(synapse_path, "C2STN_1.pickle"), 'rb'))
- self.C2STN_2_def = load(open(os.path.join(synapse_path, "C2STN_2.pickle"), 'rb'))
- self.E2STN_1_def = load(open(os.path.join(synapse_path, "E2STN_1.pickle"), 'rb'))
- self.E2STN_2_def = load(open(os.path.join(synapse_path, "E2STN_2.pickle"), 'rb'))
- self.C2T_1_def = load(open(os.path.join(synapse_path, "C2T_1.pickle"), 'rb'))
- self.C2T_2_def = load(open(os.path.join(synapse_path, "C2T_2.pickle"), 'rb'))
- self.I2T_1_def = load(open(os.path.join(synapse_path, "I2T_1.pickle"), 'rb'))
- self.I2T_2_def = load(open(os.path.join(synapse_path, "I2T_2.pickle"), 'rb'))
- # 各重み行列に係数をかける
- self.l_0 = w_lat * self.l_0_def
- self.S2C_1 = w_S2C * self.S2C_1_def
- self.S2C_2 = w_S2C * self.S2C_2_def
- self.T2C_1 = w_T2C * self.T2C_1_def
- self.T2C_2 = w_T2C * self.T2C_2_def
- self.C2G_1 = w_C2G * self.C2G_1_def
- self.C2G_2 = w_C2G * self.C2G_2_def
- self.C2N_1 = w_C2N * self.C2N_1_def
- self.C2N_2 = w_C2N * self.C2N_2_def
- self.STN2E_1 = w_STN2E * self.STN2E_1_def
- self.STN2E_2 = w_STN2E * self.STN2E_2_def
- self.N2E_1 = w_N2E * self.N2E_1_def
- self.N2E_2 = w_N2E * self.N2E_2_def
- self.STN2I_1 = w_STN2I * self.STN2I_1_def
- self.STN2I_2 = w_STN2I * self.STN2I_2_def
- self.G2I_1 = w_G2I * self.G2I_1_def
- self.G2I_2 = w_G2I * self.G2I_2_def
- self.E2I_1 = w_E2I * self.E2I_1_def
- self.E2I_2 = w_E2I * self.E2I_2_def
- self.C2STN_1 = w_C2STN * self.C2STN_1_def
- self.C2STN_2 = w_C2STN * self.C2STN_2_def
- self.E2STN_1 = w_E2STN * self.E2STN_1_def
- self.E2STN_2 = w_E2STN * self.E2STN_2_def
- self.C2T_1 = w_C2T * self.C2T_1_def
- self.C2T_2 = w_C2T * self.C2T_2_def
- self.I2T_1 = w_I2T * self.I2T_1_def
- self.I2T_2 = w_I2T * self.I2T_2_def
- # 感覚入力から線条体への重みは振子の状態によって変える
- # for the model 2 (intermittent control model) from here to line 165
- self.S2G_1 = np.empty((N_state, N, N_in))
- self.S2G_2 = np.empty((N_state, N, N_in))
- # S3 to Go Backward
- self.S2G_1[0,:,:] = Gmin * self.S2G_1_def[0,:,:]
- # S2 to Go Backward
- self.S2G_1[1,:,:] = w_S2G * self.S2G_1_def[1,:,:]
- # S4 to Go Backward
- self.S2G_1[2,:,:] = w_S2G * self.S2G_1_def[2,:,:]
- # S1 to Go Backward
- self.S2G_1[3,:,:] = Gmax * self.S2G_1_def[3,:,:]
- # S3 to Go Forward
- self.S2G_2[0,:,:] = Gmax * self.S2G_2_def[0,:,:]
- # S2 to Go Forward
- self.S2G_2[1,:,:] = w_S2G * self.S2G_2_def[1,:,:]
- # S4 to Go Forward
- self.S2G_2[2,:,:] = w_S2G * self.S2G_2_def[2,:,:]
- ## S2G_2_def[2,:,:] was originally S2G_2_def[1,:,:]
- # S1 to Go Forward
- self.S2G_2[3,:,:] = Gmin * self.S2G_2_def[3,:,:]
- self.S2N_1 = np.empty((N_state, N, N_in))
- self.S2N_2 = np.empty((N_state, N, N_in))
- # S3 to NoGo Backward
- self.S2N_1[0,:,:] = Nmax * self.S2N_1_def[0,:,:]
- # S2 to NoGo Backward
- self.S2N_1[1,:,:] = w_S2N * self.S2N_1_def[1,:,:]
- # S4 to NoGo Backward
- self.S2N_1[2,:,:] = w_S2N * self.S2N_1_def[2,:,:]
- # S1 to NoGo Backward
- self.S2N_1[3,:,:] = Nmin * self.S2N_1_def[3,:,:]
- # S3 to NoGo Forward
- self.S2N_2[0,:,:] = Nmin * self.S2N_2_def[0,:,:]
- # S2 to NoGo Forward
- self.S2N_2[1,:,:] = w_S2N * self.S2N_2_def[1,:,:]
- # S4 to NoGo Forward
- self.S2N_2[2,:,:] = w_S2N * self.S2N_2_def[2,:,:]
- # S1 to NoGo Forward
- self.S2N_2[3,:,:] = Nmax * self.S2N_2_def[3,:,:]
- ##--------------------------------------------------------------
- # # 感覚入力から線条体への重みは振子の状態によって変える
- # # for the model 1 (continuous control model) from here to line 223
- # self.S2G_1 = np.empty((N_state, N, N_in))
- # self.S2G_2 = np.empty((N_state, N, N_in))
- # # 0326 checked S3 to Go Backward
- # self.S2G_1[0,:,:] = Gmin * self.S2G_1_def[0,:,:]
- # #self.S2G_1[0,:,:] = 3.0*Gmin * self.S2G_1_def[0,:,:]
- # # 0327 checked S2 to Go Backward
- # self.S2G_1[1,:,:] = Gmin * self.S2G_1_def[1,:,:]
- # #self.S2G_1[1,:,:] = w_S2G * self.S2G_1_def[1,:,:]
- # # 0326 checked S4 to Go backward
- # self.S2G_1[2,:,:] = Gmax * self.S2G_1_def[2,:,:]
- # #self.S2G_1[2,:,:] = w_S2G * self.S2G_1_def[2,:,:]
- # # 0326 checked S1 to Go Backward
- # self.S2G_1[3,:,:] = Gmax * self.S2G_1_def[3,:,:]
- # #self.S2G_1[3,:,:] = w_S2G * self.S2G_1_def[3,:,:]
- # # 0326 checked S3 to Go Forward
- # self.S2G_2[0,:,:] = Gmax * self.S2G_2_def[0,:,:]
- # # 0327 checked S2 to Go Forward
- # self.S2G_2[1,:,:] = Gmax * self.S2G_2_def[1,:,:]
- # #self.S2G_2[1,:,:] = 1.5*w_S2G * self.S2G_2_def[1,:,:]
- # # 0326 checked S4 to Go Forward
- # self.S2G_2[2,:,:] = Gmin * self.S2G_2_def[2,:,:]
- # #self.S2G_2[2,:,:] = 1.5*w_S2G * self.S2G_2_def[2,:,:]
- # ##### S2G_2_def[2,:,:] was originally S2G_2_def[1,:,:]
- # # 0326 checked S1 to Go Forward
- # self.S2G_2[3,:,:] = Gmin * self.S2G_2_def[3,:,:]
- # #self.S2G_2[3,:,:] = 3.0*Gmin * self.S2G_2_def[3,:,:]
- # self.S2N_1 = np.empty((N_state, N, N_in))
- # self.S2N_2 = np.empty((N_state, N, N_in))
- # # S3 to NoGo Backward
- # self.S2N_1[0,:,:] = Nmax * self.S2N_1_def[0,:,:]
- # #self.S2N_1[0,:,:] = Nmax * self.S2N_1_def[0,:,:]
- # # S2 to NoGo Backward
- # self.S2N_1[1,:,:] = Nmax * self.S2N_1_def[1,:,:]
- # #self.S2N_1[1,:,:] = w_S2N * self.S2N_1_def[1,:,:]
- # # S4 to NoGo Backward
- # self.S2N_1[2,:,:] = Nmin * self.S2N_1_def[2,:,:]
- # #self.S2N_1[2,:,:] = w_S2N * self.S2N_1_def[2,:,:]
- # # S1 to NoGo Backward
- # self.S2N_1[3,:,:] = Nmin * self.S2N_1_def[3,:,:]
- # #self.S2N_1[3,:,:] = Nmin * self.S2N_1_def[3,:,:]
- # # S3 to NoGo Forward
- # self.S2N_2[0,:,:] = Nmin * self.S2N_2_def[0,:,:]
- # #self.S2N_2[0,:,:] = Nmin * self.S2N_2_def[0,:,:]
- # # S2 to NoGo Forward
- # self.S2N_2[1,:,:] = Nmin * self.S2N_2_def[1,:,:]
- # #self.S2N_2[1,:,:] = w_S2N * self.S2N_2_def[1,:,:]
- # # S4 to NoGo Forkward
- # self.S2N_2[2,:,:] = Nmax * self.S2N_2_def[2,:,:]
- # #self.S2N_2[2,:,:] = w_S2N * self.S2N_2_def[2,:,:]
- # # S1 to NoGo Forward
- # self.S2N_2[3,:,:] = Nmax * self.S2N_2_def[3,:,:]
- # #self.S2N_2[3,:,:] = Nmax * self.S2N_2_def[3,:,:]
- ## ---------------------------------------------------------------
- def initialize_states(self):
- """シナプス重みと膜電位を初期化する"""
- self.S.initialize_states()
- self.Neurons.initialize_states()
- self.num_spike_1.fill(0)
- self.num_spike_2.fill(0)
- self.spike_rate_1 = 0
- self.spike_rate_2 = 0
- def return_action(self, id_obs):
- """環境の状態を受け取り,行動を返す"""
- # 複数回使うスパイク列は呼び出し回数を減らすために変数に格納しておく
- y_S = self.S()
- C_S1 = self.Neurons.spike[0:500]
- C_S2 = self.Neurons.spike[500:1000]
- E_S1 = self.Neurons.spike[3000:3500]
- E_S2 = self.Neurons.spike[3500:4000]
- STN_S = self.Neurons.spike[5000:5500]
- # 重み行列のリスト
- matrices = [self.S2C_1, self.T2C_1, self.S2C_2, self.T2C_2, self.l_0, self.l_0.T, self.S2G_1[id_obs,:,:], self.C2G_1,
- self.S2G_2[id_obs,:,:], self.C2G_2, self.S2N_1[id_obs,:,:], self.C2N_1, self.S2N_2[id_obs,:,:], self.C2N_2,
- self.STN2E_1, self.STN2E_2, self.N2E_1, self.N2E_2, self.STN2I_1, self.STN2I_2, self.G2I_1, self.E2I_1, self.G2I_2,
- self.E2I_2, self.C2STN_1, self.C2STN_2, self.E2STN_1, self.E2STN_2, self.C2T_1, self.C2T_2, self.I2T_1, self.I2T_2]
- # スパイク列のリスト
- spikes = [y_S, self.Neurons.spike[5500:6000], y_S, self.Neurons.spike[6000:6500], C_S2, C_S1, y_S, C_S1, y_S, C_S2, y_S, C_S1, y_S, C_S2, STN_S, STN_S,
- self.Neurons.spike[2000:2500], self.Neurons.spike[2500:3000], STN_S, STN_S, self.Neurons.spike[1000:1500], E_S1, self.Neurons.spike[1500:2000],
- E_S2, C_S1, C_S2, E_S1, E_S2, C_S1, C_S2, self.Neurons.spike[4000:4500], self.Neurons.spike[4500:5000]]
- # 並列計算する
- result = parallel_matrix_multiplication(matrices, spikes)
- # 興奮性入力配列の作成
- ex = np.concatenate([result[0]+result[1], result[2]+result[3], result[6]+result[7], result[8]+result[9], result[10]+result[11], result[12]+result[13],
- result[14], result[15], result[18], result[19], result[24]+result[25], result[28], result[29]], 0)
- # 抑制性入力配列の作成
- inh = np.concatenate([result[4], result[5], np.zeros(2000), result[16], result[17], result[20]+result[21], result[22]+result[23],
- result[26]+result[27], result[30], result[31]], 0)
- # 膜電位を変化させる
- self.Neurons(ex=ex, inh=inh, ext_inp=self.ext_inp)
- # 発火率の計算と更新
- self.num_spike_1 = np.concatenate((self.num_spike_1[1:], [np.mean(self.Neurons.spike[0:500])/self.dt]))
- self.num_spike_2 = np.concatenate((self.num_spike_2[1:], [np.mean(self.Neurons.spike[500:1000])/self.dt]))
- self.spike_rate_1 = np.mean(self.num_spike_1)
- self.spike_rate_2 = np.mean(self.num_spike_2)
- return np.argmax([self.spike_rate_1, self.threshold, self.spike_rate_2])
Agent_intermittent.py at commit 2f7bb40, under Apache-2.0 · at the source
Overview
- Graduate School of Engineering Science, The University of Osaka, Osaka 560-8531, Japan
- Graduate School of Informatics, Kyoto University, Kyoto 606-8501, Japan
Abstract
Electroencephalographic (EEG) studies of human quiet stance demonstrate beta-band event-related desynchronization (beta-ERD) during the micro-fall phase of postural sway, followed by event-related synchronization (beta-ERS; post-movement beta rebound) during the micro-recovery phase. These modulations correlate with intermittent ankle muscle inactivation that exploits the stable manifolds of an unstable upright equilibrium; however, how such sway-related beta dynamics arise within closed-loop brain–body interactions remains unclear. Here, we investigated a possible circuit-level account of these dynamics using an embodied spiking neural network model of the cortico-basal ganglia-thalamic (CBGT) circuitry integrated with an inverted pendulum. In this closed-loop system, continuous sensory feedback is integrated into the striatum, while the motor cortex executes decisions via drift-diffusion-like population competition, where decision time (DT) represents the intermittent control-off period. We demonstrate that simulated cortical LFPs exhibit characteristic sway-phase-locked beta-ERD and beta-ERS when corticostriatal synaptic weights are functionally balanced to implement intermittent control. Conversely, a forced-choice continuous-like regime that ceaselessly generates feedback torque fails to replicate these modulations, sustaining flat network states devoid of control-off periods (DT). Structural dissections show that, within the model, disrupting bidirectional thalamocortical loops or the GPe–STN circuit abolishes sway-phase-locked beta modulation, despite continuous sensory drive. Our findings provide a computational account linking sway-phase-locked beta activity to intermittent motor selection within the proposed CBGT framework. This closed-loop modeling framework offers a testable candidate account for how alterations in brain–body dynamics may jointly affect behavioral intermittency and beta-band modulation, with potential relevance to postural impairments in Parkinson's disease.
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 4 matches between paragraphs and lines of code.
nomura-taishin/cbgt-intermittent-postural-control
2f7bb402749e2d92683be317729bf91842aa3463, 2 September 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
12 files
- code_CBGT/
Agent_continuous.py , Python, 283 lines, 1 match - code_CBGT/
Agent_intermittent.py , Python, 283 lines, 2 matches - code_CBGT/
ERSP.py , Python, 151 lines - code_CBGT/
Environment.py , Python, 50 lines - code_CBGT/
Experiment1_continuous.p , Python, 178 linesy - code_CBGT/
Experiment1_intermittent , Python, 178 lines.py - code_CBGT/
Input.py , Python, 17 lines - code_CBGT/
MakeSynapsearray_v2.py , Python, 128 lines - code_CBGT/
Neuron.py , Python, 65 lines - code_CBGT/
myfunc0829.py , Python, 235 lines, 1 match - LICENSE, License, 201 lines
- README.md, Text, 115 lines
Code accessibility
The custom computer code and algorithms generated during the current study are publicly available in the GitHub repository (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
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;
- 10 scripts, each with its path and the digest of its content;
- 4 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
No dataset and no data link were found in the paper.
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, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 6 keywords, 9 MeSH terms, 1 funder, 64 references.
Cite
This paper
Tsugaya, S., Nakamura, A., & Nomura, T. (2026). A Cortico-Basal Ganglia-Thalamic Network Model Linking Intermittent Postural Control to Sway-Related Beta-Band Oscillations. eNeuro, 13(9), ENEURO.0283-26.2026. https://
BibTeX
@article{tsugaya2026cort
author = {Tsugaya, Shota and Nakamura, Akihiro and Nomura, Taishin},
title = {{A Cortico-Basal Ganglia-Thalamic Network Model Linking Intermittent Postural Control to Sway-Related Beta-Band Oscillations}},
journal = {eNeuro},
year = {2026},
month = sep,
volume = {13},
number = {9},
pages = {ENEURO.0283--26.2026},
publisher = {Society for Neuroscience},
issn = {2373-2822},
doi = {10.1523/
url = {https://
pmid = {42697731},
pmcid = {PMC13592803}
}
RIS
TY - JOUR
AU - Tsugaya, Shota
AU - Nakamura, Akihiro
AU - Nomura, Taishin
TI - A Cortico-Basal Ganglia-Thalamic Network Model Linking Intermittent Postural Control to Sway-Related Beta-Band Oscillations
T2 - eNeuro
J2 - eNeuro
PY - 2026
DA - 2026/
VL - 13
IS - 9
SP - ENEURO.0283
EP - 26.2026
SN - 2373-2822
PB - Society for Neuroscience
DO - 10.1523/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1523/
"type": "article-journal",
"title": "A Cortico-Basal Ganglia-Thalamic Network Model Linking Intermittent Postural Control to Sway-Related Beta-Band Oscillations",
"container-title": "eNeuro",
"author": [
{
"family": "Tsugaya",
"given": "Shota"
},
{
"family": "Nakamura",
"given": "Akihiro"
},
{
"family": "Nomura",
"given": "Taishin"
}
],
"container-title-short":
"volume": "13",
"issue": "9",
"page": "ENEURO.0283-26.2026",
"DOI": "10.1523/
"PMID": "42697731",
"PMCID": "PMC13592803",
"ISSN": "2373-2822",
"publisher": "Society for Neuroscience",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
18
]
]
}
}
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.1371/journal.pcbi.1013942 [code]
- Reconciling contradictory models of subthalamic nucleus contributions to basal ganglia beta oscillations.Journal: PLoS computational biologyIn common: SciPy, Matplotlib, NumPy, computational, Parkinson's, EEG, 6 references
- [2] doi:10.1016/j.ebiom.2026.106418 [code]
- Corticostriatal glutamate mechanisms underlying beta synchrony and motor deficits via striatal NMDA receptors in Parkinson's disease.Journal: EBioMedicineIn common: SciPy, Matplotlib, NumPy, Parkinson's, EEG, 3 references
- [3] doi:10.1093/braincomms/fcag245 [code]
- Reduced pre-movement subthalamic beta desynchronization marks motor deficit in Parkinson's disease.Journal: Brain communicationsIn common: Parkinson's, 4 references
- [4] doi:10.1016/j.ebiom.2026.106293 [code]
- Dynamic neural states underpin motor symptom severity in Parkinson's disease: a longitudinal analysis of chronic cortico-subthalamic nucleus recordings.Journal: EBioMedicineIn common: SciPy, Matplotlib, NumPy, Parkinson's, 2 references
- [5] doi:10.1093/braincomms/fcag043 [code]
- Linking movement-related beta oscillations to cortical excitability, structural damage, and fatigue in multiple sclerosis.Journal: Brain communicationsIn common: EEG, 4 references
- [6] doi:10.3389/fncom.2026.1786996 [code]
- Schumann-anchored golden ratio organization of human neural oscillations.Journal: Frontiers in computational neuroscienceIn common: SciPy, Matplotlib, NumPy, EEG, 2 references
- [7] doi:10.1016/j.xcrm.2026.103001
- Cortical-to-pallidal beta cascade underlies network pathophysiology in Parkinson's disease.Journal: Cell reports. MedicineIn common: Parkinson's, 3 references
- [8] doi:10.1038/s41467-026-73553-8 [code]
- Universal rhythmic architecture uncovers two modes of neural dynamics.Journal: Nature communicationsIn common: SciPy, Matplotlib, NumPy, EEG, 2 references
- [9] doi:10.1371/journal.pcbi.1012966 [code]
- How the dynamic interplay of cortico-basal ganglia-thalamic pathways shapes the time course of deliberation and commitment.Journal: PLoS computational biologyIn common: SciPy, Matplotlib, NumPy, 2 references
- [10] doi:10.1186/s12984-026-02041-3 [code]
- Mental tasks induce common modulations of oscillations in cortex and spinal cord.Journal: Journal of neuroengineering and rehabilitationIn common: Matplotlib, EEG, 3 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.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 10 scripts, and 4 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:1884b23d0d343726…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
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.
