Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/SchlossLab/mikropml

User-Friendly R Package for Supervised Machine Learning Pipelines
https://github.com/SchlossLab/mikropml

machine-learning r-package rstats

Last synced: about 2 months ago
JSON representation

User-Friendly R Package for Supervised Machine Learning Pipelines

Awesome Lists containing this project

README

        

---
output:
github_document
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```

# mikropml

> meek-ROPE em el

User-Friendly R Package for Supervised Machine Learning Pipelines

[![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)

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):

```{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/):

```{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.



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