OSCR

Brain Age Estimation on T2-FLAIR Scans for Application to Multiple Sclerosis.

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 › Brain Age Modeling ↔ densenet_training.py, lines 11–59 · score 0.79 · absolute error, smaller, DenseNet, augmentation, pre, epoch
  2. [2] § Methods › Brain Age Modeling ↔ inception_resnet_training.py, lines 15–57 · score 0.79 · absolute error, smaller, augmentation, Inception ResNet, epoch, voxel

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 · 185 lines · 9.6 KB · MIT · 1 match

  1. import os
  2. import sys
  3. import pandas as pd
  4. import numpy as np
  5. import torch
  6. from torch.utils.data import DataLoader
  7. import monai
  8. from monai.data import NiftiDataset
  9. from monai.transforms import AddChannel, Compose, RandFlip, Resize, ScaleIntensity, ToTensor, SqueezeDim, AsChannelFirst, NormalizeIntensity, RandScaleIntensity, RandShiftIntensity, RandAdjustContrast, RandGaussianSmooth, RandHistogramShift, RandGaussianNoise, RandSpatialCrop, CenterSpatialCrop
  10. def main():
  11. ## load list of image files and the file with the coresponding ages in the same order. must be a text file with no header and a unique image file name on each row with ages in corresponding file in the exact same order.
  12. File_list_in = pd.read_csv('traning_imgs_flair.txt',header=None)
  13. Age_list_in = pd.read_csv('traning_imgs_ages.txt',header=None)
  14. File_list = np.array(File_list_in[0])
  15. Age_list = np.array(Age_list_in[0]).astype(float)
  16. ## print list lengths to ensure expected number of files
  17. print(len(File_list))
  18. print(len(Age_list))
  19. ## set up image transfomrations and data augmentation in this case the 1mm3 images are resized to 1.45mm isotropic
  20. ## various data agmentations used which are outlined in monai documentation. The image is randomly cropped to 3 voxels smaller in each dimension to allow for random shift of voxels within convolutional kernels
  21. train_transforms = Compose([AddChannel(), NormalizeIntensity(nonzero=True), Resize((121,145,121),mode="trilinear"), ScaleIntensity(), RandScaleIntensity(factors=0.2, prob=0.25), RandShiftIntensity(offsets=0.2, prob=0.25), RandFlip(prob=0.5,spatial_axis=0), RandAdjustContrast(), RandGaussianSmooth(), RandHistogramShift(), RandGaussianNoise(), RandSpatialCrop([118,142,118],random_size=False), ToTensor()])
  22. ## set up validation input trasforms without data augmentation. centre croped used instead of random crop
  23. val_transforms = Compose([AddChannel(), NormalizeIntensity(nonzero=True), Resize((121,145,121),mode="trilinear"), ScaleIntensity(), CenterSpatialCrop([118,142,118]), ToTensor()])
  24. # Define image dataset data loader and test
  25. check_ds = NiftiDataset(image_files=File_list, labels=Age_list, transform=train_transforms)
  26. check_loader = DataLoader(check_ds, batch_size=10, num_workers=1, pin_memory=torch.cuda.is_available())
  27. im, label = monai.utils.misc.first(check_loader)
  28. # create a training data loader. leave a set number of images out from the end of the list out for validation in this case 174 images. batch size set at 10 for a 12Gb GPU.
  29. train_ds = NiftiDataset(image_files=File_list[:-174], labels=Age_list[:-174], transform=train_transforms)
  30. train_loader = DataLoader(train_ds, batch_size=10, shuffle=True, num_workers=1, pin_memory=torch.cuda.is_available())
  31. # create a validation data loader. input only the left out images at the end of the list.
  32. val_ds = NiftiDataset(image_files=File_list[-174:], labels=Age_list[-174:], transform=val_transforms)
  33. val_loader = DataLoader(val_ds, batch_size=10, num_workers=1, pin_memory=torch.cuda.is_available())
  34. # Create DenseNet169 model using monai pre build. dropout of 0.1 added.
  35. device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
  36. model_1 = monai.networks.nets.densenet.densenet169(spatial_dims=3, in_channels=1, out_channels=1, dropout_prob=0.1)
  37. ## add a linear regression layer onto the end of the model to directly predict a continous variable, in this case age (without this the output will be limited from -1 to 1).
  38. model = torch.nn.Sequential(model_1,torch.nn.Linear(1,1)).to(device)
  39. ## define loss function and metric of the model in this case mean square error loss and mean absolute error.
  40. loss_function = torch.nn.MSELoss()
  41. MAE_metric = torch.nn.L1Loss()
  42. ## define the optimiser, ADAM is is used in this case with the commonly used learning rate of 1e-4 with a weight decay of 1e-5
  43. optimizer = torch.optim.Adam(model.parameters(), lr=1e-4,weight_decay=1e-5)
  44. ## set maximum number of epochs of the model
  45. max_epochs = 200
  46. ## additional learning rate decay schduling is added for further regulization of the model. Schduling used as recomended by DeepLab and commonly used in the liturature.
  47. lambda1 = lambda epoch: (1 - (epoch / max_epochs))**0.9
  48. scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda1)
  49. ## define and create text files to be used for output of model traning moitoring. A file for training epoch average and validation performance is defined
  50. txt_file_train_av_name = 'densenet_flair_train_epoch_average.txt'
  51. txt_file_val_name = 'densenet_flair_validation.txt'
  52. txt_file_train = open(txt_file_train_av_name, 'a')
  53. txt_file_train.write("densenet_flair")
  54. txt_file_train.write("\n")
  55. txt_file_train.close()
  56. txt_file_train = open(txt_file_val_name, 'a')
  57. txt_file_train.write("densenet_flair")
  58. txt_file_train.write("\n")
  59. txt_file_train.close()
  60. # start a typical PyTorch training
  61. # early stopping is utilized with a patients of 20 epochs defined here.
  62. val_interval = 1
  63. best_metric = 100000
  64. wait_num = 0
  65. patience = 20
  66. best_metric_epoch = -1
  67. epoch_loss_values = list()
  68. metric_values = list()
  69. ## start loop to run model for each epoch
  70. for epoch in range(max_epochs):
  71. print("-" * 10)
  72. print(f"epoch {epoch + 1}/{200}")
  73. model.train()
  74. epoch_loss = 0
  75. epoch_metric = 0
  76. step = 0
  77. for batch_data in train_loader:
  78. step += 1
  79. ## prepare input tensor
  80. inputs, labels = batch_data[0].to(device), batch_data[1].to(device)
  81. optimizer.zero_grad()
  82. ## run model
  83. outputs = torch.squeeze(model(inputs))
  84. print(outputs,labels)
  85. ## calculate loss and back propagate
  86. loss = loss_function(outputs.float(), labels.float())
  87. metric = MAE_metric(outputs.float(), labels.float())
  88. loss.backward()
  89. optimizer.step()
  90. ## add batch loss and metric to epoch runing total
  91. epoch_loss += loss.item()
  92. epoch_metric += metric.item()
  93. epoch_len = len(train_ds) // train_loader.batch_size
  94. print(f"{step}/{epoch_len}, metric: {metric} train_loss: {loss.item():.4f}")
  95. ## calculate mean epoch loss and metric and write to monitoring file
  96. epoch_loss /= step
  97. epoch_metric /= step
  98. epoch_loss_values.append(epoch_loss)
  99. print(f"epoch {epoch + 1} average loss: {epoch_loss:.4f}")
  100. txt_file_train_av = open(txt_file_train_av_name, 'a')
  101. txt_file_train_av.write(f"epoch {epoch + 1} average metric: {epoch_metric} average loss: {epoch_loss:.4f}")
  102. txt_file_train_av.write("\n")
  103. txt_file_train_av.close()
  104. ## step forward scheduler for LR decay
  105. scheduler.step()
  106. ## evaluate model performance on validation files at end of epoch
  107. model.eval()
  108. with torch.no_grad():
  109. num_correct = 0.0
  110. metric_count = 0
  111. loss_all = 0
  112. for val_data in val_loader:
  113. val_images, val_labels = val_data[0].to(device), val_data[1].to(device)
  114. val_outputs = torch.squeeze(model(val_images))
  115. loss = loss_function(val_outputs.float(), val_labels.float())
  116. metric_val = MAE_metric(val_outputs.float(), val_labels.float())
  117. metric_count += 1
  118. num_correct += metric_val.item()
  119. loss_all += loss.item()
  120. metric_av = num_correct / metric_count
  121. loss_av = loss_all / metric_count
  122. print('VAL LOSS',metric_av)
  123. ## write validation loss and metric to monitoring file
  124. txt_file_val = open(txt_file_val_name, 'a')
  125. txt_file_val.write(f"epoch {epoch + 1}, Val_metric: {metric_av} Val_loss: {loss_av:.4f}")
  126. txt_file_val.write("\n")
  127. txt_file_val.close()
  128. metric_values.append(metric)
  129. ## early stopping if current validation perfomrance not an improvment will add to wait with patience of 20 to stop model early.
  130. if metric_av > best_metric:
  131. wait_num += 1
  132. if wait_num >= patience:
  133. txt_file_val = open(txt_file_val_name, 'a')
  134. txt_file_val.write(f"stopped early at epoch {epoch + 1}, best val metric: {best_metric} at epoch {best_metric_epoch}")
  135. txt_file_val.write("\n")
  136. txt_file_val.close()
  137. break
  138. else:
  139. wait_num = 0
  140. #update saved weights if current epoch has the best metric so far
  141. if metric_av < best_metric:
  142. best_metric = metric_av
  143. best_metric_epoch = epoch + 1
  144. torch.save(model.state_dict(), "best_model_densenet_flair.pth")
  145. print("saved new best metric model")
  146. print(
  147. "current epoch: {} current accuracy: {:.4f} best accuracy: {:.4f} at epoch {}".format(
  148. epoch + 1, metric_av, best_metric, best_metric_epoch
  149. )
  150. )
  151. #writer.add_scalar("val_accuracy", metric, epoch + 1)
  152. print(f"train completed, best_metric: {best_metric:.4f} at epoch: {best_metric_epoch}")
  153. if __name__ == "__main__":
  154. main()

densenet_training.py at commit 84822e8, under MIT · at the source

Overview

Authors: Jordan Colman1,2, Giuseppe Pontillo1,3,4,5, Olivia Goodkin1,3,6, Michael A. Foster3, Nima Mahmoudi7, Mike P. Wattjes7, Arturo Brunetti5, Gabriel Gonzalez‐Escamilla8, Sergiu Groppa8, Einar August Høgestøl9,10,11, Lars T. Westlye10, Silvia Messina12, Jacqueline Palace12, Rosa Cortese13, Nicola De Stefano13, Àlex Rovira14, Jaume Sastre‐Garriga14, Stefan Ropele15, Christian Enzinger15, Maria A. Rocca16,17
and 14 other authorsMassimo Filippi17,18, Barbara Bellenberg19, Carsten Lukas19,20, Massimiliano Calabrese21, Marco Castellaro21,22, Tomas Uher23, Manuela Vaneckova24, Ahmed Toosy3, Olga Ciccarelli3,4, Tarek Yousry25, Ferran Prados1,3,26, Frederik Barkhof1,3,4,27, James H. Cole1,27, MAGNIMS Study Group
27 affiliations
  1. UCL Hawkes Institute, University College London London UK
  2. Department of Neuroradiology King's College Hospital London UK
  3. Queen Square Multiple Sclerosis Centre, Department of Neuroinflammation UCL Queen Square Institute of Neurology London UK
  4. MS Center Amsterdam, Radiology and Nuclear Medicine, Vrije Universiteit Amsterdam, Amsterdam Neuroscience, Amsterdam UMC Location VUmc Amsterdam the Netherlands
  5. Department of Advanced Biomedical Sciences University of Naples “Federico II” Naples Italy
  6. Bayer Plc Reading UK
  7. Department of Neuroradiology Charité—Universitätsmedizin Berlin, Corporate Member of Freie Universität Berlin, Humboldt‐Universität Zu Berlin Berlin Germany
  8. Movement Disorders, Neurostimulation and Neuroimaging University Medicine Mainz Mainz Germany
  9. Department of Neurology Oslo University Hospital Oslo Norway
  10. Department of Psychology University of Oslo Oslo Norway
  11. Institute of Clinical Medicine, University of Oslo Oslo Norway
  12. Nuffield Department of Clinical Neurosciences Medical Sciences Division, University of Oxford Oxford UK
  13. Department of Medicine Surgery and Neuroscience, University of Siena Siena Italy
  14. Section of Neuroradiology, Department of Radiology Hospital Universitari Vall D'hebron Barcelona Spain
  15. Department of Neurology Medical University of Graz Graz Austria
  16. Neuroimaging Research Unit, Division of Neuroscience IRCCS San Raffaele Scientific Institute, Vita‐Salute San Raffaele University Milan Italy
  17. Vita‐Salute San Raffaele University Milan Italy
  18. Neurology Unit, Neurorehabilitation Unit, Neurophysiology Service, and Neuroimaging Research Unit, Division of Neuroscience, IRCCS San Raffaele Scientific Institute Milan Italy
  19. Institute of Neuroradiology, St. Josef Hospital, Ruhr‐University Bochum Bochum Germany
  20. Department of Neurology St. Josef Hospital, Ruhr University Bochum Bochum Germany
  21. Department of Neurosciences, Biomedicine and Movement Sciences University of Verona Verona Italy
  22. Department of Information Engineering University of Padova Padova Italy
  23. Department of Neurology and Center of Clinical Neuroscience First Faculty of Medicine, Charles University and General University Hospital Prague Czech Republic
  24. Department of Radiology First Faculty of Medicine, Charles University and General University Hospital Prague Czech Republic
  25. Lysholm Department of Neuroradiology UCLH National Hospital for Neurology and Neurosurgery London UK
  26. E‐Health Center, Universitat Oberta de Catalunya Barcelona Spain
  27. Dementia Research Centre, UCL Queen Square Institute of Neurology London UK
