Skip to content

Commit

Permalink
Merge pull request #2 from Novartis/main
Browse files Browse the repository at this point in the history
Add Github actions
  • Loading branch information
MarkusMuck authored Jul 10, 2024
2 parents d241c84 + 83a917d commit cfb7930
Show file tree
Hide file tree
Showing 5 changed files with 162 additions and 17 deletions.
2 changes: 1 addition & 1 deletion .Rbuildignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
^combpeaksr\.Rproj$
^peakCombiner\.Rproj$
^\.Rproj\.user$
^LICENSE\.md$
^data-raw$
149 changes: 149 additions & 0 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
on:
push:
pull_request:
branches:
- devel
schedule:
- cron: '0 8 * * 5'

name: R-CMD-check

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}

name: ${{ matrix.config.os }} (${{ matrix.config.bioc }})

strategy:
fail-fast: false
matrix:
config:
- { os: windows-latest, bioc: 'devel', deploy: 'no'}
- { os: macOS-12, bioc: 'devel', deploy: 'yes'}
# - { os: ubuntu-latest, r: 'devel', image: 'bioconductor/bioconductor_docker:devel', deploy: 'no'}

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
CRAN: ${{ matrix.config.cran }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
cache-version: v2

steps:
- name: checkout branch
uses: actions/checkout@v3

- name: Set up R and install BiocManager
uses: grimbough/bioc-actions/setup-bioc@v1
if: matrix.config.image == null
with:
bioc-version: ${{ matrix.config.bioc }}

- name: Set up pandoc
uses: r-lib/actions/setup-pandoc@v2
if: matrix.config.image == null

- name: Install remotes
run: |
install.packages(c('remotes'))
shell: Rscript {0}

- name: Query dependencies
run: |
saveRDS(remotes::dev_package_deps(dependencies = TRUE, repos = c(getOption('repos'), BiocManager::repositories())), 'depends.Rds', version = 2)
shell: Rscript {0}

- name: Cache R packages
if: runner.os != 'Windows' && matrix.config.image == null
uses: actions/cache@v1
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ env.cache-version }}-${{ runner.os }}-bioc-${{ matrix.config.bioc }}-${{ hashFiles('depends.Rds') }}
restore-keys: ${{ env.cache-version }}-${{ runner.os }}-bioc-${{ matrix.config.bioc }}-

# - name: Install Linux system dependencies
# if: runner.os == 'Linux'
# env:
# RHUB_PLATFORM: linux-x86_64-ubuntu-gcc
# run: |
# sudo apt-get update && sudo apt-get -y install libharfbuzz-dev libfribidi-dev
# Rscript -e "remotes::install_github('r-hub/sysreqs')"
# sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))")
# sudo -s eval "$sysreqs"
#
# - name: Install macOS system dependencies
# if: runner.os == 'macOS'
# run: |
# brew install harfbuzz
# brew install fribidi
# Rscript -e 'BiocManager::install(c("GenomeInfoDbData"), type = "source")'
# Rscript -e 'BiocManager::install(c("GenomicFeatures"), type = "source")'


- name: Install R package dependencies
run: |
local_deps <- remotes::local_package_deps(dependencies = TRUE)
deps <- remotes::dev_package_deps(dependencies = TRUE, repos = BiocManager::repositories())
print(deps)
BiocManager::install(local_deps[local_deps %in% deps$package[deps$diff != 0]], Ncpu = 2L)
remotes::install_cran('rcmdcheck', Ncpu = 2L)
shell: Rscript {0}

- name: Session info
run: |
options(width = 100)
pkgs <- installed.packages()[, "Package"]
sessioninfo::session_info(pkgs, include_base = TRUE)
shell: Rscript {0}

- name: Build, Install, Check
id: build-install-check
uses: grimbough/bioc-actions/build-install-check@v1

- name: Upload install log if the build/install/check step fails
if: always() && (steps.build-install-check.outcome == 'failure')
uses: actions/upload-artifact@v3
with:
name: install-log
path: |
${{ steps.build-install-check.outputs.install-log }}
- name: Show testthat output (windows)
if: always() && runner.os == 'Windows'
run: |
type ${{ steps.build-install-check.outputs.check-dir }}\tests\testthat.Rout
shell: cmd

