OSCR

Gray matter volume correlates of resilience: a coordinate-based meta-analysis.

Code ↔ Paper

2 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 2 matches
  1. [1] § Methods › Statistical analysis ↔ Miscellaneous_Functions/read_database.m, lines 1 to 71 · score 0.61 · MNI space, Talairach coordinates, transformation, weighted, clusters, meta · Report a mismatch
  2. [2] § Methods › Statistical analysis ↔ densityUtility3/Support_functions_density/meta_stochastic_activation_blobs.m, lines 1 to 110 · score 0.53 · Monte Carlo, weighted proportion, FWE, map, thresholds, Voxels · Report a mismatch

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

MATLAB · 268 lines · 9.5 KB · GPL-2.0 · 1 match

  1. % script read_database
  2. % reads a neuroimaging coordinate database with fields
  3. % and transforms T88 coordinates to MNI coordinates
  4. % When you set up your own database, several rules apply. Formatting the spreadsheet
  5. % so it loads correctly can sometimes be the hardest part of running a
  6. % meta-analysis.
  7. %
  8. % See https://canlabweb.colorado.edu/wiki/doku.php/help/meta/meta_analysis_mkda
  9. %
  10. % And https://canlabweb.colorado.edu/wiki/doku.php/help/meta/database
  11. %
  12. % Here are some rules for setting up the file:
  13. % 1 The variable "dbname" in the workspace should specify the name of your coordinate database file
  14. % 2 The database must be a text file, tab delimited
  15. % 3 The 1st row of the database must contain the number of columns as its 1st and only entry
  16. % 4 The 2nd row of database must contain variable names (text, no spaces or special characters)
  17. % 5 The 3rd - nth rows of the database contains data
  18. % 6 Talairach coordinates are indicated by T88 in CoordSys variable
  19. % 7 coordinate fields should be called x, y, and z
  20. % 8 Do NOT use Z, or any other field name in clusters structure
  21. %
  22. % The second row of your database should contain names for each variable
  23. % you have coded. Some variables should be named with special keywords,
  24. % because they are used in the meta-analysis code. Other variables can be named
  25. % anything, as long as there are *no spaces or special characters* in the
  26. % name (e.g., !@#$%^&*(){}[] ~`\/|<>,.?/;:"''+=).
  27. % Anything that you could not name a variable in Matlab will also not work
  28. % here.
  29. % Here are the variable names with special meaning. They are case-sensitive:
  30. %
  31. % Subjects : Sample size of the study to which the coordinate belongs
  32. % FixedRandom : Study used fixed or random effects.
  33. % Values should be Fixed or Random.
  34. % Fixed effects coordinates will be automatically
  35. % downweighted
  36. % SubjectiveWeights : A coordinate or contrast weighting vector based on FixedRandom
  37. % and whatever else you want to weight by; e.g., study reporting threshold
  38. % The default is to use FixedRandom only if available
  39. % x, y, z : X, Y, and Z coordinates
  40. % study : name of study
  41. % Contrast : unique indices (e.g., 1:k) for each independent
  42. % contrast. This is a required variable!
  43. % All rows belonging to the same contrast should
  44. % (almost) always have the same values for every
  45. % variable other than x, y, and z.
  46. % CoordSys : Values should be MNI or T88, for MNI space or Talairach space
  47. % Talairach coordinates will be converted to MNI using
  48. % Matthew Brett's transform
  49. %
  50. % Note: On MAC, seems to read stuff saved as Windows Text in Excel
  51. %
  52. % AN EXAMPLE FROM THE SADNESS DATABASE
  53. % % 1 - save sheet as sheet name.txt, Windows format text
  54. % e.g., sheet name is MastervNeutralOnly.txt
  55. % clear variables
  56. % clear
  57. % define the name of the sheet to load
  58. % dbname = 'MastervNeutralOnly.txt'
  59. % read the database in, all columns
  60. % read_database
  61. % save a matlab .mat data file with these columns (variables) in it
  62. % call it the same name as the sheet
  63. % save MastervNeutralOnly
  64. % to load the file again, just type load filename
  65. % load MastervNeutralOnly
  66. %
  67. % If a variable dbsave is created with a text string, the DB structure will
  68. % be saved in a .mat file with the name specified by the string.
  69. clear a DBnames
  70. global study
  71. % not to be used in variable names
  72. badstrings = '!@#$%^&*(){}[] ~`\/|<>,.?/;:"''+=';
  73. % -----------------------------------------------------------------------------
  74. % * load database and read in first column - first row of first col is num columns
  75. % -----------------------------------------------------------------------------
  76. if ~exist('dbname') == 1, dbname = input('Enter name of input file: ','s'); end
  77. a = textread(dbname,'%s%*[^\n]','delimiter','\t');
  78. numc = str2num(a{1});
  79. str = repmat('%s',1,numc);
  80. % -----------------------------------------------------------------------------
  81. % * define output string
  82. % -----------------------------------------------------------------------------
  83. outstr = ['[a1'];
  84. for i = 2:numc
  85. outstr = [outstr ',a' num2str(i)];
  86. end
  87. outstr = [outstr ']'];
  88. % -----------------------------------------------------------------------------
  89. % * load full database as strings
  90. % -----------------------------------------------------------------------------
  91. eval([outstr ' = textread(dbname,str,''delimiter'',''\t'');'])
  92. % -----------------------------------------------------------------------------
  93. % * change strings to numbers, if possible
  94. % -----------------------------------------------------------------------------
  95. myl = length(a1) - 2;
  96. for i = 1:numc
  97. eval(['vec = a' num2str(i) '(3:end);'])
  98. vecout = [];
  99. for j = 1:myl
  100. try
  101. vecout(j,1) = str2num(vec{j});
  102. catch
  103. break
  104. end
  105. end
  106. if isempty(vecout) | length(vecout) < length(vec), vecout = vec; end
  107. eval(['ColumnNames{i} = a' num2str(i) '{2};'])
  108. eval(['myname = a' num2str(i) '{2};'])
  109. % get rid of problematic characters
  110. myname = deblank(myname);
  111. for j = 1:length(badstrings), myname(strfind(myname, badstrings(j))) = []; end
  112. DBnames{i} = myname;
  113. eval([myname ' = vecout;'])
  114. eval(['clear a' num2str(i)])
  115. end
  116. % -----------------------------------------------------------------------------
  117. % * check x, y, z
  118. % -----------------------------------------------------------------------------
  119. if ~(exist('x') == 1 && exist('y') == 1 && exist('z') == 1)
  120. disp('Database must have columns named x, y, and z, which contain numeric coordinates.');
  121. error('One of these is missing.')
  122. elseif iscell(x) || iscell(y) || iscell(z)
  123. disp('Database must have columns named x, y, and z, which contain numeric coordinates.');
  124. disp('Finding errors:')
  125. if iscell(x)
  126. xx = cellfun(@str2num, x, 'UniformOutput', 0);
  127. fprintf('x has %d bad values.\nRows:\n', sum(cellfun(@isempty, xx)));
  128. find(cellfun(@isempty, xx))
  129. end
  130. if iscell(y)
  131. yy = cellfun(@str2num, y, 'UniformOutput', 0);
  132. fprintf('x has %d bad values.\nRows:\n', sum(cellfun(@isempty, yy)));
  133. find(cellfun(@isempty, yy))
  134. end
  135. if iscell(z)
  136. zz = cellfun(@str2num, z, 'UniformOutput', 0);
  137. fprintf('z has %d bad values.\nRows:\n', sum(cellfun(@isempty, zz)));
  138. find(cellfun(@isempty, zz))
  139. z(find(cellfun(@isempty, zz)))
  140. end
  141. % for i = 1:length(x)
  142. % try
  143. % xx(i, 1) = str2num(x{i});
  144. % yy(i, 1) = str2num(y{i});
  145. % zz(i, 1) = str2num(z{i});
  146. % catch
  147. % fprintf('Row %3.0f : Bad value for x, y, or z. Values entered are : %s %s %s\n', i, x{i}, y{i}, z{i});
  148. % end
  149. % end
  150. error('One of these seems to have non-numeric values in at least one row (check for blank spaces/empty row at the end!)')
  151. end
  152. clear xt yt zt
  153. % -----------------------------------------------------------------------------
  154. % * convert from talairach to MNI, if we can
  155. % -----------------------------------------------------------------------------
  156. if exist('CoordSys') == 1 & exist('x') == 1 & exist('y') == 1 & exist('z') == 1
  157. fprintf(1,'Converting T88 coordinates to MNI (M. Brett transform): ')
  158. numt = 0;
  159. for i = 1:length(CoordSys)
  160. if strcmp(CoordSys{i},'T88')
  161. XYZt = tal2mni([x(i) y(i) z(i)]);
  162. x(i) = XYZt(1); y(i) = XYZt(2); z(i) = XYZt(3);
  163. numt = numt + 1;
  164. end
  165. end
  166. fprintf(1,'%3.0f Transformed\n',numt)
  167. fprintf(1,'Converting MNI coordinates to T88 for XYZtal array: ')
  168. numt = 0;
  169. for i = 1:length(CoordSys)
  170. if strcmp(CoordSys{i},'MNI') | strcmp(CoordSys{i},'spm96') | strcmp(CoordSys{i},'spm99')
  171. XYZt = mni2tal([x(i) y(i) z(i)]);
  172. xt(i) = XYZt(1); yt(i) = XYZt(2); zt(i) = XYZt(3);
  173. numt = numt + 1;
  174. else
  175. xt(i) = x(i); yt(i) = y(i); zt(i) = z(i);
  176. end
  177. end
  178. fprintf(1,'%3.0f Transformed\n',numt)
  179. XYZall = [x y z];
  180. XYZtal = [xt' yt' zt'];
  181. end
  182. % -----------------------------------------------------------------------------
  183. % * convert T to Z, if all elements are present
  184. % -----------------------------------------------------------------------------
  185. if exist('Tscore') == 1 & exist('Zscore') == 1 & exist('N') == 1
  186. fprintf(1,'Converting Tscores to Zscores\n ')
  187. for i = 1:length(Tscore),
  188. if ~isnan(Tscore(i)) & isnan(Zscore(i))
  189. Zscore(i) = spm_t2z(Tscore(i),N(i)-1);
  190. end
  191. end
  192. end
  193. clear a, clear i, clear j, clear myl, clear myname, clear vec, clear vecout, clear numc
  194. clear str, clear XYZt, clear numt
  195. %DBnames = whos;
  196. if ~exist('xyz') == 1 && exist('x', 'var') && exist('y', 'var') && exist('z', 'var'), xyz = [x y z]; end
  197. for i = 1:length(DBnames)
  198. eval(['LEN = length(' DBnames{i} ');'])
  199. if exist('xyz', 'var')
  200. % Meta-database, has XYZ, include only if right size
  201. if LEN == size(xyz,1)
  202. eval(['DB.(DBnames{i}) = ' DBnames{i} ';'])
  203. end
  204. else
  205. % Other database; include all in struct.
  206. eval(['DB.(DBnames{i}) = ' DBnames{i} ';'])
  207. end
  208. end
  209. % Save, if dbsave var is entered
  210. if ~exist('dbsave', 'var')
  211. % do not save; do nothing
  212. else
  213. if isempty(dbsave)
  214. dbsave = input('Enter name of file to save (without .mat extension): ','s');
  215. end
  216. eval(['save ' dbsave])
  217. end

read_database.m at commit c77c20b, under GPL-2.0 · at the source

Overview

Authors: Niki Hosseini-Kamkar1, Nellie Kamkar2, Rupa Kalahasthi1, Jihane Ghorayeb1, Aamna Razaan1, Annapurna Nair1, Andrew A. Nicholson3,4,5, Maaham Maswood1
  1. Rochester Institute of Technology, Dubai, United Arab Emirates
  2. London Health Sciences Centre Research Institute, London, ON, Canada
  3. Atlas Institute for Veterans and Families, Ottawa, ON, Canada
  4. School of Psychology, University of Ottawa, Ottawa, ON, Canada
  5. The Institute of Mental Health Research, Royal Ottawa Hospital, University of Ottawa, Ottawa, ON, Canada
Journal: Frontiers in psychology, volume 17, article 1691912
Dates: received 24 August 2025; accepted 27 February 2026; published online 24 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.3389/fpsyg.2026.1691912 · PMID 41953303 · PMCID PMC13053268 · OpenAlex W7140223932
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: structural MRI / diffusion (modality)
Methods: Statistics, fMRI & imaging, Preprocessing
Keywords: resilience, meta-analysis, gray matter volume, MKDA, coordinate-based meta-analysis
Topic: Resilience and Mental Health (Clinical Psychology, Psychology), according to OpenAlex
Citations: not cited yet (Europe PMC); 62 references in the paper

Abstract

Introduction: Psychological resilience refers to the capacity to maintain or regain functioning in the face of adversity, yet its structural substrates remain poorly characterized.

Methods: We conducted a coordinate-based meta-analysis of whole-brain voxel-based morphometry studies to identify gray-matter markers of resilience. Eleven eligible studies (n = 2,993) were synthesized using MKDA.

Results: Across studies reporting increased gray matter volume, a cluster showed convergence on the medial frontal wall, extending from the superior and medial frontal gyrus into the dorsal cingulate, k = 11 studies, family-wise error–corrected at p < 0.05 (10,000 permutations).

Discussion: The findings implicate medial frontal–cingulate architecture as a convergent correlate of resilience, consistent with models of fronto-limbic regulatory control. Despite the modest study base and variability in definitions of resilience across studies, this meta-analysis identifies the medial frontal–cingulate hub as a reproducible structural marker of resilience, offering a concrete target for translational and interventional research.

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.

canlab/Canlab_MKDA_MetaAnalysis

License: GPL-2.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: c77c20b96516e22890b604427c555d361fca0da0, 25 January 2024
Languages: MATLAB (202)
Size: 240 files, 202 scripts
Software Heritage: not archived
Found in: the end of the paper
Holds: license file, tests
Not found: README, CITATION.cff, environment file, continuous integration, documentation
Tools: SPM (54 files), Statistics and Machine Learning Toolbox (27 files)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
203 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;
  • 202 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 original contributions presented in the study are included in the article/Supplementary material, further inquiries can be directed to the corresponding author.

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, 30 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 8 authors, 5 keywords, 62 references.

Cite

This paper

Hosseini-Kamkar, N., Kamkar, N., Kalahasthi, R., Ghorayeb, J., Razaan, A., Nair, A., Nicholson, A. A., & Maswood, M. (2026). Gray matter volume correlates of resilience: a coordinate-based meta-analysis. Frontiers in psychology, 17, 1691912. https://doi.org/10.3389/fpsyg.2026.1691912

BibTeX

@article{hosseinikamkar2026gray,
author = {Hosseini-Kamkar, Niki and Kamkar, Nellie and Kalahasthi, Rupa and Ghorayeb, Jihane and Razaan, Aamna and Nair, Annapurna and Nicholson, Andrew A. and Maswood, Maaham},
title = {{Gray matter volume correlates of resilience: a coordinate-based meta-analysis}},
journal = {Frontiers in psychology},
year = {2026},
month = mar,
volume = {17},
pages = {1691912},
publisher = {Frontiers Media SA},
issn = {1664-1078},
doi = {10.3389/fpsyg.2026.1691912},
url = {https://doi.org/10.3389/fpsyg.2026.1691912},
pmid = {41953303},
pmcid = {PMC13053268}
}

RIS

TY - JOUR
AU - Hosseini-Kamkar, Niki
AU - Kamkar, Nellie
AU - Kalahasthi, Rupa
AU - Ghorayeb, Jihane
AU - Razaan, Aamna
AU - Nair, Annapurna
AU - Nicholson, Andrew A.
AU - Maswood, Maaham
TI - Gray matter volume correlates of resilience: a coordinate-based meta-analysis
T2 - Frontiers in psychology
J2 - Front Psychol
PY - 2026
DA - 2026/03/24
VL - 17
SP - 1691912
SN - 1664-1078
PB - Frontiers Media SA
DO - 10.3389/fpsyg.2026.1691912
UR - https://doi.org/10.3389/fpsyg.2026.1691912
LA - en
ER -

CSL-JSON

{
"id": "10.3389/fpsyg.2026.1691912",
"type": "article-journal",
"title": "Gray matter volume correlates of resilience: a coordinate-based meta-analysis",
"container-title": "Frontiers in psychology",
"author": [
{
"family": "Hosseini-Kamkar",
"given": "Niki"
},
{
"family": "Kamkar",
"given": "Nellie"
},
{
"family": "Kalahasthi",
"given": "Rupa"
},
{
"family": "Ghorayeb",
"given": "Jihane"
},
{
"family": "Razaan",
"given": "Aamna"
},
{
"family": "Nair",
"given": "Annapurna"
},
{
"family": "Nicholson",
"given": "Andrew A."
},
{
"family": "Maswood",
"given": "Maaham"
}
],
"container-title-short": "Front Psychol",
"volume": "17",
"page": "1691912",
"DOI": "10.3389/fpsyg.2026.1691912",
"PMID": "41953303",
"PMCID": "PMC13053268",
"ISSN": "1664-1078",
"publisher": "Frontiers Media SA",
"URL": "https://doi.org/10.3389/fpsyg.2026.1691912",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
24
]
]
}
}

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.1038/s41598-026-49157-z
Supportive neural mechanisms underlying successful emotion regulation for reappraisal success.
Journal: Scientific reports
In common: 8 references
[2] doi:10.1016/j.neubiorev.2025.106176 [code]
The effects of childhood adversity: Two specific neural patterns.
Journal: Neuroscience and biobehavioral reviews
In common: SPM, Statistics and Machine Learning Toolbox, 4 references
[3] doi:10.1371/journal.pone.0273376 [code]
Action-value processing underlies the role of the dorsal anterior cingulate cortex in performance monitoring during self-regulation of affect.
Journal: PloS one
In common: Statistics and Machine Learning Toolbox, 6 references
[4] doi:10.1089/brain.2021.0189 [code]
Nx4 Modulated Resting-State Functional Connectivity Between Amygdala and Prefrontal Cortex in a Placebo-Controlled, Crossover Trial.
Journal: Brain connectivity
In common: SPM, 4 references
[5] doi:10.1038/s41398-023-02625-w [code]
Functional connectivity between the amygdala and prefrontal cortex underlies processing of emotion ambiguity.
Journal: Translational psychiatry
In common: SPM, Statistics and Machine Learning Toolbox, 4 references
[6] doi:10.1073/pnas.2505965122 [code]
Trauma-predictive brain network connectivity adaptively responds to mild acute stress.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: Statistics and Machine Learning Toolbox, 4 references
[7] doi:10.1038/s41467-025-61471-0 [code]
Genetic risk-dependent brain markers of resilience to childhood Trauma.
Journal: Nature communications
In common: SPM, 3 references
[8] doi:10.1016/j.celrep.2026.117500 [code]
Spatio-molecular gene expression reflects dorsal anterior cingulate cortex structure and function in the human brain.
Journal: Cell reports
In common: 5 references
[9] doi:10.2147/prbm.s552134
Dynamic Brain Network Biomarkers for Depression Prediction: A Multi-Cohort Analysis of Global Neuroimaging Databases.
Journal: Psychology research and behavior management
In common: 4 references
[10] doi:10.3390/brainsci14060584 [code]
Temporal-Posterior Alpha Power in Resting-State Electroencephalography as a Potential Marker of Complex Childhood Trauma in Institutionalized Adolescents.
Journal: Brain sciences
In common: 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.

Add the badge to the code's README

OSCR: the badge of this paper

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 -->
[![OSCR](https://openscicode.org/badge/doi/10.3389/fpsyg.2026.1691912.svg)](https://openscicode.org/badge/doi/10.3389/fpsyg.2026.1691912)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.3389/fpsyg.2026.1691912.svg
   :target: https://openscicode.org/badge/doi/10.3389/fpsyg.2026.1691912
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.3389/fpsyg.2026.1691912"><img src="https://openscicode.org/badge/doi/10.3389/fpsyg.2026.1691912.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.