OSCR

Multimodal FRACTAL-MSI and Image Fusion Improves Detection and Resolution of Biomolecule Imaging.

Code ↔ Paper

The paper beside its authors' code: matches between them have not been computed for this paper yet.

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 · 149 lines · 3.9 KB · MIT

  1. import numpy as np
  2. def affine_transform(
  3. coords: np.ndarray, matrix: np.ndarray, inverse: bool = False
  4. ) -> np.ndarray:
  5. """Perform an affine transform of coordinates.
  6. Args:
  7. coords: array of points with shape (3, ...)
  8. matrix: the transformation matrix
  9. inverse: do an inverse transformation
  10. Returns:
  11. transformed coords
  12. """
  13. if inverse:
  14. matrix = np.linalg.inv(matrix)
  15. # swap x,y (numpy array index) to y,x (coords) and back
  16. return np.dot(coords[:, [1, 0, 2]], matrix)[:, [1, 0, 2]]
  17. def pixel_centers(
  18. shape: np.ndarray | tuple[int, int], px: float, py: float | None = None
  19. ) -> np.ndarray:
  20. """Gets center coordinate of pixels.
  21. Args:
  22. shape: array or array shape
  23. px: pixel width
  24. py: pixel height (defaults to px)
  25. Returns:
  26. array of (x, y, z) coordinates
  27. """
  28. if isinstance(shape, np.ndarray):
  29. shape = shape.shape[:2]
  30. if py is None:
  31. py = px
  32. xs = np.arange(shape[0]) * px + px / 2.0
  33. ys = np.arange(shape[1]) * py + py / 2.0
  34. X, Y = np.meshgrid(xs, ys)
  35. return np.stack((X.flat, Y.flat, np.ones(Y.size)), axis=1)
  36. def pixel_indicies(shape: np.ndarray | tuple[int, ...]) -> np.ndarray:
  37. """Indicies of pixels.
  38. Args:
  39. shape: array or array shape
  40. Returns:
  41. array of (x, y) indicices
  42. """
  43. if isinstance(shape, np.ndarray):
  44. shape = shape.shape
  45. shape = shape[:2]
  46. X, Y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]))
  47. return np.stack((X.flat, Y.flat), axis=1)
  48. def pixel_indicies_from_centers(
  49. centers: np.ndarray,
  50. px: float,
  51. py: float | None = None,
  52. ) -> np.ndarray:
  53. """Gets the index for each pixel center.
  54. Args:
  55. centers: centers from pixel_centers (shape (N, 3))
  56. px: pixel width
  57. py: pixel height (defaults to px)
  58. Returns:
  59. indices of pixels
  60. """
  61. if py is None:
  62. py = px
  63. xi = (centers[:, 0] / px).astype(int)
  64. yi = (centers[:, 1] / py).astype(int)
  65. return np.stack((xi, yi), axis=1)
  66. def valid_indicies(
  67. indicies: np.ndarray, shape: np.ndarray | tuple[int, int]
  68. ) -> np.ndarray:
  69. """Creates a mask for indicies valid for shape.
  70. Args:
  71. indicies: from pixel_indicies_from_centers
  72. shape: array or array shape
  73. Returns:
  74. mask of valid indicies
  75. """
  76. if isinstance(shape, np.ndarray):
  77. shape = shape.shape[:2]
  78. return np.logical_and(
  79. np.logical_and(indicies[:, 0] >= 0, indicies[:, 1] >= 0),
  80. np.logical_and(indicies[:, 0] < shape[0], indicies[:, 1] < shape[1]),
  81. )
  82. def map_transformed_image(
  83. from_array: np.ndarray,
  84. from_pixel_size: tuple[float, float],
  85. to_array: np.ndarray,
  86. to_pixel_size: tuple[float, float],
  87. transform: np.ndarray,
  88. inverse: bool = False,
  89. ) -> tuple[np.ndarray, np.ndarray]:
  90. """Maps from_array indicies to ro_array using the given transform.
  91. Args:
  92. from_array: array map from
  93. from_pixel_size: size of pixels in from_array
  94. to_array: array map to
  95. to_pixel_size: size of pixels in to_array
  96. transform: affine transform from from_array to to_array
  97. inverse: transform is from to_array to from_array
  98. Returns:
  99. idx of from_array, idx mapped to to_array
  100. """
  101. from_idx = pixel_indicies(from_array.shape)
  102. if isinstance(from_pixel_size, float):
  103. centers = pixel_centers(from_array.shape, from_pixel_size)
  104. else:
  105. centers = pixel_centers(
  106. from_array.shape, from_pixel_size[0], from_pixel_size[1]
  107. )
  108. remapped = affine_transform(centers, transform, inverse=inverse)
  109. if isinstance(to_pixel_size, float):
  110. to_idx = pixel_indicies_from_centers(remapped, to_pixel_size)
  111. else:
  112. to_idx = pixel_indicies_from_centers(
  113. remapped, to_pixel_size[0], to_pixel_size[1]
  114. )
  115. return from_idx, to_idx

