The In Vivo Microstructural Profile of Human Hippocampal Subfield CA1 and Its Relation to Memory Performance.
The 6 matches
- [1] § Methods › Vessel Segmentation and Vessel Distance Mapping (VDM) ↔ omelette.py, lines 96–223 · score 0.76 · vessel enhancement filters, top hat transformation, Mattern, OMELETTE, vasculature, Jerman
- [2] § Methods › Vessel Segmentation and Vessel Distance Mapping (VDM) ↔ data_and_results/DRIVE/drive_notebook.ipynb, lines 57–184 · score 0.74 · vessel enhancement filters, top hat transformation, Mattern, vasculature, Jerman, voxel
- [3] § Methods › CA1 Depth Segmentation (Layer Analyses Pipeline) ↔ Example_Analysis.py, lines 11–78 · score 0.64 · bounding box, CA1 layers, qT1 images, cropped, upsampled, masks
- [4] § Methods › CA1 Depth Segmentation (Layer Analyses Pipeline) ↔ Example_Analysis.py, lines 11–78 · score 0.62 · bounding box, CA1 layer, qT1 image, equidistant, cropped, upsampled
- [5] § Methods › CA1 Depth Segmentation (Layer Analyses Pipeline) ↔ Crop_and_Upsample_MRI.py, lines 51–85 · score 0.60 · bounding box, qT1 image, CA1 layer, cropped, upsampled, maps
- [6] § Methods › CA1 Depth Segmentation (Layer Analyses Pipeline) ↔ Crop_and_Upsample_MRI.py, lines 1–16 · score 0.56 · CA1 masks, nibabel, resample, cropped, upsampled, isotropic
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 · 158 lines · 5.7 KB · no license · 2 matches
- import os
- import numpy as np
- import pandas as pd
- import nibabel as nib
- import matplotlib.pyplot as plt
- from matplotlib.ticker import MaxNLocator
- # --- Paths ---
- data_path = "/path/to/subject_folders"
- # --- Subjects ---
- subjects = os.listdir(data_path)
- sides = ["LH", "RH"]
- ROI = "CA1"
- all_data = []
- need_csv = 0 # Set this to 1, if you need to get layer data in a csv file
- do_plot = 1
- if need_csv:
- # --- Processing Loop ---
- for sub in subjects:
- for side in sides:
- # File paths
- subj_layers_path = os.path.join(data_path, sub, "upsampled_layer_files", f"{sub}_{side}_CA1_layers_equidist.nii.gz")
- subj_qt1_path = os.path.join(data_path, sub, "upsampled_data", f"{sub}_qt1_{side}_cropped_upsampled.nii.gz")
- if not os.path.exists(subj_qt1_path) or not os.path.exists(subj_layers_path):
- print(f"Skipping {sub} | {side} due to missing files.")
- continue
- # Load images
- qt1_img = nib.load(subj_qt1_path)
- layer_img = nib.load(subj_layers_path)
- # --- Load data arrays ---
- qt1_data = qt1_img.get_fdata()
- layer_data = layer_img.get_fdata()
- # Bounding box for non-zero mask
- nonzero_coords = np.array(np.nonzero(layer_data))
- min_coords = nonzero_coords.min(axis=1)
- max_coords = nonzero_coords.max(axis=1) + 1
- layer_crop = layer_data[min_coords[0]:max_coords[0],
- min_coords[1]:max_coords[1],
- min_coords[2]:max_coords[2]]
- qt1_crop = qt1_data[min_coords[0]:max_coords[0],
- min_coords[1]:max_coords[1],
- min_coords[2]:max_coords[2]]
- print(f"[{sub} | {side}] Cropped shapes - Layer mask: {layer_crop.shape}, T1 map: {qt1_crop.shape}")
- # Extract values
- layer_ids = np.unique(layer_crop)
- layer_ids = layer_ids[layer_ids != 0]
- for layer_id in layer_ids:
- mask = layer_crop == layer_id
- qt1_values = qt1_crop[mask]
- if qt1_values.size > 0:
- mean_qt1 = np.mean(qt1_values)
- all_data.append({
- "Subject": sub,
- "Hemisphere": side.capitalize(),
- "Layer": int(layer_id),
- "Myelin": mean_qt1
- })
- # --- Create DataFrame ---
- df = pd.DataFrame(all_data)
- df["Subject"] = df["Subject"].astype(str)
- # --- Save CSV ---
- df.to_csv("path/to/layer_data.csv", index=False)
- # --- Load the CSV with Layer Myelin Data ---
- path_final_data = ("path/to/layer_data.csv")
- df = pd.read_csv(path_final_data)
- if do_plot:
- # --- Flip layer numbering --- Only necessary if you accidentaly assigne labels 1 and 2 the the opposite surfaces during rim generation...if you did it correctly, ignore this.
- print(df["Layer"])
- df["Layer_flipped"] = 22 - df["Layer"]
- # --- Assign Layer Zones ---
- def assign_zone(layer):
- if 1 <= layer <= 7:
- return "Inner"
- elif 8 <= layer <= 14:
- return "Middle"
- elif 15 <= layer <= 21:
- return "Outer"
- return None
- df["LayerZone"] = df["Layer_flipped"].apply(assign_zone)
- df = df.dropna(subset=["LayerZone", "Myelin"])
- # --- Summary Table ---
- def get_summary_table(df):
- summary = df.groupby("LayerZone")["Myelin"].agg(["mean", "std", "count"]).reset_index()
- summary = summary.rename(columns={"mean": "Mean_Myelin", "std": "STD_Myelin", "count": "N"})
- summary["LayerZone"] = pd.Categorical(summary["LayerZone"], categories=["Inner", "Middle", "Outer"], ordered=True)
- summary = summary.sort_values("LayerZone")
- summary = summary.rename(columns = {"LayerZone" : "Compartment"})
- print("\nSummary:")
- print(summary)
- get_summary_table(df)
- # --- Plot qT1 Profiles (Layer on x-axis) ---
- fig, axes = plt.subplots(1, 2, figsize=(10, 6), sharey=True, sharex=True)
- # Colors for zones (Inner=red, Middle=yellow, Outer=blue)
- layer_zones = {"Inner": (1, 7.5), "Middle": (7.5, 14.5), "Outer": (14.5, 21)}
- colors = {"Inner": "#ffcccc", "Middle": "#ffff99", "Outer": "#add8e6"}
- for ax, hemi in zip(axes, ["Rh", "Lh"]):
- hemi_df = df[df["Hemisphere"] == hemi]
- # Plot individual subjects
- for subject in hemi_df["Subject"].unique():
- subj_df = hemi_df[hemi_df["Subject"] == subject]
- ax.plot(subj_df["Layer_flipped"], subj_df["Myelin"], color='black', alpha=0.5)
- # Plot colored zones
- for zone, (start, end) in layer_zones.items():
- ax.axvspan(start, end, color=colors[zone], alpha=0.5, zorder=0)
- # Plot group mean
- group_mean = hemi_df.groupby("Layer_flipped")["Myelin"].mean()
- ax.plot(group_mean.index, group_mean.values, color='red', lw=2, label='Group Mean')
- ax.tick_params(axis='x', labelsize=18) # Change x tick label font size
- ax.tick_params(axis='y', labelsize=18) # Change y tick label font size
- ax.set_title(f"qT1 Profile - {hemi} CA1", fontweight='bold', size=24)
- ax.set_xlabel("Layer", size = 18)
- ax.set_ylabel("qT1 (ms)", size= 18)
- ax.set_xlim(2, 21)
- ax.set_ylim(1200, 2800)
- #ax.grid(True)
- # Show only whole numbers on x-axis
- ax.xaxis.set_major_locator(MaxNLocator(integer=True))
- plt.yticks(size=18)
- plt.xticks(size=18)
- plt.tight_layout()
- plt.savefig("path/to/where_you_want_to_save_it", bbox_inches = 'tight')
- plt.show()
- plt.tight_layout()
- plt.show()
Example_Analysis.py at commit 2feccc7, no license · at the source
Overview
- Institute of Cognitive Neurology and Dementia Research (IKND) Otto‐von‐Guericke University Magdeburg Germany
- Faculty of Natural Sciences Otto von Guericke University Magdeburg Magdeburg Germany
- German Center for Neurodegenerative Diseases (DZNE) Magdeburg Germany
- Department Biomedical Magnetic Resonance (BMMR) Otto‐von‐Guericke‐Universität Magdeburg Germany
- Center for Behavioral Brain Sciences (CBBS) Magdeburg Germany
- Department of Neurobiology and Behavior University of California Irvine USA
- Hertie Institute for Clinical Brain Research (HIH) Tübingen Germany
- Department of Psychology University of Innsbruck Innsbruck Austria
- Department of Neurology Otto‐von‐Guericke University Magdeburg Magdeburg Germany
- German Center for Neurodegenerative Diseases (DZNE) Tübingen Germany
Abstract
The hippocampal CA1 subregion supports learning, memory formation, and spatial navigation. Although its three‐layered architecture has been described in ex vivo investigations, the in vivo microstructural profile of CA1 and its relation to individual variations in memory performance remain poorly characterized. In this study, we used ultra‐high field structural MRI at 7 Tesla to investigate the depth‐dependent myelination patterns (measured by quantitative T1) of CA1 in younger adults, their relation to the local arterial architecture, and their association with individual differences in cognitive functions, specifically memory performance. Results show that left and right CA1 present depth‐dependent patterns of myelination, with the outer and inner compartments showing higher myelination than the middle compartment. No significant relationship between layer‐specific myelination of CA1 and distance to the nearest artery was observed. Right CA1 was found to be more myelinated than left CA1. Pairwise correlations and regression models showed that higher left CA1 myelination is linked to higher accuracy in object localization. Together, our data demonstrate the feasibility of describing the three‐layered myelin architecture of CA1 in vivo, and provide information on how alterations in the architecture of CA1 may relate to alterations in cognitive performance in younger adults.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 6 matches between paragraphs and lines of code.
hmattern/omelette
189bde5902805a5cfd4b7c5eeada27b075156bbe, 27 May 2021Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
12 files
- Example2D.py, Python, 35 lines
- data_and_results/
DRIVE/ , Python, 105 linesPipelineTestingWithTopHa t.py - data_and_results/
DRIVE/ , Jupyter, 273 lines, 1 matchdrive_notebook.ipynb - data_and_results/
ISMRM21/ , Python, 118 linesScriptArterySeg_Comparis on_ISMRM.py - data_and_results/
ISMRM21/ , Python, 191 linesScriptFigures_ISMRM.py - data_and_results/
MethodsX/ , Python, 68 linesScript_QualitativeCompar ison.py - data_and_results/
MethodsX/ , Python, 38 linesScript_QuantitativeCompa rison.py - data_and_results/
benchmark/ , Python, 95 linesScript_Segmentation.py - data_and_results/
studyforrest/ , Python, 131 linesScript_Segmentation.py - omelette.py, Python, 471 lines, 1 match
- LICENSE, License, 29 lines
- README.md, Text, 75 lines
zeconyser/the-in-vivo-microstructural-profile-of-human-hippocampal-subfield-ca1
2feccc75be8919f6d98bef85fe19bede2eae69d3, 27 April 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
6 files
- Crop_and_Upsample_MRI.py
, Python, 87 lines, 2 matches - Example_Analysis.py, Python, 158 lines, 2 matches
- Generate_Layers.sh, Shell, 43 lines
- Generate_Rim.py, Python, 142 lines
- Upsample_Binary_ROI_mask
s.py , Python, 96 lines - README.md, Text, 16 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;
- 15 scripts, each with its path and the digest of its content;
- 6 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.
Data Availability Statement
The data that support the findings of this study are available on request from the corresponding author. The data are not publicly available due to privacy or ethical 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 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 14 authors, 6 keywords, 11 MeSH terms, 1 funder, 74 references.
Cite
This paper
Hayek, D., Fernandes, J. H., Vockert, N., Garcia‐Garcia, B., Mattern, H., Behrenbruch, N., Fischer, L., Kalyani, A., Doehler, J., Hämmerer, D., Yi, Y., Schreiber, S., Maass, A., & Kuehn, E. (2026). The In Vivo Microstructural Profile of Human Hippocampal Subfield CA1 and Its Relation to Memory Performance. Human brain mapping, 47(7), e70542. https://
BibTeX
@article{hayek2026vivo,
author = {Hayek, Dayana and Fernandes, Joseph Höpker and Vockert, Niklas and Garcia‐Garcia, Berta and Mattern, Hendrik and Behrenbruch, Niklas and Fischer, Larissa and Kalyani, Avinash and Doehler, Juliane and Hämmerer, Dorothea and Yi, Yeo‐Jin and Schreiber, Stefanie and Maass, Anne and Kuehn, Esther},
title = {{The In Vivo Microstructural Profile of Human Hippocampal Subfield CA1 and Its Relation to Memory Performance}},
journal = {Human brain mapping},
year = {2026},
month = may,
volume = {47},
number = {7},
pages = {e70542},
publisher = {Wiley},
issn = {1065-9471},
doi = {10.1002/
url = {https://
pmid = {42125937},
pmcid = {PMC13169157}
}
RIS
TY - JOUR
AU - Hayek, Dayana
AU - Fernandes, Joseph Höpker
AU - Vockert, Niklas
AU - Garcia‐Garcia, Berta
AU - Mattern, Hendrik
AU - Behrenbruch, Niklas
AU - Fischer, Larissa
AU - Kalyani, Avinash
AU - Doehler, Juliane
AU - Hämmerer, Dorothea
AU - Yi, Yeo‐Jin
AU - Schreiber, Stefanie
AU - Maass, Anne
AU - Kuehn, Esther
TI - The In Vivo Microstructural Profile of Human Hippocampal Subfield CA1 and Its Relation to Memory Performance
T2 - Human brain mapping
J2 - Hum Brain Mapp
PY - 2026
DA - 2026/
VL - 47
IS - 7
SP - e70542
SN - 1065-9471
PB - Wiley
DO - 10.1002/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1002/
"type": "article-journal",
"title": "The In Vivo Microstructural Profile of Human Hippocampal Subfield CA1 and Its Relation to Memory Performance",
"container-title": "Human brain mapping",
"author": [
{
"family": "Hayek",
"given": "Dayana"
},
{
"family": "Fernandes",
"given": "Joseph Höpker"
},
{
"family": "Vockert",
"given": "Niklas"
},
{
"family": "Garcia‐Garcia",
"given": "Berta"
},
{
"family": "Mattern",
"given": "Hendrik"
},
{
"family": "Behrenbruch",
"given": "Niklas"
},
{
"family": "Fischer",
"given": "Larissa"
},
{
"family": "Kalyani",
"given": "Avinash"
},
{
"family": "Doehler",
"given": "Juliane"
},
{
"family": "Hämmerer",
"given": "Dorothea"
},
{
"family": "Yi",
"given": "Yeo‐Jin"
},
{
"family": "Schreiber",
"given": "Stefanie"
},
{
"family": "Maass",
"given": "Anne"
},
{
"family": "Kuehn",
"given": "Esther"
}
],
"container-title-short":
"volume": "47",
"issue": "7",
"page": "e70542",
"DOI": "10.1002/
"PMID": "42125937",
"PMCID": "PMC13169157",
"ISSN": "1065-9471",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
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.1093/braincomms/fcag127 [code]
- Individualized phenotyping of functional amyotrophic lateral sclerosis pathology in sensorimotor cortex.Journal: Brain communicationsIn common: NiBabel, pandas, SciPy, 2 other tools, 4 references, 2 authors
- [2] doi:10.1038/s41467-026-71831-z [code]
- Dysfunction of the episodic memory network in the Alzheimer's disease cascade.Journal: Nature communicationsIn common: pandas, Matplotlib, NumPy, 2 authors
- [3] doi:10.1162/imag.a.1326 [code]
- RAVEN: Robust, generalizable, multi-resolution structural MRI upsampling using autoencoders.Journal: Imaging neuroscience (Cambridge, Mass.)In common: scikit-image, h5py, Pillow, 5 other tools, structural MRI / diffusion, 2 references
- [4] doi:10.1162/imag.a.1212 [code]
- Intracortical microstructure profiling: A cross-modal method for indexing cortical lamination.Journal: Imaging neuroscience (Cambridge, Mass.)In common: NiBabel, pandas, SciPy, 1 other tool, structural MRI / diffusion, 5 references
- [5] doi:10.1002/alz.71649 [code]
- Postmortem brain MRI reveals differential associations of subcortical and limbic volumes with cortical thinning and neurodegenerative pathologies.Journal: Alzheimer's & dementia : the journal of the Alzheimer's AssociationIn common: scikit-image, Pillow, NiBabel, 4 other tools, structural MRI / diffusion, 1 reference
- [6] doi:10.1038/s41598-026-48496-1 [code]
- A unified FLAIR hyperintensity segmentation model for various CNS tumor types and acquisition time points.Journal: Scientific reportsIn common: scikit-image, h5py, Pillow, 5 other tools, structural MRI / diffusion
- [7] doi:10.3389/frai.2026.1771088 [code]
- Few-shot deployment of pretrained MRI transformers in brain imaging tasks.Journal: Frontiers in artificial intelligenceIn common: scikit-image, h5py, Pillow, 5 other tools, structural MRI / diffusion
- [8] doi:10.7554/elife.108408 [code]
- Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI.Journal: eLifeIn common: scikit-image, h5py, NiBabel, 4 other tools, 1 reference
- [9] doi:10.1038/s41467-026-76098-y [code]
- A single computational objective can produce specialization of streams in visual cortex.Journal: Nature communicationsIn common: scikit-image, h5py, Pillow, 5 other tools
- [10] doi:10.1007/s12021-026-09803-3 [code]
- NeuroFusion: A Unified Framework for Generalized Visual Stimulus Decoding from fMRI Across Datasets and Subjects.Journal: NeuroinformaticsIn common: scikit-image, h5py, Pillow, 5 other tools
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, 15 scripts, and 6 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:0e94838232754e2c…
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.