- name: Show testthat output (non-windows)
if: always() && runner.os != 'Windows'
run: |
cat ${{ steps.build-install-check.outputs.check-dir }}/tests/testthat.Rout
shell: bash

- name: Upload check results
if: failure()
uses: actions/upload-artifact@master
with:
name: ${{ runner.os }}-results
path: ${{ steps.build-install-check.outputs.check-dir }}

- name: Run BiocCheck
uses: grimbough/bioc-actions/run-BiocCheck@v1
with:
arguments: '--no-check-bioc-views --no-check-bioc-help'
error-on: 'error'

- name: Test coverage
if: matrix.config.os == 'macOS-12' && matrix.config.bioc == 'devel'
run: |
install.packages("covr")
covr::codecov(token = "${{secrets.CODECOV_TOKEN}}")
shell: Rscript {0}

- name: Deploy
if: github.event_name == 'push' && github.ref == 'refs/heads/devel' && matrix.config.deploy == 'yes'
run: |
R CMD INSTALL .
Rscript -e "remotes::install_dev('pkgdown'); pkgdown::deploy_to_branch(new_process = FALSE)"
9 changes: 6 additions & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: peakCombiner
Title: The R package to curate and merge enriched genomic regions into consensus peak sets
Version: 0.99.2
Version: 0.99.4
Description: peakCombiner, a fully R based, user-friendly, transparent, and customizable tool that allows even novice R users to create a high-quality consensus peak list. The modularity of its functions allows an easy way to optimize input and output data. A broad range of accepted input data formats can be used to create a consensus peak set that can be exported to a file or used as the starting point for most downstream peak analyses.
Authors@R: c(person("Markus", "Muckenhuber",
email = "[email protected]",
Expand Down Expand Up @@ -33,7 +33,9 @@ Suggests:
rtracklayer,
knitr,
devtools,
qpdf
qpdf,
BiocStyle,
ggplot2
DEPENDS:
dplyr (>= 1.1.2),
GenomicRanges
Expand All @@ -45,7 +47,8 @@ Imports:
tibble (>= 3.2.1),
stats,
IRanges,
rlang
rlang,
here
URL:
BugReports:
Config/testthat/edition: 3
Expand Down
6 changes: 2 additions & 4 deletions R/prepare_input_regions_helper.R
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,7 @@ load_input_regions <- function(data) {
### -----------------------------------------------------------------------###
## Test if provided file paths in input do exist

if (!all(file.exists(system.file(package = "peakCombiner",
data$file_path)))) {
if (!all(file.exists(data$file_path))) {
# show error message independent of parameter show_messages
options("rlib_message_verbosity" = "default")

Expand Down Expand Up @@ -234,8 +233,7 @@ load_input_regions <- function(data) {
file_path = data$file_path
) |>
dplyr::mutate(
input_file = purrr::map(system.file(package = "peakCombiner",
.data$file_path),
input_file = purrr::map(.data$file_path,
readr::read_tsv,
col_names = colnames_input,
.progress = FALSE,
Expand Down
13 changes: 4 additions & 9 deletions vignettes/peakCombiner.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ devtools::load_all()
```

```{r, eval=TRUE}
utils::data("syn_sample_sheet")
syn_sample_sheet
utils::data("syn_data_tibble")
syn_data_tibble
data_prepared <- prepare_input_regions(
data = syn_sample_sheet,
data = syn_data_tibble,
show_messages = FALSE)
data_center_expand <- center_expand_regions(
Expand Down Expand Up @@ -142,12 +142,7 @@ utils::data("syn_sample_sheet")
syn_sample_sheet
```

```{r, eval=TRUE}
data_prepared <- prepare_input_regions(
data = syn_sample_sheet,
show_messages = FALSE)
data_prepared
```
This is the expected structure of an sample_sheet.

If you already have your BED-like region files loaded into your R session, you can alternatively provide them to `prepare_input_regions` as a single GRanges or tibble object with genomic regions and named columns (see section "[Standard genomic regions format]") that, importantly, include a unique sample identifier ('sample_name'). Here, we show as an example the GRanges object.

Expand Down

0 comments on commit cfb7930

Please sign in to comment.