Frac_MSI_IF_register.py at commit b9be015, under MIT · at the source

Overview

Authors: Mika T. Westerhausen1,2,3, Rosemary J. Bergin1,2, Connor R. Phillips2,4, Jake P. Violi5, Thomas E. Lockwood1,2,6, Reggie Ridlen4, David P. Bishop1,2
  1. School of Mathematical and Physical Sciences, University of Technology Sydney, Ultimo, NSW 2007, Australia
  2. Hyphenated Mass Spectrometry Laboratory, University of Technology Sydney, Ultimo NSW 2007, Australia
  3. Molecular Horizons, University of Wollongong, Wollongong, NSW 2500, Australia
  4. School of Life Sciences, Faculty of Science, University of Technology Sydney, Sydney, NSW 2007, Australia
  5. School of Chemistry, University of New South Wales, Sydney, NSW 2052, Australia
  6. NanoMicroLab, Institute of Chemistry,University of Graz, Graz 38010, Austria
Institutions: University of Technology Sydney (Australia); University of Wollongong (Australia); UNSW Sydney (Australia); University of Graz (Austria)
Journal: ACS central science, volume 12, issue 8, pages 1119-1131
Dates: received 9 March 2026; accepted 12 June 2026; published online 6 July 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1021/acscentsci.6c00422 · PMID 42666888 · PMCID PMC13523496 · OpenAlex W7167503785
Open access: diamond, a free copy (OpenAlex)
Status: code verified
Categories: histology / microscopy (modality)
Topic: Mass Spectrometry Techniques and Applications (Spectroscopy, Chemistry), according to OpenAlex
Citations: not cited yet (Europe PMC); 87 references in the paper

Abstract

Elemental mass spectrometry imaging (MSI) of biomolecules via metal-conjugated antibodies enables highly multiplexed, in situ quantitative analyses. However, the detection of low abundance analytes by elemental MSI and the spatial resolution of the images obtained are inhibited by detector sensitivity. To overcome this constraint, we introduce FRACTAL-MSI, a signal amplification method that adapts FluoRescent signal Amplification via Cyclic staining of TArget moLecules (FRACTAL) for multimodal laser ablation-inductively coupled plasma-mass spectrometry (LA-ICP-MS) and immunofluorescence (IF) imaging by alternating fluorescent- and lanthanide-tagged secondary antibodies on the same histological section. Using NeuN as a model neuronal marker, we demonstrate 23–80× amplification of IF and LA-ICP-MS signals in fresh-frozen murine brain, FFPE tissue, and SH-SY5Y cells. Two image fusion methods that did not require machine learning were then developed that exploited true probe colocalization to generate quantitative elemental images at IF resolution. The enhanced sensitivity permitted super-resolution reconstruction of LA-ICP-MS data to obtain subcellular images with a 250 nm resolution, or greater than that of the 40× IF obtained via image fusion. We also demonstrated selective target amplification within a 4-plex elemental panel. Together, FRACTAL-MSI provides a practical, broadly accessible strategy to improve detection, and therefore the resolution, of low-abundance biomolecules.

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

Repository

Its files are read in the Code ↔ Paper reader above.

