OSCR

Mental tasks induce common modulations of oscillations in cortex and spinal cord.

Code ↔ Paper

The paper beside its authors' code: matches between them have not been computed for this paper yet.

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

C/C++ header · 314 lines · 11 KB · GPL-3.0

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost
  4. // Software License, Version 1.0. (See accompanying file
  5. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // See http://www.boost.org/libs/container for documentation.
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. #ifndef BOOST_CONTAINER_ALLOC_LIB_EXT_H
  11. #define BOOST_CONTAINER_ALLOC_LIB_EXT_H
  12. #include <stddef.h>
  13. #ifdef _MSC_VER
  14. #pragma warning (push)
  15. #pragma warning (disable : 4127)
  16. #endif
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. /*!An forward iterator to traverse the elements of a memory chain container.*/
  21. typedef struct multialloc_node_impl
  22. {
  23. struct multialloc_node_impl *next_node_ptr;
  24. } boost_cont_memchain_node;
  25. /*!An forward iterator to traverse the elements of a memory chain container.*/
  26. typedef struct multialloc_it_impl
  27. {
  28. boost_cont_memchain_node *node_ptr;
  29. } boost_cont_memchain_it;
  30. /*!Memory chain: A container holding memory portions allocated by boost_cont_multialloc_nodes
  31. and boost_cont_multialloc_arrays functions.*/
  32. typedef struct boost_cont_memchain_impl
  33. {
  34. size_t num_mem;
  35. boost_cont_memchain_node root_node;
  36. boost_cont_memchain_node *last_node_ptr;
  37. } boost_cont_memchain;
  38. /*!Advances the iterator one position so that it points to the next element in the memory chain*/
  39. #define BOOST_CONTAINER_MEMIT_NEXT(IT) (IT.node_ptr = IT.node_ptr->next_node_ptr)
  40. /*!Returns the address of the memory chain currently pointed by the iterator*/
  41. #define BOOST_CONTAINER_MEMIT_ADDR(IT) ((void*)IT.node_ptr)
  42. /*!Initializer for an iterator pointing to the position before the first element*/
  43. #define BOOST_CONTAINER_MEMCHAIN_BEFORE_BEGIN_IT(PMEMCHAIN) { &((PMEMCHAIN)->root_node) }
  44. /*!Initializer for an iterator pointing to the first element*/
  45. #define BOOST_CONTAINER_MEMCHAIN_BEGIN_IT(PMEMCHAIN) {(PMEMCHAIN)->root_node.next_node_ptr }
  46. /*!Initializer for an iterator pointing to the last element*/
  47. #define BOOST_CONTAINER_MEMCHAIN_LAST_IT(PMEMCHAIN) {(PMEMCHAIN)->last_node_ptr }
  48. /*!Initializer for an iterator pointing to one past the last element (end iterator)*/
  49. #define BOOST_CONTAINER_MEMCHAIN_END_IT(PMEMCHAIN) {(boost_cont_memchain_node *)0 }
  50. /*!True if IT is the end iterator, false otherwise*/
  51. #define BOOST_CONTAINER_MEMCHAIN_IS_END_IT(PMEMCHAIN, IT) (!(IT).node_ptr)
  52. /*!The address of the first memory portion hold by the memory chain*/
  53. #define BOOST_CONTAINER_MEMCHAIN_FIRSTMEM(PMEMCHAIN)((void*)((PMEMCHAIN)->root_node.next_node_ptr))
  54. /*!The address of the last memory portion hold by the memory chain*/
  55. #define BOOST_CONTAINER_MEMCHAIN_LASTMEM(PMEMCHAIN) ((void*)((PMEMCHAIN)->last_node_ptr))
  56. /*!The number of memory portions hold by the memory chain*/
  57. #define BOOST_CONTAINER_MEMCHAIN_SIZE(PMEMCHAIN) ((PMEMCHAIN)->num_mem)
  58. /*!Initializes the memory chain from the first memory portion, the last memory
  59. portion and number of portions obtained from another memory chain*/
  60. #define BOOST_CONTAINER_MEMCHAIN_INIT_FROM(PMEMCHAIN, FIRST, LAST, NUM)\
  61. (PMEMCHAIN)->last_node_ptr = (boost_cont_memchain_node *)(LAST), \
  62. (PMEMCHAIN)->root_node.next_node_ptr = (boost_cont_memchain_node *)(FIRST), \
  63. (PMEMCHAIN)->num_mem = (NUM);\
  64. /**/
  65. /*!Default initializes a memory chain. Postconditions: begin iterator is end iterator,
  66. the number of portions is zero.*/
  67. #define BOOST_CONTAINER_MEMCHAIN_INIT(PMEMCHAIN)\
  68. ((PMEMCHAIN)->root_node.next_node_ptr = 0, (PMEMCHAIN)->last_node_ptr = &((PMEMCHAIN)->root_node), (PMEMCHAIN)->num_mem = 0)\
  69. /**/
  70. /*!True if the memory chain is empty (holds no memory portions*/
  71. #define BOOST_CONTAINER_MEMCHAIN_EMPTY(PMEMCHAIN)\
  72. ((PMEMCHAIN)->num_mem == 0)\
  73. /**/
  74. /*!Inserts a new memory portions in the front of the chain*/
  75. #define BOOST_CONTAINER_MEMCHAIN_PUSH_BACK(PMEMCHAIN, MEM)\
  76. do{\
  77. boost_cont_memchain *____chain____ = (PMEMCHAIN);\
  78. boost_cont_memchain_node *____tmp_mem____ = (boost_cont_memchain_node *)(MEM);\
  79. ____chain____->last_node_ptr->next_node_ptr = ____tmp_mem____;\
  80. ____tmp_mem____->next_node_ptr = 0;\
  81. ____chain____->last_node_ptr = ____tmp_mem____;\
  82. ++____chain____->num_mem;\
  83. }while(0)\
  84. /**/
  85. /*!Inserts a new memory portions in the back of the chain*/
  86. #define BOOST_CONTAINER_MEMCHAIN_PUSH_FRONT(PMEMCHAIN, MEM)\
  87. do{\
  88. boost_cont_memchain *____chain____ = (PMEMCHAIN);\
  89. boost_cont_memchain_node *____tmp_mem____ = (boost_cont_memchain_node *)(MEM);\
  90. boost_cont_memchain *____root____ = &((PMEMCHAIN)->root_node);\
  91. if(!____chain____->root_node.next_node_ptr){\
  92. ____chain____->last_node_ptr = ____tmp_mem____;\
  93. }\
  94. boost_cont_memchain_node *____old_first____ = ____root____->next_node_ptr;\
  95. ____tmp_mem____->next_node_ptr = ____old_first____;\
  96. ____root____->next_node_ptr = ____tmp_mem____;\
  97. ++____chain____->num_mem;\
  98. }while(0)\
  99. /**/
  100. /*!Erases the memory portion after the portion pointed by BEFORE_IT from the memory chain*/
  101. /*!Precondition: BEFORE_IT must be a valid iterator of the memory chain and it can't be the end iterator*/
  102. #define BOOST_CONTAINER_MEMCHAIN_ERASE_AFTER(PMEMCHAIN, BEFORE_IT)\
  103. do{\
  104. boost_cont_memchain *____chain____ = (PMEMCHAIN);\
  105. boost_cont_memchain_node *____prev_node____ = (BEFORE_IT).node_ptr;\
  106. boost_cont_memchain_node *____erase_node____ = ____prev_node____->next_node_ptr;\
  107. if(____chain____->last_node_ptr == ____erase_node____){\
  108. ____chain____->last_node_ptr = &____chain____->root_node;\
  109. }\
  110. ____prev_node____->next_node_ptr = ____erase_node____->next_node_ptr;\
  111. --____chain____->num_mem;\
  112. }while(0)\
  113. /**/
  114. /*!Erases the first portion from the memory chain.
  115. Precondition: the memory chain must not be empty*/
  116. #define BOOST_CONTAINER_MEMCHAIN_POP_FRONT(PMEMCHAIN)\
  117. do{\
  118. boost_cont_memchain *____chain____ = (PMEMCHAIN);\
  119. boost_cont_memchain_node *____prev_node____ = &____chain____->root_node;\
  120. boost_cont_memchain_node *____erase_node____ = ____prev_node____->next_node_ptr;\
  121. if(____chain____->last_node_ptr == ____erase_node____){\
  122. ____chain____->last_node_ptr = &____chain____->root_node;\
  123. }\
  124. ____prev_node____->next_node_ptr = ____erase_node____->next_node_ptr;\
  125. --____chain____->num_mem;\
  126. }while(0)\
  127. /**/
  128. /*!Joins two memory chains inserting the portions of the second chain at the back of the first chain*/
  129. /*
  130. #define BOOST_CONTAINER_MEMCHAIN_SPLICE_BACK(PMEMCHAIN, PMEMCHAIN2)\
  131. do{\
  132. boost_cont_memchain *____chain____ = (PMEMCHAIN);\
  133. boost_cont_memchain *____chain2____ = (PMEMCHAIN2);\
  134. if(!____chain2____->root_node.next_node_ptr){\
  135. break;\
  136. }\
  137. else if(!____chain____->first_mem){\
  138. ____chain____->first_mem = ____chain2____->first_mem;\
  139. ____chain____->last_node_ptr = ____chain2____->last_node_ptr;\
  140. ____chain____->num_mem = ____chain2____->num_mem;\
  141. BOOST_CONTAINER_MEMCHAIN_INIT(*____chain2____);\
  142. }\
  143. else{\
  144. ____chain____->last_node_ptr->next_node_ptr = ____chain2____->first_mem;\
  145. ____chain____->last_node_ptr = ____chain2____->last_node_ptr;\
  146. ____chain____->num_mem += ____chain2____->num_mem;\
  147. }\
  148. }while(0)\*/
  149. /**/
  150. /*!Joins two memory chains inserting the portions of the second chain at the back of the first chain*/
  151. #define BOOST_CONTAINER_MEMCHAIN_INCORPORATE_AFTER(PMEMCHAIN, BEFORE_IT, FIRST, BEFORELAST, NUM)\
  152. do{\
  153. boost_cont_memchain *____chain____ = (PMEMCHAIN);\
  154. boost_cont_memchain_node *____pnode____ = (BEFORE_IT).node_ptr;\
  155. boost_cont_memchain_node *____next____ = ____pnode____->next_node_ptr;\
  156. boost_cont_memchain_node *____first____ = (boost_cont_memchain_node *)(FIRST);\
  157. boost_cont_memchain_node *____blast____ = (boost_cont_memchain_node *)(BEFORELAST);\
  158. size_t ____num____ = (NUM);\
  159. if(!____num____){\
  160. break;\
  161. }\
  162. if(____pnode____ == ____chain____->last_node_ptr){\
  163. ____chain____->last_node_ptr = ____blast____;\
  164. }\
  165. ____pnode____->next_node_ptr = ____first____;\
  166. ____blast____->next_node_ptr = ____next____;\
  167. ____chain____->num_mem += ____num____;\
  168. }while(0)\
  169. /**/
  170. /*!Indicates the all elements allocated by boost_cont_multialloc_nodes or boost_cont_multialloc_arrays
  171. must be contiguous.*/
  172. #define BOOST_CONTAINER_DL_MULTIALLOC_ALL_CONTIGUOUS ((size_t)(-1))
  173. /*!Indicates the number of contiguous elements allocated by boost_cont_multialloc_nodes or boost_cont_multialloc_arrays
  174. should be selected by those functions.*/
  175. #define BOOST_CONTAINER_DL_MULTIALLOC_DEFAULT_CONTIGUOUS ((size_t)(0))
  176. typedef struct boost_cont_malloc_stats_impl
  177. {
  178. size_t max_system_bytes;
  179. size_t system_bytes;
  180. size_t in_use_bytes;
  181. } boost_cont_malloc_stats_t;
  182. typedef unsigned int allocation_type;
  183. enum
  184. {
  185. // constants for allocation commands
  186. BOOST_CONTAINER_ALLOCATE_NEW = 0X01,
  187. BOOST_CONTAINER_EXPAND_FWD = 0X02,
  188. BOOST_CONTAINER_EXPAND_BWD = 0X04,
  189. BOOST_CONTAINER_SHRINK_IN_PLACE = 0X08,
  190. BOOST_CONTAINER_NOTHROW_ALLOCATION = 0X10,
  191. // BOOST_CONTAINER_ZERO_MEMORY = 0X20,
  192. BOOST_CONTAINER_TRY_SHRINK_IN_PLACE = 0X40,
  193. BOOST_CONTAINER_EXPAND_BOTH = BOOST_CONTAINER_EXPAND_FWD | BOOST_CONTAINER_EXPAND_BWD,
  194. BOOST_CONTAINER_EXPAND_OR_NEW = BOOST_CONTAINER_ALLOCATE_NEW | BOOST_CONTAINER_EXPAND_BOTH
  195. };
  196. //#define BOOST_CONTAINER_DLMALLOC_FOOTERS
  197. #ifndef BOOST_CONTAINER_DLMALLOC_FOOTERS
  198. enum { BOOST_CONTAINER_ALLOCATION_PAYLOAD = sizeof(size_t) };
  199. #else
  200. enum { BOOST_CONTAINER_ALLOCATION_PAYLOAD = sizeof(size_t)*2 };
  201. #endif
  202. typedef struct boost_cont_command_ret_impl
  203. {
  204. void *first;
  205. int second;
  206. }boost_cont_command_ret_t;
  207. size_t boost_cont_size(const void *p);
  208. void* boost_cont_malloc(size_t bytes);
  209. void boost_cont_free(void* mem);
  210. void* boost_cont_memalign(size_t bytes, size_t alignment);
  211. int boost_cont_multialloc_nodes
  212. (size_t n_elements, size_t elem_size, size_t contiguous_elements, boost_cont_memchain *pchain);
  213. int boost_cont_multialloc_arrays
  214. (size_t n_elements, const size_t *sizes, size_t sizeof_element, size_t contiguous_elements, boost_cont_memchain *pchain);
  215. void boost_cont_multidealloc(boost_cont_memchain *pchain);
  216. size_t boost_cont_footprint();
  217. size_t boost_cont_allocated_memory();
  218. size_t boost_cont_chunksize(const void *p);
  219. int boost_cont_all_deallocated();
  220. boost_cont_malloc_stats_t boost_cont_malloc_stats();
  221. size_t boost_cont_in_use_memory();
  222. int boost_cont_trim(size_t pad);
  223. int boost_cont_mallopt(int parameter_number, int parameter_value);
  224. int boost_cont_grow
  225. (void* oldmem, size_t minbytes, size_t maxbytes, size_t *received);
  226. int boost_cont_shrink
  227. (void* oldmem, size_t minbytes, size_t maxbytes, size_t *received, int do_commit);
  228. void* boost_cont_alloc
  229. (size_t minbytes, size_t preferred_bytes, size_t *received_bytes);
  230. int boost_cont_malloc_check();
  231. boost_cont_command_ret_t boost_cont_allocation_command
  232. ( allocation_type command
  233. , size_t sizeof_object
  234. , size_t limit_objects
  235. , size_t preferred_objects
  236. , size_t *received_objects
  237. , void *reuse_ptr
  238. );
  239. void *boost_cont_sync_create();
  240. void boost_cont_sync_destroy(void *sync);
  241. int boost_cont_sync_lock(void *sync);
  242. void boost_cont_sync_unlock(void *sync);
  243. int boost_cont_global_sync_lock();
  244. void boost_cont_global_sync_unlock();
  245. #ifdef __cplusplus
  246. } //extern "C" {
  247. #endif
  248. #ifdef _MSC_VER
  249. #pragma warning (pop)
  250. #endif
  251. #endif //#define BOOST_CONTAINERDLMALLOC__EXT_H

