
微小RNA(miRNA)可通过细胞外囊泡(EV)从细胞中释放,通过调控受体细胞的基因表达,构成一种重要的细胞间通讯方式。单细胞RNA测序技术的出现,开启了更精细分辨率解析EV来源miRNA介导的细胞间通讯的新时代。在此,研究团队提出了miRTalk,一个用于推断EV来源miRNA介导的细胞间通讯的分析框架,并配套构建了一个精心整理的数据库miRTalkDB,其中收录了EV来源miRNA与其靶基因之间的相互作用关系。miRTalk综合考虑以下四个方面:1)供体细胞产生EV的潜能;2)供体细胞中miRNA的表达水平;3)受体细胞中miRNA加工机制的激活状态;4)受体细胞中靶基因的表达情况。

miRTalk方法由三个部分组成,其中第一部分是推断跨细胞和高度可变的目标基因的EV衍生的miRNA,第二部分是推断由EV衍生的miRNA及其下游靶点介导的细胞间通讯。第三部分是可视化miRNA介导的细胞间通讯网络和miRNA-靶点相互作用网络。
rm(list=ls())
library(miRTalk)
#library(Seurat)load(paste0(system.file(package = "miRTalk"), "/extdata/example.rda"))
# demo_geneinfo
demo_geneinfo()
#> symbol synonyms species
#> 1 A1BG A1B Human
#> 2 A1BG ABG Human
#> 3 A1BG GAB Human
#> 4 A1BG HYST2477 Human
#> 5 A2M A2MD Human
#> 6 A2M CPAMD5 Human
# demo_sc_data
demo_sc_data()
#> 6 x 6 sparse Matrix of class "dgCMatrix"
#> cell1 cell2 cell3 cell4 cell5 cell6
#> A1BG 4 . . 18 37 .
#> A2M 42 . 32 . 8 50
#> A2MP . 5 13 20 . .
#> NAT1 48 . . . . 7
#> NAT2 . 34 18 . 42 .
#> NATP 4 . . . . .
# 修订基因symbols
# 若无特殊也可以不修订
sc_data <- rev_gene(data = sc_data,
data_type = "count",
species = "Human",
geneinfo = geneinfo)使用create_miRTalk创建miRTalk对象。使用者需要为create_miRTalk提供原始计数数据和细胞类型。miRTalk默认会调用Seurat中的NormalizeData对数据进行归一化。如果数据已通过其他方法完成了归一化,可以将参数if_normalize = FALSE。此外,使用者需要通过condition参数定义实验条件,通过evbiog提供细胞外囊泡生物发生相关基因的特征集,通过risc提供RNA诱导沉默复合体,相关基因的特征集。
obj <- create_miRTalk(sc_data = sc_data,
sc_celltype = sc_celltype,
species = "Human",
condition = rep("condition",
length(sc_celltype)),
evbiog = evbiog,
risc = risc,
ritac = ritac)
#> Warning: The following features are not present in the object: AGO2, not
#> searching for symbol synonyms
#> Warning: The following features are not present in the object: AGO2, not
#> searching for symbol synonyms
obj
#> An object of class miRTalk
#> 0 EV-derived miRNA-target interactions
# If your data has been normalized by other methods, you can set the parameter `if_normalize = FALSE`
# You can use your own evbiog, risc, and ritac gene signatures.使用find_hvtg查找高度可变的靶基因。miRTalk采用Seurat的方法,在每一种细胞类型中选取前3000个HVGs和DEGs。结果以字符向量的形式存储在obj@data$var_genes中。
# 发现具有高度变异性的目标基因
obj <- find_hvtg(object = obj)
# 结果是字符向量
var_genes <- obj@data$var_genes
str(var_genes)
#> chr [1:3029] "MGP" "LUM" "DCD" "DCN" "IGKV2D-28" "IGKV3-11" "SPINK1" ...
# 如果有自己的结果,可以使用下面的代码进行替换。
# object@data$var_genes <- your_own_var_genes使用find_miRNA在所有细胞中查找表达的miRNA。使用者需要为find_miRNA提供EV来源的miRNA以及miRNA-靶基因相互作用数据库。mir_info和ir2tar是内置的data.frame,分别包含Human,Mouse和Rat的EV来源miRNA和miRNA-靶基因相互作用信息。
# 默认情况下,使用risc查找具有负向调控作用的miRNA-靶基因相互作用
obj <- find_miRNA(object = obj,
mir_info = mir_info,
mir2tar = mir2tar)
# 使用ritac查找具有正向调控作用的miRNA-靶基因相互作用
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# regulation = "positive")
# 使用不同的数据库
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# database = c("miRTarBase", "TarBase"))
# 使用EXOmotif对EV来源的miRNA进行精细筛选
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# EXOmotif = "CAUG")
# 校正为miRNA前体
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# resolution = "precursor")
# 在小鼠或大鼠的 scRNA-seq 数据中使用人类数据库(mir_info 和 mir2tar)
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# if_use_human_data = TRUE,
# gene2gene = gene2gene)用find_miRTalk推断由EV来源miRNA介导的、从发送细胞到接收细胞的细胞—细胞通讯。结果以字符向量的形式存储在obj@cci中。
# 推断由EV来源miRNA介导的、从发送细胞到接收细胞的细胞—细胞通讯
obj <- find_miRTalk(object = obj)
#> [condition]
obj
#> An object of class miRTalk
#> 460 EV-derived miRNA-target interactions
# the result is a data.frame
cci <- obj@cci
str(cci)
#> 'data.frame': 460 obs. of 19 variables:
#> $ celltype_sender : chr "Bcell" "Bcell" "Bcell" "Bcell" ...
#> $ celltype_receiver : chr "Bcell" "Bcell" "Bcell" "Bcell" ...
#> $ miRNA : chr "hsa-miR-3916" "hsa-miR-4426" "hsa-miR-146a-5p" "hsa-miR-146a-5p" ...
#> $ miR_gene : chr "MIR3916" "MIR4426" "MIR146A" "MIR146A" ...
#> $ percent_sender : num 0.164 0.19 0.385 0.385 0.385 ...
#> $ percent_receiver : num 0.164 0.19 0.385 0.385 0.385 ...
#> $ EVmiR_score : num 0.0174 0.0117 0.0265 0.0265 0.0265 ...
#> $ target_gene : chr "CLDN4" "SCD" "SPP1" "IRF7" ...
#> $ target_gene_rank : num 12281 7488 7071 7257 323 ...
#> $ target_gene_activity : num 0.00086 0.00989 0.01153 0.01078 0.26459 ...
#> $ target_gene_mean_exp : num 0.00417 0.04804 0.05596 0.05233 1.28454 ...
#> $ target_gene_mean_exp_other: num 0.801 0.649 0.256 0.127 1.654 ...
#> $ target_gene_percent : num 0.313 0.398 0.193 0.193 0.976 ...
#> $ target_gene_percent_other : num 0.815 0.85 0.329 0.303 0.931 ...
#> $ pvalue : num 1.45e-26 1.72e-23 7.81e-03 1.52e-02 2.27e-02 ...
#> $ sig : chr "YES" "YES" "YES" "YES" ...
#> $ score : num 0.01266 0.00402 0.00648 0.00711 0.00466 ...
#> $ prob : num 0.042 0.013 0.01 0.008 0.007 0.007 0.006 0.005 0.005 0.004 ...
#> $ condition : chr "condition" "condition" "condition" "condition" ...
# 获取miRNA–靶基因相互作用的简要结果
obj_cci <- get_miRTalk_cci(obj)
str(obj_cci)
#> 'data.frame': 449 obs. of 10 variables:
#> $ celltype_sender : chr "Bcell" "Myeloid" "Tcell" "Tumor" ...
#> $ celltype_receiver : chr "Bcell" "Bcell" "Bcell" "Bcell" ...
#> $ miRNA : chr "hsa-miR-3916" "hsa-miR-3916" "hsa-miR-3916" "hsa-miR-3916" ...
#> $ EVmiR_score : num 0.0174 0.0238 0.0313 0.0448 0.0117 ...
#> $ target_gene : chr "CLDN4" "CLDN4" "CLDN4" "CLDN4" ...
#> $ target_gene_activity: num 0.00086 0.00086 0.00086 0.00086 0.00989 ...
#> $ score : num 0.01266 0.04056 0.03305 0.01867 0.00402 ...
#> $ condition : chr "condition" "condition" "condition" "condition" ...
#> $ miR2tar : chr "hsa-miR-3916:CLDN4" "hsa-miR-3916:CLDN4" "hsa-miR-3916:CLDN4" "hsa-miR-3916:CLDN4" ...
#> $ specifity : num 0.148 0.203 0.267 0.382 0.246 ...结果的解读跟cellchat的分析结果十分相似。
plot_miRTalk_chord(object = obj)
plot_miRTalk_circle(object = obj)
plot_miRTalk_circle_simple(object = obj,
celltype = "Tumor",
celltype_dir = "sender")
plot_miRTalk_circle_simple(object = obj,
celltype = "Tumor",
celltype_dir = "reciver")
plot_miRTalk_sankey(object = obj)
plot_miR_heatmap(object = obj)
注:若对内容有疑惑或者有发现明确错误的朋友,请联系后台。更多相关内容可关注公众号:生信方舟 。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。