davepbish/FRACTAL-MSI

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: b9be0158ff52fd439c14b33e79bba6479ac2b4ea, 20 February 2026
Languages: Python (2)
Size: 34 files, 2 scripts
Software Heritage: not archived
Found in: the availability statement
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (2 files), Matplotlib (1 file), Pillow (1 file), SciPy (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
4 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;
  • 2 scripts, each with its path and the digest of its content;
  • no match between paragraphs and code yet;
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

No dataset and no data link were found in the paper.

Data availability

All code used can be found in the https://github.com/davepbish/FRACTAL-MSI

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, 7 authors, 2 funders, 85 references.

Cite

This paper

Westerhausen, M. T., Bergin, R. J., Phillips, C. R., Violi, J. P., Lockwood, T. E., Ridlen, R., & Bishop, D. P. (2026). Multimodal FRACTAL-MSI and Image Fusion Improves Detection and Resolution of Biomolecule Imaging. ACS central science, 12(8), 1119-1131. https://doi.org/10.1021/acscentsci.6c00422

BibTeX

@article{westerhausen2026multimodal,
author = {Westerhausen, Mika T. and Bergin, Rosemary J. and Phillips, Connor R. and Violi, Jake P. and Lockwood, Thomas E. and Ridlen, Reggie and Bishop, David P.},
title = {{Multimodal FRACTAL-MSI and Image Fusion Improves Detection and Resolution of Biomolecule Imaging}},
journal = {ACS central science},
year = {2026},
month = jul,
volume = {12},
number = {8},
pages = {1119--1131},
publisher = {American Chemical Society},
issn = {2374-7943},
doi = {10.1021/acscentsci.6c00422},
url = {https://doi.org/10.1021/acscentsci.6c00422},
pmid = {42666888},
pmcid = {PMC13523496}
}

RIS

TY - JOUR
AU - Westerhausen, Mika T.
AU - Bergin, Rosemary J.
AU - Phillips, Connor R.
AU - Violi, Jake P.
AU - Lockwood, Thomas E.
AU - Ridlen, Reggie
AU - Bishop, David P.
TI - Multimodal FRACTAL-MSI and Image Fusion Improves Detection and Resolution of Biomolecule Imaging
T2 - ACS central science
J2 - ACS Cent Sci
PY - 2026
DA - 2026/07/06
VL - 12
IS - 8
SP - 1119
EP - 1131
SN - 2374-7943
PB - American Chemical Society
DO - 10.1021/acscentsci.6c00422
UR - https://doi.org/10.1021/acscentsci.6c00422
LA - en
ER -

CSL-JSON

{
"id": "10.1021/acscentsci.6c00422",
"type": "article-journal",
"title": "Multimodal FRACTAL-MSI and Image Fusion Improves Detection and Resolution of Biomolecule Imaging",
"container-title": "ACS central science",
"author": [
{
"family": "Westerhausen",
"given": "Mika T."
},
{
"family": "Bergin",
"given": "Rosemary J."
},
{
"family": "Phillips",
"given": "Connor R."
},
{
"family": "Violi",
"given": "Jake P."
},
{
"family": "Lockwood",
"given": "Thomas E."
},
{
"family": "Ridlen",
"given": "Reggie"
},
{
"family": "Bishop",
"given": "David P."
}
],
"container-title-short": "ACS Cent Sci",
"volume": "12",
"issue": "8",
"page": "1119-1131",
"DOI": "10.1021/acscentsci.6c00422",
"PMID": "42666888",
"PMCID": "PMC13523496",
"ISSN": "2374-7943",
"publisher": "American Chemical Society",
"URL": "https://doi.org/10.1021/acscentsci.6c00422",
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
6
]
]
}
}

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.1021/cbmi.6c00007 [code]
TyrRu: A Tyramide-Amplified Multimodal Ruthenium Tag for Elemental Mass Spectrometry and Immunofluorescence Imaging.
Journal: Chemical & biomedical imaging
In common: SciPy, NumPy, histology / microscopy, 11 references, 3 authors
[2] doi:10.1016/j.xpro.2026.104695 [code]
Protocol for single-cell epigenetic profiling in human organoids and tumoroids with Epi-CyTOF.
Journal: STAR protocols
In common: 3 references
[3] doi:10.1007/s00429-026-03166-w [code]
Autoencoders for unsupervised analysis of rat myeloarchitecture.
Journal: Brain structure & function
In common: Pillow, SciPy, Matplotlib, 1 other tool, histology / microscopy, 1 reference
[4] doi:10.1038/s41598-026-57519-w [code]
Automated segmentation of neurons and spinal cord structures in immunofluorescence images using SpineDL.
Journal: Scientific reports
In common: Pillow, SciPy, Matplotlib, 1 other tool, histology / microscopy, 1 reference
[5] doi:10.1371/journal.pcbi.1013499 [code]
VesiclePy: A machine learning vesicle analysis toolbox for volume electron microscopy.
Journal: PLoS computational biology
In common: Pillow, SciPy, Matplotlib, 1 other tool, histology / microscopy, 1 reference
[6] doi:10.7554/elife.108021 [code]
BetaII-spectrin gaps and patches emerge from the patterned assembly of the actin/spectrin membrane skeleton in human motor neuron axons.
Journal: eLife
In common: Pillow, SciPy, Matplotlib, 1 other tool, 1 reference
[7] doi:10.1371/journal.pcbi.1013441 [code]
Large vision model framework for automated C. elegans analysis: From static morphometry to dynamic neural activity.
Journal: PLoS computational biology
In common: Pillow, SciPy, Matplotlib, 1 other tool, 1 reference
[8] doi:10.1016/j.isci.2026.116206 [code]
Gut distension evokes rapid neural dynamics in vagal and hindbrain populations of larval zebrafish.
Journal: iScience
In common: Pillow, SciPy, Matplotlib, 1 other tool, 1 reference
[9] doi:10.1242/dev.204980 [code]
PTEN regulates starburst amacrine cell dendrite morphology during development.
Journal: Development (Cambridge, England)
In common: Pillow, SciPy, Matplotlib, 1 other tool, 1 reference
[10] doi:10.1016/j.isci.2026.115488 [code]
An integrated &lt;i&gt;i&lt;/i&gt; &lt;i&gt;n vitro&lt;/i&gt; platform and biophysical modeling approach for studying synaptic transmission in isolated neuronal pairs.
Journal: iScience
In common: Pillow, SciPy, Matplotlib, 1 other tool, 1 reference

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.