今天是miRTalk
包,嘿嘿!~😁
miRTalk
由三个部分组成:👇
1️⃣ 第一部分是推断EV
来源的跨细胞miRNA
和高变靶基因
;
2️⃣ 第二部分是推断EV
来源的miRNAs
介导的细胞间通讯及其下游靶点;
3️⃣ 第三部分是可视化miRNA
介导的细胞间通讯网络和miRNA-靶点
相互作用网络。
rm(list = ls())
#devtools::install_github("multitalk/miRTalk")
library(miRTalk)
library(tidyverse)
load(paste0(system.file(package = "miRTalk"), "/extdata/example.rda"))
# demo_geneinfo
demo_geneinfo()
# demo_sc_data
demo_sc_data()
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)
# find highly variable target genes
obj <- find_hvtg(object = obj)
# the result is a character
var_genes <- obj@data$var_genes
str(var_genes)
这里我们可以选择不同的数据库进行识别miRNA
。😘
由于大多数miRNA
都是负向调控的,这里默认是negative
,如果你需要正向调控就改成positive
吧。😜
# find MiTIs with negative regulation by default using risc
obj <- find_miRNA(object = obj,
mir_info = mir_info,
mir2tar = mir2tar)
# find MiTIs with positive regulation by default using ritac
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# regulation = "positive")
# Use different databases
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# database = c("miRTarBase", "TarBase"))
# Use EXOmotif to refine EV-derived miRNAs
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# EXOmotif = "CAUG")
# Correct to precursor miRNAs
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# resolution = "precursor")
# Use human database (mir_info and mir2tar) for mouse or rat scRNA-seq data
# obj <- find_miRNA(object = obj,
# mir_info = mir_info,
# mir2tar = mir2tar,
# if_use_human_data = TRUE,
# gene2gene = gene2gene)
# infer cell-cell communications mediated by EV-derived miRNAs from senders to receivers
obj <- find_miRTalk(object = obj)
obj
# the result is a data.frame
cci <- obj@cci
str(cci)
# get simple results of miRNA-target interactions
obj_cci <- get_miRTalk_cci(obj)
str(obj_cci)
plot_miRTalk_chord(object = obj)
plot_miRTalk_circle(object = obj)
简化一下!~
只显示sender
。👀
# as sender
plot_miRTalk_circle_simple(object = obj, celltype = "Tumor", celltype_dir = "sender")
只显示receiver
。😏
# as receiver
plot_miRTalk_circle_simple(object = obj, celltype = "Tumor", celltype_dir = "reciver")
plot_miRTalk_heatmap(object = obj)
plot_miRTalk_sankey(object = obj)
plot_miR_heatmap(object = obj)
plot_target_heatmap(object = obj, celltype = "Bcell",
height = 1000,
width = 4000)
plot_miR_bubble(object = obj)
plot_miR2tar_chord(obj, celltype_sender = "Tumor", celltype_receiver = "Bcell")
plot_miR2tar_circle(obj, celltype_sender = "Tumor", celltype_receiver = "Bcell")
plot_miR2tar_circle(obj, celltype_sender = "Tumor", celltype_receiver = "Bcell", celltype_color = "NO")
plot_miR2tar_heatmap(obj, celltype_sender = "Tumor", celltype_receiver = "Bcell", grid_color = "black",
height = 2000, width = 4000
)
# get pathways
res_pathway <- get_miRTalk_pathway(object = obj,
gene2path = gene2path,
mir2path = mir2path,
miRNA = "hsa-miR-133a-3p",
targetgenes = "ANXA2")
str(res_pathway[[1]]$miRNA_term) # pathways for hsa-miR-133a-3p
str(res_pathway[[2]]$target_gene_term) # pathways for ANXA2
res_pathway[[3]]$miRNA_term # overlapped/shared pathways
# get circulating miRNAs
res_circulating <- get_miRTalk_circulating_score(obj)
str(res_circulating)
#plotting
res_circulating$celltype_receiver <- paste0(res_circulating$condition,"_",res_circulating$celltype_receiver)
res_circulating <- unique(res_circulating[,c("miRNA","score","celltype_receiver")])
res_cir_plot <- reshape2::dcast(data = res_circulating, formula = miRNA ~ celltype_receiver, value.var = "score", fun.aggregate = mean, fill = 0)
rownames(res_cir_plot) <- res_cir_plot$miRNA
res_cir_plot <- res_cir_plot[,-1]
heat_col <- viridis::viridis(n = 256, alpha = 1, begin = 0, end = 1, option = "D")
heatmaply::heatmaply(x = as.matrix(res_cir_plot), colors = heat_col, limits = c(0,1),dendrogram = "none", margins = c(60,100,40,20), titleX = FALSE, main = "Circulating potential", branches_lwd = 0.1, fontsize_row = 10, fontsize_col = 10, labCol = colnames(res_cir_plot), labRow = rownames(res_cir_plot), heatmap_layers = theme(axis.line=element_blank()))
Shao X, Yu L, Li C, Qian J, Yang X, Yang H, Liao J, Fan, X, Xu X, Fan X. Extracellular vesicle-derived miRNA-mediated cell-cell communication inference for single-cell transcriptomic data with miRTalk. Genome Biol. 2025 April 14;26:95. doi: 10.1186/s13059-025-03566-x