alloc_lib.h at commit 4797d50, under GPL-3.0 · at the source

Overview

  1. Bernstein Center Freiburg, University of Freiburg, Freiburg im Breisgau, 79104 Germany
  2. Faculty of Biology, University of Freiburg, Freiburg im Breisgau, 79104 Germany
  3. Department of Bioengineering, Imperial College London, London, W12 0BZ UK
Institutions: University of Freiburg (Germany); Imperial College London (United Kingdom)
Journal: Journal of neuroengineering and rehabilitation, volume 23, issue 1, article 214
Dates: received 2 April 2025; accepted 1 June 2026; published online 11 July 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1186/s12984-026-02041-3 · PMID 42436562 · PMCID PMC13355341 · OpenAlex W4404169628
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: EEG (modality), other (modality), human (organism), systems (subfield)
Methods: Spectral & time-frequency, Preprocessing, Connectivity, Statistics, Machine learning, Smoothing, state filtering, decompositions, Single-unit activity, calcium imaging, Physiology & signal measures
Keywords: Spinal motor neurons, Motor units, Beta oscillations, Mental tasks, EEG, HD-EMG, Movement augmentation, Neural interface
MeSH: Cerebral Cortex*, Imagination*, Motor Cortex*, Spinal Cord*, Adult, Electroencephalography, Electromyography, Female, Humans, Male, Motor Neurons, Muscle, Skeletal, Young Adult (* major topic)
Topic: Cognitive Science and Mapping (Artificial Intelligence, Computer Science), according to OpenAlex
Citations: not cited yet (Europe PMC); 95 references in the paper

