CellChat icon indicating copy to clipboard operation
CellChat copied to clipboard

Differential expression analysis reports same pair L-R as both downregulated and upregulated ???

Open giovanegt opened this issue 2 years ago • 2 comments

Hi @sqjin Congrats on this this great library.

I am running some of the functions on my datasets and I came across an interesting observation. After DGE analysis, I am finding the same pair of LR both downregulated and upregulated, as shown in the fig below. How would it be possible? image

Thus, I am a bit confuse on how to interpret this observations. Here is the code I used to generate the chart.

The idea is to compare two conditions NPD (control) and LPD LPD should downregulate genes, therefore, NPD will be chosen as positive dateset pos.dataset = "NPD"

features.name = pos.dataset

cellchat <- identifyOverExpressedGenes(cellchat, group.dataset = "datasets", pos.dataset = pos.dataset, features.name = features.name, only.pos = FALSE, thresh.pc = 0.2, thresh.fc = 0.2, thresh.p = 0.05)

net <- netMappingDEG(cellchat, features.name = features.name)

net.up <- subsetCommunication(cellchat, net = net, datasets = "NPD",ligand.logFC = 0.2, receptor.logFC = NULL)

net.down <- subsetCommunication(cellchat, net = net, datasets = "LPD",ligand.logFC = -0.1, receptor.logFC = -0.1)

gene.up <- extractGeneSubsetFromPair(net.up, cellchat)

gene.down <- extractGeneSubsetFromPair(net.down, cellchat)

pairLR.use.up = net.up[, "interaction_name", drop = T]

gg1 <- netVisual_bubble(cellchat, pairLR.use = pairLR.use.up, sources.use = 3, targets.use = c(3), comparison = c(1, 2), angle.x = 45, remove.isolate = T,title.name = paste0("Up-regulated signaling in ", names(object.list)[1]))

pairLR.use.down = net.down[, "interaction_name", drop = T]

gg2 <- netVisual_bubble(cellchat, pairLR.use = pairLR.use.down, sources.use = c(3), targets.use = c(3), comparison = c(1, 2), angle.x = 45, remove.isolate = T,title.name = paste0("Down-regulated signaling in ", names(object.list)[1]))

gg1 + gg2

help is greatly appreciated

giovanegt avatar Apr 08 '22 22:04 giovanegt

Hey @giovanegt, for me it helped to add sources.use and targets.use as a parameter to subsetCommunication(). Otherwise only certain groups are visualized but interactions from all groups are included. Furthermore you could tweak the parameters ligand.logFC and receptor.logFC to limit or expand results.

tilofrei avatar Aug 06 '23 16:08 tilofrei

for me it helped to add sources.use and targets.use as a parameter to subsetCommunication(). Otherwise only certain groups are visualized but interactions from all groups are included. Furthermore you could tweak the parameters ligand.logFC and receptor.logFC to limit or expand results.

I have the same problem now, how did you solve the issue?

Tjcyz avatar Nov 22 '23 10:11 Tjcyz