Hippocampal Subfield Volumes and Spatial Memory Performance in Older Adults At-Risk for Type 2 Diabetes.
Paper
Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 196 lines · 6.6 KB · other-open
- ##############################################################################
- # Kivy Launcher Interface #
- # by: Daniel Palmer PhD #
- # Version: 2.0 #
- ##############################################################################
- # Setup#
- from kivy.config import Config
- import os
- import configparser
- main_path = os.getcwd()
- config_path = main_path + '/Screen.ini'
- config_file = configparser.ConfigParser()
- config_file.read(config_path)
- x_dim = config_file['Screen']['x']
- y_dim = config_file['Screen']['y']
- fullscreen = int(config_file['Screen']['fullscreen'])
- if fullscreen == 0:
- Config.set('graphics', 'width', str(x_dim))
- Config.set('graphics', 'height', str(y_dim))
- Config.set('graphics', 'fullscreen', '0')
- Config.set('graphics', 'position', 'custom')
- Config.set('graphics', 'top', 0)
- Config.set('graphics', 'left', 0)
- Config.set('kivy', 'keyboard_mode', 'systemandmulti')
- elif fullscreen == 1:
- Config.set('graphics', 'width', str(x_dim))
- Config.set('graphics', 'height', str(y_dim))
- Config.set('graphics', 'position', 'custom')
- Config.set('graphics', 'top', 0)
- Config.set('graphics', 'left', 0)
- Config.set('graphics', 'fullscreen', True)
- Config.set('kivy', 'keyboard_mode', 'systemandmulti')
- # Imports #
- import kivy
- import zipimport
- import sys
- import os
- import configparser
- from kivy.app import App
- from kivy.uix.widget import Widget
- from kivy.uix.button import Button
- from kivy.uix.image import Image
- from kivy.uix.label import Label
- from kivy.core.window import Window
- from kivy.uix.floatlayout import FloatLayout
- from kivy.uix.gridlayout import GridLayout
- # from win32api import GetSystemMetrics
- from kivy.uix.behaviors import ButtonBehavior
- from kivy.clock import Clock
- from kivy.uix.textinput import TextInput
- from kivy.uix.vkeyboard import VKeyboard
- from kivy.uix.screenmanager import ScreenManager, Screen
- from kivy.config import Config
- from functools import partial
- Window.borderless = True
- # from Protocol_Configure import Protocol_Select
- # General Functions #
- def os_folder_modifier():
- os_platform = sys.platform
- if os_platform == "linux":
- mod = "/"
- elif os_platform == "darwin":
- mod = "/"
- elif os_platform == "win32":
- mod = "\\"
- else:
- mod = "/"
- return mod
- # Class Objects #
- class ImageButton(ButtonBehavior, Image):
- def __init__(self, **kwargs):
- super(ImageButton, self).__init__(**kwargs)
- # Class Screen Manager #
- class Screen_Manager(ScreenManager):
- def __init__(self, **kwargs):
- super(Screen_Manager, self).__init__(**kwargs)
- # Class Task Selection #
- class Main_Menu(Screen):
- def __init__(self, **kwargs):
- super(Main_Menu, self).__init__(**kwargs)
- self.Menu_Layout = FloatLayout()
- self.add_widget(self.Menu_Layout)
- launch_button = Button(text="Start Session")
- launch_button.size_hint = (0.3, 0.2)
- launch_button.pos_hint = {"x": 0.35, "y": 0.6}
- launch_button.bind(on_press=self.load_protocol_menu)
- self.Menu_Layout.add_widget(launch_button)
- exit_button = Button(text="Close Program")
- exit_button.size_hint = (0.3, 0.2)
- exit_button.pos_hint = {"x": 0.35, "y": 0.2}
- exit_button.bind(on_press=self.exit_program)
- self.Menu_Layout.add_widget(exit_button)
- def load_protocol_menu(self, *args):
- self.protocol_window = Protocol_Menu()
- self.manager.add_widget(Protocol_Menu(name='protocolmenu'))
- self.manager.current = "protocolmenu"
- def exit_program(self, *args):
- App.get_running_app().stop()
- Window.close()
- # Class Protocol Selection #
- class Protocol_Menu(Screen):
- def __init__(self, **kwargs):
- super(Protocol_Menu, self).__init__(**kwargs)
- self.Protocol_Layout = FloatLayout()
- protocol_list = self.search_protocols()
- self.Protocol_List = GridLayout(rows=len(protocol_list), cols=1)
- protocol_index = 0
- for protocol in protocol_list:
- button_func = partial(self.set_protocol, protocol)
- self.Protocol_List.add_widget(Button(text=protocol, on_press=button_func))
- protocol_index += 1
- self.Protocol_List.size_hint = (0.8, 0.7)
- self.Protocol_List.pos_hint = {"x": 0.1, "y": 0.3}
- self.Protocol_Layout.add_widget(self.Protocol_List)
- cancel_button = Button(text="Cancel")
- cancel_button.size_hint = (0.2, 0.1)
- cancel_button.pos_hint = {"x": 0.4, "y": 0.1}
- cancel_button.bind(on_press=self.cancel_protocol)
- self.Protocol_Layout.add_widget(cancel_button)
- self.add_widget(self.Protocol_Layout)
- def set_protocol(self, label, *args):
- self.protocol_constructor(label)
- self.manager.switch_to(self.Protocol_Configure_Screen)
- def cancel_protocol(self, *args):
- self.manager.current = "mainmenu"
- def search_protocols(self):
- cwd = os.getcwd()
- mod = os_folder_modifier()
- folder = cwd + mod + "Protocol"
- task_list = os.listdir(folder)
- return task_list
- def protocol_constructor(self, protocol):
- if protocol == 'iCPT2GStim1':
- from Protocol.iCPT2GStim1.Menu import Configure_Screen
- self.Protocol_Configure_Screen = Configure_Screen()
- elif protocol == 'iCPT2GStim2':
- from Protocol.iCPT2GStim2.Menu import Configure_Screen
- self.Protocol_Configure_Screen = Configure_Screen()
- elif protocol == 'vPRL':
- from Protocol.vPRL.Menu import Configure_Screen
- self.Protocol_Configure_Screen = Configure_Screen()
- elif protocol == 'PAL':
- from Protocol.PAL.Menu import Configure_Screen
- self.Protocol_Configure_Screen = Configure_Screen()
- elif protocol == 'PRHuman':
- from Protocol.PRHuman.Menu import Configure_Screen
- self.Protocol_Configure_Screen = Configure_Screen()
- elif protocol == 'TUNL':
- from Protocol.TUNL.Menu import Configure_Screen
- self.Protocol_Configure_Screen = Configure_Screen()
- elif protocol == 'TUNLProbe':
- from Protocol.TUNLProbe.Menu import ConfigureScreen
- self.Protocol_Configure_Screen = ConfigureScreen()
- # Class App Builder #
- class MenuApp(App):
- def build(self):
- self.s_manager = Screen_Manager()
- self.s_manager.add_widget(Main_Menu(name="mainmenu"))
- return self.s_manager
- def add_screen(self, screen):
- self.s_manager.add_widget(screen)
- if __name__ == '__main__':
- MenuApp().run()
KivyMenuInterface.py, under other-open · at the source
Overview
- Graduate Program in Neuroscience Western University London Ontario Canada
- Robarts Research Institute, Schulich School of Medicine and Dentistry Western University London Ontario Canada
- Department of Medical Biophysics Western University London Ontario Canada
- Department of Epidemiology & Biostatistics Western University London Ontario Canada
- Department of Physiology & Pharmacology Western University London Ontario Canada
- Department of Physical Therapy University of British Columbia Vancouver British Columbia Canada
- School of Kinesiology Western University London Ontario Canada
Abstract
Older adults at risk for type 2 diabetes (T2D) are more likely to experience accelerated cognitive aging and neurodegeneration due to impaired metabolism in the hippocampus. However, the precise relationship between T2D risk factors, brain volumes (i.e., gray matter, white matter, hippocampus subfields), and hippocampus‐dependent functions (i.e., spatial pattern separation, a component of spatial memory) remains unexplored. To investigate these relationships in this cross‐sectional study, 60 older adults at risk for T2D (e.g., high BMI or elevated A1c levels) completed a touchscreen‐based spatial pattern separation behavioral task—the Trial‐Unique delayed Nonmatching‐to‐Location (TUNL) and magnetic resonance imaging (MRI). HippUnfold was utilized to segment the hippocampus from high‐resolution, T1‐weighted images. We found positive correlations between A1c levels and volumes of the dentate gyrus (DG) and cornu ammonis (CA) 2, indicating that higher A1c was associated with larger volumes of hippocampal subregions. Additionally, TUNL accuracy was correlated with gray matter and distinct hippocampus subfield volumes (i.e., subiculum, CA1, and CA4), with larger volumes associated with better spatial memory performance. Understanding early structural changes in T2D risk allows us to further characterize changes in brain health associated with metabolic dysfunction.
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above.
Zenodo 7577008
Availability: 1 check, the latest on 1 November 2026: the link answers (HTTP 200)
- 1 November 2026: the link answers (HTTP 200)
25 files
- KivyMenuInterface.py, Python, 196 lines
- Protocol/
PAL/ , Python, 114 linesMenu.py - Protocol/
PAL/ , Python, 718 linesProtocol.py - Protocol/
PAL/ , Python, 1 line__init__.py - Protocol/
PRHuman/ , Python, 99 linesMenu.py - Protocol/
PRHuman/ , Python, 501 linesProtocol.py - Protocol/
PRHuman/ , Python, 1 line__init__.py - Protocol/
TUNL/ , Python, 99 linesMenu.py - Protocol/
TUNL/ , Python, 701 linesProtocol.py - Protocol/
TUNL/ , Python, 1 line__init__.py - Protocol/
TUNLProbe/ , Python, 128 linesMenu.py - Protocol/
TUNLProbe/ , Python, 1,065 linesProtocol.py - Protocol/
TUNLProbe/ , Python, 1 line__init__.py - Protocol/
iCPT2GStim1/ , Python, 117 linesMenu.py - Protocol/
iCPT2GStim1/ , Python, 616 linesProtocol.py - Protocol/
iCPT2GStim1/ , Python, 1 line__init__.py - Protocol/
iCPT2GStim2/ , Python, 116 linesMenu.py - Protocol/
iCPT2GStim2/ , Python, 607 linesProtocol.py - Protocol/
iCPT2GStim2/ , Python, 1 line__init__.py - Protocol/
vPRL/ , Python, 99 linesMenu.py - Protocol/
vPRL/ , Python, 586 linesProtocol.py - Protocol/
vPRL/ , Python, 1 line__init__.py - WindowsLauncher.py, Python, 97 lines
- LICENSE, License, 674 lines
- README.md, Text, 59 lines
dpalmer9/touchcog
f6f059a83e08bdf13a5a2e2e4bfb6b7cf23963d9, 14 October 2026Availability: 1 check, the latest on 1 November 2026: the link answers
- 1 November 2026: the link answers
30 files
- Classes/
Menu.py , Python, 501 lines - Classes/
Protocol.py , Python, 1,717 lines - Classes/
Survey.py , Python, 745 lines - Classes/
__init__.py , Python, 1 line - KivyMenuInterface.py, Python, 1,905 lines
- Protocol/
CPT/ , Python, 202 linesTask/ Menu.py - Protocol/
CPT/ , Python, 2,827 linesTask/ Protocol.py - Protocol/
CPT/ , Python, 1 lineTask/ __init__.py - Protocol/
Demographic/ , Python, 35 linesTask/ Protocol.py - Protocol/
Demographic/ , Python, 1 line__init__.py - Protocol/
PAL/ , Python, 54 linesTask/ Menu.py - Protocol/
PAL/ , Python, 1,248 linesTask/ Protocol.py - Protocol/
PAL/ , Python, 1 lineTask/ __init__.py - Protocol/
PAL/ , Python, 1 line__init__.py - Protocol/
PR/ , Python, 12 linesTask/ Menu.py - Protocol/
PR/ , Python, 741 linesTask/ Protocol.py - Protocol/
PR/ , Python, 1 lineTask/ __init__.py - Protocol/
PR/ , Python, 1 line__init__.py - Protocol/
PRL/ , Python, 14 linesTask/ Menu.py - Protocol/
PRL/ , Python, 890 linesTask/ Protocol.py - Protocol/
PRL/ , Python, 1 lineTask/ __init__.py - Protocol/
PRL/ , Python, 1 line__init__.py - Protocol/
TUNL/ , Python, 19 linesTask/ Menu.py - Protocol/
TUNL/ , Python, 1,711 linesTask/ Protocol.py - Protocol/
TUNL/ , Python, 1 lineTask/ __init__.py - Protocol/
TUNL/ , Python, 1 line__init__.py - Protocol/
__init__.py , Python, 1 line - WindowsLauncher.py, Python, 116 lines
- LICENSE, License, 674 lines
- README.md, Text, 79 lines
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:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 51 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 Statement
Data is available from the corresponding author upon reasonable request.
Reproduced under the paper's license (CC BY-NC), 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, 1 November 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 9 authors, 5 keywords, 14 MeSH terms, 3 funders, 61 references.
Cite
This paper
Al‐Shaikh, J. H., Ghosh‐Swaby, O. R., Khan, A. R., Thornton, J., Bussey, T. J., Saksida, L. M., Palmer, D., Liu‐Ambrose, T., & Nagamatsu, L. S. (2026). Hippocampal Subfield Volumes and Spatial Memory Performance in Older Adults At-Risk for Type 2 Diabetes. Hippocampus, 36(6), e70144. https://
BibTeX
@article{alshaikh2026hip
author = {Al‐Shaikh, Jennifer Hanna and Ghosh‐Swaby, Olivia R. and Khan, Ali R. and Thornton, Jane and Bussey, Timothy J. and Saksida, Lisa M. and Palmer, Daniel and Liu‐Ambrose, Teresa and Nagamatsu, Lindsay S.},
title = {{Hippocampal Subfield Volumes and Spatial Memory Performance in Older Adults At-Risk for Type 2 Diabetes}},
journal = {Hippocampus},
year = {2026},
month = nov,
volume = {36},
number = {6},
pages = {e70144},
publisher = {Wiley},
issn = {1050-9631},
doi = {10.1002/
url = {https://
pmid = {42951841},
pmcid = {PMC13716845}
}
RIS
TY - JOUR
AU - Al‐Shaikh, Jennifer Hanna
AU - Ghosh‐Swaby, Olivia R.
AU - Khan, Ali R.
AU - Thornton, Jane
AU - Bussey, Timothy J.
AU - Saksida, Lisa M.
AU - Palmer, Daniel
AU - Liu‐Ambrose, Teresa
AU - Nagamatsu, Lindsay S.
TI - Hippocampal Subfield Volumes and Spatial Memory Performance in Older Adults At-Risk for Type 2 Diabetes
T2 - Hippocampus
J2 - Hippocampus
PY - 2026
DA - 2026/
VL - 36
IS - 6
SP - e70144
SN - 1050-9631
PB - Wiley
DO - 10.1002/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1002/
"type": "article-journal",
"title": "Hippocampal Subfield Volumes and Spatial Memory Performance in Older Adults At-Risk for Type 2 Diabetes",
"container-title": "Hippocampus",
"author": [
{
"family": "Al‐Shaikh",
"given": "Jennifer Hanna"
},
{
"family": "Ghosh‐Swaby",
"given": "Olivia R."
},
{
"family": "Khan",
"given": "Ali R."
},
{
"family": "Thornton",
"given": "Jane"
},
{
"family": "Bussey",
"given": "Timothy J."
},
{
"family": "Saksida",
"given": "Lisa M."
},
{
"family": "Palmer",
"given": "Daniel"
},
{
"family": "Liu‐Ambrose",
"given": "Teresa"
},
{
"family": "Nagamatsu",
"given": "Lindsay S."
}
],
"container-title-short":
"volume": "36",
"issue": "6",
"page": "e70144",
"DOI": "10.1002/
"PMID": "42951841",
"PMCID": "PMC13716845",
"ISSN": "1050-9631",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
11,
1
]
]
}
}
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.1073/pnas.2310044121 [code]
- Insights into hippocampal perfusion using high-resolution, multi-modal 7T MRI.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: pandas, NumPy, structural MRI / diffusion, 3 references, author Ali R. Khan
- [2] doi:10.1038/s41598-025-04166-2 [code]
- Insights on the neurocognitive mechanisms underlying hippocampus-dependent memory impairment in COVID-19.Journal: Scientific reportsIn common: pandas, NumPy, other condition, 5 references
- [3] doi:10.7554/elife.88404 [code]
- Evaluation of surface-based hippocampal registration using ground-truth subfield definitions.Journal: eLifeIn common: pandas, NumPy, 2 references, author Ali R. Khan
- [4] doi:10.1038/s41467-026-73818-2 [code]
- Prefrontal parvalbumin neurons mediate working memory in a task demand-dependent manner.Journal: Nature communicationsIn common: pandas, NumPy, 1 reference, author Daniel Palmer
- [5] doi:10.1038/s41467-024-49823-8 [code]
- Hippocampal connectivity patterns echo macroscale cortical evolution in the primate brain.Journal: Nature communicationsIn common: pandas, NumPy, 6 references
- [6] doi:10.7554/elife.77945 [code]
- Automated hippocampal unfolding for morphometry and subfield segmentation with HippUnfold.Journal: eLifeIn common: pandas, NumPy, structural MRI / diffusion, 1 reference, author Ali R. Khan
- [7] doi:10.1093/schizbullopen/sgae010 [code]
- Cortical Network Disruption Is Minimal in Early Stages of Psychosis.Journal: Schizophrenia bulletin openIn common: pandas, NumPy, structural MRI / diffusion, 1 reference, author Ali R. Khan
- [8] doi:10.1002/hbm.26461 [code]
- Mapping the macrostructure and microstructure of the in vivo human hippocampus using diffusion MRI.Journal: Human brain mappingIn common: pandas, NumPy, structural MRI / diffusion, 4 references
- [9] doi:10.1038/s41597-023-02330-9 [code]
- Magnetic resonance imaging datasets with anatomical fiducials for quality control and registration.Journal: Scientific dataIn common: NumPy, structural MRI / diffusion, 1 reference, author Ali R. Khan
- [10] doi:10.1002/hbm.70417 [code]
- In Vivo Quantification of White Matter Pathways in the Human Hippocampus.Journal: Human brain mappingIn common: structural MRI / diffusion, 4 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: 2 repositories of the authors' code, each at its verified commit and with its license, 51 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:c1be3c926ff0f46e…
Add the badge to the code's README
If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.
Markdown
<!-- oscr-badge:start -->
[](https://openscicode.org/badge/doi/10.1002/hipo.70144)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1002/hipo.70144.svg
:target: https://openscicode.org/badge/doi/10.1002/hipo.70144
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1002/hipo.70144"><img src="https://openscicode.org/badge/doi/10.1002/hipo.70144.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".
If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.
Report a mismatch between the code and the paper · Report a code error (signed in)
Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.
Report a reproduction failure (signed in)
Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
