Skip to contents

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 Performing enrichment analysis on a 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 perform enrichment analysis on our miRNA set without limiting the analysis to any categories
mieaa_all <- rba_mieaa_enrich(test_set = mirs,
                             mirna_type = "mature",
                             test_type = "ORA",
                             species = 9606)
#>  -- Step 1/3: Submitting Enrichment analysis request:
#> No categories were supplied, Requesting enrichment using all of the 32 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 analysis's status every 5 seconds.
#>     Your submitted job ID is: 68289023-ebf5-4724-a553-ace803dd9c1a
#> ......
#> 
#>  -- Step 3/3: Retrieving the results.
#> Retrieving results of submitted enrichment request with ID: 68289023-ebf5-4724-a553-ace803dd9c1a
## 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 = "KEGG_mature"
                             )
#>  -- Step 1/3: Submitting Enrichment analysis request:
#> Submitting ORA enrichment request for 17 miRNA IDs of species Homo sapiens to miEAA servers.
#> 
#>  -- Step 2/3: Checking for Submitted enrichment analysis's status every 5 seconds.
#>     Your submitted job ID is: 2619e62f-dd70-46a4-9066-c6a48e384c53
#> .
#> 
#>  -- Step 3/3: Retrieving the results.
#> Retrieving results of submitted enrichment request with ID: 2619e62f-dd70-46a4-9066-c6a48e384c53

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)

Please Note: Other services supported by rbioapi also provide Over-representation analysis tools. Please see the vignette article Do with rbioapi: Over-Representation (Enrichment) Analysis in R (link to the documentation site) for an in-depth review.


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


How to Cite?

To cite miEAA (Please see https://ccb-compute2.cs.uni-saarland.de/mieaa2/):

  • Fabian Kern, Tobias Fehlmann, Jeffrey Solomon, Louisa Schwed, Nadja Grammes, Christina Backes, Kendall Van Keuren-Jensen, David Wesley Craig, Eckart Meese, Andreas Keller, miEAA 2.0: integrating multi-species microRNA enrichment analysis and workflow management systems, Nucleic Acids Research, Volume 48, Issue W1, 02 July 2020, Pages W521–W528, https://doi.org/10.1093/nar/gkaa309

To cite rbioapi:

  • Moosa Rezwani, Ali Akbar Pourfathollah, Farshid Noorbakhsh, rbioapi: user-friendly R interface to biologic web services’ API, Bioinformatics, Volume 38, Issue 10, 15 May 2022, Pages 2952–2953, https://doi.org/10.1093/bioinformatics/btac172

Session info

#> R version 4.3.1 (2023-06-16)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 22.04.3 LTS
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0
#> 
#> locale:
#>  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
#>  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
#>  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
#> [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
#> 
#> time zone: UTC
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] rbioapi_0.7.9
#> 
#> loaded via a namespace (and not attached):
#>  [1] vctrs_0.6.3       httr_1.4.7        cli_3.6.1         knitr_1.44       
#>  [5] rlang_1.1.1       xfun_0.40         stringi_1.7.12    purrr_1.0.2      
#>  [9] textshaping_0.3.6 jsonlite_1.8.7    glue_1.6.2        DT_0.29          
#> [13] rprojroot_2.0.3   htmltools_0.5.6   ragg_1.2.5        sass_0.4.7       
#> [17] rmarkdown_2.24    crosstalk_1.2.0   evaluate_0.21     jquerylib_0.1.4  
#> [21] ellipsis_0.3.2    fastmap_1.1.1     yaml_2.3.7        lifecycle_1.0.3  
#> [25] memoise_2.0.1     stringr_1.5.0     compiler_4.3.1    fs_1.6.3         
#> [29] htmlwidgets_1.6.2 systemfonts_1.0.4 digest_0.6.33     R6_2.5.1         
#> [33] curl_5.0.2        magrittr_2.0.3    bslib_0.5.1       tools_4.3.1      
#> [37] pkgdown_2.0.7     cachem_1.0.8      desc_1.4.2