Visualization of the squidpy interaction matrix

I have a small question regarding how to interpret the interaction matrix. Maybe I should first outline how I processed my data and what the input data is. I have a rather large collection of cells captured using HybISS (around 180 000 cells) from a mouse model of multiple sclerosis. What we see in this model is a large infiltration of immune cells into the spinal cord of the mice. This is collected from 30 spinal cord sections, from coupled disease and control sections, as well as different regions of the spinal cord and different stages of the disease. so i want to explore the interactions between the immune cells and resident glial cells in these tissues. This led me to use squidpy since I use scanpy for the processing of the cells.

I decided to process all of my samples together calculating the neighbours on each sample one by one and then use the pairwise = True flag when concatenating the objects: adata = sc.concat(adata_list, uns_merge='same', pairwise = True).

Back to my question, if I get the interaction matrix, can I represent the interactions in a chord chart? I attached an example below.

thanks @christofferlangseth for the question.

In short, you totally can! It’s a really cool visualization that you could definitely swap with the heatmap.

I’d also like to mention that you could directly concatenate the anndata objects and run sq.gr.spatial_neighbors() with library_key as the adata.obs[] key that identifies the different sections. This will calculate a spatial graph in a section-by-section manner, and than you could run nhood enrichment or interaction analysis directly, since the graph structure of each slide is preserved, and there are no edges that connect cells between different slides.

Let me know if it work!
Giovanni