Extracellular vesicle-derived miRNA-mediated cell-cell communication inference for single-cell transcriptomic data
MicroRNAs are released from cells in extracellular vesicles (EVs), including exosomes and microvesicles, representing an essential mode of cell-cell communications via inhibitory effect on gene expression of receivers. The advent of single-cell RNA-sequencing (scRNA-seq) technologies has ushered in an era of elucidating EV-derived miRNA-mediated cell-cell communications at an unprecedented resolution. However, the lack of computational method to infer such communications from scRNA-seq data poses an outstanding challenge. Herein, we present miRTalk, a pioneering framework for discerning EV-derived miRNA-mediated cell-cell communications with a probabilistic model and a meticulously curated database, miRTalkDB, which catalogues EV-derived miRNA-target associations. Rigorous benchmarking against simulated and real-world datasets demonstrated the remarkable precision and robustness of miRTalk. Subsequently, we employed miRTalk to unravel the in-depth communicative mechanisms underlying three disease scenarios. In summary, miRTalk represents the first approach for inferring EV-derived miRNA-mediated cell-cell communications from scRNA-seq data, furnishing invaluable insights into the intercellular dynamics underpinning pathological processes.
# install devtools and install
install.packages(pkgs = "devtools"")
devtools::install_github("multitalk/miRTalk")
OR
# download the repository as ZIP
devtools::install_local("/path/to/miRTalk-main.zip")
miRTalk method consists of three components, wherein the first is to infer the EV-derived miRNA across cells and the highly variable target genes, the second is to infer the cell-cell communication mediated by EV-derived miRNAs and their downstream targets. The third part is to visualize the miRNA-mediated cell-cell communication network and miRNA-target interaction network. Please refer to the tutorial vignette with demo data processing steps. Detailed functions see the document.
# sc_data: A data.frame or matrix or dgCMatrix containing raw counts of single-cell RNA-seq data
# sc_celltype: A character containing the cell type of the single-cell RNA-seq data
> obj <- create_miRTalk(sc_data, sc_celltype, species = "Human", if_normalize = TRUE)
> obj
An object of class miRTalk
0 EV-derived miRNA-target interactions
> obj <- find_miRNA(object = obj, mir_info = mir_info)
> obj <- find_hvtg(object = obj)
# object: miRTalk object after running find_miRNA() and find_hvtg()
# mir2tar: A data.frame containing the priori knowledge of miRNA-target interactions
> obj <- find_miRTalk(object = obj, mir2tar = mir2tar)
> obj
An object of class miRTalk
2185 EV-derived miRNA-target interactions
> obj_cci <- get_miRTalk_cci(obj)
> str(obj_cci)
'data.frame': 2083 obs. of 9 variables:
$ celltype_sender : chr "Bcell" "Bcell" "Bcell" "Bcell" ...
$ celltype_receiver : chr "Bcell" "Bcell" "Bcell" "Bcell" ...
$ miRNA : chr "hsa-miR-4426" "hsa-miR-29b-3p" "hsa-miR-29b-3p" "hsa-miR-29b-3p" ...
$ miR_gene : chr "MIR4426" "MIR29B1" "MIR29B1" "MIR29B1" ...
$ miRNA_activity : num 0.429 0.481 0.481 0.481 0.481 ...
$ target_gene : chr "PPIC" "CLDN1" "EREG" "TGFB3" ...
$ target_gene_activity: num 5.81e-03 3.45e-04 1.03e-04 3.43e-04 4.85e-05 ...
$ prob : num 0.469 0.466 0.466 0.466 0.466 ...
$ score : num 0.426 0.48 0.481 0.48 0.481 ...
> plot_miRTalk_chord(object = obj)
> plot_miRTalk_circle(object = obj)
> plot_miRTalk_circle_simple(object = obj, celltype = "Tumor")
> plot_miRTalk_heatmap(object = obj)
> plot_miRTalk_sankey(object = obj)
> plot_miR_bubble(object = obj)
> plot_miR_heatmap(object = obj)
> plot_miR2tar_chord(object = obj, celltype_sender = "Tumor", celltype_receiver = "Stromal")
> plot_miR2tar_circle(object = obj, celltype_sender = "Tumor", celltype_receiver = "Stromal")
> plot_miR2tar_heatmap(object = obj, celltype_sender = "Tumor", celltype_receiver = "Stromal")
miRTalk was developed by Xin Shao. Should you have any questions, please contact Xin Shao at [email protected]