Abstract

Background: Spike trains from spinal motor neurons contain low-frequency components that modulate muscle force, and higher-frequency components (above 10 Hz) that do not. The functional role of these higher-frequency components in motor control is still debated. We investigated whether mental tasks that modulate the power of cortical oscillations produce corresponding modulations in spinal motor neuron activity above 10 Hz without affecting force output. Such coupling would indicate that some higher-frequency components are not merely arising as a byproduct of force generation nor indirectly contributing to motor control, but simply reflect cortical oscillations propagating to spinal motor neurons. If voluntary power modulations of these higher-frequency oscillations do not affect force output, they could potentially serve as control signals for neural interface applications such as movement augmentation or motor neuroprostheses.

Methods: We recruited 15 human participants and recorded high-density electromyography signals (HD-EMG) from the tibialis anterior muscle, as well as electroencephalography (EEG) signals. The cumulative spike train (CST) was computed from the activity of spinal motor neurons decoded from HD-EMG signals. The participants performed sustained dorsiflexion concurrent with foot motor imagery, hand motor imagery, mental arithmetic, or no specific mental task. We analysed the bandpower correlation between EEG and CST signals as well as evaluated the task discriminability of CST bandpower signals with a linear classifier.

Results: At the intra-muscular coherence peak, we found statistically significant power correlations between CST and EEG in two separate analyses: first, when correlating across individual trials regardless of the mental task, and second, when correlating across the four mental tasks (Kendall’s coefficient , respectively; mean ± std. dev.). To evaluate the potential of the CST as a control signal, we classified the mental tasks based on CST bandpower and obtained classification accuracies slightly but significantly above chance level (; chance level = 25%).

