jinworks / CellChat

R toolkit for inference, visualization and analysis of cell-cell communication from single-cell and spatially resolved transcriptomics
GNU General Public License v3.0
195 stars 21 forks source link

Questions related to netVisual_bubble() in comparison analysis #150

Open YizhenChen opened 1 month ago

YizhenChen commented 1 month ago

Hello @sqjin,

I have experienced difficulty in understanding and interpreting the results of netVisual_bubble() when comparing across multiple conditions.

In total, I have seven different models, and I have created a cellchat object for each model following the tutorial "Inference and analysis of cell-cell communication using CellChat". Then, merge them into one cellchat object following the instructions in the tutorial "Comparison analysis of multiple datasets using CellChat".

I want to check a pathway that has significant communications inferred in one model, and compare it across all models.

First, I tried: netVisual_bubble(cellchat, sources.use = 6, targets.use = 5, signaling = c("THBS"), comparison = c(1,2,3,4,5,6,7), remove.isolate = FALSE, title.name = "Compare selected pairs across models", angle.x = 45) I got: Error in subsetCommunication_internal(net, LR, cells.level, slot.name = slot.name, : No significant signaling interactions are inferred based on the input!

Then, I tried another pathway which was also found from the same model: netVisual_bubble(cellchat, sources.use = 6, targets.use = 5, signaling = c("CCL"), comparison = c(1,2,3,4,5,6,7), remove.isolate = FALSE, title.name = "Compare selected pairs across models", angle.x = 45) This time, I got a different message: Error in seq.default(0.5 + length(dataset.name[comparison]), length(group.names0) * : wrong sign in 'by' argument It works after I set remove.isolate = TRUE (But ideally, I want to show all seven models) image

Then, I tried to include both pathways, netVisual_bubble(cellchat, sources.use = 6, targets.use = 5, signaling = c("CCL", "THBS"), comparison = c(1,2,3,4,5,6,7), remove.isolate = FALSE, title.name = "Compare selected pairs across models", angle.x = 45) Suddenly, the THBS pathway is plotted this time. image

I was wondering how I should interpret these results. Was there any test performed during this comparison step to select the pairs that are significantly different across conditions? And somehow the insignificant pairs are also plotted? Ideally, I want only the THBS pathway to be shown with all models. Is that possible?

P.S. It seems if I want to set remove.isolate = FALSE, and let the CCL pathway work, I need to add, for example, one more target group, even though it is completely redundant. image

Also, I am attaching the code and plot that works within the cellchat object of that specific model (Before merging) netVisual_bubble(CTNNB, sources.use = 6, targets.use = 5, signaling = "THBS", remove.isolate = FALSE, title.name = "CTNNB significant THBS L-R pairs", angle.x = 45))

image

Thank you very much in advance for your time and help. I really want to understand what is going on.

sqjin commented 3 weeks ago

@YizhenChen Sorry that I did not get any chance to figure out this issue when you take an input of only one sources.use and targets.use. I will try to figure out this issue in next few days.