Journal: Human brain mapping, volume 47, issue 5, article e70425
Dates: received 18 December 2024; accepted 19 November 2025; published online 19 March 2026; in print April 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1002/hbm.70425 · PMID 41853885 · PMCID PMC13081688 · OpenAlex W7138931133
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: structural MRI / diffusion (modality), human (organism), multiple sclerosis (population), clinical / translational (subfield)
Methods: Connectivity, Statistics, Machine learning, fMRI & imaging
MeSH: Aging*, Brain*, Magnetic Resonance Imaging*, Multiple Sclerosis*, Neuroimaging*, Adult, Convolutional Neural Networks, Disease Progression, Female, Humans, Male, Middle Aged (* major topic)
Topic: Multiple Sclerosis Research Studies (Pathology and Forensic Medicine, Medicine), according to OpenAlex
Funding: ECTRIMS‐MAGNIMS and ESNR; German Federal Ministry for Education and Research, BMBF, German Competence Network Multiple Sclerosis (01GI1601I); Czech Ministry of Education; National Institute for Neurological Research (LX22NPO5107); European Union; Czech Ministry of Health (RVO VFN 64165); MEDDAY pharmaceutical company (MS‐ON‐NCT02220244, MS‐SPI2‐NCT02936037); UK Medical Research Council (MR/S026088/1); NIHR Biomedical Research Centre (541/CAP/OC/818837); Rosetrees Trust (A1332, PGL21/10079); MS Society of Great Britain and Northern Ireland; NIHR UCLH Biomedical Research Centre; US National Multiple Sclerosis Society; NIHR‐HTA
Citations: cited by 1 paper (Europe PMC); 46 references in the paper