Conclusion: These results show that mental tasks can simultaneously modulate the power of cortical and spinal oscillations. This supports the notion that cortical oscillations not contributing to ongoing force control can propagate to the spinal level. We further demonstrate that mental tasks can be classified from CST bandpower, but classification performance is limited by the low signal-to-noise ratio.

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

Repository

Its files are read in the Code ↔ Paper reader above.

neurofreiburg/QuattrocentoLSLApp

License: GPL-3.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 4797d50c85196713c3cdae92e6e6a6e2670a79cf, 26 October 2023
Languages: C++ (16585), JavaScript (537), Python (377), C/C++ (303), C (143), Shell (111), CUDA (25), Perl (15), MATLAB (3), SAS (2), Fortran (1), R (1)
Size: 72,103 files, 18,103 scripts
Software Heritage: not archived
Found in: the text, “Footnotes”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (2 files)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
2,000 files

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;
  • 1,998 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

Source data for this study are not publicly available due to privacy restrictions.

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 2, 28 September 2026

  • Authors: added Dario Farina (0000-0002-7883-2697); Carsten Mehring (0000-0001-8125-5205); removed Dario Farina; Carsten Mehring

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 8 keywords, 13 MeSH terms, 88 references.

Cite

This paper

Ofner, P., Farina, D., & Mehring, C. (2026). Mental tasks induce common modulations of oscillations in cortex and spinal cord. Journal of neuroengineering and rehabilitation, 23(1), 214. https://doi.org/10.1186/s12984-026-02041-3

