mikropml

mikropml: User-Friendly R Package for Supervised Machine Learning Pipelines - Published in JOSS (2021)

https://github.com/schlosslab/mikropml

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    6 of 20 committers (30.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

machine-learning r-package rstats

Keywords from Contributors

standardization
Last synced: 6 months ago · JSON representation

Repository

User-Friendly R Package for Supervised Machine Learning Pipelines

Basic Info
Statistics
  • Stars: 59
  • Watchers: 7
  • Forks: 20
  • Open Issues: 14
  • Releases: 13
Topics
machine-learning r-package rstats
Created about 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Support

README.Rmd

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

Owner

  • Name: SchlossLab
  • Login: SchlossLab
  • Kind: organization
  • Email: pschloss@umich.edu

The laboratory of Pat Schloss at the University of Michigan

JOSS Publication

mikropml: User-Friendly R Package for Supervised Machine Learning Pipelines
Published
May 14, 2021
Volume 6, Issue 61, Page 3073
Authors
Begüm D. Topçuoğlu ORCID
Department of Microbiology & Immunology, University of Michigan, Exploratory Science Center, Merck & Co., Inc., Cambridge, Massachusetts, USA.
Zena Lapp ORCID
Department of Computational Medicine & Bioinformatics, University of Michigan
Kelly L. Sovacool ORCID
Department of Computational Medicine & Bioinformatics, University of Michigan
Evan Snitkin ORCID
Department of Microbiology & Immunology, University of Michigan, Department of Internal Medicine/Division of Infectious Diseases, University of Michigan
Jenna Wiens ORCID
Department of Electrical Engineering & Computer Science, University of Michigan
Patrick D. Schloss ORCID
Department of Microbiology & Immunology, University of Michigan
Editor
Arfon Smith ORCID
Tags
machine learning regression classification decision trees random forest xgboost support vector machines microbiology

Papers & Mentions

Total mentions: 1

mikropml: User-Friendly R Package for Supervised Machine Learning Pipelines
Last synced: 4 months ago

GitHub Events

Total
  • Create event: 7
  • Release event: 1
  • Issues event: 6
  • Watch event: 4
  • Delete event: 3
  • Issue comment event: 12
  • Push event: 35
  • Pull request review event: 1
  • Pull request event: 13
  • Fork event: 3
Last Year
  • Create event: 7
  • Release event: 1
  • Issues event: 6
  • Watch event: 4
  • Delete event: 3
  • Issue comment event: 12
  • Push event: 35
  • Pull request review event: 1
  • Pull request event: 13
  • Fork event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,857
  • Total Committers: 20
  • Avg Commits per committer: 92.85
  • Development Distribution Score (DDS): 0.438
Past Year
  • Commits: 28
  • Committers: 3
  • Avg Commits per committer: 9.333
  • Development Distribution Score (DDS): 0.25
Top Committers
Name Email Commits
Kelly Sovacool k****l@g****m 1,044
github-actions[bot] 4****] 405
Zena Lapp z****p@g****m 163
Begüm D. Topçuoğlu 3****u 100
BegumTop b****p@u****u 52
Begum Topcuoglu b****u@m****m 21
Nick Lesniak N****k@u****u 21
William L. Close c****l@g****m 13
Courtney Armour c****r@g****m 11
Pat Schloss p****s@u****u 8
Lucas Bishop b****5@g****m 3
Ariangela J. Kozik a****o@g****m 3
Begum Topcuoglu b****p@g****u 3
sklucas s****s 2
tomkoset t****t@u****u 2
Begum Topcuoglu b****p@g****u 2
JMAStough j****h@g****m 1
Samara Rifkin s****7@y****m 1
Teun van den Brand t****d@g****m 1
agarretto96 a****6@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 53
  • Total pull requests: 69
  • Average time to close issues: 5 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 22
  • Total pull request authors: 8
  • Average comments per issue: 1.25
  • Average comments per pull request: 0.74
  • Merged pull requests: 58
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 12
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 5 hours
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • kelly-sovacool (26)
  • pschloss (4)
  • zenalapp (3)
  • ecmaggioncalda (2)
  • sskoldas (1)
  • dansmith01 (1)
  • Benjamin-Valderrama (1)
  • SWi1 (1)
  • NLesniak (1)
  • joannacolovas (1)
  • Hesham999666 (1)
  • zhq90 (1)
  • marwa38 (1)
  • TuomasBorman (1)
  • alexmsalmeida (1)
Pull Request Authors
  • kelly-sovacool (56)
  • zenalapp (4)
  • courtneyarmour (3)
  • TuomasBorman (2)
  • teunbrand (1)
  • BTopcuoglu (1)
  • megancoden (1)
  • Benjamin-Valderrama (1)
Top Labels
Issue Labels
feature (17) documentation (10) bug (9) good first issue (8) JOSS-paper (6) wontfix (2) reprex (1)
Pull Request Labels
documentation (2) JOSS-paper (2) bug (1)

Packages

  • Total packages: 2
  • Total downloads:
    • cran 498 last-month
  • Total docker downloads: 99
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 7
    (may contain duplicates)
  • Total versions: 24
  • Total maintainers: 1
cran.r-project.org: mikropml

User-Friendly R Package for Supervised Machine Learning Pipelines

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 498 Last month
  • Docker Downloads: 99
Rankings
Forks count: 4.8%
Stargazers count: 6.8%
Docker downloads count: 17.2%
Average: 17.8%
Dependent repos count: 23.9%
Downloads: 25.6%
Dependent packages count: 28.7%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: r-mikropml

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

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 6
Rankings
Dependent repos count: 13.9%
Average: 36.6%
Forks count: 40.2%
Stargazers count: 40.7%
Dependent packages count: 51.6%
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 4.1.0 depends
  • MLmetrics * imports
  • caret * imports
  • dplyr * imports
  • e1071 * imports
  • glmnet * imports
  • kernlab * imports
  • randomForest * imports
  • rlang * imports
  • rpart * imports
  • stats * imports
  • utils * imports
  • xgboost * imports
  • doFuture * suggests
  • foreach * suggests
  • future * suggests
  • future.apply * suggests
  • ggplot2 * suggests
  • knitr * suggests
  • progress * suggests
  • progressr * suggests
  • purrr * suggests
  • rmarkdown * suggests
  • testthat * suggests
  • tidyr * suggests
.github/workflows/check.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/on-release.yml actions
  • actions/checkout v2 composite
  • ad-m/github-push-action master composite
.github/workflows/pr_build.yml actions
  • actions/checkout v2 composite
  • ad-m/github-push-action master composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
.github/workflows/test-coverage.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite