Cortico-pallidal beta dynamics underlie impaired turning in Parkinson's disease.
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 · 117 lines · 5.4 KB · no license
- close all
- clear all
- clc
- %% Testing datasets
- % This code has been tested with a set of datasets under
- % ~/Box/UCSF-RCS_Test_Datasets_Analysis-rcs-data-Code/../Power/...
- % Access to this folder is managed and restricted to UCSF employees under
- % (https://ucsf.box.com/s/bolhachjv80rhywa5h0r9peo73mz3003)
- %
- % This example code can be run with a benchotp dataset that is shared for any user under
- % https://ucsf.box.com/s/9bte1t8s4il7rr0ot4egwsae1exl5y7i
- %% This code assumes you have run ProcessRCS and/or DEMO_LoadRCS.m
- % Select file
- [fileName,pathName] = uigetfile('AllDataTables.mat');
- % Load file
- disp('Loading selected .mat file')
- load([pathName fileName])
- % Create unified table with selected data streams -- use timeDomain data as
- % time base
- dataStreams = {timeDomainData, AccelData, PowerData, FFTData, AdaptiveData};
- [combinedDataTable] = createCombinedTable(dataStreams,unifiedDerivedTimes,metaData);
- %% Example how to compare streamed power from device and 'off line' calculated power, given
- % - predefined fftSettings
- % - predefined powerSettings
- % Comparing 'off line' power data with the RCS streamed for default fft and power settings
- if ~isempty(powerSettings)
- % Here we get the power calculated 'off-line' using the time domain
- % for each power channel that have been streamed
- [combinedPowerTable, powerTablesBySetting] = getPowerFromTimeDomain(combinedDataTable,fftSettings, powerSettings, metaData,2);
- idxPowerCalc = ~isnan(combinedPowerTable.Power_Band1);
- idxPowerRCS = ~isnan(combinedDataTable.Power_Band1);
- % plot the result, comparing actual Streamed power with 'off line'
- figure, hold on, legend show, set(gca,'FontSize',20)
- title('RC+S band power: on-board vs off-line comparison')
- plot(combinedDataTable.localTime(idxPowerRCS),...
- combinedDataTable.(['Power_Band',num2str(1)])(idxPowerRCS),...
- 'Marker','*','MarkerSize',1,'Linewidth',1,...
- 'DisplayName',['on-board, band(Hz) = ',powerSettings.powerBands(1).powerBinsInHz{1}])
- % plot(combinedPowerTable.localTime(idxPowerCalc),...
- % combinedPowerTable.(['Power_Band',num2str(1)])(idxPowerCalc),...
- % 'Marker','o','MarkerSize',5,'LineWidth',2,...
- % 'DisplayName',['Calculated Power Band, Bins(Hz) = ',powerSettings.powerBands(1).powerBinsInHz{1}])
- % Here we calculate equivalent power series from a selected
- % time domain channel (1, 2, 3 or 4) for a chosen power band [X,Y]Hz
- [newPowerFromTimeDomain, newSettings] = calculateNewPower(combinedDataTable, fftSettings, powerSettings, metaData, 1, [8 12.2]);
- idxPowerNewCalc = ~isnan(newPowerFromTimeDomain.calculatedPower);
- % plot the result
- plot(newPowerFromTimeDomain.localTime(idxPowerNewCalc),...
- newPowerFromTimeDomain.calculatedPower(idxPowerNewCalc),...
- 'Marker','o','MarkerSize',1,'LineWidth',2,...
- 'DisplayName',['off-line, band(Hz) = ',newSettings.powerSettings.powerBands.powerBinsInHz])
- ylabel('Power (millivolts^2)')
- end
- %% Example how to create a power output just based on time domain signal and desired fft and power settings, e.g.
- % provided power was not sense and/or streame and/or you want to define
- % power band limits given a different fftSize than default used during recording session
- % Reset powerSettings to avoid table
- powerSettings = [];
- newfftSettings = fftSettings;
- % take default sampling rate - a must
- currentTDsampleRate = fftSettings.TDsampleRates;
- % Choose new fft parameters and frequency band between these options
- % fft interval: 50 to 50000 ms
- % fft size: 64, 256, 1024
- % windowLoad ('100% Hann', '50% Hann', '25% Hann')
- % freqBand:[0 to samplingRate/2]
- newfftSettings.fftConfig.interval = 50;
- newfftSettings.fftConfig.size = 256;
- newfftSettings.fftConfig.windowLoad = '100% Hann';
- freqBand = [20, 23];
- % Determine fftBins
- numBins = newfftSettings.fftConfig.size/2;
- binWidth = (currentTDsampleRate/2)/numBins;
- lowerBins = (0:numBins-1)*binWidth;
- fftBins = lowerBins + binWidth/2; % Bin center
- % Create a powerSettings structure based on chosen parameters
- powerSettings.fftConfig.interval = newfftSettings.fftConfig.interval;
- powerSettings.fftConfig.size = newfftSettings.fftConfig.size;
- powerSettings.powerBands.fftBins = fftBins;
- % Determine indeces of frquency bins corresponsing and add to power settings structure
- idxBinsA = find(powerSettings.powerBands.fftBins>freqBand(1));
- idxBinsB = find(powerSettings.powerBands.fftBins<freqBand(2));
- powerSettings.powerBands.indices_BandStart_BandStop(1,1) = idxBinsA(1);
- powerSettings.powerBands.indices_BandStart_BandStop(1,2) = idxBinsB(end);
- % Calculate equivalent device power given the new fft and power settings
- [newPower, newSettings] = calculateNewPower(combinedDataTable, newfftSettings, powerSettings, metaData, 1, freqBand);
- idxPowerNewCalc = ~isnan(newPower.calculatedPower);
- % Plot the results
- % figure, hold on, legend show, set(gca,'FontSize',15)
- plot(newPower.localTime(idxPowerNewCalc),...
- newPower.calculatedPower(idxPowerNewCalc),...
- 'Marker','s','MarkerSize',1,'LineWidth',2,...
- 'DisplayName',['off-line, band(Hz) = ',newSettings.powerSettings.powerBands.powerBinsInHz])
- % END: remember this are only examples of use
- % If you find errors while using this code or want to help further develop
- % it, feel free to contact [email hidden] or [email hidden]
DEMO_CalculatePowerRCS.m at commit e04baae, no license · at the source
Overview
- Department of Neurological Surgery, University of California,San Francisco, CA USA
- Department of Physical Therapy and Rehabilitation Science, University of California,San Francisco, CA USA
Abstract
Turning while walking is one of the most common yet complex human movements, and it is frequently impaired in Parkinson’s disease (PD), leading to falls and loss of independence. The neural mechanisms underlying this difficulty remain unclear. Using chronically implanted devices that simultaneously record and stimulate the brain, we repeatedly measured activity in the motor cortex and basal ganglia of five individuals with PD during natural walking and turning. Successful turns were marked by reduced beta-band activity and flexible communication between cortical and pallidal regions, whereas impaired turns showed excessive beta synchrony that rigidly constrained movement. Medication and deep brain stimulation improved turning through distinct circuit mechanisms, dopamine suppressing abnormal pallidal beta activity and its communication with the cortex, and stimulation restoring cortical flexibility. These findings reveal how dynamic cortical–basal ganglia interactions may enable complex movement and establish circuit targets for adaptive brain stimulation to reduce falls in PD.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above.
openmind-consortium/Analysis-rcs-data
e04baae07f56f73d265daa1d0f1b887607930dd2, 22 January 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
157 files
- code/
DEMO_CalculatePowerRCS.m , MATLAB, 117 lines - code/
DEMO_LoadDebugTable.m , MATLAB, 47 lines - code/
DEMO_LoadRCS.m , MATLAB, 15 lines - code/
ProcessRCS.m , MATLAB, 529 lines - code/
addNewEntry_FFTSettings. , MATLAB, 32 linesm - code/
addNewEntry_PowerDomainS , MATLAB, 42 linesettings.m - code/
addNewEntry_StimSettings , MATLAB, 25 lines.m - code/
addNewEntry_TimeDomainSe , MATLAB, 24 linesttings.m - code/
addRowToTable.m , MATLAB, 14 lines - code/
assignTime.m , MATLAB, 461 lines - code/
calculateDeltaSystemTick , MATLAB, 9 lines.m - code/
calculateNewPower.m , MATLAB, 135 lines - code/
convertDetectorCodes.m , MATLAB, 27 lines - code/
convertFFTCodes.m , MATLAB, 76 lines - code/
convertMetadataCodes.m , MATLAB, 133 lines - code/
convertTDcodes.m , MATLAB, 164 lines - code/
convertTherapyStatus.m , MATLAB, 22 lines - code/
createAccelTable.m , MATLAB, 51 lines - code/
createAdaptiveSettingsfr , MATLAB, 272 linesomDeviceSettings.m - code/
createAdaptiveTable.m , MATLAB, 106 lines - code/
createCombinedTable.m , MATLAB, 179 lines - code/
createCombinedTable_debu , MATLAB, 110 linesgTable.m - code/
createDataTableWithMulti , MATLAB, 83 linespleSamplingRates.m - code/
createDeviceSettingsTabl , MATLAB, 502 linese.m - code/
createEventLogTable.m , MATLAB, 29 lines - code/
createFFTtable.m , MATLAB, 46 lines - code/
createPowerTable.m , MATLAB, 100 lines - code/
createStimSettingsFromDe , MATLAB, 164 linesviceSettings.m - code/
createStimSettingsTable. , MATLAB, 173 linesm - code/
createTableFromSparseMat , MATLAB, 10 linesrix.m - code/
createTimeDomainTable.m , MATLAB, 67 lines - code/
deserializeJSON.m , MATLAB, 35 lines - code/
fixMalformedJson.m , MATLAB, 49 lines - code/
getActualAmplifierGains. , MATLAB, 36 linesm - code/
getFFTparameters.m , MATLAB, 33 lines - code/
getPowerBands.m , MATLAB, 70 lines - code/
getPowerFromTimeDomain.m , MATLAB, 153 lines - code/
getSampleRate.m , MATLAB, 38 lines - code/
getSampleRateAcc.m , MATLAB, 22 lines - code/
getStimParameters.m , MATLAB, 53 lines - code/
hannWindow.m , MATLAB, 41 lines - code/
harmonizeTimeAcrossDataS , MATLAB, 68 linestreams.m - code/
rcsPlotter.m , MATLAB, 3,025 lines - code/
rcs_anonymize.m , MATLAB, 171 lines - code/
toolboxes/ , MATLAB, 130 linespanel-2.14/ demo/ demopanel1.m - code/
toolboxes/ , MATLAB, 64 linespanel-2.14/ demo/ demopanel2.m - code/
toolboxes/ , MATLAB, 106 linespanel-2.14/ demo/ demopanel3.m - code/
toolboxes/ , MATLAB, 59 linespanel-2.14/ demo/ demopanel4.m - code/
toolboxes/ , MATLAB, 74 linespanel-2.14/ demo/ demopanel5.m - code/
toolboxes/ , MATLAB, 82 linespanel-2.14/ demo/ demopanel6.m - code/
toolboxes/ , MATLAB, 35 linespanel-2.14/ demo/ demopanel7.m - code/
toolboxes/ , MATLAB, 40 linespanel-2.14/ demo/ demopanel8.m - code/
toolboxes/ , MATLAB, 201 linespanel-2.14/ demo/ demopanel9.m - code/
toolboxes/ , MATLAB, 128 linespanel-2.14/ demo/ demopanelA.m - code/
toolboxes/ , MATLAB, 42 linespanel-2.14/ demo/ demopanelB.m - code/
toolboxes/ , MATLAB, 34 linespanel-2.14/ demo/ demopanelC.m - code/
toolboxes/ , MATLAB, 55 linespanel-2.14/ demo/ demopanelD.m - code/
toolboxes/ , MATLAB, 73 linespanel-2.14/ demo/ demopanelE.m - code/
toolboxes/ , MATLAB, 49 linespanel-2.14/ demo/ demopanelF.m - code/
toolboxes/ , MATLAB, 50 linespanel-2.14/ demo/ demopanelG.m - code/
toolboxes/ , MATLAB, 38 linespanel-2.14/ demo/ demopanelH.m - code/
toolboxes/ , MATLAB, 98 linespanel-2.14/ demo/ demopanelI.m - code/
toolboxes/ , MATLAB, 39 linespanel-2.14/ demo/ demopanelJ.m - code/
toolboxes/ , MATLAB, 103 linespanel-2.14/ demo/ demopanelK.m - code/
toolboxes/ , MATLAB, 25 linespanel-2.14/ demo/ demopanel_callback.m - code/
toolboxes/ , MATLAB, 80 linespanel-2.14/ demo/ demopanel_minihist.m - code/
toolboxes/ , MATLAB, 5,201 linespanel-2.14/ panel.m - code/
toolboxes/ , MATLAB, 29 linesturtle_json/ src/ +json/ +objs/ +token/ +object/ mex_object_info.m - code/
toolboxes/ , MATLAB, 171 linesturtle_json/ src/ +json/ +objs/ +token/ @array/ array.m - code/
toolboxes/ , MATLAB, 212 linesturtle_json/ src/ +json/ +objs/ +token/ @object/ object.m - code/
toolboxes/ , MATLAB, 90 linesturtle_json/ src/ +json/ +objs/ +token/ parsing_info.m - code/
toolboxes/ , MATLAB, 186 linesturtle_json/ src/ +json/ +objs/ @dict/ dict.m - code/
toolboxes/ , MATLAB, 13 linesturtle_json/ src/ +json/ +objs/ @json_parse_error/ json_parse_error.m - code/
toolboxes/ , MATLAB, 274 linesturtle_json/ src/ +json/ +objs/ @lazy_dict/ lazy_dict.m - code/
toolboxes/ , MATLAB, 131 linesturtle_json/ src/ +json/ +objs/ @token/ token.m - code/
toolboxes/ , MATLAB, 121 linesturtle_json/ src/ +json/ +sl/ +cellstr/ contains.m - code/
toolboxes/ , MATLAB, 77 linesturtle_json/ src/ +json/ +sl/ +cellstr/ join.m - code/
toolboxes/ , MATLAB, 41 linesturtle_json/ src/ +json/ +sl/ +dir/ filepartsx.m - code/
toolboxes/ , MATLAB, 24 linesturtle_json/ src/ +json/ +sl/ +in/ NULL.m - code/
toolboxes/ , MATLAB, 214 linesturtle_json/ src/ +json/ +sl/ +in/ processVarargin.m - code/
toolboxes/ , MATLAB, 130 linesturtle_json/ src/ +json/ +sl/ +in/ process_varargin_result. m - code/
toolboxes/ , MATLAB, 78 linesturtle_json/ src/ +json/ +sl/ +in/ propValuePairsToStruct.m - code/
toolboxes/ , MATLAB, 81 linesturtle_json/ src/ +json/ +sl/ +stack/ getMyBasePath.m - code/
toolboxes/ , MATLAB, 30 linesturtle_json/ src/ +json/ +sl/ +stack/ getPackageRoot.m - code/
toolboxes/ , MATLAB, 82 linesturtle_json/ src/ +json/ +sl/ +str/ contains.m - code/
toolboxes/ , MATLAB, 348 linesturtle_json/ src/ +json/ +utils/ @examples/ examples.m - code/
toolboxes/ , MATLAB, 43 linesturtle_json/ src/ +json/ +utils/ @to_data_mex/ to_data_mex.m - code/
toolboxes/ , MATLAB, 13 linesturtle_json/ src/ +json/ +utils/ addBuffer.m - code/
toolboxes/ , MATLAB, 64 linesturtle_json/ src/ +json/ +utils/ getPerformanceLog.m - code/
toolboxes/ , C, 104 linesturtle_json/ src/ +json/ +utils/ private/ tj_get_log_struct_as_mx. c - code/
toolboxes/ , C, 139 linesturtle_json/ src/ +json/ +utils/ setField.c - code/
toolboxes/ , MATLAB, 27 linesturtle_json/ src/ +json/ +utils/ setField.m - code/
toolboxes/ , MATLAB, 102 linesturtle_json/ src/ +json/ +utils/ time_averager.m - code/
toolboxes/ , MATLAB, 142 linesturtle_json/ src/ +json/ load.m - code/
toolboxes/ , MATLAB, 35 linesturtle_json/ src/ +json/ loadExample.m - code/
toolboxes/ , MATLAB, 47 linesturtle_json/ src/ +json/ parse.m - code/
toolboxes/ , MATLAB, 67 linesturtle_json/ src/ +json/ private/ label_generator.m - code/
toolboxes/ , MATLAB, 82 linesturtle_json/ src/ +json/ tokens.m - code/
toolboxes/ , C/C++, 15 linesturtle_json/ src/ c_code/ error_handling.h - code/
toolboxes/ , C, 821 linesturtle_json/ src/ c_code/ json_info_to_data.c - code/
toolboxes/ , C/C++, 83 linesturtle_json/ src/ c_code/ json_info_to_data.h - code/
toolboxes/ , C, 904 linesturtle_json/ src/ c_code/ json_info_to_data__array s.c - code/
toolboxes/ , C, 142 linesturtle_json/ src/ c_code/ json_info_to_data__objec ts.c - code/
toolboxes/ , C, 81 linesturtle_json/ src/ c_code/ json_info_to_data__optio n_handling.c - code/
toolboxes/ , C, 168 linesturtle_json/ src/ c_code/ json_info_to_data__utils .c - code/
toolboxes/ , MATLAB, 175 linesturtle_json/ src/ c_code/ mex_turtle_json.m - code/
toolboxes/ , C, 51 linesturtle_json/ src/ c_code/ not_current_used/ array_writer.c - code/
toolboxes/ , C, 45 linesturtle_json/ src/ c_code/ not_current_used/ init_memory_test.c - code/
toolboxes/ , C, 6 linesturtle_json/ src/ c_code/ not_current_used/ print_test.c - code/
toolboxes/ , C, 92 linesturtle_json/ src/ c_code/ not_current_used/ string_compare_test.c - code/
toolboxes/ , C, 42 linesturtle_json/ src/ c_code/ not_current_used/ string_count_testing.c - code/
toolboxes/ , C, 40 linesturtle_json/ src/ c_code/ not_current_used/ struct_test.c - code/
toolboxes/ , C++, 126 linesturtle_json/ src/ c_code/ printmem.cpp - code/
toolboxes/ , MATLAB, 36 linesturtle_json/ src/ c_code/ private/ prepStructs.m - code/
toolboxes/ , C/C++, 251 linesturtle_json/ src/ c_code/ simd_guard.h - code/
toolboxes/ , C/C++, 399 linesturtle_json/ src/ c_code/ turtle_json.h - code/
toolboxes/ , C, 964 linesturtle_json/ src/ c_code/ turtle_json_main.c - code/
toolboxes/ , C/C++, 156 linesturtle_json/ src/ c_code/ turtle_json_memory.h - code/
toolboxes/ , C, 605 linesturtle_json/ src/ c_code/ turtle_json_mex.c - code/
toolboxes/ , C, 112 linesturtle_json/ src/ c_code/ turtle_json_mex_helpers. c - code/
toolboxes/ , C, 320 linesturtle_json/ src/ c_code/ turtle_json_number_parsi ng.c - code/
toolboxes/ , C, 997 linesturtle_json/ src/ c_code/ turtle_json_post_process .c - code/
toolboxes/ , C, 366 linesturtle_json/ src/ c_code/ turtle_json_pp_objects.c - code/
toolboxes/ , C, 7 linesturtle_json/ src/ c_code/ turtle_json_write.c - code/
toolboxes/ , MATLAB, 145 linesturtle_json/ src/ c_code/ turtle_json_write_v0.m - code/
toolboxes/ , MATLAB, 244 linesturtle_json/ src/ c_code/ write_state.m - code/
toolboxes/ , MATLAB, 34 linesturtle_json/ src/ test_code/ +json_tests/ +performance/ numeric_array_length.m - code/
toolboxes/ , MATLAB, 16 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ +functions/ all_tests.m - code/
toolboxes/ , MATLAB, 42 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ +functions/ f2__get_key_value_type_a nd_index.m - code/
toolboxes/ , MATLAB, 180 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ +functions/ f7__full_options_parse.m - code/
toolboxes/ , MATLAB, 23 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ all_data_tests.m - code/
toolboxes/ , MATLAB, 8 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ array_token_tests.m - code/
toolboxes/ , MATLAB, 22 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ logical_array_tests.m - code/
toolboxes/ , MATLAB, 53 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ mixed_array_tests.m - code/
toolboxes/ , MATLAB, 66 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ numeric_array_tests.m - code/
toolboxes/ , MATLAB, 10 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ object_tests.m - code/
toolboxes/ , MATLAB, 36 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ parse_options_tests.m - code/
toolboxes/ , MATLAB, 50 linesturtle_json/ src/ test_code/ +json_tests/ +toData/ string_array_tests.m - code/
toolboxes/ , MATLAB, 22 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ all_token_tests.m - code/
toolboxes/ , MATLAB, 48 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ array_tests.m - code/
toolboxes/ , MATLAB, 50 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ error_coverage.m - code/
toolboxes/ , MATLAB, 123 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ input_options_testing.m - code/
toolboxes/ , MATLAB, 34 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ number_tests.m - code/
toolboxes/ , MATLAB, 71 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ object_tests.m - code/
toolboxes/ , MATLAB, 46 linesturtle_json/ src/ test_code/ +json_tests/ +toTokens/ string_tests.m - code/
toolboxes/ , MATLAB, 21 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ encodeJSON.m - code/
toolboxes/ , MATLAB, 12 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ permuter.m - code/
toolboxes/ , MATLAB, 87 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ runTest.m - code/
toolboxes/ , MATLAB, 31 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ testExample.m - code/
toolboxes/ , MATLAB, 157 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ time_example_file.m - code/
toolboxes/ , MATLAB, 23 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ tokenErrorTest.m - code/
toolboxes/ , MATLAB, 15 linesturtle_json/ src/ test_code/ +json_tests/ +utils/ tokenPassTest.m - code/
toolboxes/ , MATLAB, 15 linesturtle_json/ src/ test_code/ +json_tests/ all_tests.m - code/
toolboxes/ , MATLAB, 107 linesturtle_json/ src/ test_code/ +json_tests/ json_checker.m - code/
toolboxes/ , C, 112 linesturtle_json/ src/ test_code/ +json_tests/ temp_parse_one_dot_json. c - testDataSets/
Benchtop/ , MATLAB, 15 linesSimultaneous_RCS_and_DAQ / read_NI_DAQ_dataset.m - README.md, Text, 652 lines
Code availability
The MATLAB and Python scripts used in this study can be made available upon reasonable request to the corresponding author.
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;
- 156 scripts, each with its path and the digest of its content;
- no match between paragraphs and code yet;
- 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.
Data availability
The data, MATLAB, and Python scripts used in this study can be made available upon reasonable request to the corresponding author. All patient confidentiality and disclosure standards must be adhered to.
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, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 9 authors, 2 keywords, 5 funders, 70 references.
Cite
This paper
Shukla, P. D., Bath, J. E., Louie, K. H., Fekri Azgomi, H., Ramesh, R., Patelaki, E., Marks, J. H., Balakid, J. P., & Wang, D. D. (2026). Cortico-pallidal beta dynamics underlie impaired turning in Parkinson's disease. NPJ Parkinson's disease, 12(1), 219. https://
BibTeX
@article{shukla2026corti
author = {Shukla, Poojan D. and Bath, Jessica E. and Louie, Kenneth H. and Fekri Azgomi, Hamid and Ramesh, Rithvik and Patelaki, Eleni and Marks, Jacob H. and Balakid, Jannine P. and Wang, Doris D.},
title = {{Cortico-pallidal beta dynamics underlie impaired turning in Parkinson's disease}},
journal = {NPJ Parkinson's disease},
year = {2026},
month = jun,
volume = {12},
number = {1},
pages = {219},
publisher = {Nature Publishing Group},
issn = {2373-8057},
doi = {10.1038/
url = {https://
pmid = {42251056},
pmcid = {PMC13575165}
}
RIS
TY - JOUR
AU - Shukla, Poojan D.
AU - Bath, Jessica E.
AU - Louie, Kenneth H.
AU - Fekri Azgomi, Hamid
AU - Ramesh, Rithvik
AU - Patelaki, Eleni
AU - Marks, Jacob H.
AU - Balakid, Jannine P.
AU - Wang, Doris D.
TI - Cortico-pallidal beta dynamics underlie impaired turning in Parkinson's disease
T2 - NPJ Parkinson's disease
J2 - NPJ Parkinsons Dis
PY - 2026
DA - 2026/
VL - 12
IS - 1
SP - 219
SN - 2373-8057
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Cortico-pallidal beta dynamics underlie impaired turning in Parkinson's disease",
"container-title": "NPJ Parkinson's disease",
"author": [
{
"family": "Shukla",
"given": "Poojan D."
},
{
"family": "Bath",
"given": "Jessica E."
},
{
"family": "Louie",
"given": "Kenneth H."
},
{
"family": "Fekri Azgomi",
"given": "Hamid"
},
{
"family": "Ramesh",
"given": "Rithvik"
},
{
"family": "Patelaki",
"given": "Eleni"
},
{
"family": "Marks",
"given": "Jacob H."
},
{
"family": "Balakid",
"given": "Jannine P."
},
{
"family": "Wang",
"given": "Doris D."
}
],
"container-title-short":
"volume": "12",
"issue": "1",
"page": "219",
"DOI": "10.1038/
"PMID": "42251056",
"PMCID": "PMC13575165",
"ISSN": "2373-8057",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
6
]
]
}
}
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.1038/s41591-026-04434-2 [code]
- Adaptive deep brain stimulation for dynamic gait control in Parkinson's disease: a randomized feasibility trial.Journal: Nature medicineIn common: Image Processing Toolbox, Signal Processing Toolbox, Statistics and Machine Learning Toolbox, Parkinson's, 6 references
- [2] doi:10.1038/s41591-026-04432-4 [code]
- Activity-dependent adaptive deep brain stimulation improves gait in Parkinson's disease.Journal: Nature medicineIn common: Parkinson's, 8 references
- [3] 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, 7 references
- [4] doi:10.1093/brain/awaf466 [code]
- Cortico-basal oscillations index naturalistic movements during deep brain stimulation.Journal: Brain : a journal of neurologyIn common: Parkinson's, systems, 5 references
- [5] doi:10.1016/j.isci.2026.115375 [code]
- Bursts of regional cortical inhibition during smartphone use.Journal: iScienceIn common: Signal Processing Toolbox, Statistics and Machine Learning Toolbox, 4 references
- [6] doi:10.1002/ana.78206 [code]
- Multimodal Image Guidance in Subthalamic Deep Brain Stimulation for Parkinson's Disease.Journal: Annals of neurologyIn common: Image Processing Toolbox, Signal Processing Toolbox, Statistics and Machine Learning Toolbox, Parkinson's, 2 references
- [7] doi:10.1371/journal.pbio.3003635 [code]
- A cortico-subthalamic circuit rapidly engages and releases inhibition of specific movements depending on the environmental context.Journal: PLoS biologyIn common: Image Processing Toolbox, Signal Processing Toolbox, Statistics and Machine Learning Toolbox, systems, 2 references
- [8] doi:10.1093/braincomms/fcag245 [code]
- Reduced pre-movement subthalamic beta desynchronization marks motor deficit in Parkinson's disease.Journal: Brain communicationsIn common: Signal Processing Toolbox, Statistics and Machine Learning Toolbox, Parkinson's, systems, 2 references
- [9] 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: Parkinson's, 4 references
- [10] doi:10.1038/s41531-026-01439-z [code]
- DBSsync: combining intracranial and multimodal data to investigate new biomarkers in Parkinson's disease.Journal: NPJ Parkinson's diseaseIn common: Signal Processing Toolbox, Statistics and Machine Learning Toolbox, Parkinson's, 2 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, 156 scripts, and 0 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:a6c9d863b80e0ab2…
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.