BibTeX

@article{ofner2026mental,
author = {Ofner, Patrick and Farina, Dario and Mehring, Carsten},
title = {{Mental tasks induce common modulations of oscillations in cortex and spinal cord}},
journal = {Journal of neuroengineering and rehabilitation},
year = {2026},
month = jul,
volume = {23},
number = {1},
pages = {214},
publisher = {BMC},
issn = {1743-0003},
doi = {10.1186/s12984-026-02041-3},
url = {https://doi.org/10.1186/s12984-026-02041-3},
pmid = {42436562},
pmcid = {PMC13355341}
}

RIS

TY - JOUR
AU - Ofner, Patrick
AU - Farina, Dario
AU - Mehring, Carsten
TI - Mental tasks induce common modulations of oscillations in cortex and spinal cord
T2 - Journal of neuroengineering and rehabilitation
J2 - J Neuroeng Rehabil
PY - 2026
DA - 2026/07/11
VL - 23
IS - 1
SP - 214
SN - 1743-0003
PB - BMC
DO - 10.1186/s12984-026-02041-3
UR - https://doi.org/10.1186/s12984-026-02041-3
LA - en
ER -

CSL-JSON

{
"id": "10.1186/s12984-026-02041-3",
"type": "article-journal",
"title": "Mental tasks induce common modulations of oscillations in cortex and spinal cord",
"container-title": "Journal of neuroengineering and rehabilitation",
"author": [
{
"family": "Ofner",
"given": "Patrick"
},
{
"family": "Farina",
"given": "Dario"
},
{
"family": "Mehring",
"given": "Carsten"
}
],
"container-title-short": "J Neuroeng Rehabil",
"volume": "23",
"issue": "1",
"page": "214",
"DOI": "10.1186/s12984-026-02041-3",
"PMID": "42436562",
"PMCID": "PMC13355341",
"ISSN": "1743-0003",
"publisher": "BMC",
"URL": "https://doi.org/10.1186/s12984-026-02041-3",
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
11
]
]
}
}

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.1113/jp290395
Spinal motor neuron pools may be partly driven by impulsive common inputs.
Journal: The Journal of physiology
In common: 9 references, author Dario Farina
[2] doi:10.1126/sciadv.aee9425 [code]
Probabilistic inference of homonymous and heteronymous recurrent inhibition in human muscles from large-scale motor neuron recordings.
Journal: Science advances
In common: Matplotlib, 7 references, author Dario Farina
[3] doi:10.1371/journal.pone.0346417
Muscle activation and intermuscular coordination adaptations to early strength training during maximal force production.
Journal: PloS one
In common: other, 6 references
[4] doi:10.1111/ejn.70428
Modulation of Corticomuscular Coupling With Split-Belt Locomotor Adaptation in Healthy Young Males.
Journal: The European journal of neuroscience
In common: other, systems, EEG, 6 references
[5] doi:10.1038/s41467-026-74243-1 [code]
Spiking neural network decoders of finger forces from high-density intramuscular microelectrode arrays.
Journal: Nature communications
In common: Matplotlib, other, 2 references, author Dario Farina
[6] doi:10.1038/s41467-026-75435-5 [code]
Sensory-guided human-machine joint learning accelerates the acquisition of motor imagery brain computer interface control.
Journal: Nature communications
In common: EEG, 6 references
[7] doi:10.1038/s41467-026-75213-3 [code]
Concurrent control of natural and robotic limbs through a tactile-encoded brain-computer interface.
Journal: Nature communications
In common: EEG, 2 references, author Dario Farina
[8] doi:10.1162/imag.a.1255
Beta bursts spatiotemporal profiles and their links to hemodynamic responses during movement and rest.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: systems, EEG, 5 references
[9] doi:10.1007/s00421-026-06239-0
Differential changes in the effective neural drive following new motor skill acquisition between vastus lateralis and medialis.
Journal: European journal of applied physiology
In common: other, 4 references
[10] doi:10.1038/s41467-026-73553-8 [code]
Universal rhythmic architecture uncovers two modes of neural dynamics.
Journal: Nature communications
In common: Matplotlib, EEG, 5 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.