Introduction

The miRNA Enrichment Analysis and Annotation Tool (miEAA) is a service provided by the Chair for Clinical Bioinformatics at Saarland University. Basically, miEAA is a multi-species microRNA enrichment analysis tool. For more information, see their website or published paper.


First, find enrichment categories

Before Enriching miRNA set, note that based on your input miRNA type (either all mature or precursor, not a mixture of both!) and the species, there will be different sets of supported enrichment categories.

Thus, it is recommended to retrieve a list of possible enrichment categories that you may use:

## A list of available enrichment categories for:
## mature human miRNA:
rba_mieaa_cats(mirna_type = "mature", species = 9606)
## precursor human miRNA
rba_mieaa_cats(mirna_type = "precursor", species = 9606)
## precursor zebrafish miRNA
rba_mieaa_cats(mirna_type = "mature", species = "Danio rerio")

Submit Enrichment analysis request to miEAA

There are two approaches to do this, we will start with the simpler one.

Approach 1: Using the Wrapper function

Just fill the arguments of rba_mieaa_enrich() according to the function’s manual; As you can see in the function’s arguments, you have a lot of controls over your enrichment request, but you need to provide test_set, mirna_type, test_type, and species:

## 1 We create a variable with our miRNAs' mature IDs
mirs <- c("hsa-miR-20b-5p", "hsa-miR-144-5p", "hsa-miR-17-5p", "hsa-miR-20a-5p",
         "hsa-miR-222-3p", "hsa-miR-106a-5p", "hsa-miR-93-5p", "hsa-miR-126-3p",
         "hsa-miR-363-3p", "hsa-miR-302c-3p", "hsa-miR-374b-5p", "hsa-miR-18a-5p",
         "hsa-miR-548d-3p", "hsa-miR-135a-3p", "hsa-miR-558", "hsa-miR-130b-5p",
         "hsa-miR-148a-3p")
## 2a We can enrich our miRNA set without limiting the enrichment to any categories
mieaa_all <- rba_mieaa_enrich(test_set = mirs,
                             mirna_type = "mature",
                             test_type = "ORA",
                             species = 9606)
#>  -- Step 1/3: Submitting Enrichment request:
#> No categories were supplied, Requesting enrichment using all of the 28 available categories for species 'Homo sapiens'.
#> Submitting ORA enrichment request for 17 miRNA IDs of species Homo sapiens to miEAA servers.
#> 
#>  -- Step 2/3: Checking for Submitted enrichment job's status every 5 seconds.
#>     Your submitted job ID is: c10e1e82-bcbc-4268-b5ba-b65624e079e2
#> ....
#> 
#>  -- Step 3/3: Retrieving the results of the finished enrichment job.
#> Retrieving results of submitted enrichment request with ID: c10e1e82-bcbc-4268-b5ba-b65624e079e2
## 2b Or, We can limit the enrichment to certain datasets (enrichment categories)
mieaa_kegg <- rba_mieaa_enrich(test_set = mirs,
                              mirna_type = "mature",
                              test_type = "ORA",
                              species = 9606,
                              categories = c("miRWalk_Diseases_mature",
                                            "miRWalk_Organs_mature")
                             )
#>  -- Step 1/3: Submitting Enrichment request:
#> Submitting ORA enrichment request for 17 miRNA IDs of species Homo sapiens to miEAA servers.
#> 
#>  -- Step 2/3: Checking for Submitted enrichment job's status every 5 seconds.
#>     Your submitted job ID is: 9ff23077-a70e-4cfe-b384-1a0054c27edb
#> .
#> 
#>  -- Step 3/3: Retrieving the results of the finished enrichment job.
#> Retrieving results of submitted enrichment request with ID: 9ff23077-a70e-4cfe-b384-1a0054c27edb

Approach 2: Going step-by-step

As stated before, rba_mieaa_enrich() is a wrapper function, meaning that it executes the following sequence of functions:

## 1 Submit enrichment request to miEAA
request <- rba_mieaa_enrich_submit(test_set = mirs,
                                  mirna_type = "mature",
                                  test_type = "ORA",
                                  species = 9606,
                                  categories = c("miRWalk_Diseases_mature",
                                                 "miRWalk_Organs_mature")
                                  )
## 2 check for job's running status
rba_mieaa_enrich_status(job_id = request$job_id)

## 3 If the job has completed, retrieve the results
results <- rba_mieaa_enrich_results(job_id = request$job_id)

Convert miRNA accessions

miEAA only recognizes miRBASE version 22 accessions. You can use rba_mieaa_convert_version() to convert miRNA accession between different miRBASE versions. Also, as stated before, miEAA differentiate between precursor and mature miRNA accessions, to convert between these 2 accession types, use rba_mieaa_convert_type().


Session info

#> R version 4.1.1 (2021-08-10)
#> Platform: x86_64-apple-darwin17.0 (64-bit)
#> Running under: macOS Catalina 10.15.7
#> 
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
#> 
#> locale:
#> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] rbioapi_0.7.5
#> 
#> loaded via a namespace (and not attached):
#>  [1] knitr_1.36        magrittr_2.0.1    R6_2.5.1          ragg_1.1.3       
#>  [5] rlang_0.4.11      fastmap_1.1.0     stringr_1.4.0     httr_1.4.2       
#>  [9] tools_4.1.1       DT_0.19           xfun_0.26         jquerylib_0.1.4  
#> [13] crosstalk_1.1.1   htmltools_0.5.2   systemfonts_1.0.2 yaml_2.2.1       
#> [17] digest_0.6.28     rprojroot_2.0.2   pkgdown_1.6.1     crayon_1.4.1     
#> [21] textshaping_0.3.5 htmlwidgets_1.5.4 fs_1.5.0          curl_4.3.2       
#> [25] memoise_2.0.0     cachem_1.0.6      evaluate_0.14     rmarkdown_2.11   
#> [29] stringi_1.7.5     compiler_4.1.1    desc_1.4.0        jsonlite_1.7.2