首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于单细胞转录组数据的细胞外囊泡衍生miRNA介导的细胞间通讯推断

基于单细胞转录组数据的细胞外囊泡衍生miRNA介导的细胞间通讯推断

原创
作者头像
凑齐六个字吧
发布2025-12-28 22:23:14
发布2025-12-28 22:23:14
290
举报
文章被收录于专栏:单细胞单细胞

微小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-靶点相互作用网络。

分析流程
1.导入
代码语言:javascript
复制
rm(list=ls())
library(miRTalk)
#library(Seurat)
2.输入示例数据
代码语言:javascript
复制
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)
3.Create_miRTalk

使用create_miRTalk创建miRTalk对象。使用者需要为create_miRTalk提供原始计数数据和细胞类型。miRTalk默认会调用Seurat中的NormalizeData对数据进行归一化。如果数据已通过其他方法完成了归一化,可以将参数if_normalize = FALSE。此外,使用者需要通过condition参数定义实验条件,通过evbiog提供细胞外囊泡生物发生相关基因的特征集,通过risc提供RNA诱导沉默复合体,相关基因的特征集。

代码语言:javascript
复制
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.
4.Find_hvtg

使用find_hvtg查找高度可变的靶基因。miRTalk采用Seurat的方法,在每一种细胞类型中选取前3000个HVGs和DEGs。结果以字符向量的形式存储在obj@data$var_genes中。

代码语言:javascript
复制
# 发现具有高度变异性的目标基因
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
5.Find_miRNA

使用find_miRNA在所有细胞中查找表达的miRNA。使用者需要为find_miRNA提供EV来源的miRNA以及miRNA-靶基因相互作用数据库。mir_info和ir2tar是内置的data.frame,分别包含Human,Mouse和Rat的EV来源miRNA和miRNA-靶基因相互作用信息。

代码语言:javascript
复制
# 默认情况下,使用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)
6.Find_miRTalk

用find_miRTalk推断由EV来源miRNA介导的、从发送细胞到接收细胞的细胞—细胞通讯。结果以字符向量的形式存储在obj@cci中。

代码语言:javascript
复制
# 推断由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 ...
7.可视化

结果的解读跟cellchat的分析结果十分相似。

代码语言:javascript
复制
plot_miRTalk_chord(object = obj)
代码语言:javascript
复制
plot_miRTalk_circle(object = obj)
代码语言:javascript
复制
plot_miRTalk_circle_simple(object = obj, 
                           celltype = "Tumor", 
                           celltype_dir = "sender")
代码语言:javascript
复制
plot_miRTalk_circle_simple(object = obj, 
                           celltype = "Tumor", 
                           celltype_dir = "reciver")
代码语言:javascript
复制
plot_miRTalk_sankey(object = obj)
代码语言:javascript
复制
plot_miR_heatmap(object = obj)
参考资料:
  1. miRTalk github: https://raw.githack.com/multitalk/miRTalk/main/vignettes/tutorial.html

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台。更多相关内容可关注公众号:生信方舟

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析流程
    • 1.导入
    • 2.输入示例数据
    • 3.Create_miRTalk
    • 4.Find_hvtg
    • 5.Find_miRNA
    • 6.Find_miRTalk
    • 7.可视化
  • 参考资料:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档