OSCR

Saliency-Curated Deep Learning for Predicting Receptor Status in Breast Cancer Brain Metastases.

Code ↔ Paper

12 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 12 matches
  1. [1] § 2. Materials and Methods › 2.2. Model Architecture and Processing Pipeline › 2.2.2. Data Augmentation and Normalization ↔ src/utils/transformations.py, lines 214–229 · score 0.96 · ElasticDeformation3D, RandomFlip3D, RandomGamma3D, RandomGaussianBlur3D, RandomRotation3D, RandomTranslation3D
  2. [2] § 2. Materials and Methods › 2.3. Model Development ↔ src/utils/Calibrator.py, lines 40–104 · score 0.74 · Binary Cross Entropy, Platt scaling, temperature, sigmoid, calibrated, logits
  3. [3] § 2. Materials and Methods › 2.1. Data Acquisition › 2.1.2. Train–Test Split ↔ src/Trainer.py, lines 261–376 · score 0.70 · cross validation, validation folds, leakage, stratified, split, augmentation
  4. [4] § 2. Materials and Methods › 2.3. Model Development ↔ src/utils/TemperatureCalibrator.py, lines 27–84 · score 0.69 · Binary Cross Entropy, temperature, minimizing, sigmoid, calibrated, logits
  5. [5] § 2. Materials and Methods › 2.2. Model Architecture and Processing Pipeline › 2.2.4. Classification Head ↔ src/model_definitions/ResNet.py, lines 80–132 · score 0.67 · Layer Normalization, ReLU, GAP, linear, Dropout, Head
  6. [6] § 2. Materials and Methods › 2.3. Model Development ↔ src/main.py, lines 23–87 · score 0.67 · Asymmetric Focal Loss, AdamW, optimized, Training, class, Model
  7. [7] § 2. Materials and Methods › 2.3. Model Development ↔ src/main.py, lines 23–87 · score 0.65 · weight decay, Optuna, Hyperparameter, dropout, shifting, optimization
  8. [8] § 2. Materials and Methods › 2.2. Model Architecture and Processing Pipeline › 2.2.3. Encoder Architecture ↔ src/model_definitions/ResNet.py, lines 80–132 · score 0.61 · channel dimension, ResNet, concatenated, bottleneck, resized, block
  9. [9] § 2. Materials and Methods › 2.2. Model Architecture and Processing Pipeline › 2.2.3. Encoder Architecture ↔ src/model_definitions/ResNet.py, lines 41–78 · score 0.56 · ResNet, doubling, downsampling, stride, encoder, block
  10. [10] § 2. Materials and Methods › 2.3. Model Development ↔ src/utils/losses.py, lines 39–90 · score 0.55 · Asymmetric Focal Loss, ASL, class
  11. [11] § 5. Limitations and Future Directions ↔ src/Trainer.py, lines 261–376 · score 0.53 · cross validation, aggregation, multilabel, pipeline, augmentation, fold
  12. [12] § 2. Materials and Methods › 2.2. Model Architecture and Processing Pipeline › 2.2.4. Classification Head ↔ src/model_definitions/UNet.py, lines 136–151 · score 0.51 · ReLU, GAP, linear, global, Head, classifier

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 · 233 lines · 8.1 KB · no license · 3 matches

  1. import torch
  2. import torch.nn as nn
  3. import torch.nn.functional as F
  4. from utils.constants import DEVICE
  5. # Basic 3D Residual Block
  6. class ResBlock3D(nn.Module):
  7. """
  8. A simple 3D residual block: Conv3D -> BN -> ReLU -> Conv3D -> BN + residual
  9. Input shape: [B, C_in, D, H, W]
  10. Output shape: [B, C_out, D, H, W]
  11. """
  12. def __init__(self, in_channels, out_channels, stride=1):
  13. super(ResBlock3D, self).__init__()
  14. self.conv1 = nn.Conv3d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1)
  15. self.bn1 = nn.InstanceNorm3d(out_channels)
  16. self.relu = nn.ReLU(inplace=True)
  17. self.conv2 = nn.Conv3d(out_channels, out_channels, kernel_size=3, padding=1)
  18. self.bn2 = nn.InstanceNorm3d(out_channels)
  19. # Residual projection if in/out channels differ
  20. self.proj = None
  21. if in_channels != out_channels or stride != 1:
  22. self.proj = nn.Conv3d(in_channels, out_channels, kernel_size=1, stride=stride)
  23. def forward(self, x):
  24. identity = x
  25. out = self.conv1(x)
  26. out = self.bn1(out)
  27. out = self.relu(out)
  28. out = self.conv2(out)
  29. out = self.bn2(out)
  30. if self.proj:
  31. identity = self.proj(identity)
  32. out += identity
  33. out = self.relu(out)
  34. return out
  35. # ResNet3D Encoder
  36. class ResNet3DEncoder(nn.Module):
  37. """
  38. 3D ResNet Encoder with residual blocks.
  39. - depth: number of residual blocks
  40. - base_filters: number of channels in first block (doubles at each subsequent block)
  41. Outputs:
  42. - bottleneck: final feature map
  43. - skips: list of intermediate features for classifier aggregation
  44. """
  45. def __init__(self, depth=3, base_filters=16):
  46. super(ResNet3DEncoder, self).__init__()
  47. self.depth = depth
  48. self.base_filters = base_filters
  49. self.blocks = nn.ModuleList()
  50. self.downsamples = nn.ModuleList()
  51. last_channels = 1 # input is 1 channel (grayscale)
  52. out_channels = base_filters
  53. for i in range(depth):
  54. self.blocks.append(ResBlock3D(last_channels, out_channels))
  55. if i < depth - 1:
  56. # Downsample spatial dims by 2
  57. self.downsamples.append(nn.Conv3d(out_channels, out_channels, kernel_size=2, stride=2))
  58. else:
  59. self.downsamples.append(None)
  60. last_channels = out_channels
  61. out_channels *= 2 # double channels each block
  62. def forward(self, x):
  63. skips = []
  64. for i, block in enumerate(self.blocks):
  65. x = block(x)
  66. skips.append(x) # store features for classifier
  67. if i < self.depth - 1:
  68. x = self.downsamples[i](x)
  69. return x, skips # x is bottleneck
  70. # Classifier Head with Skip Weights
  71. class ClassifierHead3D(nn.Module):
  72. """
  73. Combines multi-scale skip features via learnable per-skip weights,
  74. then performs classification via fully connected layers.
  75. """
  76. def __init__(self, skip_channels, num_classes=3, dropout=0.0):
  77. super().__init__()
  78. self.num_skips = len(skip_channels)
  79. self.skip_weights = nn.Parameter(torch.ones(self.num_skips)) # learnable scalar weights
  80. total_channels = sum(skip_channels)
  81. self.classifier = nn.Sequential(
  82. nn.AdaptiveAvgPool3d(1), # GAP → [B, C, 1, 1, 1]
  83. nn.Flatten(), # for a 5 layer resnet with 16 starting features = 16 + 32 + 64 + 128 + 256 = 496 features
  84. nn.Linear(total_channels, 256),
  85. nn.LayerNorm(256),
  86. nn.ReLU(inplace=True),
  87. nn.Dropout(dropout),
  88. nn.Linear(256, 128),
  89. nn.LayerNorm(128),
  90. nn.ReLU(inplace=True),
  91. nn.Dropout(dropout),
  92. nn.Linear(128, num_classes)
  93. )
  94. def forward(self, skips: list[torch.Tensor]):
  95. """
  96. skips: list of [B, C_i, D_i, H_i, W_i] feature maps from encoder blocks
  97. self.skip_weights: tensor of shape [num_skips], scalar weight per skip
  98. """
  99. # spatial size of bottleneck (last skip)
  100. target_shape = skips[-1].shape[2:] # (D_b, H_b, W_b)
  101. # resize each skip to bottleneck size if needed
  102. resized_skips = [
  103. F.adaptive_avg_pool3d(f, target_shape) if f.shape[2:] != target_shape else f
  104. for f in skips
  105. ]
  106. # element-wise multiplication of each skip by its scalar weight
  107. weighted_skips = [
  108. f * w.to(f.device).view(1, 1, 1, 1, 1) # broadcast scalar to [B, C_i, D, H, W]
  109. for f, w in zip(resized_skips, self.skip_weights)
  110. ]
  111. # concatenate along channel dimension
  112. concat = torch.cat(weighted_skips, dim=1) # [B, ΣC_i, D, H, W]
  113. # forward through classifier
  114. out = self.classifier(concat)
  115. return out
  116. # Full ResNet3D Classifier
  117. class ResNet3D(nn.Module):
  118. """
  119. ResNet for 3D Image MultiLabel Classification.
  120. - No decoder, residual blocks in encoder
  121. - Classifier head receives multi-scale skip features
  122. - Supports dynamic depth
  123. """
  124. def __init__(self, depth=4, base_filters=16, clf_threshold=[0.5,0.5,0.5], dropout=0.0):
  125. super(ResNet3D, self).__init__()
  126. self.name = "ResNet3D"
  127. self.depth = depth
  128. self.base_filters = base_filters
  129. self.clf_threshold = torch.tensor(clf_threshold).to(DEVICE)
  130. self.dropout = dropout
  131. self.encoder = ResNet3DEncoder(depth, base_filters)
  132. # Compute channels at each skip for classifier head
  133. skip_channels = []
  134. c = base_filters
  135. for i in range(depth):
  136. skip_channels.append(c)
  137. c *= 2
  138. self.classifier = ClassifierHead3D(skip_channels, dropout=dropout)
  139. def forward(self, x):
  140. bottleneck, skips = self.encoder(x)
  141. classifier_out = self.classifier(skips)
  142. return classifier_out
  143. def predict(self, x, return_raw=False, saliency=False):
  144. self.eval()
  145. if not saliency:
  146. with torch.no_grad():
  147. classifier_out = self.forward(x)
  148. probs = torch.sigmoid(classifier_out)
  149. preds = (probs > self.clf_threshold).float()
  150. if return_raw:
  151. return preds, probs, classifier_out
  152. return preds, probs
  153. # Vanilla Saliency maps
  154. num_labels = self.classifier.classifier[-1].out_features
  155. saliency_maps = {}
  156. # ensure input requires grad
  157. x_req = x.clone().detach().requires_grad_(True)
  158. # forward pass
  159. classifier_out = self.forward(x_req)
  160. for label_idx in range(num_labels):
  161. self.zero_grad()
  162. score = classifier_out[0, label_idx] # assuming batch size 1
  163. score.backward(retain_graph=True)
  164. grad = x_req.grad.detach().cpu()[0, 0] # [D, H, W], assuming 1 input channel
  165. saliency_maps[label_idx] = grad.abs().numpy() # take absolute value
  166. # reset gradients for next label
  167. x_req.grad.zero_()
  168. # standard prediction
  169. with torch.no_grad():
  170. probs = torch.sigmoid(classifier_out)
  171. preds = (probs > self.clf_threshold).float()
  172. if return_raw:
  173. return preds, probs, classifier_out, saliency_maps
  174. return preds, probs, saliency_maps
  175. def store(self, filepath):
  176. state = {
  177. 'model_state_dict': self.state_dict(),
  178. 'depth': self.depth,
  179. 'base_filters': self.base_filters,
  180. 'clf_threshold': self.clf_threshold,
  181. 'dropout': self.dropout,
  182. }
  183. torch.save(state, filepath)
  184. @classmethod
  185. def load(cls, filepath, map_location=None):
  186. checkpoint = torch.load(filepath, map_location=map_location)
  187. model = cls(
  188. depth=checkpoint['depth'],
  189. base_filters=checkpoint['base_filters'],
  190. clf_threshold=checkpoint.get('clf_threshold', [0.5,0.5,0.5])
  191. )
  192. model.load_state_dict(checkpoint['model_state_dict'])
  193. return model
  194. def get_config(self):
  195. return {
  196. 'depth': self.depth,
  197. 'base_filters': self.base_filters,
  198. 'clf_threshold': self.clf_threshold,
  199. 'dropout': self.dropout,
  200. }

