作者:ahworld
鏈接:細(xì)胞通訊-iTALK使用方法
來源:微信公眾號-seqyuan
著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者励翼。
什么是細(xì)胞通訊归薛?
多細(xì)胞生物由不同類型的細(xì)胞組成轰坊,單個細(xì)胞之間的行為協(xié)調(diào)需要建立通訊網(wǎng)絡(luò)冀宴。例如生物體的生長發(fā)育、分化危队、各種組織器官的形成聪建、維持以及各種生理活動的協(xié)調(diào),都需要高效和高精度的細(xì)胞通訊機(jī)制茫陆。
信號轉(zhuǎn)導(dǎo)(signal transduction)強(qiáng)調(diào)信號的接收與接收后信號轉(zhuǎn)換的方式和結(jié)果金麸,包括配體與受體結(jié)合、第二信使的產(chǎn)生及其后的級聯(lián)反應(yīng)等簿盅,即信號的識別挥下、轉(zhuǎn)移與轉(zhuǎn)換。
單細(xì)胞轉(zhuǎn)錄組分析中的細(xì)胞通訊分析主要指的就是:
通過比較不同樣品組的細(xì)胞在各細(xì)胞類型之間的配體與受體基因表達(dá)差異
單細(xì)胞“配體-受體”分析工具
1. CellPhoneDB
CellPhoneDB包含一個配體-受體數(shù)據(jù)庫挪鹏,考慮了配體和受體的亞基結(jié)構(gòu)见秽,能夠準(zhǔn)確地表示異質(zhì)復(fù)合體愉烙。
可在線提交基因列表分析讨盒,CellPhoneDB會返回提交的基因列表中的配體-受體
基因配對。
2. celltalker
celltalker我們在《舉一反三 | 總結(jié)單細(xì)胞文章分析框架及軟件》中有提到步责。
3. iTALK
iTALK這個包的應(yīng)用比較簡單返顺,可以自定義定制的配體-受體數(shù)據(jù)庫。默認(rèn)數(shù)據(jù)庫分析物種為人蔓肯,如果我們做的事其他物種遂鹊,可以匹配人的同源基因。本篇將對iTALK的使用做一個詳細(xì)介紹蔗包。
iTALK的使用方法
iTALK為R包秉扑,可通過以下方式安裝
devtools::install_github("Coolgenome/iTALK", build_vignettes = TRUE)
數(shù)據(jù)讀入
我們以Seurat的對象文件為例展示iTALK的數(shù)據(jù)載入
library(iTALK)
library(Seurat)
library(Matrix)
library(dplyr)
sdata <- readRDS(file = "~/Desktop/Seurat.rds")
# iTALK 要求的矩陣: 行為細(xì)胞,列為基因
iTalk_data <- as.data.frame(t(sdata@assays$RNA@counts))
# iTALK 要求包含cell_type列,我的細(xì)胞分群存儲在seurat_cluster
iTalk_data$cell_type <- sdata@meta.data$seurat_cluster
# iTALK 要求包含compare_group列(多樣本)舟陆,表示每個細(xì)胞的生物學(xué)分組/樣本误澳,我的細(xì)胞分組存放在Group
iTalk_data$compare_group <- sdata@meta.data$Group
unique(iTalk_data$cell_type)
# "cd56_nk" "cd14_monocytes" "b_cells" "cytotoxic_t" "regulatory_t" "memory_t" "naive_t"
unique(iTalk_data$compare_group)
# "group1" "group2" "group3"
配體-受體概覽
通過所有細(xì)胞的高表達(dá)基因分析其中包含的配體-受體
。
my10colors <- my36colors <-c('#E5D2DD', '#53A85F', '#F1BB72', '#F3B1A0', '#D6E7A3', '#57C3F3', '#476D87', '#E95C59', '#E59CC4', '#AB3282')
highly_exprs_genes <- rawParse(iTalk_data, top_genes=50, stats="mean")
# 通訊類型
comm_list<-c('growth factor','other','cytokine','checkpoint')
cell_types <- unique(iTalk_data$cell_type)
cell_col <- structure(my10colors[1:length(cell_types)], names=cell_types)
iTalk_res <- NULL
for(comm_type in comm_list){
res_cat <- FindLR(highly_exprs_genes, datatype='mean count', comm_type=comm_type)
iTalk_res <- rbind(iTalk_res, res_cat)
}
iTalk_res <- iTalk_res[order(iTalk_res$cell_from_mean_exprs*iTalk_res$cell_to_mean_exprs,decreasing=T),][1:20,]
NetView(iTalk_res,col=cell_col,vertex.label.cex=1,arrow.width=1,edge.max.width=5)
LRPlot(iTalk_res[1:20,],datatype='mean count',cell_col=cell_col,link.arr.lwd=iTalk_res$cell_from_mean_exprs[1:20],link.arr.width=iTalk_res$cell_to_mean_exprs[1:20])
樣本組之間的差異基因相關(guān)的配體-受體
deg_t<-DEG(iTalk_data %>% filter(cell_type=='regulatory_t'),method='DESeq2',contrast=c('group1', 'group2'))
deg_nk<-DEG(iTalk_data %>% filter(cell_type=='cd56_nk'),method='DESeq2',contrast=c('group1', 'group2'))
res<-NULL
for(comm_type in comm_list){
res_cat<-FindLR(deg_nk, deg_t, datatype='DEG',comm_type=comm_type)
#res_cat<-FindLR(deg_t, datatype='DEG',comm_type=comm_type)
res<-rbind(res,res_cat)
}
# FindLR DEG類型的數(shù)據(jù)秦躯,可以輸入一個基因集合忆谓,結(jié)果為相應(yīng)基因內(nèi)的配體-受體列表
# 如果有超過20組配體-受體結(jié)果,取前20進(jìn)行展示
res<-res[order(res$cell_from_logFC*res$cell_to_logFC,decreasing=T),][1:20,]
LRPlot(res,datatype='DEG',cell_col=cell_col,link.arr.lwd=res$cell_from_logFC,link.arr.width=res$cell_to_logFC)
為了展示常用的Seurat對象文件作為iTALK的載入數(shù)據(jù)踱承,我們把作者提供的測試數(shù)據(jù)轉(zhuǎn)換成了seurat對象倡缠。
鏈接:https://pan.baidu.com/s/1qM3pZwI_mXPZT3Cj9etWug 密碼:0rvp
可能由于測試數(shù)據(jù)集的原因,我并未找到樣本組不同亞群之間差異基因涉及到的受體配體茎活,iTALK github issue有人遇到了相同的問題昙沦,作者暫未回應(yīng)。
參考
https://github.com/Coolgenome/iTALK/blob/master/example/example_code.r