Longitudinal Multimodal Neuroimaging After Traumatic Brain Injury.
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 · 164 lines · 6.1 KB · no license
- #%%
- from pathlib import Path
- import sys
- import scipy.io as sio
- import pandas as pd
- import numpy as np
- import ast
- from scipy import stats
- # Ensure project root is importable when running this file directly.
- sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
- import utils as ut
- # %%
- #load DATA
- tbi_attn = sio.loadmat("../../../tbiattn_Xmeasure_20230412.mat",squeeze_me = True)
- #subset loaded data to have the values of interest
- cols_needed = ["Subject", "isTBI", "Session", "Age", "Sex"]
- tbi_attn_filt = {key: tbi_attn[key] for key in cols_needed}
- tbi_attn_demo = pd.DataFrame.from_dict(tbi_attn_filt)
- #create individual DFs to use
- mods = ["fALFF",
- "FC_posdeg",
- "ifod2_volnorm",
- "BPND"]
- individual_df_dict = {}
- for mod in mods :
- individual_df_dict[mod] = pd.DataFrame(tbi_attn[mod])
- rename_dict = {'fALFF':'fALFF', 'FC_posdeg':'FC', 'ifod2_volnorm':'SC',
- 'BPND':'BPND'}
- individual_df_dict = dict((rename_dict[key], value) for (key, value) in individual_df_dict.items())
- #only doing fs86 analysis
- for mod in individual_df_dict.keys():
- individual_df_dict[mod] = individual_df_dict[mod][individual_df_dict[mod].columns[0:86]]
- #concat w demo so that we can run ancova w age and sex
- unfiltered_dfs = {}
- for mod in individual_df_dict.keys():
- unfiltered_dfs[mod] = pd.concat([tbi_attn_demo,
- individual_df_dict[mod]],
- axis = 1)
- unfiltered_dfs[mod]["Subject"] = unfiltered_dfs[mod]["Subject"].apply(
- lambda x: ut.convert_subject_mri(x) if isinstance(x, str) else x
- )
- ##### session 1 ####
- ses_01_lrg = {} #figure 2 and 3 (MRI ONLY for 3)
- ses_01_lrg_subjects = pd.read_csv("../subject_lists.csv")
- ses_01_lrg_subjects["session"] = pd.to_numeric(ses_01_lrg_subjects["session"], errors="coerce")
- for mod in ["FC", "fALFF", "SC", "BPND"]:
- matching_row = ses_01_lrg_subjects[
- (ses_01_lrg_subjects["df_type"] == "ses_01_lrg") &
- (ses_01_lrg_subjects["modality"] == mod) &
- (ses_01_lrg_subjects["session"] == 1)
- ]
- csv_subjects = ast.literal_eval(matching_row.iloc[0]["subjects"])
- mod_df = unfiltered_dfs[mod]
- ses_01_lrg[mod] = mod_df[
- (mod_df["Session"] == 1) &
- (mod_df["Subject"].isin(csv_subjects))
- ]
- #%%
- #load lobe assignments info
- lobe_assignments = pd.read_csv("../fs86_yeo7_lobe.txt")
- lobe_assignments["Name"]= lobe_assignments["Name"].str.replace("-", "_")
- non_ctx_assignments = lobe_assignments[lobe_assignments["7Networks"]=="subcortex"]
- ctx_only_assignments = lobe_assignments[lobe_assignments["7Networks"]!="subcortex"]
- #create dict mapping for column names that are currently just 0-85
- mapping = {str(i): name for i, name in enumerate(lobe_assignments['Name'])}
- #rename columns to match lobe assignments, convert sex to 0/1, and convert age to integer
- for mod in ses_01_lrg.keys():
- ses_01_lrg[mod].columns = ses_01_lrg[mod].columns.astype(str)
- ses_01_lrg[mod].columns = [mapping[col] if col.isdigit() else col for col in ses_01_lrg[mod].columns]
- ses_01_lrg[mod]["Sex"] = ses_01_lrg[mod]["Sex"].replace({"M": 0, "F": 1})
- ses_01_lrg[mod]["Age"] = pd.to_numeric(ses_01_lrg[mod]["Age"], downcast="integer")
- #get the cortex only data
- ctx_ses_01_lrg = {}
- for mod in ses_01_lrg.keys():
- ctx_ses_01_lrg[mod] = ses_01_lrg[mod].drop(non_ctx_assignments["Name"].to_list(), inplace= False,
- axis=1)
- #%% ''' Run ancovas for unimodal analysis (and multimodal SC-fMRI analyses)
- # , whole brain and ctx only'''
- ses_01_lrg_ancova = {}
- ses_01_lrg_group = {} #figure 2
- ses_01_lrg_Age = {}
- ses_01_lrg_Sex = {}
- ses_01_lrg_SC_filtered_group = {}
- ctx_ses_01_lrg_SC_filtered_group = {}
- ses_01_lrg_SC = ses_01_lrg["SC"]["Subject"]
- ses_01_lrg_fMRI = ses_01_lrg["fALFF"]["Subject"]
- SC_fMRI_ses_01_lrg_subs = set(ses_01_lrg_SC).intersection(ses_01_lrg_fMRI)
- #run ancovas for unimodal analysis (and multimodal SC-fMRI analyses)
- for mod in ses_01_lrg.keys():
- ses_01_lrg_ancova[mod]= ut.run_ancova(ses_01_lrg[mod], lobe_assignments["Name"])
- res = ses_01_lrg_ancova[mod]
- ses_01_lrg_group[mod] = ut.pull_group_anvoca_res(res)
- ses_01_lrg_Age[mod] = ut.pull_ancova_res(res, "Age")
- ses_01_lrg_Sex[mod] = ut.pull_ancova_res(res,"Sex")
- #run ancovas for multimodal SC-fMRI analyses
- if mod in ["FC", "fALFF"]:
- ses_01_lrg_SC_filtered = ses_01_lrg[mod][ses_01_lrg[mod]["Subject"].isin(SC_fMRI_ses_01_lrg_subs)]
- res = ut.run_ancova(ses_01_lrg_SC_filtered, lobe_assignments["Name"])
- ses_01_lrg_SC_filtered_group[mod] = ut.pull_group_anvoca_res(res)
- ctx_ses_01_lrg_SC_filtered = ses_01_lrg_SC_filtered.drop(non_ctx_assignments["Name"].to_list(),
- inplace= False,
- axis=1)
- res = ut.run_ancova(ctx_ses_01_lrg_SC_filtered, ctx_only_assignments["Name"])
- ctx_ses_01_lrg_SC_filtered_group[mod] = ut.pull_group_anvoca_res(res)
- ctx_ses_01_lrg_ancova = {}
- ctx_ses_01_lrg_group = {}
- ctx_ses_01_lrg_Age = {}
- ctx_ses_01_lrg_Sex = {}
- #run ancovas for unimodal analysis (and multimodal SC-fMRI analyses)
- for mod in ses_01_lrg.keys():
- ctx_ses_01_lrg_ancova[mod]= ut.run_ancova(ctx_ses_01_lrg[mod], ctx_only_assignments["Name"])
- res = ctx_ses_01_lrg_ancova[mod]
- ctx_ses_01_lrg_group[mod] = ut.pull_group_anvoca_res(res)
- ctx_ses_01_lrg_Age[mod] = ut.pull_ancova_res(res, "Age")
- ctx_ses_01_lrg_Sex[mod] = ut.pull_ancova_res(res,"Sex")
- #%% ### save csv of results
- #session 1
- ancova_output_path_s1 = "ANCOVA_res/ses-01/group_res/"
- ancova_output_path_s1_SC_filtered = "multimodal_ANCOVA/"
- for mod in ses_01_lrg_group.keys():
- ses_01_lrg_group[mod].to_csv(ancova_output_path_s1+ f"{mod}_s1res.csv")
- ctx_ses_01_lrg_group[mod].to_csv(ancova_output_path_s1+ f"ctx_{mod}_s1res.csv")
- if mod in ["FC","fALFF"]:
- ses_01_lrg_SC_filtered_group[mod].to_csv(ancova_output_path_s1_SC_filtered + f"{mod}_s1_lrg_SC_filtered_res.csv")
- ctx_ses_01_lrg_SC_filtered_group[mod].to_csv(ancova_output_path_s1_SC_filtered+f"ctx_{mod}_s1_lrg_SC_filtered_res.csv")
- # %%
ANCOVA_analysis_fig2.py at commit abdfbc0, no license · at the source
Overview
- Department of Radiology, Weill Cornell Medicine, New York, New York, USA
- Department of Computational Biology, Cornell University, Ithaca, New York, USA
- Department of Mathematics, Howard University, Washington, DC, USA
Abstract
Traumatic brain injury is a major cause of long‐term cognitive impairment, yet the mechanisms underlying recovery remain poorly understood. Neuroimaging methods such as diffusion magnetic resonance imaging (MRI), functional MRI (fMRI), and positron emission tomography (PET) provide insight into micro‐ and macro‐scale changes post‐traumatic brain injury (TBI), but the relationships between regional cellular and functional alterations remain unclear. In this exploratory study, we conducted a longitudinal, multimodal neuroimaging analysis quantifying TBI‐related pathologies in four biomarkers, namely flumazenil PET derived binding potential, diffusion MRI (dMRI)‐derived structural connectivity, and resting‐state fMRI‐derived functional connectivity and fractional amplitude of low‐frequency fluctuations in individuals with complicated mild‐to‐severe brain injury at the subacute (4–6 months post‐injury) and chronic (1‐year post‐injury) stages. The TBI sample consisted of 41 fMRI, 40 dMRI, and nine PET subjects, with 16 fMRI and dMRI and seven PET longitudinal measurements. The control sample consisted of 14 dMRI and fMRI and 19 PET subjects scanned at a single time point for comparison with TBI subjects at both time points. Most of the PET and MRI subjects are overlapping in both TBI and control groups. Brain injury related regional pathologies, and their changes over time in TBI subjects, were correlated across the four biomarkers. Our results reveal complex, dynamic changes over time. We found that flumazenil‐PET binding potential was significantly reduced in frontal and thalamic regions in brain‐injured subjects, consistent with neural loss and dysfunction, with partial recovery over time. Functional hyperconnectivity was observed in brain injured subjects initially but declined while remaining elevated compared to non‐injured controls, whereas cortical structural hypoconnectivity persisted. Importantly, we observed that brain injury‐related alterations across MRI modalities became more strongly correlated with flumazenil‐PET at the chronic stage. Regions with chronic reductions in flumazenil‐PET binding also showed weaker structural node strength and lower amplitude of low‐frequency fluctuations, a relationship that was not found at the subacute stage. This observation could suggest a progressive convergence of structural and functional disruptions with neuronal dysfunction and loss over time. Additionally, regions with declining structural node strength also exhibited decreases in functional node strength, while these same regions showed increased amplitude of low‐frequency fluctuations over time. This pattern suggests that heightened intrinsic regional activity may serve as a compensatory mechanism in regions increasingly disconnected due to progressive axonal degradation. Altogether, these findings advance our understanding of how multimodal neuroimaging captures the evolving interplay between neuronal integrity, structural connectivity, and functional dynamics after brain injury. Given the exploratory nature of this study, stemming from the modest sample size, future work in larger cohorts will be essential to validate and refine these preliminary associations as well as the inclusion of multiple measures of healthy controls. Clarifying these interrelationships could inform prognostic models and enhance knowledge of degenerative, compensatory, and recovery mechanisms in traumatic brain injury.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above.
anaradanovic/MultiMod_TBI
abdfbc012a64bb490220cbf774d460d352d74661, 25 April 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
27 files
- Figure_2/
ANCOVA_analysis_fig2.py , Python, 164 lines - Figure_2/
Viz_ANCOVA_group_results , Python, 50 lines_brainmontage_fig2.py - Figure_3/
ANCOVA_analysis_fig3.py , Python, 231 lines - Figure_3/
LMER_TBI_bothses.R , R, 134 lines - Figure_3/
Viz_ANCOVA_group_results , Python, 67 lines_brainmontage_fig3.py - Figure_4/
ANCOVA_analysis_fig4.py , Python, 193 lines - Figure_4/
LMER_TBI_bothses.R , R, 132 lines - Figure_4/
plot_multimodal_correlat , R, 954 linesions_PET.R - Figure_4/
spearman_corr_multimodal , Python, 285 lines_permutations.py - Supplementary_Figures/
Figure_1/ , R, 287 linesplot_correlations_PET.R - Supplementary_Figures/
Figure_1/ , Python, 106 linesspearman_corr_multimodal .py - Supplementary_Figures/
Figure_2/ , R, 44 linesViz_fALFF_SC_corr.R - Supplementary_Figures/
Figure_2/ , Python, 160 linescorr_fALFF_SC.py - Supplementary_Figures/
Figure_3/ , Python, 101 linesViz_etasq_ANCOVA.py - Supplementary_Figures/
Figure_3/ , Python, 213 linesfstat_etasq_ANCOVA.py - Supplementary_Figures/
Figure_4/ , Python, 782 linesPET_ANT_BEH_analysis.py - Supplementary_Figures/
Figure_4/ , R, 190 linesViz_neurcog_corr_network s.R - Supplementary_Figures/
Figure_5/ , Python, 427 linesANCOVA-analysis-rapidtid e.py - Supplementary_Figures/
Figure_5/ , R, 28 linesLMER_TBI_bothses_rapidti de.R - Supplementary_Figures/
Figure_5/ , Python, 44 linesViz_ANCOVA_group_results _rapidtide_brainmontage. py - Supplementary_Figures/
Figure_6/ , R, 288 linesLMER_TBI_bothses_1plusda yssub.R - Supplementary_Figures/
Figure_6/ , Python, 119 linesLMER_spearman_corr.py - Supplementary_Figures/
Figure_6/ , Python, 95 linesViz_LMER_TBI_bothses_ses -effect_days.py - Supplementary_Figures/
Figure_6/ , R, 304 linesviz_LMER_spearman_corr.R - __init__.py, Python, 1 line
- utils.py, Python, 699 lines
- README.md, Text, 67 lines
The paper's code and data availability statement is in the Data section.
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;
- 26 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
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. Code supporting statistical analyses and data visualization are available here (https://
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, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 6 authors, 4 keywords, 15 MeSH terms, 5 funders, 99 references.
Cite
This paper
Radanovic, A., Jamison, K. W., Kang, Y., Tozlu, C., Shah, S. A., & Kuceyeski, A. (2026). Longitudinal Multimodal Neuroimaging After Traumatic Brain Injury. Human brain mapping, 47(6), e70534. https://
BibTeX
@article{radanovic2026lo
author = {Radanovic, Ana and Jamison, Keith W and Kang, Yeona and Tozlu, Ceren and Shah, Sudhin A and Kuceyeski, Amy},
title = {{Longitudinal Multimodal Neuroimaging After Traumatic Brain Injury}},
journal = {Human brain mapping},
year = {2026},
month = apr,
volume = {47},
number = {6},
pages = {e70534},
publisher = {Wiley},
issn = {1065-9471},
doi = {10.1002/
url = {https://
pmid = {42046146},
pmcid = {PMC13121098}
}
RIS
TY - JOUR
AU - Radanovic, Ana
AU - Jamison, Keith W
AU - Kang, Yeona
AU - Tozlu, Ceren
AU - Shah, Sudhin A
AU - Kuceyeski, Amy
TI - Longitudinal Multimodal Neuroimaging After Traumatic Brain Injury
T2 - Human brain mapping
J2 - Hum Brain Mapp
PY - 2026
DA - 2026/
VL - 47
IS - 6
SP - e70534
SN - 1065-9471
PB - Wiley
DO - 10.1002/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1002/
"type": "article-journal",
"title": "Longitudinal Multimodal Neuroimaging After Traumatic Brain Injury",
"container-title": "Human brain mapping",
"author": [
{
"family": "Radanovic",
"given": "Ana"
},
{
"family": "Jamison",
"given": "Keith W"
},
{
"family": "Kang",
"given": "Yeona"
},
{
"family": "Tozlu",
"given": "Ceren"
},
{
"family": "Shah",
"given": "Sudhin A"
},
{
"family": "Kuceyeski",
"given": "Amy"
}
],
"container-title-short":
"volume": "47",
"issue": "6",
"page": "e70534",
"DOI": "10.1002/
"PMID": "42046146",
"PMCID": "PMC13121098",
"ISSN": "1065-9471",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
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/fcag145 [code]
- GABA&
lt;sub& gt;A& lt;/ sub& gt; binding correlates with high-frequency EEG: a possible proxy for depolarization in traumatic brain injury. Journal: Brain communicationsIn common: Pingouin, statsmodels, pandas, 3 other tools, traumatic brain injury, PET / SPECT, 5 references, author Ana Radanovic - [2] doi:10.1016/j.nicl.2026.104012 [code]
- Structural-functional multilayer brain network properties and outcome of combined repetitive transcranial magnetic stimulation and psychotherapy for obsessive-compulsive disorder.Journal: NeuroImage. ClinicalIn common: Pingouin, lmerTest, lme4, 8 other tools, fMRI, structural MRI / diffusion, 3 references
- [3] doi:10.1038/s41467-026-73072-6 [code]
- Mapping the spatiotemporal continuum of structural connectivity development across the human connectome in youth.Journal: Nature communicationsIn common: lmerTest, lme4, statsmodels, 4 other tools, structural MRI / diffusion, 5 references
- [4] doi:10.1162/imag.a.1245 [code]
- Towards precision EEG connectomics: Evaluating the benefits of dense sampling.Journal: Imaging neuroscience (Cambridge, Mass.)In common: Pingouin, lmerTest, lme4, 8 other tools, 1 reference
- [5] doi:10.1162/imag.a.105 [code]
- Right posterior theta reflects human parahippocampal phase resetting by salient cues during goal-directed navigationJournal: n/aIn common: Pingouin, lmerTest, lme4, 8 other tools, fMRI
- [6] doi:10.7554/elife.103097 [code]
- Canonical neurodevelopmental trajectories of structural and functional manifolds.Journal: eLifeIn common: Pingouin, statsmodels, ggplot2, 4 other tools, structural MRI / diffusion, 4 references
- [7] doi:10.1038/s41467-026-71428-6 [code]
- Binding items to contexts through conjunctive neural representations with the method of loci.Journal: Nature communicationsIn common: lmerTest, lme4, statsmodels, 7 other tools, 2 references
- [8] doi:10.1093/cercor/bhag077 [code]
- The longitudinal development of intrinsic timescales in infancy and their relation to alpha brain rhythm.Journal: Cerebral cortex (New York, N.Y. : 1991)In common: Pingouin, lmerTest, lme4, 8 other tools
- [9] doi:10.1371/journal.pone.0345651 [code]
- Non-concussive head impacts sustained during American football correlate with changes in gut microbiome diversity and composition.Journal: PloS oneIn common: lmerTest, lme4, statsmodels, 7 other tools, traumatic brain injury, clinical / translational
- [10] doi:10.1093/braincomms/fcag176 [code]
- Tau topography subtypes account for clinical heterogeneity and longitudinal trajectories in early-onset Alzheimer's disease.Journal: Brain communicationsIn common: lmerTest, lme4, statsmodels, 7 other tools, PET / SPECT, clinical / translational
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, 26 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:0b32d200c022cc7c…
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.
