Skip to content

zhou-lei5/MRAS

Repository files navigation

Menu

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 MRAS

The Overview of MRAS

The Overview of MRAS

Installation and Library

You can install the development version of MRAS from GitHub with:

# install.packages("devtools")
devtools::install_github("zhou-lei5/MRAS")
library(MRAS)

Usage and Examples

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:

  1. 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.

  2. 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:

The basic code of input type 1

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)

The basic code of input type 2

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.

BULK RNA-seq

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"

Single cell RNA-seq

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"

Type of MRAS result

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

Interacting RBPs and co-regulated splicing events

# 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

The pre-constructed networks for 33 TCGA cancer types can be downloaded at ASCancer Altas (https://ngdc.cncb.ac.cn/ascancer/download/mras).

Tools: AS Events ID Converter

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

AS Events ID format

AS Events ID format

MRAS provides the following functions for ID conversion of splice events:

id_find()

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.

id_normalization()

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.

id_change()

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").

Help

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).

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages