Skip to content

Commit

Permalink
Automate Docker push
Browse files Browse the repository at this point in the history
  • Loading branch information
Al-Murphy committed Jun 3, 2021
1 parent 6426a02 commit 658a6af
Show file tree
Hide file tree
Showing 5 changed files with 256 additions and 1 deletion.
17 changes: 17 additions & 0 deletions .github/workflows/r_package.yaml
Expand Up @@ -34,3 +34,20 @@ jobs:
- name: Check
run: rcmdcheck::rcmdcheck(args = "--no-manual", error_on = "error")
shell: Rscript {0}

- name: Get R package version
run: |
version=$(grep Version DESCRIPTION | grep -o "[0-9.]\+")
echo "packageVersion=${version}" >> $GITHUB_ENV
shell: bash {0}

- name: Build and push
uses: docker/build-push-action@v1
with:
push: true
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
repository: almurphy/scfdev
tag_with_ref: true
tag_with_sha: true
tags: ${{ github.repository }}:${{ env.packageVersion }}
179 changes: 179 additions & 0 deletions Dockerfile
@@ -0,0 +1,179 @@
#LABEL maintainer="Combiz Khozoie, Ph.D. c.khozoie@imperial.ac.uk, Alan Murphy, a.murphy@imperial.ac.uk"

## Use rstudio installs binaries from RStudio's RSPM service by default,
## Uses the latest stable ubuntu, R and Bioconductor versions. Created on unbuntu 20.04, R 4.0 and BiocManager 3.12
FROM rocker/rstudio


## Add packages dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends apt-utils \
&& apt-get install -y --no-install-recommends \
## Basic deps
gdb \
libxml2-dev \
python3-pip \
libz-dev \
liblzma-dev \
libbz2-dev \
libpng-dev \
libgit2-dev \
## sys deps from bioc_full
pkg-config \
fortran77-compiler \
byacc \
automake \
curl \
## This section installs libraries
libpcre2-dev \
libnetcdf-dev \
libhdf5-serial-dev \
libfftw3-dev \
libopenbabel-dev \
libopenmpi-dev \
libxt-dev \
libudunits2-dev \
libgeos-dev \
libproj-dev \
libcairo2-dev \
libtiff5-dev \
libreadline-dev \
libgsl0-dev \
libgslcblas0 \
libgtk2.0-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libgmp3-dev \
libhdf5-dev \
libncurses-dev \
libbz2-dev \
libxpm-dev \
liblapack-dev \
libv8-dev \
libgtkmm-2.4-dev \
libmpfr-dev \
libmodule-build-perl \
libapparmor-dev \
libprotoc-dev \
librdf0-dev \
libmagick++-dev \
libsasl2-dev \
libpoppler-cpp-dev \
libprotobuf-dev \
libpq-dev \
libperl-dev \
## software - perl extentions and modules
libarchive-extract-perl \
libfile-copy-recursive-perl \
libcgi-pm-perl \
libdbi-perl \
libdbd-mysql-perl \
libxml-simple-perl \
libmysqlclient-dev \
default-libmysqlclient-dev \
libgdal-dev \
## new libs
libglpk-dev \
## Databases and other software
sqlite \
openmpi-bin \
mpi-default-bin \
openmpi-common \
openmpi-doc \
tcl8.6-dev \
tk-dev \
default-jdk \
imagemagick \
tabix \
ggobi \
graphviz \
protobuf-compiler \
jags \
## Additional resources
xfonts-100dpi \
xfonts-75dpi \
biber \
libsbml5-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN install2.r -e \
testthat \
covr \
knitr \
purrr \
stringr \
cli \
dplyr \
data.table \
R.utils \
vroom \
ggpubr \
ggplot2 \
rmarkdown \
rlang \
future \
future.apply \
plotly \
threejs \
plyr \
assertthat \
httr \
prettydoc \
leaflet \
gdtools \
formattable \
ggdendro \
ggridges \
cowplot \
forcats \
ggrepel \
igraph \
tibble \
tidyr \
tidyselect \
tidyverse \
ids \
snow \
remotes \
rliger \
argparse \
Hmisc

## Install remaining packages from source
COPY ./misc/requirements-src.R .
RUN Rscript requirements-src.R

## Install Bioconductor packages
COPY ./misc/requirements-bioc.R .
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libfftw3-dev \
gcc && apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN Rscript -e 'requireNamespace("BiocManager"); BiocManager::install(ask=F);' \
&& Rscript requirements-bioc.R

## Install from GH the following
RUN installGithub.r neurogenomics/EWCE \
chris-mcginnis-ucsf/DoubletFinder \
theislab/kBET \
combiz/RANN.L1 \
NathanSkene/One2One \
hhoeflin/hdf5r \
mojaveazure/loomR \
cole-trapnell-lab/monocle3 \
neurogenomics/scFlowExample \
neurogenomics/scFlowData

## Install scFlow package
# Copy description
WORKDIR scFlow
ADD . .

# Install R package from source
RUN Rscript -e "remotes::install_local()"
RUN rm -rf *

## Check if scFlow installed
#RUN R -e 'library(scFlow)'
2 changes: 1 addition & 1 deletion R/model_celltype_freqs.R
Expand Up @@ -27,7 +27,7 @@ model_celltype_freqs <- function(sce,
var_order = NULL,
...) {

if (is.null(var_order)) { var_order <- levels(sce[[dependent_var]]) }
if (is.null(var_order)){ var_order <- levels(as.factor(sce[[dependent_var]]))}
fargs <- c(as.list(environment()), list(...))

cli::cli_h1("Modelling Cell-type Frequencies")
Expand Down
27 changes: 27 additions & 0 deletions misc/requirements-bioc.R
@@ -0,0 +1,27 @@
bioc_pkgs<-c(
'biomaRt',
'SingleCellExperiment',
'SummarizedExperiment',
'MAST',
'limma',
'scater',
'ROntoTools',
'BiocGenerics',
'S4Vectors',
'IRanges',
'GenomicRanges',
'DelayedArray',
'graphite',
'batchelor',
'DelayedMatrixStats',
#'monocle3',#won't install correctly, known issue for docker
'DropletUtils',
'multtest',
'graph',
'rhdf5',
'preprocessCore',
'BiocStyle'
)

requireNamespace("BiocManager")
BiocManager::install(bioc_pkgs,ask=F)
32 changes: 32 additions & 0 deletions misc/requirements-src.R
@@ -0,0 +1,32 @@
#base r packages used - no need to install
#utils, Matrix, stats, methods

pkgs <- c(
'spelling',
'english',
'Seurat',
'DT',
'sctransform',
'RcppParallel',
'bib2df',
'paletteer',
'WebGestaltR',
'uniftest',
'Matrix.utils',
#'rliger',
'qs',
'UpSetR',
'nVennR',
'DirichletReg',
'enrichR',
'Rtsne',
'BiocManager',
'Rcpp',
'RcppArmadillo',
'RcppEigen',
'RcppProgress'

)


install.packages(pkgs)

0 comments on commit 658a6af

Please sign in to comment.