ResNet.py at commit 1cb49ae, no license · at the source

Overview

Authors: Rafail C. Christodoulou1, Giorgos Christofi2, Constantinos Theofylaktou3, Rafael Pitsillos4, Iliana Aristokleous5,6, Elena E. Solomou7, Evros Vassiliou8, Michalis F. Georgiou9
  1. Department of Radiology, Stanford University School of Medicine, Stanford, CA 94305, USA
  2. Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology, 2628 CD Delft, The Netherlands
  3. Department of Electrical Engineering, National Technical University of Athens, 15772 Zografou, Greece
  4. Bioinformatics Department, Cyprus Institute of Neurology and Genetics, Nicosia 2371, Cyprus
  5. Department of Surgery and Urology, Uppsala University Hospital, 75237 Uppsala, Sweden
  6. Endocrine and Breast Surgery, Department of Surgical Sciences, Uppsala University, 75105 Uppsala, Sweden
  7. Department of Internal Medicine-Hematology, University of Patras Medical School, 26500 Rion, Greece
  8. Department of Biological Sciences, Kean University, Union, NJ 07083, USA
  9. Department of Radiology, Division of Nuclear Medicine, University of Miami, Miami, FL 33136, USA
Journal: Journal of clinical medicine, volume 15, issue 17, article 6501
Dates: received 26 June 2026; accepted 13 August 2026; published online 22 August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.3390/jcm15176501 · PMID 42739512 · PMCID PMC13566852 · OpenAlex W7204096708
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: structural MRI / diffusion (modality), human (organism), other condition (population), cellular / molecular (subfield)
Methods: Connectivity, Machine learning, Preprocessing, Statistics
Keywords: breast cancer brain metastases, convolutional neural networks, deep learning, MRI, estrogen receptor, progesterone receptor, HER2, explainable AI
Topic: Brain Metastases and Treatment (Pulmonary and Respiratory Medicine, Medicine), according to OpenAlex
Citations: not cited yet (Europe PMC); 30 references in the paper

