API Wrapper¶
mieaa¶
API () |
miEAA api wrapper class. |
API.convert_mirbase (mirnas, Iterable[str], …) |
Convert a set of either miRNAs/precursors from one miRbase version to another |
API.to_precursor (mirnas, Iterable[str], IO], …) |
Convert from mirna->precursor |
API.to_mirna (mirnas, Iterable[str], IO], …) |
Convert from precursor->mirna |
API.get_enrichment_categories (mirna_type, …) |
Get possible enrichment categories |
API.get_enrichment_parameters () |
Retrieve parameters used during enrichment analysis |
API.get_gui_url (page[, job_id]) |
Get specific url to page in web tool |
API.get_progress () |
Retrieve enrichment analysis progress |
API.get_results (results_format, …[, retries]) |
Return results in json or csv format |
API.new_session () |
Start a new session, clearing all job results |
API.open_gui ([page, job_id]) |
Open specific mieaa web tool page in browser |
API.run_gsea (test_set, Iterable[T_co], IO], …) |
Start miRNA Set Enrichment Analysis |
API.run_ora (test_set, Iterable[T_co], IO], …) |
Start Over Enrichment Analysis |
API.save_enrichment_results (save_file, IO], …) |
Save results in specified format |
Examples¶
Python¶
Python API Example¶
A barebones example script can be found on Github.
from mieaa import API
mieaa_api = API()
Target sets, categories, and reference sets support strings, iterables, and file objects.
Mixed delimiters should still function, but are not recommended.
#initial_mirnas = ['hsa-miR-374c', 'hsa-miR-642b', 'hsa-miR-550b', 'hsa-miR-107', 'hsa-miR-125b']
initial_mirnas = 'hsa-miR-374c hsa-miR-642b,hsa-miR-550b;hsa-miR-107;hsa-miR-125b'
Convert between miRBase versions¶
Results can be optionally saved to a file by specifying the to_file
argument.
# mieaa_api.convert_mirbase(initial_precursors, 9.1, 22, 'precursor', to_file='mirnas.txt')
updated_mirnas = mieaa_api.convert_mirbase(initial_mirnas, 16, 22, 'mirna')
updated_mirnas
['hsa-miR-374c-5p',
'hsa-miR-642b-3p',
'hsa-miR-550b-3p',
'hsa-miR-107',
'hsa-miR-125b-5p']
Convert between miRNAs <-> precursors¶
Results can be optionally saved to a file by specifying the to_file
argument.
Some names are not uniquely converted. We can specify conversion type as either all
(default) or unique
.
We can also decide whether we want our output to only include
converted results with multiple-mapped values separated by a semicolon
(default, oneline
), on their own individual lines (newline
), or
a tab separated input - output (tabsep
).
precursors = mieaa_api.to_precursor(updated_mirnas, to_file='./precursors.txt', conversion_type='all')
precursors
['hsa-mir-374c',
'hsa-mir-642b',
'hsa-mir-550b-1;hsa-mir-550b-2',
'hsa-mir-107',
'hsa-mir-125b-1;hsa-mir-125b-2']
with open('./precursors.txt') as prec_file:
mirnas = mieaa_api.to_mirna(prec_file, output_format='tabsep')
mirnas
['hsa-mir-374c\thsa-miR-374c-5p;hsa-miR-374c-3p',
'hsa-mir-642b\thsa-miR-642b-5p;hsa-miR-642b-3p',
'hsa-mir-550b-1\thsa-miR-550b-3p;hsa-miR-550b-2-5p',
'hsa-mir-550b-2\thsa-miR-550b-3p;hsa-miR-550b-2-5p',
'hsa-mir-107\thsa-miR-107',
'hsa-mir-125b-1\thsa-miR-125b-5p;hsa-miR-125b-1-3p',
'hsa-mir-125b-2\thsa-miR-125b-5p;hsa-miR-125b-2-3p']
Enrichment Analysis¶
Starting Enrichment Analysis¶
Run Gene Set Enrichment Analysis (GSEA) or Over-representation Analysis (ORA).
Please refer to documentation for possible keyword arguments.
For ORA, if reference_set
is not specified or is left empty, default
to using miEAA reference sets for specified categories.
# mieaa_api.run_gsea(precursors, ['HMDD, mndr'], 'precursor', 'hsa')
with open('./precursors.txt', 'r') as test_set_file:
mieaa_api.run_ora(test_set_file, ['HMDD, mndr'], 'precursor', 'hsa', reference_set='')
Retrieving Enrichment Results¶
Get results after enrichment analysis has been completed, determining
how often to check progress via check_progress_interval
(default is
5 seconds).
json = mieaa_api.get_results(check_progress_interval=5)
The returned data can be easily turned into a pandas dataframe.
import pandas as pd
cols = ['category', 'subcategory', 'enrichment', 'p-value', 'p-adjusted', 'q-value', 'expected', 'observed', 'mirnas/precursors']
df = pd.DataFrame(json, columns=cols)
df.head()
category | subcategory | enrichment | p-value | p-adjusted | q-value | expected | observed | mirnas/precursors |
---|---|---|---|---|---|---|---|---|
Diseases (HMDD) | Alopecia | over-represented | 0.0017138 | 0.0478121 | 0.0478121 | 0.0678879 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Atopic Dermatitis | over-represented | 0.0021345 | 0.0478121 | 0.0478121 | 0.075431 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Lichen Planus | over-represented | 0.0017138 | 0.0478121 | 0.0478121 | 0.0678879 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Myotonic Muscular Dystrophy | over-represented | 0.00063573 | 0.0356009 | 0.0356009 | 0.196121 | 3 | hsa-mir-107; hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Nevus | over-represented | 0.000145941 | 0.0163454 | 0.0163454 | 0.0226293 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Results can also be obtained as a csv string.
csv_string = mieaa_api.get_results('csv')
Saving Enrichment Results¶
Results can be automatically saved to a json or csv (default) file.
# mieaa_api.save_enrichment_results('./example.json', file_type='json')
file_contents = mieaa_api.save_enrichment_results('./results.csv')
Alternatively, we can write the csv results to a file.
with open('results_2.csv', 'w+') as outfile:
outfile.write(csv_string)
Miscellaneous¶
After running an analysis, we may wish to view the parameters we used for our analysis.
mieaa_api.get_enrichment_parameters()
{'enrichment_analysis': 'ORA',
'p_value_adjustment': 'fdr',
'independent_p_adjust': True,
'significance_level': 0.05,
'threshold_level': 2,
'categories': ['HMDD_precursor', 'MNDR_precursor'],
'reference_set': '',
'testset_file': <_io.TextIOWrapper name='./precursors.txt' mode='r' encoding='UTF-8'>}
Upon running an analysis, our API instance is assigned a unique Job ID.
If we wish to reuse the same instance to run a new analysis, we must create a new session.
mieaa_api.new_session()
R¶
R API Example¶
The reticulate library allows us to utilize the wrapper class in R, assuming Python is also installed.
A barebones example script can be found on Github.
library(reticulate)
mieaa = import("mieaa")
mieaa_api = mieaa$API()
Target sets, categories, and reference sets support strings, iterables, and file objects.
Mixed delimiters should still function, but are not recommended.
# list('hsa-miR-374c', 'hsa-miR-642b', 'hsa-miR-550b', 'hsa-miR-107', 'hsa-miR-125b')
initial_mirnas = 'hsa-miR-374c hsa-miR-642b,hsa-miR-550b;hsa-miR-107;hsa-miR-125b'
Convert between miRBase versions¶
Results can be optionally saved to a file by specifying the to_file
argument.
# mieaa_api$convert_mirbase(initial_precursors, '9.1', '22', 'precursor', to_file='mirnas.txt')
updated_mirnas = mieaa_api$convert_mirbase(initial_mirnas, '16', '22', 'mirna')
updated_mirnas
[[1]]
[1] "hsa-miR-374c-5p"
[[2]]
[1] "hsa-miR-642b-3p"
[[3]]
[1] "hsa-miR-550b-3p"
[[4]]
[1] "hsa-miR-107"
[[5]]
[1] "hsa-miR-125b-5p"
Convert between miRNAs <-> precursors¶
Results can be optionally saved to a file by specifying the
to_file
argument.
Some names are not uniquely converted. We can specify conversion type
as either all
(default) or unique
.
We can also decide whether we want our output to only include
converted results with multiple-mapped values separated by a semicolon
(default, oneline
), on their own individual lines (newline
), or
a tab separated input - output (tabsep
).
precursors = mieaa_api$to_precursor(updated_mirnas, to_file='./precursors.txt', conversion_type='all')
precursors
[[1]]
[1] "hsa-mir-374c"
[[2]]
[1] "hsa-mir-642b"
[[3]]
[1] "hsa-mir-550b-1;hsa-mir-550b-2"
[[4]]
[1] "hsa-mir-107"
[[5]]
[1] "hsa-mir-125b-1;hsa-mir-125b-2"
py = import_builtins() # part of 'reticulate'
# Files need to be python file objects
with(py$open("precursors.txt", 'r') %as% prec_file, {
mirnas = mieaa_api$to_mirna(prec_file, output_format='tabsep')
})
mirnas
[[1]]
[1] "hsa-mir-374c\thsa-miR-374c-5p;hsa-miR-374c-3p"
[[2]]
[1] "hsa-mir-642b\thsa-miR-642b-5p;hsa-miR-642b-3p"
[[3]]
[1] "hsa-mir-550b-1\thsa-miR-550b-3p;hsa-miR-550b-2-5p"
[[4]]
[1] "hsa-mir-550b-2\thsa-miR-550b-3p;hsa-miR-550b-2-5p"
[[5]]
[1] "hsa-mir-107\thsa-miR-107"
[[6]]
[1] "hsa-mir-125b-1\thsa-miR-125b-5p;hsa-miR-125b-1-3p"
[[7]]
[1] "hsa-mir-125b-2\thsa-miR-125b-5p;hsa-miR-125b-2-3p"
Enrichment Analysis¶
Starting Enrichment Analysis¶
Run Gene Set Enrichment Analysis (GSEA) or Over-representation Analysis (ORA).
Please refer to documentation for possible keyword arguments.
For ORA, if reference_set
is not specified or is left empty, default
to using miEAA reference sets for specified categories.
# mieaa_api$run_gsea(precursors, ['HMDD, mndr'], 'precursor', 'hsa')
with(py$open("precursors.txt", 'r') %as% test_set_file, {
mieaa_api$run_ora(test_set_file, list('HMDD, mndr'), 'precursor', 'hsa', reference_set='')
})
Retrieving Enrichment Results¶
Get results after enrichment analysis has been completed, determining
how often to check progress via check_progress_interval
(default is
5 seconds).
json = mieaa_api$get_results(check_progress_interval=5)
The returned data can be easily turned into a dataframe.
cols = c('category', 'subcategory', 'enrichment', 'p-value', 'p-adjusted', 'q-value', 'expected', 'observed', 'mirnas/precursors')
df = data.frame(matrix(unlist(json), nrow=length(json), byrow=T))
colnames(df) = cols
head(df)
category | subcategory | enrichment | p-value | p-adjusted | q-value | expected | observed | mirnas/precursors |
---|---|---|---|---|---|---|---|---|
Diseases (HMDD) | Alopecia | over-represented | 0.0017138 | 0.0478121 | 0.0478121 | 0.0678879 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Atopic Dermatitis | over-represented | 0.0021345 | 0.0478121 | 0.0478121 | 0.075431 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Lichen Planus | over-represented | 0.0017138 | 0.0478121 | 0.0478121 | 0.0678879 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Myotonic Muscular Dystrophy | over-represented | 0.00063573 | 0.0356009 | 0.0356009 | 0.196121 | 3 | hsa-mir-107; hsa-mir-125b-1; hsa-mir-125b-2 |
Diseases (HMDD) | Nevus | over-represented | 0.000145941 | 0.0163454 | 0.0163454 | 0.0226293 | 2 | hsa-mir-125b-1; hsa-mir-125b-2 |
Results can also be obtained as a csv string.
csv_string = mieaa_api$get_results('csv')
Saving Enrichment Results¶
Results can be automatically saved to a json or csv (default) file.
# mieaa_api$save_enrichment_results('./example.json', file_type='json')
file_contents = mieaa_api$save_enrichment_results('./results.csv')
Alternatively, we can write the csv results to a file.
outfile = file("./results_2.csv")
writeLines(csv_string, outfile)
close(outfile)
Miscellaneous¶
After running an analysis, we may wish to view the parameters we used for our analysis.
mieaa_api$get_enrichment_parameters()
$enrichment_analysis
[1] "ORA"
$p_value_adjustment
[1] "fdr"
$independent_p_adjust
[1] TRUE
$significance_level
[1] 0.05
$threshold_level
[1] 2
$categories
[1] "HMDD_precursor" "MNDR_precursor"
$reference_set
[1] ""
$testset_file
<_io.TextIOWrapper name='precursors.txt' mode='r' encoding='UTF-8'>
Upon running an analysis, our API instance is assigned a unique Job ID.
If we wish to reuse the same instance to run a new analysis, we must create a new session.
mieaa_api$new_session()