# Installation ## Requirements - R >= 3.5 - [`Biobase`](https://bioconductor.org/packages/Biobase/) — `sc` and `bulk` inputs to `climb()` are `ExpressionSet` objects - [`glmnet`](https://cran.r-project.org/package=glmnet) — underlying linear/EM model fitting - [`reshape2`](https://cran.r-project.org/package=reshape2) — used internally by `cliff()` ClimbTheCliff calls functions from these packages directly without re-exporting them, so **attach them yourself** before calling `climb()` or `cliff()`: ```r library(Biobase) library(glmnet) library(reshape2) library(ClimbTheCliff) ``` ## From GitHub Using `devtools`: ```r install.packages("devtools") devtools::install_github("alexdray86/ClimbTheCliff", force = TRUE) ``` Using `remotes`: ```r install.packages("remotes") remotes::install_github("alexdray86/ClimbTheCliff", force = TRUE) ``` `force = TRUE` ensures a fresh reinstall even if a previous copy is already present — the package's `DESCRIPTION` version does not change between releases, so `devtools`/`remotes` cannot tell from the version number alone that an update is available. ## Installing a specific version To pin a specific frozen release instead of `main`, pass its tag as `ref`: ```r devtools::install_github("alexdray86/ClimbTheCliff", ref = "1.1.0", force = TRUE) ``` To always install the latest tagged release, regardless of which one that is: ```r remotes::install_github("alexdray86/ClimbTheCliff@*release", force = TRUE) ```