CellChat icon indicating copy to clipboard operation
CellChat copied to clipboard

Unexpected Results in CellChat Analysis Across Two Cohorts

Open macelik opened this issue 6 months ago • 0 comments

Hello,

I am running CellChat on two different cohorts, AML and healthy. After merging the datasets, I performed a differential analysis using the following commands with group.DE.combined set to both TRUE and FALSE:


pos.dataset = "AML"

cellchat.merged <- identifyOverExpressedGenes(cellchat.merged, group.dataset = "datasets", pos.dataset = pos.dataset, 
                                       features.name = features.name, only.pos = FALSE, thresh.pc = 0.1, 
                                       do.fast = TRUE)

After that, I filtered for significant interactions and pulled upregulated ligands and receptors separately for AML. I then repeated this process for downregulated interactions in the healthy cohort:


net_significant <- net %>%
  filter(ligand.pvalues < 0.1 | receptor.pvalues < 0.1)

ligand_upregulated <- subsetCommunication(cellchat.merged, net = net_significant, datasets = "AML", ligand.logFC = 0.25)
receptor_upregulated <- subsetCommunication(cellchat.merged, net = net_significant, datasets = "AML", receptor.logFC = 0.25)

upregulated <- rbind(ligand_upregulated, receptor_upregulated)

ligand_downregulated <- subsetCommunication(cellchat.merged, net = net_significant, datasets = "healthy", ligand.logFC = -0.25)
receptor_downregulated <- subsetCommunication(cellchat.merged, net = net_significant, datasets = "healthy", receptor.logFC = -0.25)

downregulated <- rbind(ligand_downregulated, receptor_downregulated)

Additionally, I create a column containing source and the target cell types.

upregulated$interaction_ID <- paste0(upregulated$source, ":", upregulated$ligand, "_", upregulated$target, ":", upregulated$receptor)

Expectation: I expected to see the interactions_IDs (including the signaling cell types) that are upregulated in AML to be downregulated in the healthy cohort, but this isn't the case. Instead, I get completely different interaction IDs between the two conditions.

upregulated[upregulated$interaction_ID %in% downregulated$interaction_ID,]

Question: Does this result make sense, or am I missing something in this context? Any insights or advice would be appreciated!

Thanks Muhammet

macelik avatar Aug 27 '24 14:08 macelik