Question about MERFISH Imputation Within-Cluster KNN Matching

Hello,

Thank you very much for providing the ABC Atlas and the detailed documentation.

I think I understand the overall workflow of the MERFISH imputation process. My understanding is:

  1. MERFISH cells are first mapped hierarchically to the reference taxonomy (class → subclass → supertype → cluster).
  2. Within the assigned cluster, the expression of the measured MERFISH genes is compared with the reference scRNA-seq (10x v3) cells.
  3. K-nearest neighbors are identified, and the average expression of those neighbors is used to impute the unmeasured genes.

However, I am still confused about the final step within a cluster.

Once a MERFISH cell has been assigned to a specific cluster, how are the individual reference cells selected for KNN matching?

Specifically, I would like to know:

  • Which feature space is used to calculate the distance between a MERFISH cell and individual reference cells?
  • Is the distance calculated directly from the normalized expression values of the shared MERFISH genes, or is there an additional dimensionality reduction (e.g., PCA or another latent space) before KNN?
  • Are any additional normalization or weighting procedures applied before computing the nearest neighbors?

In addition, I could not determine how many genes are ultimately imputed for each MERFISH cell. Is the expression of all genes available in the 10x v3 reference dataset imputed, or is the imputation limited to a subset of genes?

I have already read the Nature paper and the ABC Atlas documentation, but I could not find the details of this within-cluster matching procedure.

I would greatly appreciate any clarification or references describing these steps.

Thank you very much for your time.