- MRAS
MRAS (Master Regulator analysis of Alternative Splicing) is designed to identify the critical splicing factors whose altered expression drives the extensive splicing abnormalities, particularly in the biological scenario of lacking spliceosomal mutations or other known manipulations causing splicing disorders.
The Overview of MRASYou can install the development version of MRAS from GitHub with:
# install.packages("devtools")
devtools::install_github("zhou-lei5/MRAS")
library(MRAS)
The easiest way to use MRAS: directly use the function MRAS()
. The
specific parameters are detailed in ??MRAS
or help(MRAS)
.
In summary, MRAS provides users with multiple input options to facilitate the analysis of alternative splicing regulation. Users can choose between the following options:
-
Direct input of the set of alternative splicing events: Users can provide a set of differential splicing events and map them onto the pre-constructed regulatory network generated by MRAS. This allows the identification of key RBPs involved in the regulation of these specific splicing events.
-
Construct a network using the user’s own data: If the sample size is sufficient, users have the option of constructing their own regulatory network using their own data. MRAS can use this user-provided data to infer the relationships between RBPs and splicing events, providing a customized analysis based on the specific experimental conditions.
By providing these multiple input options, MRAS allows users to explore alternative splicing regulations from different perspectives, allowing for flexibility and customization in the analysis process.
(The event coordinates in the networks and relationships inferred by MRAS used the GRCh37 (hg19) coordinates.)
There are some basic descriptions which shows you how to use MRAS:
Input type 1: Direct input of the set of alternative splicing events.
Firstly, you need to download the pre-constructed regulation network generated by MRAS.In general, you will get two matrix: “rbp_event_deal_all_total” and “rbp_event_deal_all”.
MRAS(input_type = "1",
expr,psi,
rbp_interested,
m,n,
rbp_event_deal_all_total,rbp_event_deal_all,
result_type,threads,path_use)
Input type 2: Construct a network using the user’s own data.
Here, we have prepared some test data for users to better understand the usage of MRAS. Test data is included in MRAS and you can import it using data(), which contains the RBP expression matrix as well as the event PSI matrix.
Use MRAS in bulk rna-seq data:
## "hcc_expr" is RBP expression matrix.
library(MRAS)
#> Loading required package: fgsea
data("hcc_expr")
hcc_expr[1:5,1:5]
#> SRR3182261 SRR3129836 SRR3129837 SRR3129838 SRR3129839
#> A1CF 21.7575656 116.042384 47.071361 37.644303 54.8133944
#> ANKHD1 0.5555836 1.244645 0.727923 1.429632 0.8184703
#> CELF1 12.5222101 33.131067 29.052948 25.443336 26.5795453
#> CELF2 1.1010763 1.974816 3.688240 1.537169 1.4341667
#> CNOT4 2.6800668 4.430709 5.144975 3.858476 3.3844203
## "hcc_psi" is events psi matrix."hcc_expr" and "hcc_psi" should have same column names.
data("hcc_psi")
hcc_psi[1:5,1:3]
#> SRR3182261
#> FAM3A_ES_chrX_-_153740638_153740735_153740181_153740204_153741147_153741260 0.118
#> FAM3A_ES_chrX_-_153740638_153740755_153740201_153740204_153741147_153741260 0.084
#> TAFAZZIN_ES_chrX_+_153642438_153642527_153641819_153641904_153647882_153647962 0.310
#> RPL10_ES_chrX_+_153628805_153628967_153628144_153628282_153629043_153629152 0.994
#> SSR4_ES_chrX_+_153061383_153061581_153060131_153060209_153061889_153062007 0.049
#> SRR3129836
#> FAM3A_ES_chrX_-_153740638_153740735_153740181_153740204_153741147_153741260 0.150
#> FAM3A_ES_chrX_-_153740638_153740755_153740201_153740204_153741147_153741260 0.072
#> TAFAZZIN_ES_chrX_+_153642438_153642527_153641819_153641904_153647882_153647962 0.330
#> RPL10_ES_chrX_+_153628805_153628967_153628144_153628282_153629043_153629152 0.997
#> SSR4_ES_chrX_+_153061383_153061581_153060131_153060209_153061889_153062007 0.013
#> SRR3129837
#> FAM3A_ES_chrX_-_153740638_153740735_153740181_153740204_153741147_153741260 0.389
#> FAM3A_ES_chrX_-_153740638_153740755_153740201_153740204_153741147_153741260 0.202
#> TAFAZZIN_ES_chrX_+_153642438_153642527_153641819_153641904_153647882_153647962 0.447
#> RPL10_ES_chrX_+_153628805_153628967_153628144_153628282_153629043_153629152 0.992
#> SSR4_ES_chrX_+_153061383_153061581_153060131_153060209_153061889_153062007 0.010
## Users can utilize the MRAS function for a streamlined analysis, or execute individual steps separately if they prefer to have more control over specific aspects of the analysis.
result_bulk<-MRAS(input_type = "2",
expr = hcc_expr,
psi = hcc_psi,
rbp_interested = "SF3B4",
m = 50, n = 50,
num1 = 0.15, num2 = 0.15,
result_type = "Top10", threads = 6, path_use = "./tests/"
)
#> Step1:Performing differential splicing analysis...
#> Step2:Preparing data...
#> Step3:Constructing RBP-Event regulatory relationship network...
#> Joining with `by = join_by(rbp, BS)`
#> Step4:Performing enrichment analysis...
#> Finish!
result_bulk
#> rbp_interested rank RBP1 rank1 RBP2 rank2 RBP3
#> [1,] "SF3B4" "1" "SF3B4" "24.6091169482863" "PKM" "22.83395" "IGF2BP2"
#> rank3 RBP4 rank4 RBP5 rank5
#> [1,] "22.1366750344505" "RRP9" "20.9478844462111" "BOP1" "20.7134659700031"
#> RBP6 rank6 RBP7 rank7 RBP8
#> [1,] "XPO5" "18.9022792914131" "NELFE" "18.2109697537408" "RBM42"
#> rank8 RBP9 rank9 RBP10 rank10
#> [1,] "18.0527396852879" "SNRPA" "17.9917991451762" "RALY" "17.3288055278799"
Use MRAS on single cell RNA-seq data:
data("sc_brca_expr")
data("sc_brca_psi")
result_sc<-MRAS(input_type = "2",
expr = sc_brca_expr,
psi = sc_brca_psi,
rbp_interested = "ESRP1",
m = 198, n = 317,
sc = T,
result_type = "Top10", threads = 6, path_use = "./tests/"
)
#> Step1:Performing differential splicing analysis...
#> Step2:Preparing data...
#> Step3:Constructing RBP-Event regulatory relationship network...
#> Joining with `by = join_by(rbp, BS)`
#> Step4:Performing enrichment analysis...
#> Finish!
result_sc
#> rbp_interested rank RBP1 rank1 RBP2 rank2 RBP3
#> [1,] "ESRP1" "1" "ESRP1" "11.25044" "RBM47" "2.51224872115645" "CELF2"
#> rank3 RBP4 rank4 RBP5
#> [1,] "2.25503226759437" "APOBEC3C" "1.95143874918872" "MBNL1"
#> rank5 RBP6 rank6 RBP7
#> [1,] "0.988548995478133" "HNRNPH2" "0.645211405867111" "DDX24"
#> rank7 RBP8 rank8 RBP9
#> [1,] "0.623609359645462" "RBM28" "0.560557030029269" "RBM38"
#> rank9 RBP10 rank10
#> [1,] "0.546902831686321" "SRSF5" "0.51233207206364"
After running MRAS()
, there are three ways to display the results. In
addition to setting the form directly in the parameters, users can also
obtain other result display forms through the functions get_Top10()
,
get_tab_all()
, and get_tab_simple()
. This allows users to access
additional result display formats without having to rerun MRAS()
.
result_Top10<-get_Top10(path_use = "./tests/")
result_tab_simple<-get_tab_simple(path_use = "./tests/")
result_tab_all<-get_tab_all(path_use = "./tests/")
head(result_tab_simple[1:5,])
#> RBP D NES1 NES2 odds MRAS_Score
#> 1 ESRP1 1.0000000 1.722579 1.466691 19.82914 11.250440
#> 2 RBM47 0.3187915 1.647201 1.302590 13.48972 2.512249
#> 3 CELF2 0.3277722 1.761026 1.168895 11.17066 2.255032
#> 4 APOBEC3C 0.3301341 1.628394 1.210427 8.99358 1.951439
#> 5 MBNL1 0.2082756 1.509019 1.168121 7.25027 0.988549
# get interacting RBPs。
`get_group(rbp_interested)`
# get splicing events co-regulated by interacting RBPs.
`get_group_events(rbp_interested,rbp_event_deal_all)`
The pre-constructed networks for 33 TCGA cancer types can be downloaded at ASCancer Altas (https://ngdc.cncb.ac.cn/ascancer/download/mras).
MRAS provides an ID converter specifically designed for splice events. This converter facilitates the matching of splice event coordinates obtained from different software, allowing seamless integration with the pre-constructed regulatory network generated by MRAS. This functionality simplifies the process of mapping splice events to the existing regulatory network, increasing the usability and versatility of MRAS.
AS Events ID Format:
Gene Symbol_AS Type_Chromosome_Chain_AS Events Coordinates
MRAS provides the following functions for ID conversion of splice events:
This function allows the user to input the output path of commonly used splicing event identification software such as rMATS, SUPPA, and JUM. MRAS will directly return the PSI matrix or canonical splice event ID associated with the input data. This allows for seamless integration into the MRAS pre-built regulatory network.
This function guides the user step-by-step through the input of the corresponding column coordinates, allowing for the standardized output of splicing event IDs. The process ensures consistency and compatibility in the representation of splicing events.
This function converts splicing event IDs recognized by two different splicing event identification software. By default, a mismatch coordinate difference of 2bp is used to account for potential differences in coordinate systems between the software. This allows users to bridge the gap between different software outputs and harmonize the representation of splicing events.
If you want to know more details, you can get help by ??MRAS::FUN
or
help("FUN")
.
If you have any more questions, you can submit them in Github and we will do our best to answer them (https://github.com/zhou-lei5/MRAS).