-
Notifications
You must be signed in to change notification settings - Fork 17
/
README.Rmd
158 lines (119 loc) · 5.68 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
---
output:
github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# mikropml <a href='http://www.schlosslab.org/mikropml/'><img src='man/figures/logo.png' align="right" height="120" /></a>
> meek-ROPE em el
User-Friendly R Package for Supervised Machine Learning Pipelines
<!-- badges: start -->
[![check](https://github.com/SchlossLab/mikropml/workflows/check/badge.svg)](https://github.com/SchlossLab/mikropml/actions?query=workflow%3Acheck+branch%3Amain)
[![codecov](https://codecov.io/gh/SchlossLab/mikropml/branch/main/graph/badge.svg)](https://app.codecov.io/gh/SchlossLab/mikropml)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/SchlossLab/mikropml/blob/main/LICENSE.md)
[![CRAN](https://img.shields.io/cran/v/mikropml?color=blue&label=CRAN&logo=R)](https://CRAN.R-project.org/package=mikropml)
[![Conda](https://img.shields.io/conda/vn/conda-forge/r-mikropml)](https://anaconda.org/conda-forge/r-mikropml)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.03073/status.svg)](https://doi.org/10.21105/joss.03073)
<!-- badges: end -->
An interface to build machine learning models for classification and regression
problems. `mikropml` implements the ML pipeline described by [Topçuoğlu _et al._
(2020)](https://doi.org/doi:10.1128/mBio.00434-20) with reasonable default
options for data preprocessing, hyperparameter tuning, cross-validation,
testing, model evaluation, and interpretation steps. See the
[website](http://www.schlosslab.org/mikropml/) for more information,
documentation, and examples.
## Installation
You can install the latest release from
[CRAN](https://cran.r-project.org/package=mikropml):
<img src='https://cranlogs.r-pkg.org/badges/grand-total/mikropml' align='right'/>
```{r install_cran, eval = FALSE}
install.packages('mikropml')
```
or the development version from
[GitHub](https://github.com/SchlossLab/mikRopML):
```{r install_github, eval = FALSE}
# install.packages("devtools")
devtools::install_github("SchlossLab/mikropml")
```
or install from a terminal using
[conda](https://docs.conda.io/projects/conda/en/latest/index.html)
or [mamba](https://mamba.readthedocs.io/en/latest/):
<img src='https://anaconda.org/conda-forge/r-mikropml/badges/downloads.svg' align='right'/>
```{bash conda, eval = FALSE}
mamba install -c conda-forge r-mikropml
```
### Dependencies
```{r deps, echo = FALSE, message = FALSE, warning = FALSE}
library(dplyr)
description <- utils::packageDescription('mikropml',
fields = c('Imports', 'Suggests'))
deps <- lapply(names(description),
function (x) {
paste0('- ', x, ': ',
description[[x]] %>%
gsub("\n", " ", .))}
) %>%
unlist() %>%
paste(., collapse = '\n')
```
`r deps`
## Usage
Check out the [introductory
vignette](http://www.schlosslab.org/mikropml/articles/introduction.html) for a
quick start tutorial. For a more in-depth discussion, read [all the
vignettes](http://www.schlosslab.org/mikropml/articles/index.html) and/or take a
look at the [reference
documentation](http://www.schlosslab.org/mikropml/reference/index.html).
You can watch the Riffomonas Project series of
[video tutorials](https://www.youtube.com/playlist?list=PLmNrK_nkqBpKpzb9-vI4V7SdXC-jXEcmg)
covering mikropml and other skills related to machine learning.
We also provide a
[Snakemake workflow](https://github.com/SchlossLab/mikropml-snakemake-workflow)
for running `mikropml` locally or on an HPC.
We highly recommend running `mikropml` with Snakemake or another workflow
management system for reproducibility and scalability of ML analyses.
<a href="https://github.com/SchlossLab/mikropml-snakemake-workflow">
<img src="https://raw.githubusercontent.com/SchlossLab/mikropml-snakemake-workflow/main/figures/mikropml-snakemake-workflow.png"
height="120" align="center" />
</a>
## Help & Contributing
If you come across a bug,
[open an issue](https://github.com/SchlossLab/mikropml/issues)
and include a
[minimal reproducible example](https://www.tidyverse.org/help/).
If you have questions, create a new post in
[Discussions](https://github.com/SchlossLab/mikropml/discussions).
If you'd like to contribute, see our guidelines
[here](http://www.schlosslab.org/mikropml/CONTRIBUTING.html).
## Code of Conduct
Please note that the mikropml project is released with a [Contributor Code of
Conduct](http://www.schlosslab.org/mikropml/CODE_OF_CONDUCT.html). By
contributing to this project, you agree to abide by its terms.
## License
The mikropml package is licensed under
[the MIT license](https://github.com/SchlossLab/mikropml/blob/main/LICENSE.md).
Text and images included in this repository, including the mikropml logo,
are licensed under the [CC BY 4.0 license](https://creativecommons.org/licenses/by/4.0/).
## Citation
To cite mikropml in publications, use:
> ```{r cite_text, echo = FALSE, results = 'asis'}
> cat(format(citation('mikropml'), style = 'html'))
> ```
A BibTeX entry for LaTeX users is:
```{r cite_bibtex, echo = FALSE, comment = '', results = 'asis'}
cat("```\n", format(citation('mikropml'), style = 'bibtex'), "\n```")
```
## Why the name?
The word "mikrop" (pronounced "meek-ROPE") is Turkish for "microbe". This
package was originally implemented as a machine learning pipeline for
microbiome-based classification problems (see [Topçuoğlu _et al._
2020](https://doi.org/10.1128/mBio.00434-20)). We realized that these methods
are applicable in many other fields too, but stuck with the name because we like
it!