Clinical samples
All clinical FFPE section samples, including those from cancer of the tonsils, lungs, colon, spleen, pancreas, stomach, kidneys, liver, and cervix, were obtained from the Department of Pathology at Sichuan University West China Hospital. This study was approved by the Ethics Committee of West China Hospital, Sichuan University (Approval No. 1027), and all procedures were conducted in accordance with the ethical standards outlined in the Declaration of Helsinki.
Animal samples for CmTSA
Adult C57 mice housed in an SPF-grade animal facility were anesthetized and perfused with 50 mL of PBS via the left ventricle, allowing blood to exit from the right atrium. Afterward, the mice were perfused with 50 mL of 4% paraformaldehyde (PFA) tissue fixative. Various organs (brain, heart, liver and spleen) were then collected and immersed in 25 mL of 4% PFA for fixation. After 48 h of fixation, the tissues were dehydrated and embedded. Tissue sections 4 μm in thickness were prepared using a paraffin microtome, floated on 45 °C warm water to flatten, and then carefully transferred to the center of the adhesive glass slides. The sections were baked at 60 °C for one hour to ensure firm adherence to the slides.
Cell line and mouse primary neuronal cells
HeLa cells were cultured in Dulbecco’s modified Eagle’s medium (DMEM) supplemented with 10% fetal bovine serum (FBS) and 1% penicillin‒streptomycin. The cells were maintained in a humidified incubator at 37 °C with 5% CO2. For the preparation of coverslips, cells were seeded onto sterilized glass coverslips placed in 24-well culture plates and allowed to adhere for 24 h prior to further experimental procedures.
For mouse primary neuronal cells, subventricular zone (SVZ) neurons were extracted from postnatal day 8 (P8) mouse pups using a previously established protocol. Briefly, the brains were harvested, and the SVZ was isolated, followed by enzymatic dissociation with accutase and mechanical trituration to obtain a single-cell suspension. The cells were then cultured in neurobasal medium supplemented with 2% B27, 0.5 mM l-glutamine, and 1% penicillin‒streptomycin. The culture conditions were maintained at 37 °C with 5% CO2 in a humidified incubator. Similar to the HeLa cells, the primary neuronal cells were seeded onto sterilized glass coverslips in 24-well plates and allowed to adhere for 24 h before the subsequent experiments were performed.
Deparaffinization and antigen retrieval
Paraffin-embedded tissue sections were incubated in a thermostatic incubator at 65 °C overnight. The sections were then sequentially immersed in staining jars containing xylene (three changes), with each immersion lasting 5 min. Afterward, the sections were gradually rehydrated by immersion in staining jars containing absolute ethanol (three changes), 95% ethanol, 85% ethanol, and 75% ethanol, each for 3 min. Finally, the sections were placed in a staining jar with purified water and rinsed three times for 3 min each. For antigen retrieval, the sections were placed in a staining jar containing 1× EDTA antigen retrieval solution and heated in a microwave until small bubbles formed in the solution. The jar was then transferred to a preheated water bath set at 95 °C, where the sections were incubated for 30 min. Afterward, the sections were allowed to cool to room temperature naturally. The sections were then washed with PBS three times for 2 min each.
H&E staining
After deparaffinization and antigen retrieval, the tissue sections were stained with hematoxylin, which binds to nucleic acids and stains the cell nuclei blue. Next, the sections underwent bluing, where they were treated with a weak alkaline solution to intensify the blue color of the hematoxylin. Afterward, the sections were stained with eosin, which binds to cytoplasmic and extracellular proteins, providing a pink-to-red contrast. The sections were then dehydrated through a series of graded ethanol solutions, finishing with xylene. Finally, the stained sections were mounted with a coverslip using permanent mounting medium. This process resulted in tissue sections with nuclei stained blue and cytoplasmic components stained in various shades of pink, allowing for detailed histological examination.
Antibody information
See Supplementary Table S1.
CmTSA workflow
Background fluorescence quenching
After deparaffinization and antigen retrieval, the tissue sections were placed in the LUMINIRIS Fluorescence Quenching System (#MH030101), incubated with IRISKit® HyperView Quench Buffer (#MH900102), and subjected to LED-based fluorescence quenching at a power level of 5 for 8 min. During quenching, the integrated LED illumination intensity was set between 220 and 510 mW/cm² and adjusted according to the selected wavelength setting. The sections were then washed with PBS.
CmTSA
Before staining, a hydrophobic barrier was drawn around the tissue sections using an immunohistochemistry pen. An IRISKit® HyperView multiplex immunostaining kit (#MH900205) was used for antigen labeling. The sequential labeling was performed with primary antibody for 20 min, HRP-conjugated secondary antibody for 20 min, and fluorescent dye for 5–10 min per antibody. After labeling with each antibody, the IRISKit® HyperView Advanced Ab Stripping Kit was used for antibody stripping. Different tyramide-based fluorescent dyes, specifically cyclic-480 (EX: 465–495; EM: 512–558), cyclic-550 (EX: 540–560; EM: 575–595), and cyclic-630 (EX: 620–640; EM: > 665), were used for antibody staining. These dyes are small-molecule organic fluorophores derived from fluorescein or cyanine dye structures. Their spectral properties align with those of common imaging channels: cyclic-480 is suitable for the green channel (analogous to FITC/Alexa 488), cyclic-550 is suitable for the orange/red channel (comparable to Cy3/TRITC), and cyclic-630 is suitable for the far-red channel (similar to Cy5/Alexa Fluor 647). After completing the three antibody labeling steps, DAPI was used for nuclear staining. After being washed with different reagents, the sections were washed twice with PBS, with each wash lasting for 3 min. Finally, the sections were mounted with mounting medium, and whole-slide imaging was performed using an EVIDENT VS200 microscope with a 20× objective lens. The image resolution was 0.345 μm/px.
Differential quenching of fluorescent molecules
After imaging was completed, the specific staining fluorescence was quenched, while ensuring that DAPI remained unquenched to serve as coordinates for image registration. The procedure and background fluorescence quenching were performed in the same manner. Once quenching was complete, the samples were subjected to the next round of staining using three antibodies.
Image registration
After images were acquired from multiple rounds of imaging, an algorithm automatically identified approximate feature points in the DAPI channel. A rigid transformation (translation and rotation) was then applied to find an optimal overlapping method that minimized errors, ensuring the maximum overlap of all feature points. The images were subsequently standardized by converting the bit depth to a uniform 8-bit format with a grayscale range of 0–255. This standardization allows the images to be properly displayed on standard monitors, facilitating subsequent registration, analysis, and other operations.
With respect to the workflow, staining of 40 channels usually required 13 iterative cycles (averaging three markers per cycle). Each cycle (antibody incubation, TSA reaction, imaging, and mild stripping) took approximately 6–8 h, resulting in a total experimental time of ~4–5 days for completing the 40-plex staining on a single FFPE section.
IF staining of FFPE sections
After antigen retrieval on the paraffin sections was complete, the background fluorescence was quenched for 8 min, followed by a 3 min PBS wash, which was repeated twice. The sections were incubated with the appropriate primary antibody at 37 °C for 1 h. Afterward, the sections were washed with PBS for 3 min twice, after which the corresponding fluorescent secondary antibody was added, and the sections were incubated at 37 °C for 30 min. Then, the sections were washed with PBS for 3 min twice, and the nuclei were stained with DAPI diluted 1:500 for 5 min. The samples were washed again with PBS for 3 min twice, and the sections were mounted using suitable mounting medium. Finally, whole-slide imaging was performed using an EVIDENT VS200 microscope with a 20× objective lens.
CmTSA staining of cultured cells
Healthy HeLa cells or neuron-differentiated cells were grown in a 12-well plate. The cells were then washed with PBS for 3 min twice. The cells were fixed with 4% PFA at 4 °C for 30 min. After fixation, the cells were washed again with PBS for 3 min twice. A sufficient amount of IRISKit® HyperView Quench Buffer (#MH900102) was added to cover the cells, and the cells were incubated for 5 min. The antibody staining steps were performed according to the CmTSA protocol used for FFPE samples. Finally, imaging was performed using an EVIDENT SpinSR microscope with a 100× objective lens.
Antibody screening and stripping efficiency validation
To verify whether antibodies are suitable for multiple rounds of CmTSA staining, we established a standardized screening workflow. In brief, antibodies were first applied to FFPE tissue sections for labeling and TSA visualization. After color development, the slides were incubated at 60 °C for 20 min in IRISKit® HyperView Advanced Ab Stripping Buffer (6 M urea, 62.5 mM Tris–HCl, pH 6.8, 100 mM β-mercaptoethanol) to remove bound antibodies. A second TSA reaction with a distinct fluorophore was subsequently performed to detect any residual antibodies. If the fluorescent signals remained at the same sites, this result indicated that the antibody possessed excessively high affinity and was not completely stripped, suggesting potential cross-reactivity during multicycle CmTSA staining. Conversely, the complete disappearance of signals indicated low affinity and high specificity, making the antibody suitable for iterative CmTSA applications. Representative results are shown in Supplementary Fig. S3a.
Cell segmentation
The StarDist model is a powerful tool for accurately segmenting cell nuclei in microscopy images. We imported the pretrained StarDist model into QuPath for cell segmentation in multicolor images. The preprocessed DAPI channel image was then passed through the StarDist model, which employs a star–convex polygon representation for precise nuclear segmentation. Simultaneously, we obtained the mean fluorescence intensity for each channel across different cellular structures, including the nucleus, cytoplasm, membrane, and whole cell, enabling us to filter marker positivity effectively. Additionally, we extracted the x and y coordinates of each cell’s nuclear centroid, which was used to calculate spatial relationships between cells.
The key StarDist script parameters used in QuPath were validated across multiple large FFPE tissue sections, as follows: def stardist = StarDist2D.builder(modelPath).channels(‘DAPI’).normalizePercentiles(1,99).threshold(0.5).pixelSize(0.4).cellExpansion(1).measureShape().measureIntensity().build()
Cell type thresholds for marker positivity and lineage assignment
We identified the threshold for each marker channel individually in every multiplex image of FFPE sections. First, we selected the channel for which the threshold needed to be set. Then, we chose the specific cellular location where the marker was expressed, such as the nucleus or membrane. A threshold was set within the 0–255 range, where cells with values equal to or above the threshold were classified as marker positive, and those below the threshold were classified as marker negative. This process was manually supervised, with marker-positive cells displayed on the stained image using a predefined mask color. Since certain antigen markers are shared by multiple cell types and some cell types require multiple markers for accurate identification, an annotation rule is essential for ensuring consistent, accurate, and automated classification of cellular subtypes. To assign cellular phenotypes, we established a method based on typical lineage markers, expected population abundance, and staining quality supervision.
Background fluorescence quenching efficiency
Before and after quenching, the same imaging parameters were used on the same section. Six non-overlapping ROIs were randomly selected, and the fluorescence intensity of the three imaging channels was measured using QuPath.
Specific marker quenching efficiency
For five strictly consecutive sections, triple staining was performed using the CmTSA method, with DAPI applied as the nuclear counterstain. After staining, whole-slide scanning was performed under identical imaging conditions. The first section was not quenched, the second was quenched for 3 min, the third for 6 min, the fourth for 9 min, and the fifth for 12 min. After quenching, whole-slide scanning was performed again under identical imaging conditions. At the same location on all five consecutive sections, six nonoverlapping ROIs were randomly selected, and the fluorescence intensity in the stained channels was measured using QuPath.
Assessment of antibody stripping efficiency
Antibody stripping efficiency was assessed to ensure complete removal of antibodies between staining rounds. After the tissue was stained with the first antibody (using the cyclic-480 fluorophore) and antibody stripping was completed, the effectiveness of the stripping was tested by reincubating the tissue with the secondary antibody for the first antigen for 20 min, followed by visualization with the cyclic-550 fluorophore. After imaging, six nonoverlapping ROIs were randomly selected in QuPath to measure the fluorescence intensity of cyclic-480 and cyclic-550.
Signal-to-noise ratio (SNR) of images
To calculate the SNR, we use the following formula:
$${SNR}=\frac{{{\rm{\mu }}}_{{\rm{signal}}}}{{{\rm{\sigma }}}_{{\rm{noise}}}}$$
where μsignal is the mean pixel value of the signal region, and σnoise is the standard deviation of the noise region.
Two strictly consecutive sections — one subjected to background fluorescence quenching and the other not subjected to fluorescence quenching — were used. Antigen labeling was performed under identical staining conditions. At the same location on both consecutive sections, six nonoverlapping ROIs were randomly selected, and the SNRs in the stained channels were measured using QuPath.
Statistical analysis of stained images
Statistical analyses were conducted using GraphPad Prism 10.1.2 software. The data are presented as the mean ± standard error of the mean (SEM). To determine differences between two groups, an unpaired Student’s t test was used. The P values were interpreted as follows: ns P > 0.05 (not statistically significant); *P ≤ 0.05; **P ≤ 0.01; ***P ≤ 0.001; ****P ≤ 0.0001. These symbols indicate the level of statistical significance, with more asterisks representing a higher level of significance.
Spatial interaction analysis
To identify significant interactions and separations between cell types within functional niches, we adapted the spatial neighborhood analysis method from the SOAPy package by rewriting it in R to suit the needs of this study. All calculations and plotting were performed in the R (v4.3.1) environment. The core of this method involves calculating the number of edges between each pair of cell types in the network and comparing it with the sum of the edges between the paired cell types and other cells. During the calculation, a permutation test was introduced to assess the specificity of the distribution in the real data. Specifically, this involved generating \(n\) = 100 randomizations of cell distributions and calculating the interaction log2(z score). This process provides a reliable statistical basis for the biological interpretation of cell type interactions and subsequent research. The calculation process is as follows:
$${N}_{c1,c2}=\frac{{L}_{c1,c2}}{{L}_{c1,{other}}+{L}_{c2,{other}}}$$
$$\bar{N}=\frac{1}{n}\mathop{\sum }\limits_{i=1}^{n}{N}_{{per},i};{N}_{\sigma }=\frac{1}{n-1}\mathop{\sum }\limits_{i=1}^{n}{({N}_{{per},i}-\bar{N})}^{2}$$
$$Z-{score}=\frac{{N}_{c1,c2}-\bar{N}}{{N}_{\sigma }}$$
In the formula above, \({L}_{c1,c2}\) represents the number of edges between cell types c1 and c2; \({L}_{c1,{other}}\) represents the number of edges between c1 and all the other cell types; \({L}_{c2,{other}}\) represents the number of edges between c2 and the other cell types; \({N}_{c1,c2}\) represents the cell interaction score; \({N}_{{per},i}\) represents the number of edges for the cell type pair in the i th permutation test; \(\bar{N}\) represents the average number of edges for the specific cell type pair across all the permutation tests; and \({N}_{\sigma }\) represents the overall standard deviation, which quantifies the dispersion of the number of edges for the specific cell type pair in the permutation tests. The Z score is a standardized measure indicating the deviation of the observed value from the mean, where a positive Z score suggests a tendency for interaction between cell types, and a negative Z score suggests a tendency for separation. In the heatmap visualization, to better display the results, the Z scores were log2-transformed and constrained within a narrower range to avoid the impact of extreme values on the chart, thereby improving readability and analytical effectiveness.
Spatial functional niche analysis
We adapted the algorithm based on the principles of the spatial composition analysis method from the SOAPy package to suit the samples in our study. In this method, we first defined the ratio of surrounding cells for each index cell, and groups of index cells with similar surrounding cell compositions were defined as a niche (see formula below). After each niche was identified using K-means clustering, we visualized the data in R (v4.3.1).
Specifically, we used ggplot (v3.4.3) to visualize the projection maps of cell types and niches. Next, we computed the Euclidean distance matrix using the dist function from the Stat (v4.3.1) package and performed hierarchical clustering using the hclust function from the flashClust (1.01-2) package, generating a dendrogram. Finally, we displayed the cell composition in each niche using a bubble plot, allowing us to clearly observe the cell components and characteristics of different niches.
$${R}_{i}=\frac{{C}_{{T}_{i}}}{{\sum }_{j=1}^{M}{C}_{{T}_{j}}}$$
$${N}_{i}=\,{Cluster}(\{{R}_{1},{R}_{1},\ldots ,{R}_{M}\})$$
In the formula, \({C}_{{T}_{i}}\) represents different cell types for the index cell, \({C}_{{T}_{i}}\) represents the number of cells of the surrounding cell, \(M\) represents the total number of cell types, \({\sum }_{j=1}^{M}{C}_{{T}_{j}}\) represents the total number of surrounding cells for the index cell, and \({R}_{i}\) indicates the ratio of cells of type \({T}_{i}\) in the niche of the index cell.
Statistics and plotting of spatial analysis
All statistical plots were generated using ggplot2 (v3.4.3) in the R (v4.3.1) environment. The data were preprocessed and cleaned before plotting. All statistical analyses and tests were completed prior to plotting. Custom themes and settings were applied to the charts. Specific codes and scripts are available to ensure the reproducibility of the results.

