A multimodal imaging-based integrative framework for HIV-associated cognitive impairment and treatment response.
The 2 matches
- [1] § Materials and methods › Data analysis › Fractal dimensionality (FD) ↔ calcFD/calcFD.m, lines 1–60 · score 0.82 · Fractal dimensionality, cortical ribbon, FreeSurfer, calcFD, intermediate, unparcellated
- [2] § Materials and methods › Data analysis › Fractal dimensionality (FD) ↔ examples/example_nii.m, lines 23–33 · score 0.52 · Fractal dimensionality, calcFD, box, algorithm
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 · 308 lines · 12 KB · GPL-3.0 · 1 match
- function [fd,subjects] = calcFD(subjects,subjectpath,options)
- % Calculate the fractal dimensionality of a 3D structure.
- % Designed to work with intermediate files from FreeSurfer analysis pipeline
- % (ribbon.mgz, aparc.a2009s+aseg.mgz, and others).
- % Also can use other mgz volume as input (e.g., see 'benchmark folder').
- %
- % See 'wrapper_sample.m' for an example of how to use the calcFD toolbox.
- %
- % REQUIRED INPUTS:
- % subjects = list of subjects names in a cell array.
- % Alternatively accepts {'.'} to run on all subjects in folder.
- % {'.'} will only work if there are no non-subject directories
- % in the folder, but does skip 'fsaverage' and 'fmirprep'.
- %
- % subjectpath = FreeSurfer 'SUBJECTDIR' where standard directory structure is
- %
- % options = specify details of running the analysis
- %
- % options.alg = 'dilate' | 'boxcount'
- %
- % options.countFilled = 0 | 1
- % 0 == Surface-only (FDs)
- % 1 == Filled volume (FDf)
- %
- % options.aparc = 'Ribbon' | 'Dest_aparc' | 'Dest_select' | 'DKT' | 'Economo' | 'none'
- % 'Ribbon' == Cortical Ribbon (unparcellated)
- % 'Dest_aparc' == Parcellated cortical regions (Destrieux)
- % ** requires options.input.
- % 'Dest_select' == Any region in the aparc.a2009s+aseg.mgz volume,
- % ** requires options.input.
- % 'DKT' == Parcellated cortical regions (DKT).
- % ** requires aparc.DKTatlas+aseg.mgz (FS 6) or
- % aparc.DKTatlas40+aseg.mgz (FS 5.3) to exist.
- % The volume can be generated (FS 5.3) using:
- % mri_aparc2aseg --s [SUBJECTID] --annot aparc.DKTatlas40
- % See Madan & Kensinger (2017, Brain Informatics) for further details.
- % 'Economo' == Parcellated cortical regions (von Economo-Koskinas).
- % ** requires economo+aseg.mgz to exist.
- % The volume can be generated using:
- % mris_ca_label, mris_anatomical_stats
- % See Scholtens et al. (2018, NeuroImage) and
- % Madan & Kensinger (2018, Eur J Neurosci) for further details.
- % 'none' == Binarized volume to be manually entered
- % (e.g., benchmark volumes).
- %
- % options.input = filename string, required for 'Dest_aparc' and 'Dest_select
- % if options.aparc == 'Dest_aparc'
- % This should be a file with the name 'mask_*.txt',
- % where * is the value in options.input.
- % File should have either 74 or 148 rows, only 1 column.
- % If only 74 values, labels are assigned bilaterally.
- % Value in each row is the label to assign to that parcellated region,
- % based on the Destrieux et al. (2010) parcellation scheme.
- % See 'mask_lobe.txt' for an example.
- % See 'calcFD_mask.xlsx' for a list of which regions correspond to each row number.
- % --
- % if options.aparc == 'Dest_select'
- % This should be a file with the name 'select_*.txt',
- % where * is the value in options.input.
- % Regions correspond to intensity values in aparc.a2009s+aseg.mgz.
- % See FreeSurfer files (e.g., FreeSurferColorLUT.txt, ASegStatsLUT.txt,
- % WMParcStatsLUT.txt) for mapping of region intensities to names.
- % Multiple region values on the same row will be processed as a single structure.
- % Currently cannot use the same region in more than one row,
- % if need to violate this, use multiple input text files.
- % See 'select_subcort.txt' and 'select_ventricles.txt' for examples.
- %
- %
- % options.labelfile = filename string of the text file providing the label names of the analyzed brain regions.
- % Can be either 'none' if no such file is available or '*.txt',
- % see 'select_subcort_legend.txt' for an example.
- % If specified as 'none', brain regions will be labeled numerically.
- %
- %
- % options.output = filename string to output FD values to
- %
- %
- % OPTIONAL INPUTS:
- % options.boxsizes = list of numbers
- % Default: 2.^[0:4] (resolves to [1,2,4,8,16])
- % Specify what 'box sizes' (also applies to dilation algorithm) to use
- % when calculating FD.
- % Preferred to scale in powers of two.
- %
- % ----
- %
- % The calcFD toolbox is available from: http://cmadan.github.io/calcFD/.
- %
- % Please cite this paper if you use the toolbox:
- % Madan, C. R., & Kensinger, E. A. (2016). Cortical complexity as a measure of
- % age-related brain atrophy. NeuroImage, 134, 617-629.
- % doi:10.1016/j.neuroimage.2016.04.029
- %
- % If you use the toolbox with subcortical/ventricular structures, please also cite:
- % Madan, C. R., & Kensinger, E. A. (2017). Age-related differences in the structural
- % complexity of subcortical and ventricular structures. Neurobiology of Aging, 50, 87-95.
- % doi:10.1016/j.neurobiolaging.2016.10.023
- %
- %
- % 20180517 CRM
- % build 31
- %
- % 20180503 SK: modified to include text file with label names as input,
- % see 'options.labelfile' above and the examples in wrapper_sample.m and
- % wrapper_sample_subcort.m.
- % process optional inputs
- if ~isfield(options,'boxsizes')
- options.boxsizes = 2.^[0:4];
- % resolves to [1,2,4,8,16]
- end
- % make labelfile optional
- if ~isfield(options,'labelfile')
- options.labelfile = 'none';
- end
- % 20180503 SK: check if label file is provided
- if strcmp(options.labelfile, 'none')
- labelfile = 'none' ;
- else
- labelfile = options.labelfile ;
- end
- % get full list of subjects if asked
- if strcmp(subjects{1},'.');
- list = dir(fullfile(subjectpath));
- list = {list([list.isdir]).name};
- % exclude the known non-subject folders
- excl = [1:2]; % skip '.' and '..'
- excl = [excl find(cellfun(@length,strfind(list,'fsaverage')))];
- excl = [excl find(cellfun(@length,strfind(list,'fmriprep')))];
- list = list(setdiff(1:length(list),excl));
- subjects = list;
- elseif length(strfind(subjects{1},'*'))==1
- % subjects name has a wildcard, but only expect one entry then
- list = dir(fullfile(subjectpath,subjects{1}));
- list = {list([list.isdir]).name};
- subjects = list;
- end
- % error handling
- if ~exist('strlen')
- disp('MATLAB-FreeSurfer functions not found in MATLAB path.')
- disp('Please see https://surfer.nmr.mgh.harvard.edu/fswiki/UserContributions/FAQ#FreeSurfer.26Matlab')
- end
- for s = 1:length(subjects)
- fprintf('Calculating FD for subject %s...',subjects{s})
- failed = 0;
- % load the desired aparc
- switch options.aparc
- case {'ribbon','Ribbon'}
- vol_fname = fullfile(subjectpath,subjects{s},'mri','ribbon.mgz');
- vol = load_mgh(vol_fname);
- % in cortical ribbon, GM = 42/3
- vol = (vol==3) | (vol==42);
- labels = 1;
- case 'Dest_aparc'
- vol_fname = fullfile(subjectpath,subjects{s},'mri','aparc.a2009s+aseg.mgz');
- vol = load_mgh(vol_fname);
- labels = unique(vol);
- labels = labels(labels>10000);
- % load mask assignment
- mask = load(['mask_' options.input '.txt']);
- if length(mask) == 74
- % duplicate for other hemi
- mask = [ mask; mask ];
- end
- % reassign intensities using mask
- vol_mask = zeros(size(vol));
- for l = labels'
- vol_mask(vol==l) = mask(labels==l);
- end
- % replace vol with vol_mask
- vol = vol_mask;
- labels = unique(vol);
- labels = setdiff(labels,0);
- case 'Dest_select'
- vol_fname = fullfile(subjectpath,subjects{s},'mri','aparc.a2009s+aseg.mgz');
- vol = load_mgh(vol_fname);
- labels = unique(vol);
- % load select assignment
- select = load(['select_' options.input '.txt']);
- % reassign intensities using mask
- vol_mask = zeros(size(vol));
- for l = select(:)'
- ll = find(sum(select==l,2)); % line number
- % fix for limitation of 'each row to have the same number of values'
- vx = vol==l;
- if sum(vx) == 0
- %disp(sprintf('No match for %g.',l))
- else
- vol_mask(vx) = ll;
- end
- % patch end
- end
- % replace vol with vol_mask
- vol = vol_mask;
- labels = unique(vol);
- labels = setdiff(labels,0);
- case 'DKT'
- try
- % FreeSurfer 5.3, requires mri_aparc2aseg to also be run
- vol_fname = fullfile(subjectpath,subjects{s},'mri','aparc.DKTatlas40+aseg.mgz');
- vol = load_mgh(vol_fname);
- catch
- % FreeSurfer 6.0, volume should be created automatically by standard recon-all pipeline
- vol_fname = fullfile(subjectpath,subjects{s},'mri','aparc.DKTatlas+aseg.mgz');
- vol = load_mgh(vol_fname);
- end
- labels = unique(vol);
- % only the cortical regions
- labels = labels(labels>999);
- % remove the 'unknown' regions
- labels = setdiff(labels,[1000 2000]);
- case {'Economo'}
- % see help for direction on how to generate this volume
- vol_fname = fullfile(subjectpath,subjects{s},'mri','economo+aseg.mgz');
- vol = load_mgh(vol_fname);
- labels = unique(vol);
- % only the cortical regions
- labels = labels(labels>999);
- % remove the 'unknown' regions
- labels = setdiff(labels,[1000 2000]);
- case 'none'
- vol_fname = fullfile(subjectpath,[subjects{s} '.mgz']);
- vol = load_mgh(vol_fname);
- labels = unique(vol);
- labels = setdiff(labels,0);
- otherwise
- % not sure what to do with that request...
- disp(sprintf('%s is not a valid parcellation scheme',options.aparc));
- failed = 1;
- end
- fprintf('%g region(s).\n',length(labels))
- if failed == 0
- for l = 1:length(labels)
- if length(labels) > 1 & mod(l,10)==0
- fprintf('%g...',l)
- end
- % box sizes to measure complexity, scaled by powers of 2
- r = options.boxsizes;
- % extract portion of vol that is specific label
- vol_label = (vol==labels(l));
- % crop the volume, with padding of half of the largest box size
- vol_label = calcFD_volCrop(vol_label,max(r)/2);
- % if not counting filled voxels, need to hollow out the vol
- if options.countFilled == 0
- vol_label = calcFD_hollowVol(vol_label);
- end
- switch options.alg
- case 'boxcount'
- n = calcFD_boxcount(vol_label,r);
- case 'dilate'
- n = calcFD_dilate(vol_label,r);
- end
- if ~isnan(n)
- % linear fit
- c = [log2(r)' ones(length(r),1)] \ -log2(n)';
- else
- % failed
- c(1) = NaN;
- disp('Failed. Check input volume and options.input txt file.')
- end
- fd(s,l) = c(1); % slope
- end
- fprintf('done.\n')
- % for debugging
- % save([options.output(1:(end-4))])
- end
- end
- % error handling
- if ~exist('fd')
- disp('No FD values calculated. Please check that ''subjects'' and ''subjectpath'' were specified correctly.');
- end
- if isfield(options,'output')
- % output FD txt file to working directory
- calcFD_save(options.output,fd,subjects,labels,labelfile); % 20180502 SK: modified to include labelfile argument
- end
- end
- % delete debug temp file
- % delete([options.output(1:(end-4)) '.mat'])
calcFD.m at commit e49a81d, under GPL-3.0 · at the source
Overview
- Department of Biostatistics and Computational Biology, University of Rochester, Rochester, NY, United States
- Department of Neurology, University of Rochester, Rochester, NY, United States
- Department of Biomedical Engineering, University of Rochester, Rochester, NY, United States
- Department of Electrical and Computer Engineering, University of Rochester, Rochester, NY, United States
- Department of Physics and Astronomy, University of Rochester, Rochester, NY, United States
- Department of Imaging Sciences, University of Rochester, Rochester, NY, United States
- Department of Neuroscience, University of Rochester, Rochester, NY, United States
- Department of Obstetrics and Gynecology, University of Rochester, Rochester, NY, United States
Abstract
Introduction: Combination antiretroviral therapy (cART) has been shown to reduce inflammation in persons with HIV (PWH), leading to overall improvements in cognition. However, these improvements are patient-dependent and not always observable over short treatment periods.
Methods: We applied a multimodal integrative model to associate various baseline MR neuroimaging metrics with baseline neurocognitive performance and their longitudinal changes over 12 weeks of cART treatment. Features in our model included volumetric data, cerebral blood flow metrics, cerebrovascular reactivity, and diffusion MRI data from cortical, subcortical, and white matter regions of the brain. Our integrative model, which includes multilayered principal component analysis, penalized regression, and feature weight back-propagation, is designed for “large p, small n” data and offers better interpretability than deep-learning methods.
Results: There is a modest association between imaging metrics and baseline neurocognitive scores for both PWH and age-matched healthy controls, driven primarily by subcortical regions. In contrast, baseline imaging features exhibited stronger associations with longitudinal changes in cognitive performance over 12 weeks of cART in PWH than with baseline cognitive scores. The multimodal integrative model outperformed all comparable unimodal models in explaining longitudinal cognitive change. Among unimodal analyses, models based on cerebral blood flow and free-water-corrected fractional anisotropy demonstrated the strongest associations. Frequently selected predictors included the frontal pole (cortical gray matter); the amygdala, putamen, and hippocampus (subcortical gray matter); and the posterior limb of the internal capsule (white matter).
Discussion: Our approach provides an interpretable statistical framework that integrates complementary information across various imaging modalities into a robust and interpretable model for short-term cognitive trajectories in PWH undergoing cART.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.
cMadan/calcFD
e49a81d9f03a2bf705e10bb524201e505e4054ba, 29 April 2021Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
13 files
- calcFD/
calcFD.m , MATLAB, 308 lines, 1 match - calcFD/
calcFD_boxcount.m , MATLAB, 44 lines - calcFD/
calcFD_dilate.m , MATLAB, 25 lines - calcFD/
calcFD_hollowVol.m , MATLAB, 23 lines - calcFD/
calcFD_save.m , MATLAB, 44 lines - calcFD/
calcFD_volCrop.m , MATLAB, 19 lines - calcFD/
load_mgh.m , MATLAB, 283 lines - examples/
example_nii.m , MATLAB, 37 lines, 1 match - examples/
wrapper_sample.m , MATLAB, 19 lines - examples/
wrapper_sample_lateraliz , MATLAB, 19 linesed.m - examples/
wrapper_sample_subcort.m , MATLAB, 25 lines - LICENSE, License, 674 lines
- README.md, Text, 116 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:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 11 scripts, each with its path and the digest of its content;
- 2 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 raw data supporting the conclusions of this article will be made available by the author, without undue reservation.
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, 29 September 2026: the first record
Recorded: type, language, journal, volume, pages, dates, 11 authors, 7 keywords, 1 funder, 55 references.
Cite
This paper
Qiu, X., Uddin, M. N., Wang, L., Tyrell, A., Faiyaz, A., Hoang, N., Zhuang, Y., Tivarus, M. E., Zhong, J., Weber, M. T., & Schifitto, G. (2026). A multimodal imaging-based integrative framework for HIV-associated cognitive impairment and treatment response. Frontiers in neuroscience, 20, 1775047. https://
BibTeX
@article{qiu2026multimod
author = {Qiu, Xing and Uddin, Md Nasir and Wang, Lu and Tyrell, Alicia and Faiyaz, Abrar and Hoang, Nhat and Zhuang, Yuchuan and Tivarus, Madalina E. and Zhong, Jianhui and Weber, Miriam T. and Schifitto, Giovanni},
title = {{A multimodal imaging-based integrative framework for HIV-associated cognitive impairment and treatment response}},
journal = {Frontiers in neuroscience},
year = {2026},
month = apr,
volume = {20},
pages = {1775047},
publisher = {Frontiers Media SA},
issn = {1662-4548},
doi = {10.3389/
url = {https://
pmid = {42051549},
pmcid = {PMC13111216}
}
RIS
TY - JOUR
AU - Qiu, Xing
AU - Uddin, Md Nasir
AU - Wang, Lu
AU - Tyrell, Alicia
AU - Faiyaz, Abrar
AU - Hoang, Nhat
AU - Zhuang, Yuchuan
AU - Tivarus, Madalina E.
AU - Zhong, Jianhui
AU - Weber, Miriam T.
AU - Schifitto, Giovanni
TI - A multimodal imaging-based integrative framework for HIV-associated cognitive impairment and treatment response
T2 - Frontiers in neuroscience
J2 - Front Neurosci
PY - 2026
DA - 2026/
VL - 20
SP - 1775047
SN - 1662-4548
PB - Frontiers Media SA
DO - 10.3389/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.3389/
"type": "article-journal",
"title": "A multimodal imaging-based integrative framework for HIV-associated cognitive impairment and treatment response",
"container-title": "Frontiers in neuroscience",
"author": [
{
"family": "Qiu",
"given": "Xing"
},
{
"family": "Uddin",
"given": "Md Nasir"
},
{
"family": "Wang",
"given": "Lu"
},
{
"family": "Tyrell",
"given": "Alicia"
},
{
"family": "Faiyaz",
"given": "Abrar"
},
{
"family": "Hoang",
"given": "Nhat"
},
{
"family": "Zhuang",
"given": "Yuchuan"
},
{
"family": "Tivarus",
"given": "Madalina E."
},
{
"family": "Zhong",
"given": "Jianhui"
},
{
"family": "Weber",
"given": "Miriam T."
},
{
"family": "Schifitto",
"given": "Giovanni"
}
],
"container-title-short":
"volume": "20",
"page": "1775047",
"DOI": "10.3389/
"PMID": "42051549",
"PMCID": "PMC13111216",
"ISSN": "1662-4548",
"publisher": "Frontiers Media SA",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
13
]
]
}
}
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.3390/bioengineering13040413 [code]
- HIV-Associated Microstructural Abnormalities in Default Mode, Executive Control, and Salience Networks: Insights from Tensor-Valued Diffusion Encoding.Journal: Bioengineering (Basel, Switzerland)In common: structural MRI / diffusion, other condition, 7 references
- [2] doi:10.1126/sciadv.aec2348 [code]
- Congenital blindness reduces myelination in human visual cortex.Journal: Science advancesIn common: FreeSurfer, structural MRI / diffusion, other condition, 5 references
- [3] doi:10.1162/imag.a.1262 [code]
- Frame-wise multi-echo distortion correction for superior functional MRI.Journal: Imaging neuroscience (Cambridge, Mass.)In common: Tools for NIfTI and ANALYZE image (MATLAB), FreeSurfer, 4 references
- [4] doi:10.1002/hbm.70627 [code]
- Investigating the Contribution of Molecular-Enriched Functional Connectivity to Brain-Age Analysis.Journal: Human brain mappingIn common: structural MRI / diffusion, 6 references
- [5] doi:10.1162/imag.a.1354 [code]
- Development of a 24-channel 3T phased-array coil for fMRI in awake monkeys: Mitigating spatiotemporal artifacts in ferumoxytol-weighted functional connectivity estimation.Journal: Imaging neuroscience (Cambridge, Mass.)In common: FreeSurfer, 5 references
- [6] doi:10.1002/advs.202523009 [code]
- Personalized Network-Guided Neuromodulation Enhances Human Working Memory.Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)In common: Tools for NIfTI and ANALYZE image (MATLAB), FreeSurfer, 3 references
- [7] doi:10.1038/s41467-026-71555-0 [code]
- A deep representation learning model to predict response to vagus nerve stimulation.Journal: Nature communicationsIn common: FreeSurfer, structural MRI / diffusion, clinical / translational, 3 references
- [8] doi:10.1038/s41586-026-10631-3 [code]
- A prognostic human brain network for diffuse midline glioma.Journal: NatureIn common: Tools for NIfTI and ANALYZE image (MATLAB), FreeSurfer, clinical / translational, other condition, 2 references
- [9] doi:10.1371/journal.pbio.3003856 [code]
- Aging and metabolism contribute separately to brain-body health.Journal: PLoS biologyIn common: Tools for NIfTI and ANALYZE image (MATLAB), FreeSurfer, structural MRI / diffusion, clinical / translational, 1 reference
- [10] doi:10.7554/elife.107661 [code]
- In vivo mapping of striatal neurodegeneration in Huntington's disease with Soma and Neurite Density Imaging.Journal: eLifeIn common: Tools for NIfTI and ANALYZE image (MATLAB), structural MRI / diffusion, clinical / translational, other condition, 3 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, 11 scripts, and 2 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:c20bb733dc6209de…
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.
