# 2.C: miEEA & rbioapi

#### Moosa Rezwani

#### 2024-03-30

## 0.1 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.

## 0.2 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")

## 0.3 Submit Enrichment analysis request to miEAA

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

### 0.3.1 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: 45d6f2a9-c5d9-4ceb-bc74-3048588fa265
    #> ......
    #>
    #>  -- Step 3/3: Retrieving the results.
    #> Retrieving results of submitted enrichment request with ID: 45d6f2a9-c5d9-4ceb-bc74-3048588fa265
    ## 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: d6295e00-a15a-4e57-8ca4-08e2856a0036
    #> .
    #>
    #>  -- Step 3/3: Retrieving the results.
    #> Retrieving results of submitted enrichment request with ID: d6295e00-a15a-4e57-8ca4-08e2856a0036

### 0.3.2 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.

## 0.4 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()`.

## 0.5 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

## 0.6 Links

- This article in rbioapi documentation site

- Functions references in rbioapi documentation site

- rbioapi vignette index

## 0.7 Session info

    #> R version 4.3.3 (2024-02-29 ucrt)
    #> Platform: x86_64-w64-mingw32/x64 (64-bit)
    #> Running under: Windows 11 x64 (build 22631)
    #>
    #> Matrix products: default
    #>
    #>
    #> locale:
    #> [1] LC_COLLATE=C
    #> [2] LC_CTYPE=English_United States.utf8
    #> [3] LC_MONETARY=English_United States.utf8
    #> [4] LC_NUMERIC=C
    #> [5] LC_TIME=English_United States.utf8
    #>
    #> time zone: Europe/Brussels
    #> tzcode source: internal
    #>
    #> attached base packages:
    #> [1] stats     graphics  grDevices utils     datasets  methods   base
    #>
    #> other attached packages:
    #> [1] rbioapi_0.8.1
    #>
    #> loaded via a namespace (and not attached):
    #>  [1] digest_0.6.35     R6_2.5.1          fastmap_1.1.1     xfun_0.43
    #>  [5] magrittr_2.0.3    cachem_1.0.8      knitr_1.45        htmltools_0.5.8
    #>  [9] rmarkdown_2.26    lifecycle_1.0.4   DT_0.32           cli_3.6.2
    #> [13] sass_0.4.9        jquerylib_0.1.4   compiler_4.3.3    httr_1.4.7
    #> [17] rstudioapi_0.16.0 tools_4.3.3       curl_5.2.1        evaluate_0.23
    #> [21] bslib_0.6.2       yaml_2.3.8        htmlwidgets_1.6.4 rlang_1.1.3
    #> [25] jsonlite_1.8.8    crosstalk_1.2.1