Abstract

The brain‐predicted age difference (brain‐PAD) is associated with measures of clinical interest in people with multiple sclerosis (pwMS). Most brain age models rely on 3D T1‐weighted scans, which are not routinely acquired in MS clinical practice, limiting their potential for clinical translation. We aimed to develop a model predicting brain age using T2‐FLAIR, the core sequence for MS diagnosis and monitoring, and validate the resulting brain‐PAD values as a biomarker of MS severity and progression. We collected 3D T2‐FLAIR and 3D T1‐weighted brain MRI scans to compose (i) a multicentre cohort of healthy participants for brain age modeling, and (ii) a single‐centre cohort of pwMS and healthy controls for external validation. We trained and evaluated 3D convolutional neural network models predicting brain age from T2‐FLAIR or T1‐weighted images. Models were compared using t‐tests based on bootstrapped standard errors. Saliency maps were obtained with the SmoothGrad method to visualize regions that were most important for the predictions. Finally, using a linear model framework, we clinically validated the resulting brain‐PAD metric by assessing its relationship with diagnosis (MS versus healthy controls), clinical phenotype, disease duration, and physical disability as measured with the Expanded Disability Status Scale (EDSS), adjusting for age and sex. The Inception‐ResNet‐V2 model based on T2‐FLAIR scans yielded accurate brain age predictions (test set MAE = 3.31 years, R2 = 0.944, 5x ensemble MAE = 2.81, R2 = 0.955), which were comparable to those obtained with the T1w‐based model (test set MAE = 3.34 years, R2 = 0.942, 5x ensemble MAE = 2.84, R2 = 0.955, p = 0.91). Brain age predictions were mostly driven by subcortical regions, particularly the thalamus. T2‐FLAIR‐based brain‐PAD was higher in pwMS than healthy controls (7.07 vs −0.50 years, p < 0.0001). As with T1 brain‐PAD, FLAIR brain‐PAD correlated with MS disease duration (R = 0.24, p < 0.0001) and EDSS (R = 0.30, p < 0.0001). Brain age predictions relying on T2‐FLAIR scans are as accurate as those derived from T1‐weighted scans and could be used as an easily obtainable biomarker of MS severity and progression in clinical practice.

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.

