美文网首页
Cellchat和Cellphonedb细胞互作一些问题的解决(

Cellchat和Cellphonedb细胞互作一些问题的解决(

作者: KS科研分享与服务 | 来源:发表于2023-03-29 13:28 被阅读0次

    今日的内容主要解决两个问题,一个是cellchat的代码报错问题,因为已经有很多人提出这个问题了。第二个是Cellphonedb结果的可视化,这里提供一种免费的很实用的快捷可视化方法。其实这些问题只要自己思考都是能明白的。 Cellchat和cellphonedb细胞互作分析历史相关帖子:
    Cellchat(代码详细注释版):单细胞转录组(人、小鼠)细胞互作分析及可视化 CellPhoneDB单细胞互作分析(1):Linux软件安装及遇到的Bug(ERROR)解决
    CellPhoneDB单细胞互作分析(2):数据分析|人鼠基因同源转化|ERROR解决|详细注释版代码
    CellPhoneDB单细胞互作分析(3):结果可视化作图
    CellPhoneDB单细胞互作分析(4):受配体对结果提取及可视化作图

    1、Cellchat报错问题

    Cellchat在做网络图的时候会有如下的报错:

    
    mat <- cellchat@net$weight
    par(mfrow = c(5,3), xpd=TRUE, mar=c(1,1,1,1))
    for (i in 1:nrow(mat)) {
      mat2 <- matrix(0, nrow = nrow(mat), ncol = ncol(mat), dimnames = dimnames(mat))
      mat2[1, ] <- mat[1, ]
      netVisual_circle(mat2, 
                       vertex.weight = groupSize, 
                       weight.scale = T, 
                       edge.weight.max = max(mat), 
                       title.name = rownames(mat)[i])
    }
    Cellchat运行出现错误:
    # Error in i_set_edge_attr(x, attr(value, "name"), index = value, value = attr(value,  : 
    # Length of new attribute value must be 1 or 11, the number of target edges, not 2
    

    Error in i_set_edge_attr这个并不是代码都问题,当看到自己文件步骤没问题,是不是应该思考是内部问题。没错,主要的原因是igraph包更新了,如果你igraph是1.4.0或者以下就不会有问题。但是你降低版本或者保持旧版本可能其他包不答应。况且Cellchat更新了到1.6.0了,解决办法可以是更新cellchat。或者cellchat也提供了办法,就是更新object,就不会有问题了。

    library(CellChat)
    cellchat <- updateCellChat(cellchat)
    

    2、Cellphonedb可视化

    Cellphonedb我们也提供过一种免费的可视化方式,使用ktplots包完成。但是总是有人嫌弃这个包的图臭,也一直问我问题,因为这个包的函数legend设置的不太好。我觉得直接转化成气泡图以文献的方式呈现就完美了。


    #cellphonedb受配体点图的可视化
    # devtools::install_github('zktuong/ktplots', dependencies = TRUE)
    library(ktplots)
    pvals <- read.delim("pvalues.txt", check.names = FALSE)
    means <- read.delim("means.txt", check.names = FALSE)
    
    pvals_sec <- pvals[grep(c("^CCL|CXCL"), pvals$interacting_pair),] 
    means_sec <- means[grep(c("^CCL|CXCL"), means$interacting_pair),] 
    
    Tcell_comm <- plot_cpdb(cell_type1 = 'T_cell', 
                          cell_type2 = "", 
                          scdata = scRNA_sam,
                          idents = 'celltype', 
                          means = means_sec, 
                          pvals = pvals_sec, 
                          highlight = "darkblue",
                          keep_significant_only =T) +
      theme(axis.text  = element_text(size = 10, color = 'black'))
    
    Tcell_comm_data <- Tcell_comm$data
    Tcell_comm_data <- Tcell_comm_data[,c(1:4)]
    Tcell_comm_data$scaled_means[is.na(Tcell_comm_data$scaled_means)]=0
    Tcell_comm_data$pvals[is.na(Tcell_comm_data$pvals)]=1
    
    my_palette <- colorRampPalette(c("darkblue","yellow","red"))(n=100)
    ggplot(Tcell_comm_data,aes(x=Var2,y=Var1)) +    
      geom_point(aes(size=-log10(pvals),color=scaled_means)) +
      scale_size_continuous(range=c(1,5),breaks = c(0,1.0,2.0))+
      scale_color_gradientn('Mean expression', colors=my_palette,limits=c(0,3)) +
      theme_bw() +
      theme(axis.text=element_text(size=10, colour = "black"),
            axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0, size=10),
            axis.text.y = element_text(size=10, colour = "black"),
            axis.title=element_blank(),
            panel.border = element_rect(size = 0.7, linetype = "solid", colour = "black"))
    

    好了,这就是所有内容了,希望对你学习有帮助。也希望你能多多思考。觉得分享有用的,点个免费的赞再走呗!

    相关文章

      网友评论

          本文标题:Cellchat和Cellphonedb细胞互作一些问题的解决(

          本文链接:https://www.haomeiwen.com/subject/kyefddtx.html