特异性预测神经细胞通讯信号的软件-NeuronChat(一)

单细胞转录组+空间转录组联合分析系列教程

大家好!今日给大家分享新出炉的软件NeuronChat,看名字大概知道这是一类预测神经细胞间的细胞通讯软件。针对单细胞转录组分析,大家较为广泛使用CellChat、CellPhoneDB、NicheNet等来预测细胞通讯信号,然而大家在用于特定的组织或细胞类别,可能会觉得分析得到的配受体对不够或不足以表达想说明的生物学意义等困惑,笔者近期分析也是遇到如此情况,尤其是在具有神经元的组织中。而这篇新出炉的比较特异性预测神经元细胞间通讯信号的软件能部分解决此类涉及到神经组织细胞内通讯的问题,所以分享给大家。该文章于2023年2月28日发表在Nature Communications上标题为《Inferring neuron-neuron communications from single-cell transcriptomics through NeuronChat》。作者将该软件功能归结于3块,笔者逐篇分享,供大家参考。

本软件实质性还是作者构建了一个特异性由神经细胞间信号组成的数据库,比如小分子神经递质、神经肽、缝隙连接蛋白、气体递质和突触黏附分子,而靶标通常但不限于受体。例如,神经递质的靶蛋白也可以是摄取转运蛋白或失活酶;缝隙连接蛋白的靶蛋白是其他相容的缝隙连接蛋白;对于非肽类神经递质,条目中包括相应的合成酶和/或囊泡转运蛋白;对于含有多个不同亚基的异构体受体,对应的亚基被归类到具有相同配体的不同条目中。在373个配体-靶标相互作用对条目中,分别有221个、73个、39个、16个和24个条目涉及小分子神经递质、神经肽、缝隙连接蛋白、气体递质和突触黏附分子。

接下来分享第一篇代码示例 :

NeuronChat(一):特异性神经细胞间通讯推断和分析