Abstract

Background: Breast cancer brain metastases (BCBMs) exhibit notable receptor discordance between primary tumors and metastases, yet obtaining intracranial biopsies is rarely practical. We created an interpretable deep learning radiogenomic model to predict estrogen receptor (ER), progesterone receptor (PR), and human epidermal growth factor receptor 2 (HER2) status from MRI scans in BCBM cases. Methods: A total of 241 post-contrast T1-weighted MRIs from 142 patients were analyzed. We developed a mask-free 3D Residual Neural Network (ResNet) ensemble trained directly on cropped, bias-corrected brain images, with comprehensive 3D geometric and intensity augmentations. The model was optimized in a multi-label setting using Asymmetric Focal Loss. Hyperparameters were fine-tuned via Bayesian optimization, and class probabilities were calibrated. Additionally, Integrated Gradients (IG) offered voxel-level saliency maps. Results: Our ResNet ensemble model achieved a micro-averaged AUROC of 0.74 and a macro-averaged AUROC of 0.67. Receptor-specific AUROCs were 0.57 for ER, 0.79 for PR, and 0.64 for HER2. The F1-scores were 0.56, 0.62, and 0.88 for ER, PR, and HER2, respectively. The held-out cohort contained only four HER2-negative patients, so threshold-dependent HER2 metrics are strongly prevalence-driven and AUROC is the more appropriate summary. Qualitatively inspected saliency maps were concentrated on enhancing metastases with limited background attribution. Conclusions: This proof-of-concept study shows that a segmentation-free, interpretable 3D Convolutional Neural Network (CNN) can be trained to capture receptor-associated patterns in post-contrast T1-weighted MRI of BCBMs. Accuracy was modest relative to published radiomics models, and the mask-free, single-sequence design is offered as a methodological contribution rather than a performance gain. These findings are preliminary, do not establish clinical utility, and require validation in larger, multi-center cohorts.

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 12 matches between paragraphs and lines of code.