jordan-colman/FLAIR-Brain-Age

License: MIT
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 84822e8abe9737c80026bd247424211a565be71f, 14 April 2025
Languages: Python (20), Shell (3)
Size: 40 files, 23 scripts
Software Heritage: not archived
Found in: “Data Availability Statement”
Holds: README, license file, environment (FLAIR-InseptionNet-Docker/DockerFile)
Not found: CITATION.cff, tests, continuous integration, documentation
Tools: PyTorch (15 files), NumPy (11 files), MONAI (10 files), pandas (9 files), FSL (1 file), SciPy (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
25 files

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;
  • 23 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 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. Models developed in the study and all relevant code are available at https://github.com/jordan‐colman/FLAIR‐Brain‐Age (https://github.com/jordan-colman/FLAIR-Brain-Age).

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, 34 authors, 12 MeSH terms, 14 funders, 38 references.

Cite

This paper

Colman, J., Pontillo, G., Goodkin, O., Foster, M. A., Mahmoudi, N., Wattjes, M. P., Brunetti, A., Gonzalez‐Escamilla, G., Groppa, S., Høgestøl, E. A., Westlye, L. T., Messina, S., Palace, J., Cortese, R., De Stefano, N., Rovira, À., Sastre‐Garriga, J., Ropele, S., Enzinger, C., . . . MAGNIMS Study Group. (2026). Brain Age Estimation on T2-FLAIR Scans for Application to Multiple Sclerosis. Human brain mapping, 47(5), e70425. https://doi.org/10.1002/hbm.70425

BibTeX

@article{colman2026brain,
author = {Colman, Jordan and Pontillo, Giuseppe and Goodkin, Olivia and Foster, Michael A. and Mahmoudi, Nima and Wattjes, Mike P. and Brunetti, Arturo and Gonzalez‐Escamilla, Gabriel and Groppa, Sergiu and Høgestøl, Einar August and Westlye, Lars T. and Messina, Silvia and Palace, Jacqueline and Cortese, Rosa and De Stefano, Nicola and Rovira, Àlex and Sastre‐Garriga, Jaume and Ropele, Stefan and Enzinger, Christian and Rocca, Maria A. and Filippi, Massimo and Bellenberg, Barbara and Lukas, Carsten and Calabrese, Massimiliano and Castellaro, Marco and Uher, Tomas and Vaneckova, Manuela and Toosy, Ahmed and Ciccarelli, Olga and Yousry, Tarek and Prados, Ferran and Barkhof, Frederik and Cole, James H. and {MAGNIMS Study Group}},
title = {{Brain Age Estimation on T2-FLAIR Scans for Application to Multiple Sclerosis}},
journal = {Human brain mapping},
year = {2026},
month = apr,
volume = {47},
number = {5},
pages = {e70425},
publisher = {Wiley},
issn = {1065-9471},
doi = {10.1002/hbm.70425},
url = {https://doi.org/10.1002/hbm.70425},
pmid = {41853885},
pmcid = {PMC13081688}
}

RIS

TY - JOUR
AU - Colman, Jordan
AU - Pontillo, Giuseppe
AU - Goodkin, Olivia
AU - Foster, Michael A.
AU - Mahmoudi, Nima
AU - Wattjes, Mike P.
AU - Brunetti, Arturo
AU - Gonzalez‐Escamilla, Gabriel
AU - Groppa, Sergiu
AU - Høgestøl, Einar August
AU - Westlye, Lars T.
AU - Messina, Silvia
AU - Palace, Jacqueline
AU - Cortese, Rosa
AU - De Stefano, Nicola
AU - Rovira, Àlex
AU - Sastre‐Garriga, Jaume
AU - Ropele, Stefan
AU - Enzinger, Christian
AU - Rocca, Maria A.
AU - Filippi, Massimo
AU - Bellenberg, Barbara
AU - Lukas, Carsten
AU - Calabrese, Massimiliano
AU - Castellaro, Marco
AU - Uher, Tomas
AU - Vaneckova, Manuela
AU - Toosy, Ahmed
AU - Ciccarelli, Olga
AU - Yousry, Tarek
AU - Prados, Ferran
AU - Barkhof, Frederik
AU - Cole, James H.
AU - MAGNIMS Study Group
TI - Brain Age Estimation on T2-FLAIR Scans for Application to Multiple Sclerosis
T2 - Human brain mapping
J2 - Hum Brain Mapp
PY - 2026
DA - 2026/04/01
VL - 47
IS - 5
SP - e70425
SN - 1065-9471
PB - Wiley
DO - 10.1002/hbm.70425
UR - https://doi.org/10.1002/hbm.70425
LA - en
ER -

CSL-JSON

{
"id": "10.1002/hbm.70425",
"type": "article-journal",
"title": "Brain Age Estimation on T2-FLAIR Scans for Application to Multiple Sclerosis",
"container-title": "Human brain mapping",
"author": [
{
"family": "Colman",
"given": "Jordan"
},
{
"family": "Pontillo",
"given": "Giuseppe"
},
{
"family": "Goodkin",
"given": "Olivia"
},
{
"family": "Foster",
"given": "Michael A."
},
{
"family": "Mahmoudi",
"given": "Nima"
},
{
"family": "Wattjes",
"given": "Mike P."
},
{
"family": "Brunetti",
"given": "Arturo"
},
{
"family": "Gonzalez‐Escamilla",
"given": "Gabriel"
},
{
"family": "Groppa",
"given": "Sergiu"
},
{
"family": "Høgestøl",
"given": "Einar August"
},
{
"family": "Westlye",
"given": "Lars T."
},
{
"family": "Messina",
"given": "Silvia"
},
{
"family": "Palace",
"given": "Jacqueline"
},
{
"family": "Cortese",
"given": "Rosa"
},
{
"family": "De Stefano",
"given": "Nicola"
},
{
"family": "Rovira",
"given": "Àlex"
},
{
"family": "Sastre‐Garriga",
"given": "Jaume"
},
{
"family": "Ropele",
"given": "Stefan"
},
{
"family": "Enzinger",
"given": "Christian"
},
{
"family": "Rocca",
"given": "Maria A."
},
{
"family": "Filippi",
"given": "Massimo"
},
{
"family": "Bellenberg",
"given": "Barbara"
},
{
"family": "Lukas",
"given": "Carsten"
},
{
"family": "Calabrese",
"given": "Massimiliano"
},
{
"family": "Castellaro",
"given": "Marco"
},
{
"family": "Uher",
"given": "Tomas"
},
{
"family": "Vaneckova",
"given": "Manuela"
},
{
"family": "Toosy",
"given": "Ahmed"
},
{
"family": "Ciccarelli",
"given": "Olga"
},
{
"family": "Yousry",
"given": "Tarek"
},
{
"family": "Prados",
"given": "Ferran"
},
{
"family": "Barkhof",
"given": "Frederik"
},
{
"family": "Cole",
"given": "James H."
},
{
"literal": "MAGNIMS Study Group"
}
],
"container-title-short": "Hum Brain Mapp",
"volume": "47",
"issue": "5",
"page": "e70425",
"DOI": "10.1002/hbm.70425",
"PMID": "41853885",
"PMCID": "PMC13081688",
"ISSN": "1065-9471",
"publisher": "Wiley",
"URL": "https://doi.org/10.1002/hbm.70425",
"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.1162/imag.a.1352 [code]
Brain-age in ultra-low-field MRI: How well does it work?
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: MONAI, FSL, PyTorch, 3 other tools, structural MRI / diffusion, 6 references, author James H Cole
[2] doi:10.1162/netn.a.545 [code]
Structure-function multilayer network integration and cognition in multiple sclerosis.
Journal: Network neuroscience (Cambridge, Mass.)
In common: SciPy, NumPy, multiple sclerosis, structural MRI / diffusion, 3 authors
[3] doi:10.1162/imag.a.1164 [code]
Bias and generalizability of brain age prediction models: A multi-cohort evaluation with anatomical and interpretability insights.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: MONAI, FSL, PyTorch, 3 other tools, structural MRI / diffusion, 7 references
[4] doi:10.1186/s40708-026-00316-y [code]
Generalizable and explainable deep learning for brain MRI: a multi-cohort evaluation of 3D architectures for age and sex prediction.
Journal: Brain informatics
In common: MONAI, PyTorch, pandas, 2 other tools, structural MRI / diffusion, 7 references
[5] doi:10.1038/s43856-026-01722-3 [code]
Local and global patterns support medical imaging as a biomarker of ageing.
Journal: Communications medicine
In common: PyTorch, pandas, SciPy, 1 other tool, clinical / translational, 8 references
[6] doi:10.3389/fdgth.2026.1691088 [code]
Real-world federated learning for brain imaging scientists.
Journal: Frontiers in digital health
In common: MONAI, PyTorch, pandas, 2 other tools, multiple sclerosis, structural MRI / diffusion, 4 references
[7] doi:10.1093/braincomms/fcag129 [code]
Longitudinal changes of choroid plexus volumes and MRI ratios in multiple sclerosis.
Journal: Brain communications
In common: FSL, pandas, SciPy, 1 other tool, multiple sclerosis, structural MRI / diffusion, clinical / translational, 1 reference, author Barbara Bellenberg
[8] doi:10.1038/s41398-026-04078-3 [code]
Brain age prediction in generalized anxiety disorder using a convolutional neural network.
Journal: Translational psychiatry
In common: structural MRI / diffusion, clinical / translational, 4 references, author Massimo Filippi
[9] doi:10.1073/pnas.2519586123 [code]
Personalized functional topography-based multisite brain age prediction modeling reveals divergent neurodevelopment in major depression.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: pandas, SciPy, NumPy, structural MRI / diffusion, 5 references
[10] doi:10.1093/braincomms/fcag162 [code]
Disability profiles in progressive multiple sclerosis reflect pathology distribution, independent of clinical phenotype.
Journal: Brain communications
In common: pandas, SciPy, NumPy, multiple sclerosis, structural MRI / diffusion, clinical / translational, author James H Cole

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.

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.