devtools::install_github("Wei-BioMath/NeuronChat")
library(NeuronChat)
library(CellChat)
library(ggalluvial)
###Part I: 创建NeuronChat对象
# 作者使用的是皮质层数据来自Yao 2021;也可用自己的rds数据
data(list='cortex_data')  #or data <- readRDS("xx.rds")
# 作者取了数据中VISp 区域的子集
region_name <- 'VISp'; cell_class <- names(table(meta$class_label))
cell_idx <- which(meta$region_label %in% region_name & meta$class_label %in% cell_class & !(meta$subclass_label %in%c('Car3','CR','DG','L2/3 IT PPP','L5/6 IT TPE-ENT')))
target_df_single  <- target_df[cell_idx,] # a data frame: row  cell, column gene (the last column is the cell subclass)
meta_tmp <- meta[cell_idx,];rownames(meta_tmp) <- meta_tmp$sample_name # subset meta
df_group <- meta_tmp[!duplicated(meta_tmp$subclass_label),c('class_label','subclass_label')]
group <- structure(df_group$class_label,names=df_group$subclass_label) # create the cell class for the subclasses, used for plot 
# creat NeuronChat object; choose the database 'mouse' for mouse data; 'human' for human data
# note that the first parameter should be a numeric matrix with row gene and column cell
x <- createNeuronChat(t(as.matrix(target_df_single[,1:(dim(target_df_single)[2]-1)])),DB='mouse',group.by = target_df_single$cell_subclass);
#> Create a NeuronChat object from a data matrix
###Part2 II:执行NeuronChat来推断神经元特异性的细胞间通讯网络
# M is for the permutation test; typically ~4 mins when M=100, 依据数据集大小和细胞数目而定
#作者文章中测试过M=100和M=1000准确性类似,而且计算速度还快
x <- run_NeuronChat(x,M=100)
#> Time difference of 5.181635 mins
# the the communication networks for individual interaction pairs are stored in slot 'net'
# aggregate the communication networks over all interaction pairs, method can be 'weight', 'count' and so on
net_aggregated_x <- net_aggregation(x@net,method = 'weight')
###Part III:可视化神经特异性细胞间的通讯网络
#for aggregated network
par(mfrow=c(1,2))
# Visualization, circle plot, for the aggregated network
netVisual_circle_neuron(net_aggregated_x,group=group,vertex.label.cex = 1)
# Visualization, chordDiagram, for the aggregated network; also using cellchat function netVisual_chord_cell_internal(net_aggregated_x, group = group,lab.cex=1)
netVisual_chord_neuron(x,method = 'weight',group=group,lab.cex = 1)
图1.png
# Visualization, heatmap for the aggregated network
heatmap_aggregated(x, method='weight',group=group)
图2.png
#for individual network
par(mfrow=c(1,2))
# Visualization for the single interaction pair, circle plot  
netVisual_circle_neuron(x@net$Glu_Gria2,group=group,vertex.label.cex = 1)
# Visualization for the single interaction pair, chord diagram 
netVisual_chord_neuron(x,interaction_use='Glu_Gria2',group=group,lab.cex = 1)
图3.png
# Visualization for the single interaction pair, heatmap 
heatmap_single(x,interaction_name='Glu_Gria2',group=group)
图4.png
# Visualization for the single interaction pair, heatmap with violin plots showing expression of genes realted to ligand and target
lig_tar_heatmap(x,interaction_name='Glu_Gria2',width.vector=c(0.38,0.35,0.27))
图5.png
###Part IV:细胞通讯配受体对分析
#barplot show the count of links or information flow for all interaction pairs
g1 <- rankNet_Neuron(x,slot.name = "net",measure = c("weight"),mode='single',font.size = 5) 
g2 <- rankNet_Neuron(x,slot.name = "net",measure = c("count"),mode='single',font.size = 5)
g1+g2
图6.png
#outgoing/incoming pattern
selectK_Neuron(x,pattern = "outgoing")
selectK_Neuron(x,pattern = "incoming")
x<- identifyCommunicationPatterns_Neuron(x, slot.name = "net", pattern = c("outgoing"), k=4,height = 18)
x<- identifyCommunicationPatterns_Neuron(x, slot.name = "net", pattern = c("incoming"), k=4,height = 18)
图7.png
library(ggalluvial)
g3 < netAnalysis_river_Neuron(x,slot.name = "net", pattern = c("outgoing"),font.size = 2.5,cutoff.1 = 0.5,cutoff.2=0.5)
g4 < netAnalysis_river_Neuron(x,slot.name = "net", pattern = c("incoming"),font.size = 2.5,cutoff.1 = 0.5,cutoff.2=0.5)
g3+g4
#> Please make sure you have load `library(ggalluvial)` when running this function
图合并.png
#manifold learning and classification
x <- computeNetSimilarity_Neuron(x,type='functional')
x  <- CellChat::netEmbedding(x, slot.name = "net_analysis", type = "functional")
#> Manifold learning of the signaling networks for a single dataset
x <- CellChat::netClustering(x, type='functional',slot.name = "net_analysis",k=5)
#> Classification learning of the signaling networks for a single dataset
netVisual_embedding_Neuron(x, type = "functional", label.size = 5,pathway.remove.show = F)
图10.png
netVisual_embeddingZoomIn_Neuron(x, type = "functional", nCol = 2,label.size = 3)
图11.png
###R语言依赖包版本:
R >= 4.1.0  
dplyr >= 1.0.9
data.table >= 1.14.2  
CellChat >= 1.1.3  
Seurat >= 4.1.0  
SeuratObject >= 4.1.0  
NMF >= 0.23.0  
igraph >= 1.3.4  
ggplot2 >= 3.3.6  
ComplexHeatmap >= 2.8.0  
circlize >= 0.4.14      
ggalluvial >= 0.12.3 

纵观全篇,本质上是作者在CellChat绘图基础上增加了属于作者特异性构建的神经细胞间的配受体对数据库和改进了算法,研究目标是为了增加预测神经细胞之间的配受体对信号分子。NeuronChat可见于 https://github.com/Wei-BioMath/NeuronChat

后续作者还此软件应用在空间转录组数据,因为神经元的轴突可以延伸较远,行使的细胞通讯可能不仅仅局限在特别相邻的空间位置上,所以作者改善该软件预测空间位置上神经细胞间的细胞通讯。接下来的另一篇将分享基于空间转录组数据预测空间位置上神经元之间的细胞通讯信号。谢谢大家!

禁止随意转载,转载请注明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容