Const1357/BCBM-RadioGenomics-Classifier

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 1cb49ae9e60c5cb0a20df239a3ada88d704eb119, 30 January 2026
Languages: Python (16)
Size: 21 files, 16 scripts
Software Heritage: not archived
Found in: “3.2.5. Code Availability”
Holds: README, environment (requirements.txt)
Not found: license file, CITATION.cff, tests, continuous integration, documentation
Tools: PyTorch (14 files), NumPy (12 files), pandas (7 files), scikit-learn (3 files), SciPy (3 files), Matplotlib (2 files), NiBabel (2 files), SimpleITK (2 files), seaborn (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
17 files

3.2.5. Code Availability

All code supporting the findings of this study is openly accessible at the following GitHub repository: https://github.com/Const1357/BCBM-RadioGenomics-Classifier.git (accessed on 25 June 2026).

Reproduced under the paper's license (CC BY), from the paper cited above.

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;
  • 16 scripts, each with its path and the digest of its content;
  • 12 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

Publicly available datasets were analyzed in this study. The imaging and clinical data are available from The Cancer Imaging Archive Breast Cancer Brain Metastases Radiogenomics dataset: https://doi.org/10.7937/RRSE-W278. The code supporting the findings of this study is openly available at: https://github.com/Const1357/BCBM-RadioGenomics-Classifier.git (accessed on 25 June 2026).

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 8 authors, 8 keywords, 1 funder, 29 references.

Cite

This paper

Christodoulou, R. C., Christofi, G., Theofylaktou, C., Pitsillos, R., Aristokleous, I., Solomou, E. E., Vassiliou, E., & Georgiou, M. F. (2026). Saliency-Curated Deep Learning for Predicting Receptor Status in Breast Cancer Brain Metastases. Journal of clinical medicine, 15(17), 6501. https://doi.org/10.3390/jcm15176501

BibTeX

@article{christodoulou2026saliency,
author = {Christodoulou, Rafail C. and Christofi, Giorgos and Theofylaktou, Constantinos and Pitsillos, Rafael and Aristokleous, Iliana and Solomou, Elena E. and Vassiliou, Evros and Georgiou, Michalis F.},
title = {{Saliency-Curated Deep Learning for Predicting Receptor Status in Breast Cancer Brain Metastases}},
journal = {Journal of clinical medicine},
year = {2026},
month = aug,
volume = {15},
number = {17},
pages = {6501},
publisher = {Multidisciplinary Digital Publishing Institute (MDPI)},
issn = {2077-0383},
doi = {10.3390/jcm15176501},
url = {https://doi.org/10.3390/jcm15176501},
pmid = {42739512},
pmcid = {PMC13566852}
}

RIS

TY - JOUR
AU - Christodoulou, Rafail C.
AU - Christofi, Giorgos
AU - Theofylaktou, Constantinos
AU - Pitsillos, Rafael
AU - Aristokleous, Iliana
AU - Solomou, Elena E.
AU - Vassiliou, Evros
AU - Georgiou, Michalis F.
TI - Saliency-Curated Deep Learning for Predicting Receptor Status in Breast Cancer Brain Metastases
T2 - Journal of clinical medicine
J2 - J Clin Med
PY - 2026
DA - 2026/08/22
VL - 15
IS - 17
SP - 6501
SN - 2077-0383
PB - Multidisciplinary Digital Publishing Institute (MDPI)
DO - 10.3390/jcm15176501
UR - https://doi.org/10.3390/jcm15176501
LA - en
ER -

CSL-JSON

{
"id": "10.3390/jcm15176501",
"type": "article-journal",
"title": "Saliency-Curated Deep Learning for Predicting Receptor Status in Breast Cancer Brain Metastases",
"container-title": "Journal of clinical medicine",
"author": [
{
"family": "Christodoulou",
"given": "Rafail C."
},
{
"family": "Christofi",
"given": "Giorgos"
},
{
"family": "Theofylaktou",
"given": "Constantinos"
},
{
"family": "Pitsillos",
"given": "Rafael"
},
{
"family": "Aristokleous",
"given": "Iliana"
},
{
"family": "Solomou",
"given": "Elena E."
},
{
"family": "Vassiliou",
"given": "Evros"
},
{
"family": "Georgiou",
"given": "Michalis F."
}
],
"container-title-short": "J Clin Med",
"volume": "15",
"issue": "17",
"page": "6501",
"DOI": "10.3390/jcm15176501",
"PMID": "42739512",
"PMCID": "PMC13566852",
"ISSN": "2077-0383",
"publisher": "Multidisciplinary Digital Publishing Institute (MDPI)",
"URL": "https://doi.org/10.3390/jcm15176501",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
22
]
]
}
}

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.3389/fonc.2026.1816015 [code]
Modality-level attribution and redundancy-aware radiomics for MRI-based differentiation of melanoma and NSCLC brain metastases.
Journal: Frontiers in oncology
In common: SimpleITK, NiBabel, seaborn, 5 other tools, structural MRI / diffusion, other condition, 2 references
[2] doi:10.1186/s12880-026-02335-x [code]
Automatic lateral ventricle and choroid plexus segmentation method in infant brain MR images.
Journal: BMC medical imaging
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion, 1 reference
[3] doi:10.3389/frai.2026.1771088 [code]
Few-shot deployment of pretrained MRI transformers in brain imaging tasks.
Journal: Frontiers in artificial intelligence
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion, 1 reference
[4] doi:10.1002/alz.71649 [code]
Postmortem brain MRI reveals differential associations of subcortical and limbic volumes with cortical thinning and neurodegenerative pathologies.
Journal: Alzheimer's & dementia : the journal of the Alzheimer's Association
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion, other condition, cellular / molecular
[5] doi:10.21037/qims-2026-0792 [code]
An nnU-Net-based framework with adaptive feature representation for 3D brain tumor segmentation.
Journal: Quantitative imaging in medicine and surgery
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion, other condition
[6] doi:10.1002/hipo.70124 [code]
Association Between Anterior Hippocampal Gyrification and Episodic Memory Performance in Neurotypical Young Adults.
Journal: Hippocampus
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion
[7] doi:10.1371/journal.pcbi.1014555 [code]
Body surface potential driven personalisation of electrophysiological digital twins in hypertrophic cardiomyopathy.
Journal: PLoS computational biology
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion
[8] doi:10.64898/2026.07.15.26357954 [code]
Portable Ultra-Low Field MRI Deep-Learning Algorithms for White Matter Lesion Segmentation Improve Accuracy and Reflect Clinical Disability in Multiple Sclerosis
Journal: medRxiv (preprint)
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion
[9] doi:10.1136/jnnp-2025-335884 [code]
Diffusivity anisotropy signature of slowly expanding lesions predicts progression independent of relapse activity in multiple sclerosis.
Journal: Journal of neurology, neurosurgery, and psychiatry
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion
[10] doi:10.3389/fmed.2026.1875760 [code]
Adaptive multi-stage domain unlearning for white-matter lesion segmentation.
Journal: Frontiers in medicine
In common: SimpleITK, NiBabel, PyTorch, 6 other tools, structural MRI / diffusion

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.