From 2b6e86cc7f6d10e6bc6b77284b3e38e6b9db2db7 Mon Sep 17 00:00:00 2001 From: fridellsa <gus.fridell@nih.gov> Date: Wed, 12 Jan 2022 16:28:23 -0500 Subject: [PATCH 01/91] Changed library loading location before config --- workflows/rnaseq/downstream/rnaseq.Rmd | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/workflows/rnaseq/downstream/rnaseq.Rmd b/workflows/rnaseq/downstream/rnaseq.Rmd index 8bce54f6..a36dd080 100644 --- a/workflows/rnaseq/downstream/rnaseq.Rmd +++ b/workflows/rnaseq/downstream/rnaseq.Rmd @@ -26,6 +26,27 @@ devtools::document('../../../lib/lcdbwf') devtools::load_all('../../../lib/lcdbwf') ``` +```{r} +library(AnnotationHub) +library(BiocParallel) +library(clusterProfiler) +library(cowplot) +library(DESeq2) +library(dplyr) +library(DT) +library(genefilter) +library(ggplot2) +library(gridExtra) +library(plotly) +library(purrr) +library(ReactomePA) +library(readr) +library(reshape) +library(tibble) +library(tximport) +library(UpSetR) +``` + ```{r config} # HOW TO CONFIGURE ------------------------------------------------------ From b9bcb65e9793df97858166223628a6e63c28346c Mon Sep 17 00:00:00 2001 From: fridells51 <63575426+fridells51@users.noreply.github.com> Date: Mon, 24 Jan 2022 10:12:03 -0500 Subject: [PATCH 02/91] Update rnaseq.Rmd --- workflows/rnaseq/downstream/rnaseq.Rmd | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/workflows/rnaseq/downstream/rnaseq.Rmd b/workflows/rnaseq/downstream/rnaseq.Rmd index 05981028..02fd620d 100644 --- a/workflows/rnaseq/downstream/rnaseq.Rmd +++ b/workflows/rnaseq/downstream/rnaseq.Rmd @@ -27,7 +27,7 @@ devtools::document('../../../lib/lcdbwf') devtools::load_all('../../../lib/lcdbwf') ``` -```{r} +```{r libraries} library(AnnotationHub) library(BiocParallel) library(clusterProfiler) @@ -82,28 +82,6 @@ if (config$parallel$parallel){ Last run: `r date()` -```{r libraries} -library(AnnotationHub) -library(BiocParallel) -library(clusterProfiler) -library(cowplot) -library(DESeq2) -library(dplyr) -library(DT) -library(genefilter) -library(ggplot2) -library(gridExtra) -library(plotly) -library(purrr) -library(ReactomePA) -library(readr) -library(reshape) -library(tibble) -library(tximport) -library(UpSetR) -``` - - ```{r coldata_setup} # Set up all of the metadata for the samples and experimental design. Use this From b934b3618607050918f705044d0cf5c1ea36e92a Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Tue, 25 Jan 2022 11:55:23 -0500 Subject: [PATCH 03/91] try adding actions config --- .github/workflows/main.yaml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/main.yaml diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 00000000..2a27947a --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,30 @@ +on: [push] +jobs: + + build: + runs-on: ubuntu-latest + container: continuumio/miniconda3 + steps: + + - uses: actions/checkout@v1 + + - name: Cache conda env + id: cache-conda + uses: actions/cache@v1 + with: + path: /opt/conda + key: ${{ hashFiles('env.yml') }} + + - name: Rebuild cache + if: steps.cache-conda.outputs.cache-hit != 'true' + run: | + conda config --add channels defaults + conda config --add channels bioconda + conda config --add channels conda-forge + conda env create -n lcdb-wf-test --file env.yml + + - name: STAR available? + shell: bash + run: | + source activate lcdb-wf-test + STAR --version From b100c363aa752919f5eae91d99637d59c8e5b21b Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Tue, 25 Jan 2022 11:58:58 -0500 Subject: [PATCH 04/91] create backup circleci config --- .circleci/{config.yml => config.bak} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .circleci/{config.yml => config.bak} (100%) diff --git a/.circleci/config.yml b/.circleci/config.bak similarity index 100% rename from .circleci/config.yml rename to .circleci/config.bak From b8eeee21f0d5609d0570c795f20113236f9daa42 Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Tue, 25 Jan 2022 12:08:07 -0500 Subject: [PATCH 05/91] mv circleci dir --- {.circleci => .circleci.back}/config.bak | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {.circleci => .circleci.back}/config.bak (100%) diff --git a/.circleci/config.bak b/.circleci.back/config.bak similarity index 100% rename from .circleci/config.bak rename to .circleci.back/config.bak From 49160a15ddd68e5a2b6d9fcdcc18609dab5a7274 Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Tue, 25 Jan 2022 12:30:11 -0500 Subject: [PATCH 06/91] use mamba, and build r env too --- .github/workflows/main.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 2a27947a..062fec00 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -21,7 +21,9 @@ jobs: conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge - conda env create -n lcdb-wf-test --file env.yml + conda install mamba -y + mamba env create -n lcdb-wf-test --file env.yml + mamba env create -n lcdb-wf-test-r --file env-r.yml - name: STAR available? shell: bash From 2a6b3d426b4f2b5784f0da05bafbc0be6e9b33b4 Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Sun, 18 Sep 2022 21:38:24 -0400 Subject: [PATCH 07/91] remove builds from env-r.yml --- env-r.yml | 795 +++++++++++++++++++++++++++--------------------------- 1 file changed, 396 insertions(+), 399 deletions(-) diff --git a/env-r.yml b/env-r.yml index d4076b0f..3d4f02c7 100644 --- a/env-r.yml +++ b/env-r.yml @@ -1,403 +1,400 @@ -name: null channels: - conda-forge - bioconda - - defaults dependencies: - - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=1_gnu - - _r-mutex=1.0.1=anacondar_1 - - binutils_impl_linux-64=2.36.1=h193b22a_2 - - binutils_linux-64=2.36=hf3e587d_1 - - bioconductor-all=1.36.0=r41hdfd78af_0 - - bioconductor-annotate=1.72.0=r41hdfd78af_0 - - bioconductor-annotationdbi=1.56.1=r41hdfd78af_0 - - bioconductor-annotationfilter=1.18.0=r41hdfd78af_0 - - bioconductor-annotationhub=3.2.0=r41hdfd78af_0 - - bioconductor-apeglm=1.16.0=r41h399db7b_0 - - bioconductor-biobase=2.54.0=r41hd029910_0 - - bioconductor-biocfilecache=2.2.0=r41hdfd78af_0 - - bioconductor-biocgenerics=0.40.0=r41hdfd78af_0 - - bioconductor-biocio=1.4.0=r41hdfd78af_0 - - bioconductor-biocparallel=1.28.0=r41h399db7b_0 - - bioconductor-biocversion=3.14.0=r41hdfd78af_0 - - bioconductor-biomart=2.50.0=r41hdfd78af_0 - - bioconductor-biostrings=2.62.0=r41hd029910_0 - - bioconductor-clusterprofiler=4.2.0=r41hdfd78af_0 - - bioconductor-complexheatmap=2.10.0=r41hdfd78af_0 - - bioconductor-consensusclusterplus=1.58.0=r41hdfd78af_0 - - bioconductor-degreport=1.30.0=r41hdfd78af_0 - - bioconductor-delayedarray=0.20.0=r41hd029910_0 - - bioconductor-deseq2=1.34.0=r41h399db7b_0 - - bioconductor-do.db=2.9=r41hdfd78af_12 - - bioconductor-dose=3.20.0=r41hdfd78af_0 - - bioconductor-dupradar=1.24.0=r41hdfd78af_0 - - bioconductor-edger=3.36.0=r41h399db7b_0 - - bioconductor-enrichplot=1.14.1=r41hdfd78af_0 - - bioconductor-ensembldb=2.18.1=r41hdfd78af_0 - - bioconductor-fgsea=1.20.0=r41h399db7b_0 - - bioconductor-genefilter=1.76.0=r41hba52eb8_0 - - bioconductor-geneplotter=1.72.0=r41hdfd78af_0 - - bioconductor-genomeinfodb=1.30.0=r41hdfd78af_0 - - bioconductor-genomeinfodbdata=1.2.7=r41hdfd78af_1 - - bioconductor-genomicalignments=1.30.0=r41hd029910_0 - - bioconductor-genomicfeatures=1.46.1=r41hdfd78af_0 - - bioconductor-genomicranges=1.46.0=r41hd029910_0 - - bioconductor-ggtree=3.2.0=r41hdfd78af_0 - - bioconductor-go.db=3.14.0=r41hdfd78af_0 - - bioconductor-gosemsim=2.20.0=r41h399db7b_0 - - bioconductor-graph=1.72.0=r41hd029910_0 - - bioconductor-graphite=1.40.0=r41hdfd78af_0 - - bioconductor-ihw=1.22.0=r41hdfd78af_0 - - bioconductor-interactivedisplaybase=1.32.0=r41hdfd78af_0 - - bioconductor-iranges=2.28.0=r41hd029910_0 - - bioconductor-keggrest=1.34.0=r41hdfd78af_0 - - bioconductor-limma=3.50.0=r41hd029910_0 - - bioconductor-lpsymphony=1.22.0=r41h399db7b_0 - - bioconductor-matrixgenerics=1.6.0=r41hdfd78af_0 - - bioconductor-protgenerics=1.26.0=r41hdfd78af_0 - - bioconductor-qvalue=2.26.0=r41hdfd78af_0 - - bioconductor-reactome.db=1.77.0=r41hdfd78af_0 - - bioconductor-reactomepa=1.38.0=r41hdfd78af_0 - - bioconductor-rhdf5=2.38.0=r41hfe70e90_1 - - bioconductor-rhdf5filters=1.6.0=r41h399db7b_0 - - bioconductor-rhdf5lib=1.16.0=r41hd029910_0 - - bioconductor-rhtslib=1.26.0=r41hd029910_0 - - bioconductor-rsamtools=2.10.0=r41h399db7b_0 - - bioconductor-rsubread=2.8.0=r41hd029910_0 - - bioconductor-rtracklayer=1.54.0=r41ha2fdcc6_1 - - bioconductor-s4vectors=0.32.0=r41hd029910_0 - - bioconductor-summarizedexperiment=1.24.0=r41hdfd78af_0 - - bioconductor-sva=3.42.0=r41hd029910_0 - - bioconductor-treeio=1.18.0=r41hdfd78af_0 - - bioconductor-tximport=1.22.0=r41hdfd78af_0 - - bioconductor-xvector=0.34.0=r41hd029910_0 - - bioconductor-zlibbioc=1.40.0=r41hd029910_0 - - bwidget=1.9.14=ha770c72_1 - - bzip2=1.0.8=h7f98852_4 - - c-ares=1.18.1=h7f98852_0 - - ca-certificates=2021.10.8=ha878542_0 - - cairo=1.16.0=h6cf1ce9_1008 - - curl=7.80.0=h2574ce0_0 - - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - - font-ttf-inconsolata=3.000=h77eed37_0 - - font-ttf-source-code-pro=2.038=h77eed37_0 - - font-ttf-ubuntu=0.83=hab24e00_0 - - fontconfig=2.13.1=hba837de_1005 - - fonts-conda-ecosystem=1=0 - - fonts-conda-forge=1=0 - - freetype=2.10.4=h0708190_1 - - fribidi=1.0.10=h36c2ea0_0 - - gcc_impl_linux-64=9.4.0=h03d3576_11 - - gcc_linux-64=9.4.0=h391b98a_1 - - gettext=0.19.8.1=h73d1719_1008 - - gfortran_impl_linux-64=9.4.0=h0003116_11 - - gfortran_linux-64=9.4.0=hf0ab688_1 - - gmp=6.2.1=h58526e2_0 - - graphite2=1.3.13=h58526e2_1001 - - gsl=2.7=he838d99_0 - - gxx_impl_linux-64=9.4.0=h03d3576_11 - - gxx_linux-64=9.4.0=h0316aca_1 - - harfbuzz=3.1.1=h83ec7ef_0 - - icu=68.2=h9c3ff4c_0 - - jbig=2.1=h7f98852_2003 - - jpeg=9d=h36c2ea0_0 - - kernel-headers_linux-64=2.6.32=he073ed8_15 - - krb5=1.19.2=hcc1bbae_3 - - ld_impl_linux-64=2.36.1=hea4e1c9_2 - - lerc=3.0=h9c3ff4c_0 - - libblas=3.9.0=12_linux64_openblas - - libcblas=3.9.0=12_linux64_openblas - - libcurl=7.80.0=h2574ce0_0 - - libdeflate=1.8=h7f98852_0 - - libedit=3.1.20191231=he28a2e2_2 - - libev=4.33=h516909a_1 - - libffi=3.4.2=h7f98852_5 - - libgcc-devel_linux-64=9.4.0=hd854feb_11 - - libgcc-ng=11.2.0=h1d223b6_11 - - libgfortran-ng=11.2.0=h69a702a_11 - - libgfortran5=11.2.0=h5c6108e_11 - - libgit2=1.3.0=hee63804_1 - - libglib=2.70.0=h174f98d_1 - - libgomp=11.2.0=h1d223b6_11 - - libiconv=1.16=h516909a_0 - - liblapack=3.9.0=12_linux64_openblas - - libnghttp2=1.43.0=h812cca2_1 - - libopenblas=0.3.18=pthreads_h8fe5266_0 - - libpng=1.6.37=h21135ba_2 - - libsanitizer=9.4.0=h79bfe98_11 - - libssh2=1.10.0=ha56f1ee_2 - - libstdcxx-devel_linux-64=9.4.0=hd854feb_11 - - libstdcxx-ng=11.2.0=he4da1e4_11 - - libtiff=4.3.0=h6f004c6_2 - - libuuid=2.32.1=h7f98852_1000 - - libwebp-base=1.2.1=h7f98852_0 - - libxcb=1.13=h7f98852_1004 - - libxml2=2.9.12=h72842e0_0 - - libzlib=1.2.11=h36c2ea0_1013 - - lz4-c=1.9.3=h9c3ff4c_1 - - make=4.3=hd18ef5c_1 - - ncurses=6.2=h58526e2_4 - - openssl=1.1.1l=h7f98852_0 - - pandoc=2.16.1=h7f98852_0 - - pango=1.48.10=h54213e6_2 - - pcre=8.45=h9c3ff4c_0 - - pcre2=10.37=h032f7d1_0 - - pixman=0.40.0=h36c2ea0_0 - - pthread-stubs=0.4=h36c2ea0_1001 - - r-ape=5.5=r41h306847c_0 - - r-aplot=0.1.1=r41hc72bb7e_0 - - r-ashr=2.2_47=r41h03ef668_1 - - r-askpass=1.1=r41hcfec24a_2 - - r-assertthat=0.2.1=r41hc72bb7e_2 - - r-babelgene=21.4=r41hc72bb7e_0 - - r-backports=1.3.0=r41hcfec24a_0 - - r-base=4.1.1=hb93adac_1 - - r-base64enc=0.1_3=r41hcfec24a_1004 - - r-bbmle=1.0.24=r41hc72bb7e_0 - - r-bdsmatrix=1.3_4=r41hcfec24a_1 - - r-bh=1.75.0_0=r41hc72bb7e_0 - - r-biocmanager=1.30.16=r41hc72bb7e_0 - - r-bit=4.0.4=r41hcfec24a_0 - - r-bit64=4.0.5=r41hcfec24a_0 - - r-bitops=1.0_7=r41hcfec24a_0 - - r-blob=1.2.2=r41hc72bb7e_0 - - r-brew=1.0_6=r41hc72bb7e_1003 - - r-brio=1.1.2=r41hcfec24a_0 - - r-broom=0.7.10=r41hc72bb7e_0 - - r-bslib=0.3.1=r41hc72bb7e_0 - - r-cachem=1.0.6=r41hcfec24a_0 - - r-callr=3.7.0=r41hc72bb7e_0 - - r-catools=1.18.2=r41h03ef668_0 - - r-checkmate=2.0.0=r41hcfec24a_1 - - r-circlize=0.4.13=r41hc72bb7e_0 - - r-cli=3.1.0=r41h03ef668_0 - - r-clipr=0.7.1=r41hc72bb7e_0 - - r-clue=0.3_60=r41hcfec24a_0 - - r-cluster=2.1.2=r41h859d828_0 - - r-coda=0.19_4=r41hc72bb7e_0 - - r-codetools=0.2_18=r41hc72bb7e_0 - - r-colorspace=2.0_2=r41hcfec24a_0 - - r-commonmark=1.7=r41hcfec24a_1002 - - r-covr=3.5.1=r41h03ef668_0 - - r-cowplot=1.1.1=r41hc72bb7e_0 - - r-cpp11=0.4.1=r41hc72bb7e_0 - - r-crayon=1.4.2=r41hc72bb7e_0 - - r-credentials=1.3.1=r41hc72bb7e_0 - - r-crosstalk=1.2.0=r41hc72bb7e_0 - - r-curl=4.3.2=r41hcfec24a_0 - - r-data.table=1.14.2=r41hcfec24a_0 - - r-dbi=1.1.1=r41hc72bb7e_0 - - r-dbplyr=2.1.1=r41hc72bb7e_0 - - r-dendextend=1.15.2=r41hc72bb7e_0 - - r-desc=1.4.0=r41hc72bb7e_0 - - r-devtools=2.4.2=r41hc72bb7e_0 - - r-diffobj=0.3.5=r41hcfec24a_0 - - r-digest=0.6.28=r41h03ef668_0 - - r-doparallel=1.0.16=r41hc72bb7e_0 - - r-downloader=0.4=r41hc72bb7e_1003 - - r-dplyr=1.0.7=r41h03ef668_0 - - r-dt=0.19=r41hc72bb7e_0 - - r-egg=0.4.5=r41hc72bb7e_2 - - r-ellipsis=0.3.2=r41hcfec24a_0 - - r-emdbook=1.3.12=r41hc72bb7e_1 - - r-etrunct=0.1=r41ha770c72_1002 - - r-evaluate=0.14=r41hc72bb7e_2 - - r-fansi=0.4.2=r41hcfec24a_0 - - r-farver=2.1.0=r41h03ef668_0 - - r-fastmap=1.1.0=r41h03ef668_0 - - r-fastmatch=1.1_3=r41hcfec24a_0 - - r-fdrtool=1.2.16=r41hcfec24a_0 - - r-filelock=1.0.2=r41hcfec24a_1002 - - r-fontawesome=0.2.2=r41hc72bb7e_0 - - r-forcats=0.5.1=r41hc72bb7e_0 - - r-foreach=1.5.1=r41hc72bb7e_0 - - r-formatr=1.11=r41hc72bb7e_0 - - r-fs=1.5.0=r41h03ef668_0 - - r-futile.logger=1.4.3=r41hc72bb7e_1003 - - r-futile.options=1.0.1=r41hc72bb7e_1002 - - r-gclus=1.3.2=r41hc72bb7e_2 - - r-generics=0.1.1=r41hc72bb7e_0 - - r-gert=1.4.3=r41h29657ab_0 - - r-getoptlong=1.0.5=r41hc72bb7e_0 - - r-ggally=2.1.2=r41hc72bb7e_0 - - r-ggdendro=0.1.22=r41hc72bb7e_0 - - r-ggforce=0.3.3=r41h03ef668_0 - - r-ggfun=0.0.4=r41hc72bb7e_0 - - r-ggnewscale=0.4.5=r41hc72bb7e_0 - - r-ggplot2=3.3.5=r41hc72bb7e_0 - - r-ggplotify=0.1.0=r41hc72bb7e_0 - - r-ggraph=2.0.5=r41h03ef668_0 - - r-ggrepel=0.9.1=r41h03ef668_0 - - r-gh=1.3.0=r41hc72bb7e_0 - - r-git2r=0.28.0=r41hf628c3e_1 - - r-gitcreds=0.1.1=r41hc72bb7e_0 - - r-globaloptions=0.1.2=r41ha770c72_0 - - r-glue=1.5.0=r41hcfec24a_0 - - r-gplots=3.1.1=r41hc72bb7e_0 - - r-graphlayouts=0.7.1=r41h03ef668_0 - - r-gridextra=2.3=r41hc72bb7e_1003 - - r-gridgraphics=0.5_1=r41hc72bb7e_0 - - r-gtable=0.3.0=r41hc72bb7e_3 - - r-gtools=3.9.2=r41hcfec24a_0 - - r-heatmaply=1.3.0=r41hc72bb7e_0 - - r-hexbin=1.28.2=r41h859d828_0 - - r-highr=0.9=r41hc72bb7e_0 - - r-hms=1.1.1=r41hc72bb7e_0 - - r-htmltools=0.5.2=r41h03ef668_0 - - r-htmlwidgets=1.5.4=r41hc72bb7e_0 - - r-httpuv=1.6.3=r41h03ef668_0 - - r-httr=1.4.2=r41hc72bb7e_0 - - r-igraph=1.2.8=r41he0372cf_0 - - r-ini=0.3.1=r41hc72bb7e_1003 - - r-invgamma=1.1=r41hc72bb7e_1 - - r-irlba=2.3.3=r41he454529_3 - - r-isoband=0.2.5=r41h03ef668_0 - - r-iterators=1.0.13=r41hc72bb7e_0 - - r-jquerylib=0.1.4=r41hc72bb7e_0 - - r-jsonlite=1.7.2=r41hcfec24a_0 - - r-kernsmooth=2.23_20=r41h742201e_0 - - r-knitr=1.35=r41hc72bb7e_0 - - r-labeling=0.4.2=r41hc72bb7e_0 - - r-lambda.r=1.2.4=r41hc72bb7e_1 - - r-lasso2=1.2_22=r41hcfec24a_0 - - r-later=1.2.0=r41h03ef668_0 - - r-lattice=0.20_45=r41hcfec24a_0 - - r-lazyeval=0.2.2=r41hcfec24a_2 - - r-lifecycle=1.0.1=r41hc72bb7e_0 - - r-locfit=1.5_9.4=r41hcfec24a_1 - - r-logging=0.10_108=r41ha770c72_2 - - r-magrittr=2.0.1=r41hcfec24a_1 - - r-markdown=1.1=r41hcfec24a_1 - - r-mass=7.3_54=r41hcfec24a_0 - - r-matrix=1.3_4=r41he454529_0 - - r-matrixstats=0.61.0=r41hcfec24a_0 - - r-memoise=2.0.0=r41hc72bb7e_0 - - r-mgcv=1.8_38=r41he454529_0 - - r-mime=0.12=r41hcfec24a_0 - - r-mixsqp=0.3_43=r41h306847c_1 - - r-mnormt=2.0.2=r41h859d828_0 - - r-msigdbr=7.4.1=r41hc72bb7e_0 - - r-munsell=0.5.0=r41hc72bb7e_1003 - - r-mvtnorm=1.1_3=r41h859d828_0 - - r-nlme=3.1_153=r41h859d828_0 - - r-nozzle.r1=1.1_1=r41ha770c72_1003 - - r-numderiv=2016.8_1.1=r41hc72bb7e_3 - - r-openssl=1.4.5=r41he36bf35_1 - - r-openxlsx=4.2.4=r41h03ef668_0 - - r-patchwork=1.1.1=r41hc72bb7e_0 - - r-pheatmap=1.0.12=r41hc72bb7e_2 - - r-pillar=1.6.4=r41hc72bb7e_0 - - r-pkgbuild=1.2.0=r41hc72bb7e_0 - - r-pkgconfig=2.0.3=r41hc72bb7e_1 - - r-pkgload=1.2.3=r41h03ef668_0 - - r-plogr=0.2.0=r41hc72bb7e_1003 - - r-plotly=4.10.0=r41hc72bb7e_0 - - r-plyr=1.8.6=r41h03ef668_1 - - r-png=0.1_7=r41hcfec24a_1004 - - r-polyclip=1.10_0=r41h03ef668_2 - - r-praise=1.0.0=r41hc72bb7e_1004 - - r-prettyunits=1.1.1=r41hc72bb7e_1 - - r-processx=3.5.2=r41hcfec24a_0 - - r-progress=1.2.2=r41hc72bb7e_2 - - r-promises=1.2.0.1=r41h03ef668_0 - - r-ps=1.6.0=r41hcfec24a_0 - - r-psych=2.1.9=r41hc72bb7e_0 - - r-purrr=0.3.4=r41hcfec24a_1 - - r-qap=0.1_1=r41h859d828_1006 - - r-r6=2.5.1=r41hc72bb7e_0 - - r-rappdirs=0.3.3=r41hcfec24a_0 - - r-rcmdcheck=1.4.0=r41h785f33e_0 - - r-rcolorbrewer=1.1_2=r41h785f33e_1003 - - r-rcpp=1.0.7=r41h03ef668_0 - - r-rcpparmadillo=0.10.7.3.0=r41h306847c_0 - - r-rcppeigen=0.3.3.9.1=r41h306847c_0 - - r-rcppnumerical=0.4_0=r41h03ef668_1 - - r-rcurl=1.98_1.5=r41hcfec24a_0 - - r-readr=2.1.0=r41h03ef668_0 - - r-registry=0.5_1=r41hc72bb7e_2 - - r-rematch2=2.1.2=r41hc72bb7e_1 - - r-remotes=2.4.1=r41hc72bb7e_0 - - r-reshape=0.8.8=r41hcfec24a_2 - - r-reshape2=1.4.4=r41h03ef668_1 - - r-restfulr=0.0.13=r41hdf9a8c9_1 - - r-rex=1.2.0=r41hc72bb7e_1 - - r-rjson=0.2.20=r41h03ef668_1002 - - r-rlang=0.4.12=r41hcfec24a_0 - - r-rmarkdown=2.11=r41hc72bb7e_0 - - r-roxygen2=7.1.2=r41h03ef668_0 - - r-rprojroot=2.0.2=r41hc72bb7e_0 - - r-rsqlite=2.2.8=r41h03ef668_0 - - r-rstudioapi=0.13=r41hc72bb7e_0 - - r-rvcheck=0.1.8=r41hc72bb7e_1 - - r-rversions=2.1.1=r41hc72bb7e_0 - - r-sass=0.4.0=r41h03ef668_0 - - r-scales=1.1.1=r41hc72bb7e_0 - - r-scatterpie=0.1.6=r41hc72bb7e_0 - - r-seriation=1.3.1=r41h859d828_0 - - r-sessioninfo=1.2.1=r41hc72bb7e_0 - - r-shadowtext=0.0.9=r41hc72bb7e_0 - - r-shape=1.4.6=r41ha770c72_0 - - r-shiny=1.7.1=r41h785f33e_0 - - r-slam=0.1_48=r41hbfbffee_0 - - r-snow=0.4_4=r41hc72bb7e_0 - - r-sourcetools=0.1.7=r41h9c3ff4c_1002 - - r-sparsem=1.81=r41h859d828_0 - - r-spp=1.16.0=r41h52a8340_5 - - r-squarem=2021.1=r41hc72bb7e_0 - - r-stringi=1.7.5=r41hcabe038_0 - - r-stringr=1.4.0=r41hc72bb7e_2 - - r-survival=3.2_13=r41hcfec24a_0 - - r-sys=3.4=r41hcfec24a_0 - - r-testthat=3.1.0=r41h03ef668_0 - - r-tibble=3.1.6=r41hcfec24a_0 - - r-tidygraph=1.2.0=r41h03ef668_0 - - r-tidyr=1.1.4=r41h03ef668_0 - - r-tidyselect=1.1.1=r41hc72bb7e_0 - - r-tidytree=0.3.6=r41hc72bb7e_0 - - r-tinytex=0.35=r41hc72bb7e_0 - - r-tmvnsim=1.0_2=r41h859d828_3 - - r-truncnorm=1.0_8=r41hcfec24a_1002 - - r-tsp=1.1_11=r41hcfec24a_0 - - r-tweenr=1.0.2=r41h03ef668_0 - - r-tzdb=0.2.0=r41h03ef668_0 - - r-upsetr=1.4.0=r41hc72bb7e_2 - - r-usethis=2.1.3=r41hc72bb7e_0 - - r-utf8=1.2.2=r41hcfec24a_0 - - r-vctrs=0.3.8=r41hcfec24a_1 - - r-viridis=0.6.2=r41hc72bb7e_0 - - r-viridislite=0.4.0=r41hc72bb7e_0 - - r-vroom=1.5.6=r41h03ef668_0 - - r-waldo=0.3.1=r41hc72bb7e_0 - - r-webshot=0.5.2=r41hc72bb7e_1 - - r-whisker=0.4=r41hc72bb7e_1 - - r-withr=2.4.2=r41hc72bb7e_0 - - r-xfun=0.28=r41h03ef668_0 - - r-xml=3.99_0.8=r41hcfec24a_0 - - r-xml2=1.3.2=r41h03ef668_1 - - r-xopen=1.0.0=r41hc72bb7e_1003 - - r-xtable=1.8_4=r41hc72bb7e_3 - - r-yaml=2.2.1=r41hcfec24a_1 - - r-yulab.utils=0.0.4=r41hc72bb7e_0 - - r-zip=2.2.0=r41hcfec24a_0 - - readline=8.1=h46c0cb4_0 - - sed=4.8=he412f7d_0 - - sysroot_linux-64=2.12=he073ed8_15 - - tk=8.6.11=h27826a3_1 - - tktable=2.10=hb7b940f_3 - - xorg-kbproto=1.0.7=h7f98852_1002 - - xorg-libice=1.0.10=h7f98852_0 - - xorg-libsm=1.2.3=hd9c2040_1000 - - xorg-libx11=1.7.2=h7f98852_0 - - xorg-libxau=1.0.9=h7f98852_0 - - xorg-libxdmcp=1.1.3=h7f98852_0 - - xorg-libxext=1.3.4=h7f98852_1 - - xorg-libxrender=0.9.10=h7f98852_1003 - - xorg-libxt=1.2.1=h7f98852_2 - - xorg-renderproto=0.11.1=h7f98852_1002 - - xorg-xextproto=7.3.0=h7f98852_1002 - - xorg-xproto=7.0.31=h7f98852_1007 - - xz=5.2.5=h516909a_1 - - zlib=1.2.11=h36c2ea0_1013 - - zstd=1.5.0=ha95c52a_0 -prefix: /gpfs/gsfs10/users/NICHD-core0/test/dalerr/lcdb-wf/env-r-loose + - _libgcc_mutex=0.1 + - _openmp_mutex=4.5 + - _r-mutex=1.0.1 + - binutils_impl_linux-64=2.36.1 + - binutils_linux-64=2.36 + - bioconductor-all=1.36.0 + - bioconductor-annotate=1.72.0 + - bioconductor-annotationdbi=1.56.1 + - bioconductor-annotationfilter=1.18.0 + - bioconductor-annotationhub=3.2.0 + - bioconductor-apeglm=1.16.0 + - bioconductor-biobase=2.54.0 + - bioconductor-biocfilecache=2.2.0 + - bioconductor-biocgenerics=0.40.0 + - bioconductor-biocio=1.4.0 + - bioconductor-biocparallel=1.28.0 + - bioconductor-biocversion=3.14.0 + - bioconductor-biomart=2.50.0 + - bioconductor-biostrings=2.62.0 + - bioconductor-clusterprofiler=4.2.0 + - bioconductor-complexheatmap=2.10.0 + - bioconductor-consensusclusterplus=1.58.0 + - bioconductor-degreport=1.30.0 + - bioconductor-delayedarray=0.20.0 + - bioconductor-deseq2=1.34.0 + - bioconductor-do.db=2.9 + - bioconductor-dose=3.20.0 + - bioconductor-dupradar=1.24.0 + - bioconductor-edger=3.36.0 + - bioconductor-enrichplot=1.14.1 + - bioconductor-ensembldb=2.18.1 + - bioconductor-fgsea=1.20.0 + - bioconductor-genefilter=1.76.0 + - bioconductor-geneplotter=1.72.0 + - bioconductor-genomeinfodb=1.30.0 + - bioconductor-genomeinfodbdata=1.2.7 + - bioconductor-genomicalignments=1.30.0 + - bioconductor-genomicfeatures=1.46.1 + - bioconductor-genomicranges=1.46.0 + - bioconductor-ggtree=3.2.0 + - bioconductor-go.db=3.14.0 + - bioconductor-gosemsim=2.20.0 + - bioconductor-graph=1.72.0 + - bioconductor-graphite=1.40.0 + - bioconductor-ihw=1.22.0 + - bioconductor-interactivedisplaybase=1.32.0 + - bioconductor-iranges=2.28.0 + - bioconductor-keggrest=1.34.0 + - bioconductor-limma=3.50.0 + - bioconductor-lpsymphony=1.22.0 + - bioconductor-matrixgenerics=1.6.0 + - bioconductor-protgenerics=1.26.0 + - bioconductor-qvalue=2.26.0 + - bioconductor-reactome.db=1.77.0 + - bioconductor-reactomepa=1.38.0 + - bioconductor-rhdf5=2.38.0 + - bioconductor-rhdf5filters=1.6.0 + - bioconductor-rhdf5lib=1.16.0 + - bioconductor-rhtslib=1.26.0 + - bioconductor-rsamtools=2.10.0 + - bioconductor-rsubread=2.8.0 + - bioconductor-rtracklayer=1.54.0 + - bioconductor-s4vectors=0.32.0 + - bioconductor-summarizedexperiment=1.24.0 + - bioconductor-sva=3.42.0 + - bioconductor-treeio=1.18.0 + - bioconductor-tximport=1.22.0 + - bioconductor-xvector=0.34.0 + - bioconductor-zlibbioc=1.40.0 + - bwidget=1.9.14 + - bzip2=1.0.8 + - c-ares=1.18.1 + - ca-certificates=2021.10.8 + - cairo=1.16.0 + - curl=7.80.0 + - font-ttf-dejavu-sans-mono=2.37 + - font-ttf-inconsolata=3.000 + - font-ttf-source-code-pro=2.038 + - font-ttf-ubuntu=0.83 + - fontconfig=2.13.1 + - fonts-conda-ecosystem=1 + - fonts-conda-forge=1 + - freetype=2.10.4 + - fribidi=1.0.10 + - gcc_impl_linux-64=9.4.0 + - gcc_linux-64=9.4.0 + - gettext=0.19.8.1 + - gfortran_impl_linux-64=9.4.0 + - gfortran_linux-64=9.4.0 + - gmp=6.2.1 + - graphite2=1.3.13 + - gsl=2.7 + - gxx_impl_linux-64=9.4.0 + - gxx_linux-64=9.4.0 + - harfbuzz=3.1.1 + - icu=68.2 + - jbig=2.1 + - jpeg=9d + - kernel-headers_linux-64=2.6.32 + - krb5=1.19.2 + - ld_impl_linux-64=2.36.1 + - lerc=3.0 + - libblas=3.9.0 + - libcblas=3.9.0 + - libcurl=7.80.0 + - libdeflate=1.8 + - libedit=3.1.20191231 + - libev=4.33 + - libffi=3.4.2 + - libgcc-devel_linux-64=9.4.0 + - libgcc-ng=11.2.0 + - libgfortran-ng=11.2.0 + - libgfortran5=11.2.0 + - libgit2=1.3.0 + - libglib=2.70.0 + - libgomp=11.2.0 + - libiconv=1.16 + - liblapack=3.9.0 + - libnghttp2=1.43.0 + - libopenblas=0.3.18 + - libpng=1.6.37 + - libsanitizer=9.4.0 + - libssh2=1.10.0 + - libstdcxx-devel_linux-64=9.4.0 + - libstdcxx-ng=11.2.0 + - libtiff=4.3.0 + - libuuid=2.32.1 + - libwebp-base=1.2.1 + - libxcb=1.13 + - libxml2=2.9.12 + - libzlib=1.2.11 + - lz4-c=1.9.3 + - make=4.3 + - ncurses=6.2 + - openssl=1.1.1l + - pandoc=2.16.1 + - pango=1.48.10 + - pcre=8.45 + - pcre2=10.37 + - pixman=0.40.0 + - pthread-stubs=0.4 + - r-ape=5.5 + - r-aplot=0.1.1 + - r-ashr=2.2_47 + - r-askpass=1.1 + - r-assertthat=0.2.1 + - r-babelgene=21.4 + - r-backports=1.3.0 + - r-base=4.1.1 + - r-base64enc=0.1_3 + - r-bbmle=1.0.24 + - r-bdsmatrix=1.3_4 + - r-bh=1.75.0_0 + - r-biocmanager=1.30.16 + - r-bit=4.0.4 + - r-bit64=4.0.5 + - r-bitops=1.0_7 + - r-blob=1.2.2 + - r-brew=1.0_6 + - r-brio=1.1.2 + - r-broom=0.7.10 + - r-bslib=0.3.1 + - r-cachem=1.0.6 + - r-callr=3.7.0 + - r-catools=1.18.2 + - r-checkmate=2.0.0 + - r-circlize=0.4.13 + - r-cli=3.1.0 + - r-clipr=0.7.1 + - r-clue=0.3_60 + - r-cluster=2.1.2 + - r-coda=0.19_4 + - r-codetools=0.2_18 + - r-colorspace=2.0_2 + - r-commonmark=1.7 + - r-covr=3.5.1 + - r-cowplot=1.1.1 + - r-cpp11=0.4.1 + - r-crayon=1.4.2 + - r-credentials=1.3.1 + - r-crosstalk=1.2.0 + - r-curl=4.3.2 + - r-data.table=1.14.2 + - r-dbi=1.1.1 + - r-dbplyr=2.1.1 + - r-dendextend=1.15.2 + - r-desc=1.4.0 + - r-devtools=2.4.2 + - r-diffobj=0.3.5 + - r-digest=0.6.28 + - r-doparallel=1.0.16 + - r-downloader=0.4 + - r-dplyr=1.0.7 + - r-dt=0.19 + - r-egg=0.4.5 + - r-ellipsis=0.3.2 + - r-emdbook=1.3.12 + - r-etrunct=0.1 + - r-evaluate=0.14 + - r-fansi=0.4.2 + - r-farver=2.1.0 + - r-fastmap=1.1.0 + - r-fastmatch=1.1_3 + - r-fdrtool=1.2.16 + - r-filelock=1.0.2 + - r-fontawesome=0.2.2 + - r-forcats=0.5.1 + - r-foreach=1.5.1 + - r-formatr=1.11 + - r-fs=1.5.0 + - r-futile.logger=1.4.3 + - r-futile.options=1.0.1 + - r-gclus=1.3.2 + - r-generics=0.1.1 + - r-gert=1.4.3 + - r-getoptlong=1.0.5 + - r-ggally=2.1.2 + - r-ggdendro=0.1.22 + - r-ggforce=0.3.3 + - r-ggfun=0.0.4 + - r-ggnewscale=0.4.5 + - r-ggplot2=3.3.5 + - r-ggplotify=0.1.0 + - r-ggraph=2.0.5 + - r-ggrepel=0.9.1 + - r-gh=1.3.0 + - r-git2r=0.28.0 + - r-gitcreds=0.1.1 + - r-globaloptions=0.1.2 + - r-glue=1.5.0 + - r-gplots=3.1.1 + - r-graphlayouts=0.7.1 + - r-gridextra=2.3 + - r-gridgraphics=0.5_1 + - r-gtable=0.3.0 + - r-gtools=3.9.2 + - r-heatmaply=1.3.0 + - r-hexbin=1.28.2 + - r-highr=0.9 + - r-hms=1.1.1 + - r-htmltools=0.5.2 + - r-htmlwidgets=1.5.4 + - r-httpuv=1.6.3 + - r-httr=1.4.2 + - r-igraph=1.2.8 + - r-ini=0.3.1 + - r-invgamma=1.1 + - r-irlba=2.3.3 + - r-isoband=0.2.5 + - r-iterators=1.0.13 + - r-jquerylib=0.1.4 + - r-jsonlite=1.7.2 + - r-kernsmooth=2.23_20 + - r-knitr=1.35 + - r-labeling=0.4.2 + - r-lambda.r=1.2.4 + - r-lasso2=1.2_22 + - r-later=1.2.0 + - r-lattice=0.20_45 + - r-lazyeval=0.2.2 + - r-lifecycle=1.0.1 + - r-locfit=1.5_9.4 + - r-logging=0.10_108 + - r-magrittr=2.0.1 + - r-markdown=1.1 + - r-mass=7.3_54 + - r-matrix=1.3_4 + - r-matrixstats=0.61.0 + - r-memoise=2.0.0 + - r-mgcv=1.8_38 + - r-mime=0.12 + - r-mixsqp=0.3_43 + - r-mnormt=2.0.2 + - r-msigdbr=7.4.1 + - r-munsell=0.5.0 + - r-mvtnorm=1.1_3 + - r-nlme=3.1_153 + - r-nozzle.r1=1.1_1 + - r-numderiv=2016.8_1.1 + - r-openssl=1.4.5 + - r-openxlsx=4.2.4 + - r-patchwork=1.1.1 + - r-pheatmap=1.0.12 + - r-pillar=1.6.4 + - r-pkgbuild=1.2.0 + - r-pkgconfig=2.0.3 + - r-pkgload=1.2.3 + - r-plogr=0.2.0 + - r-plotly=4.10.0 + - r-plyr=1.8.6 + - r-png=0.1_7 + - r-polyclip=1.10_0 + - r-praise=1.0.0 + - r-prettyunits=1.1.1 + - r-processx=3.5.2 + - r-progress=1.2.2 + - r-promises=1.2.0.1 + - r-ps=1.6.0 + - r-psych=2.1.9 + - r-purrr=0.3.4 + - r-qap=0.1_1 + - r-r6=2.5.1 + - r-rappdirs=0.3.3 + - r-rcmdcheck=1.4.0 + - r-rcolorbrewer=1.1_2 + - r-rcpp=1.0.7 + - r-rcpparmadillo=0.10.7.3.0 + - r-rcppeigen=0.3.3.9.1 + - r-rcppnumerical=0.4_0 + - r-rcurl=1.98_1.5 + - r-readr=2.1.0 + - r-registry=0.5_1 + - r-rematch2=2.1.2 + - r-remotes=2.4.1 + - r-reshape=0.8.8 + - r-reshape2=1.4.4 + - r-restfulr=0.0.13 + - r-rex=1.2.0 + - r-rjson=0.2.20 + - r-rlang=0.4.12 + - r-rmarkdown=2.11 + - r-roxygen2=7.1.2 + - r-rprojroot=2.0.2 + - r-rsqlite=2.2.8 + - r-rstudioapi=0.13 + - r-rvcheck=0.1.8 + - r-rversions=2.1.1 + - r-sass=0.4.0 + - r-scales=1.1.1 + - r-scatterpie=0.1.6 + - r-seriation=1.3.1 + - r-sessioninfo=1.2.1 + - r-shadowtext=0.0.9 + - r-shape=1.4.6 + - r-shiny=1.7.1 + - r-slam=0.1_48 + - r-snow=0.4_4 + - r-sourcetools=0.1.7 + - r-sparsem=1.81 + - r-spp=1.16.0 + - r-squarem=2021.1 + - r-stringi=1.7.5 + - r-stringr=1.4.0 + - r-survival=3.2_13 + - r-sys=3.4 + - r-testthat=3.1.0 + - r-tibble=3.1.6 + - r-tidygraph=1.2.0 + - r-tidyr=1.1.4 + - r-tidyselect=1.1.1 + - r-tidytree=0.3.6 + - r-tinytex=0.35 + - r-tmvnsim=1.0_2 + - r-truncnorm=1.0_8 + - r-tsp=1.1_11 + - r-tweenr=1.0.2 + - r-tzdb=0.2.0 + - r-upsetr=1.4.0 + - r-usethis=2.1.3 + - r-utf8=1.2.2 + - r-vctrs=0.3.8 + - r-viridis=0.6.2 + - r-viridislite=0.4.0 + - r-vroom=1.5.6 + - r-waldo=0.3.1 + - r-webshot=0.5.2 + - r-whisker=0.4 + - r-withr=2.4.2 + - r-xfun=0.28 + - r-xml=3.99_0.8 + - r-xml2=1.3.2 + - r-xopen=1.0.0 + - r-xtable=1.8_4 + - r-yaml=2.2.1 + - r-yulab.utils=0.0.4 + - r-zip=2.2.0 + - readline=8.1 + - sed=4.8 + - sysroot_linux-64=2.12 + - tk=8.6.11 + - tktable=2.10 + - xorg-kbproto=1.0.7 + - xorg-libice=1.0.10 + - xorg-libsm=1.2.3 + - xorg-libx11=1.7.2 + - xorg-libxau=1.0.9 + - xorg-libxdmcp=1.1.3 + - xorg-libxext=1.3.4 + - xorg-libxrender=0.9.10 + - xorg-libxt=1.2.1 + - xorg-renderproto=0.11.1 + - xorg-xextproto=7.3.0 + - xorg-xproto=7.0.31 + - xz=5.2.5 + - zlib=1.2.11 + - zstd=1.5.0 From 3a30e1cf4ad8c6ec47fae6b16e54c9f5543cbb36 Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Sun, 18 Sep 2022 21:45:12 -0400 Subject: [PATCH 08/91] update env-r.yml export --- env-r.yml | 83 +++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 43 deletions(-) diff --git a/env-r.yml b/env-r.yml index 3d4f02c7..a4fec770 100644 --- a/env-r.yml +++ b/env-r.yml @@ -6,7 +6,6 @@ dependencies: - _openmp_mutex=4.5 - _r-mutex=1.0.1 - binutils_impl_linux-64=2.36.1 - - binutils_linux-64=2.36 - bioconductor-all=1.36.0 - bioconductor-annotate=1.72.0 - bioconductor-annotationdbi=1.56.1 @@ -76,69 +75,67 @@ dependencies: - c-ares=1.18.1 - ca-certificates=2021.10.8 - cairo=1.16.0 - - curl=7.80.0 + - curl=7.83.1 + - expat=2.4.8 - font-ttf-dejavu-sans-mono=2.37 - font-ttf-inconsolata=3.000 - font-ttf-source-code-pro=2.038 - font-ttf-ubuntu=0.83 - - fontconfig=2.13.1 + - fontconfig=2.14.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 - freetype=2.10.4 - fribidi=1.0.10 - - gcc_impl_linux-64=9.4.0 - - gcc_linux-64=9.4.0 + - gcc_impl_linux-64=12.1.0 - gettext=0.19.8.1 - - gfortran_impl_linux-64=9.4.0 - - gfortran_linux-64=9.4.0 + - gfortran_impl_linux-64=12.1.0 - gmp=6.2.1 - graphite2=1.3.13 - gsl=2.7 - - gxx_impl_linux-64=9.4.0 - - gxx_linux-64=9.4.0 - - harfbuzz=3.1.1 - - icu=68.2 - - jbig=2.1 - - jpeg=9d + - gxx_impl_linux-64=12.1.0 + - harfbuzz=5.1.0 + - icu=70.1 + - jpeg=9e - kernel-headers_linux-64=2.6.32 - - krb5=1.19.2 + - keyutils=1.6.1 + - krb5=1.19.3 - ld_impl_linux-64=2.36.1 - lerc=3.0 - libblas=3.9.0 - libcblas=3.9.0 - - libcurl=7.80.0 - - libdeflate=1.8 + - libcurl=7.83.1 + - libdeflate=1.12 - libedit=3.1.20191231 - libev=4.33 - libffi=3.4.2 - - libgcc-devel_linux-64=9.4.0 - - libgcc-ng=11.2.0 - - libgfortran-ng=11.2.0 - - libgfortran5=11.2.0 + - libgcc-devel_linux-64=12.1.0 + - libgcc-ng=12.1.0 + - libgfortran-ng=12.1.0 + - libgfortran5=12.1.0 - libgit2=1.3.0 - - libglib=2.70.0 - - libgomp=11.2.0 + - libglib=2.72.1 + - libgomp=12.1.0 - libiconv=1.16 - liblapack=3.9.0 - - libnghttp2=1.43.0 - - libopenblas=0.3.18 - - libpng=1.6.37 - - libsanitizer=9.4.0 + - libnghttp2=1.47.0 + - libopenblas=0.3.21 + - libpng=1.6.38 + - libsanitizer=12.1.0 - libssh2=1.10.0 - - libstdcxx-devel_linux-64=9.4.0 - - libstdcxx-ng=11.2.0 - - libtiff=4.3.0 + - libstdcxx-devel_linux-64=12.1.0 + - libstdcxx-ng=12.1.0 + - libtiff=4.4.0 - libuuid=2.32.1 - libwebp-base=1.2.1 - libxcb=1.13 - - libxml2=2.9.12 - - libzlib=1.2.11 + - libxml2=2.9.14 + - libzlib=1.2.12 - lz4-c=1.9.3 - make=4.3 - - ncurses=6.2 - - openssl=1.1.1l + - ncurses=6.3 + - openssl=1.1.1q - pandoc=2.16.1 - - pango=1.48.10 + - pango=1.50.9 - pcre=8.45 - pcre2=10.37 - pixman=0.40.0 @@ -150,7 +147,7 @@ dependencies: - r-assertthat=0.2.1 - r-babelgene=21.4 - r-backports=1.3.0 - - r-base=4.1.1 + - r-base=4.1.3 - r-base64enc=0.1_3 - r-bbmle=1.0.24 - r-bdsmatrix=1.3_4 @@ -237,7 +234,7 @@ dependencies: - r-gridextra=2.3 - r-gridgraphics=0.5_1 - r-gtable=0.3.0 - - r-gtools=3.9.2 + - r-gtools=3.9.2.2 - r-heatmaply=1.3.0 - r-hexbin=1.28.2 - r-highr=0.9 @@ -279,7 +276,7 @@ dependencies: - r-munsell=0.5.0 - r-mvtnorm=1.1_3 - r-nlme=3.1_153 - - r-nozzle.r1=1.1_1 + - r-nozzle.r1=1.1_1.1 - r-numderiv=2016.8_1.1 - r-openssl=1.4.5 - r-openxlsx=4.2.4 @@ -311,7 +308,7 @@ dependencies: - r-rcpparmadillo=0.10.7.3.0 - r-rcppeigen=0.3.3.9.1 - r-rcppnumerical=0.4_0 - - r-rcurl=1.98_1.5 + - r-rcurl=1.98_1.8 - r-readr=2.1.0 - r-registry=0.5_1 - r-rematch2=2.1.2 @@ -343,7 +340,7 @@ dependencies: - r-sparsem=1.81 - r-spp=1.16.0 - r-squarem=2021.1 - - r-stringi=1.7.5 + - r-stringi=1.7.8 - r-stringr=1.4.0 - r-survival=3.2_13 - r-sys=3.4 @@ -378,10 +375,10 @@ dependencies: - r-yaml=2.2.1 - r-yulab.utils=0.0.4 - r-zip=2.2.0 - - readline=8.1 + - readline=8.1.2 - sed=4.8 - sysroot_linux-64=2.12 - - tk=8.6.11 + - tk=8.6.12 - tktable=2.10 - xorg-kbproto=1.0.7 - xorg-libice=1.0.10 @@ -396,5 +393,5 @@ dependencies: - xorg-xextproto=7.3.0 - xorg-xproto=7.0.31 - xz=5.2.5 - - zlib=1.2.11 - - zstd=1.5.0 + - zlib=1.2.12 + - zstd=1.5.2 From d9be76267f357130e694e3320e2ff7b94da1cd90 Mon Sep 17 00:00:00 2001 From: daler <dalerr@niddk.nih.gov> Date: Sun, 18 Sep 2022 21:46:01 -0400 Subject: [PATCH 09/91] remove builds from env.yml --- env.yml | 684 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 342 insertions(+), 342 deletions(-) diff --git a/env.yml b/env.yml index fb7f9eb7..f0b068e2 100644 --- a/env.yml +++ b/env.yml @@ -3,345 +3,345 @@ channels: - bioconda - defaults dependencies: - - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=1_llvm - - _r-mutex=1.0.1=anacondar_1 - - aiohttp=3.7.4=py39h3811e60_0 - - alsa-lib=1.2.3=h516909a_0 - - amply=0.1.4=py_0 - - apipkg=1.5=py_0 - - appdirs=1.4.4=pyh9f0ad1d_0 - - argcomplete=1.12.3=pyhd8ed1ab_2 - - argh=0.26.2=pyh9f0ad1d_1002 - - async-timeout=3.0.1=py_1000 - - attrs=20.3.0=pyhd3deb0d_0 - - azure-common=1.1.27=pyhd8ed1ab_0 - - azure-core=1.12.0=pyhd8ed1ab_0 - - azure-storage-blob=12.8.1=pyhd8ed1ab_0 - - backcall=0.2.0=pyh9f0ad1d_0 - - backports=1.0=py_2 - - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 - - bedtools=2.30.0=h7d7f7ad_1 - - binutils_impl_linux-64=2.35.1=h193b22a_2 - - binutils_linux-64=2.35=h67ddf6f_30 - - biopython=1.78=py39h3811e60_2 - - blinker=1.4=py_1 - - boost-cpp=1.74.0=hc6e9bd1_2 - - boto=2.49.0=py_0 - - boto3=1.17.56=pyhd8ed1ab_0 - - botocore=1.20.57=pyhd8ed1ab_0 - - bowtie=1.3.0=py39h176da8b_2 - - bowtie2=2.4.2=py39hc9c6fcd_2 - - brotlipy=0.7.0=py39h3811e60_1001 - - bwidget=1.9.14=0 - - bx-python=0.8.11=py39h5d76eff_1 - - bzip2=1.0.8=h7f98852_4 - - c-ares=1.17.1=h7f98852_1 - - ca-certificates=2021.4.13=h06a4308_1 - - cachetools=4.2.1=pyhd8ed1ab_0 - - cairo=1.16.0=h6cf1ce9_1008 - - certifi=2020.12.5=py39hf3d152e_1 - - cffi=1.14.5=py39he32792d_0 - - chardet=4.0.0=py39hf3d152e_1 - - click=7.1.2=pyh9f0ad1d_0 - - coincbc=2.10.5=hcee13e7_1 - - colorama=0.4.4=pyh9f0ad1d_0 - - coloredlogs=15.0=py39hf3d152e_0 - - colormath=3.0.0=py_2 - - commonmark=0.9.1=py_0 - - configargparse=1.4=pyhd8ed1ab_0 - - cryptography=3.4.7=py39hbca0aa6_0 - - curl=7.76.1=h979ede3_1 - - cutadapt=3.4=py39h38f01e4_1 - - cycler=0.10.0=py_2 - - datrie=0.8.2=py39h07f9747_1 - - dbus=1.13.18=hb2f20db_0 - - decorator=5.0.7=pyhd8ed1ab_0 - - deeptools=3.5.1=py_0 - - deeptoolsintervals=0.1.9=py39h38f01e4_3 - - dnaio=0.5.0=py39h38f01e4_1 - - docutils=0.17.1=py39hf3d152e_0 - - execnet=1.8.0=pyh44b312d_0 - - expat=2.3.0=h9c3ff4c_0 - - fastq-screen=0.14.0=pl5262hdfd78af_1 - - fastqc=0.11.9=hdfd78af_1 - - filelock=3.0.12=pyh9f0ad1d_0 - - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - - fontconfig=2.13.1=hba837de_1005 - - freetype=2.10.4=h0708190_1 - - fribidi=1.0.10=h516909a_0 - - future=0.18.2=py39hf3d152e_3 - - gat=1.3.6=py39hd1f1204_3 - - gcc_impl_linux-64=9.3.0=h70c0ae5_19 - - gcc_linux-64=9.3.0=hf25ea35_30 - - gettext=0.21.0=hf68c758_0 - - gffread=0.12.1=h2e03b76_1 - - gffutils=0.10.1=pyh864c0ab_1 - - gfortran_impl_linux-64=9.3.0=hc4a2995_19 - - gfortran_linux-64=9.3.0=hdc58fab_30 - - giflib=5.2.1=h516909a_2 - - gitdb=4.0.7=pyhd8ed1ab_0 - - gitpython=3.1.15=pyhd8ed1ab_0 - - glib=2.68.1=h9c3ff4c_0 - - glib-tools=2.68.1=h9c3ff4c_0 - - google-api-core=1.26.2=pyhd8ed1ab_0 - - google-auth=1.29.0=pyhd3eb1b0_0 - - google-cloud-core=1.6.0=pyhd3eb1b0_0 - - google-cloud-storage=1.37.1=pyhd3eb1b0_0 - - google-crc32c=1.1.2=py39hb81f231_0 - - google-resumable-media=1.2.0=pyhd3deb0d_0 - - googleapis-common-protos=1.53.0=py39hf3d152e_0 - - graphite2=1.3.14=h23475e2_0 - - gsl=2.6=he838d99_2 - - gst-plugins-base=1.18.4=hf529b03_1 - - gstreamer=1.18.4=h76c114f_1 - - gxx_impl_linux-64=9.3.0=hd87eabc_19 - - gxx_linux-64=9.3.0=h3fbe746_30 - - harfbuzz=2.8.0=h83ec7ef_1 - - hdf5=1.10.6=nompi_h6a2412b_1114 - - hisat2=2.2.1=h1b792b2_3 - - htslib=1.12=h9093b5e_1 - - humanfriendly=9.1=py39hf3d152e_0 - - icu=68.1=h58526e2_0 - - idna=2.10=pyh9f0ad1d_0 - - importlib-metadata=4.0.1=py39hf3d152e_0 - - importlib_metadata=4.0.1=hd8ed1ab_0 - - iniconfig=1.1.1=pyh9f0ad1d_0 - - intervalstats=1.01=0 - - ipython=7.22.0=py39hef51801_0 - - ipython_genutils=0.2.0=py_1 - - isa-l=2.30.0=ha770c72_4 - - isodate=0.6.0=py_1 - - jedi=0.18.0=py39hf3d152e_2 - - jemalloc=5.2.1=h9c3ff4c_5 - - jinja2=2.11.3=pyh44b312d_0 - - jmespath=0.10.0=pyh9f0ad1d_0 - - jpeg=9d=h516909a_0 - - jsonschema=3.2.0=pyhd8ed1ab_3 - - jupyter_core=4.7.1=py39hf3d152e_0 - - kallisto=0.46.2=h60f4f9f_2 - - kernel-headers_linux-64=2.6.32=h77966d4_13 - - kiwisolver=1.3.1=py39h1a9c180_1 - - krb5=1.17.2=h926e7f8_0 - - lcms2=2.12=hddcbb42_0 - - ld_impl_linux-64=2.35.1=hea4e1c9_2 - - libblas=3.9.0=8_mkl - - libcblas=3.9.0=8_mkl - - libclang=11.1.0=default_ha53f305_0 - - libcrc32c=1.1.1=he1b5a44_2 - - libcurl=7.76.1=hc4aaa36_1 - - libdeflate=1.7=h7f98852_5 - - libedit=3.1.20210216=h27cfd23_1 - - libev=4.33=h516909a_1 - - libevent=2.1.10=hcdb4288_3 - - libffi=3.3=h58526e2_2 - - libgcc-devel_linux-64=9.3.0=h7864c58_19 - - libgcc-ng=9.3.0=h2828fa1_19 - - libgd=2.3.2=h78a0170_0 - - libgfortran-ng=9.3.0=hff62375_19 - - libgfortran5=9.3.0=hff62375_19 - - libglib=2.68.1=h3e27bee_0 - - libgomp=9.3.0=h2828fa1_19 - - libiconv=1.16=h516909a_0 - - liblapack=3.9.0=8_mkl - - libllvm11=11.1.0=hf817b99_2 - - libnghttp2=1.43.0=h812cca2_0 - - libopenblas=0.3.13=pthreads_h8fe5266_0 - - libpng=1.6.37=hed695b0_2 - - libpq=13.2=hfd2b0eb_2 - - libprotobuf=3.15.8=h780b84a_0 - - libssh2=1.9.0=ha56f1ee_6 - - libstdcxx-devel_linux-64=9.3.0=hb016644_19 - - libstdcxx-ng=9.3.0=h6de172a_19 - - libtiff=4.2.0=hdc55705_1 - - libuuid=2.32.1=h14c3975_1000 - - libwebp=1.2.0=h3452ae3_0 - - libwebp-base=1.2.0=h7f98852_2 - - libxcb=1.14=h7b6447c_0 - - libxkbcommon=1.0.3=he3ba5ed_0 - - libxml2=2.9.10=h72842e0_4 - - llvm-openmp=11.1.0=h4bd325d_1 - - lz4-c=1.9.3=h9c3ff4c_0 - - lzo=2.10=h516909a_1000 - - lzstring=1.0.4=py_1001 - - make=4.3=hd18ef5c_1 - - markdown=3.3.4=pyhd8ed1ab_0 - - markupsafe=1.1.1=py39h3811e60_3 - - matplotlib=3.4.1=py39hf3d152e_0 - - matplotlib-base=3.4.1=py39h2fa2bec_0 - - mkl=2020.4=h726a3e6_304 - - more-itertools=8.7.0=pyhd8ed1ab_0 - - msrest=0.6.21=pyh44b312d_0 - - multidict=5.1.0=py39h3811e60_1 - - multiqc=1.10.1=py_0 - - mysql-common=8.0.23=ha770c72_1 - - mysql-connector-c=6.1.11=h6eb9d5d_1007 - - mysql-libs=8.0.23=h935591d_1 - - nbformat=5.1.3=pyhd8ed1ab_0 - - ncbi-ngs-sdk=2.11.0=hff44eed_0 - - ncurses=6.2=h58526e2_4 - - networkx=2.5=py_0 - - nspr=4.30=h9c3ff4c_0 - - nss=3.64=hb5efdd6_0 - - numpy=1.20.2=py39hdbf815f_0 - - oauthlib=3.1.0=py_0 - - olefile=0.46=pyh9f0ad1d_1 - - openblas=0.3.13=pthreads_h4748800_0 - - openjdk=11.0.9.1=h5cc2fde_1 - - openssl=1.1.1k=h7f98852_0 - - packaging=20.9=pyh44b312d_0 - - pandas=1.2.4=py39hde0f152_0 - - pandoc=2.12=h7f98852_0 - - pango=1.48.4=hb8ff022_0 - - parso=0.8.2=pyhd8ed1ab_0 - - patsy=0.5.1=py_0 - - pcre=8.44=he1b5a44_0 - - pcre2=10.36=h032f7d1_1 - - perl=5.26.2=h36c2ea0_1008 - - perl-app-cpanminus=1.7044=pl526_1 - - perl-business-isbn=3.004=pl526_0 - - perl-business-isbn-data=20140910.003=pl526_0 - - perl-carp=1.38=pl526_3 - - perl-constant=1.33=pl526_1 - - perl-data-dumper=2.173=pl526_0 - - perl-encode=2.88=pl526_1 - - perl-exporter=5.72=pl526_1 - - perl-extutils-makemaker=7.36=pl526_1 - - perl-file-path=2.16=pl526_0 - - perl-file-temp=0.2304=pl526_2 - - perl-gd=2.68=pl526he941832_0 - - perl-gdgraph=1.54=pl526_0 - - perl-gdtextutil=0.86=pl526h14c3975_5 - - perl-mime-base64=3.15=pl526_1 - - perl-parent=0.236=pl526_1 - - perl-uri=1.76=pl526_0 - - perl-xml-libxml=2.0132=pl526h7ec2d77_1 - - perl-xml-namespacesupport=1.12=pl526_0 - - perl-xml-sax=1.02=pl526_0 - - perl-xml-sax-base=1.09=pl526_0 - - perl-xsloader=0.24=pl526_0 - - pexpect=4.8.0=pyh9f0ad1d_2 - - picard=2.25.2=hdfd78af_0 - - pickleshare=0.7.5=py39hde42818_1002 - - pigz=2.6=h27826a3_0 - - pillow=8.2.0=py39he98fc37_0 - - pip=21.0.1=pyhd8ed1ab_0 - - pixman=0.40.0=h36c2ea0_0 - - plotly=4.14.3=pyh44b312d_0 - - pluggy=0.13.1=py39hf3d152e_4 - - preseq=3.1.2=h06ef8b0_1 - - prompt-toolkit=3.0.18=pyha770c72_0 - - protobuf=3.15.8=py39he80948d_0 - - psutil=5.8.0=py39h3811e60_1 - - ptyprocess=0.7.0=pyhd3deb0d_0 - - pulp=2.4=py39hf3d152e_0 - - py=1.10.0=pyhd3deb0d_0 - - py2bit=0.3.0=py39h38f01e4_5 - - pyasn1=0.4.8=py_0 - - pyasn1-modules=0.2.8=py_0 - - pybedtools=0.8.2=py39h39abbe0_1 - - pybigwig=0.3.18=py39h015b436_1 - - pycparser=2.20=pyh9f0ad1d_2 - - pyfaidx=0.5.9.5=pyh3252c3a_0 - - pygments=2.8.1=pyhd8ed1ab_0 - - pyjwt=2.0.1=pyhd8ed1ab_1 - - pyopenssl=20.0.1=pyhd8ed1ab_0 - - pyparsing=2.4.7=pyh9f0ad1d_0 - - pyqt=5.12.3=py39hf3d152e_7 - - pyqt-impl=5.12.3=py39h0fcd23e_7 - - pyqt5-sip=4.19.18=py39he80948d_7 - - pyqtchart=5.12=py39h0fcd23e_7 - - pyqtwebengine=5.12.1=py39h0fcd23e_7 - - pyrsistent=0.17.3=py39h3811e60_2 - - pysam=0.16.0.1=py39h051187c_3 - - pysocks=1.7.1=py39hf3d152e_3 - - pytest=6.2.3=py39hf3d152e_0 - - pytest-forked=1.3.0=pyhd3deb0d_0 - - pytest-xdist=2.2.1=pyhd8ed1ab_0 - - python=3.9.4=hdb3f193_0 - - python-dateutil=2.8.1=py_0 - - python-isal=0.10.0=py39h3811e60_0 - - python-lzo=1.12=py39h265373d_1003 - - python_abi=3.9=1_cp39 - - pytz=2021.1=pyhd8ed1ab_0 - - pyyaml=5.4.1=py39h3811e60_0 - - qt=5.12.9=hda022c4_4 - - r-base=4.0.3=h349a78a_8 - - ratelimiter=1.2.0=py_1002 - - readline=8.1=h46c0cb4_0 - - requests=2.25.1=pyhd3deb0d_0 - - requests-oauthlib=1.3.0=pyh9f0ad1d_0 - - retrying=1.3.3=py_2 - - rich=10.1.0=py39hf3d152e_0 - - rsa=4.7.2=pyh44b312d_0 - - rseqc=4.0.0=py39h38f01e4_1 - - s3transfer=0.4.2=pyhd8ed1ab_0 - - salmon=1.4.0=h84f40af_1 - - samtools=1.12=h9aed4be_1 - - scipy=1.6.2=py39hee8e79c_0 - - seaborn=0.11.1=ha770c72_0 - - seaborn-base=0.11.1=pyhd8ed1ab_1 - - sed=4.8=he412f7d_0 - - setuptools=52.0.0=py39h06a4308_0 - - simplejson=3.17.2=py39h3811e60_2 - - six=1.15.0=pyh9f0ad1d_0 - - smart_open=5.0.0=pyhd8ed1ab_0 - - smmap=3.0.5=pyh44b312d_0 - - snakemake-minimal=6.2.1=pyhdfd78af_0 - - spectra=0.0.11=py_1 - - sqlite=3.35.5=h74cdb3f_0 - - sra-tools=2.10.0=pl526he1b5a44_0 - - star=2.7.8a=h9ee0642_1 - - statsmodels=0.12.2=py39hce5d2b2_0 - - stopit=1.1.2=py_0 - - subread=2.0.1=h5bf99c6_1 - - sysroot_linux-64=2.12=h77966d4_13 - - tbb=2020.3=hfd86e86_0 - - tk=8.6.10=hed695b0_1 - - tktable=2.10=hb7b940f_3 - - toml=0.10.2=pyhd8ed1ab_0 - - toposort=1.6=pyhd8ed1ab_0 - - tornado=6.1=py39h3811e60_1 - - trackhub=0.2.4=pyh864c0ab_2 - - traitlets=5.0.5=py_0 - - typing-extensions=3.7.4.3=0 - - typing_extensions=3.7.4.3=py_0 - - tzdata=2021a=he74cb21_0 - - ucsc-bedgraphtobigwig=377=h0b8a92a_2 - - ucsc-bedsort=377=h0b8a92a_3 - - ucsc-bedtobigbed=377=h0b8a92a_2 - - ucsc-bigwigmerge=377=h0b8a92a_2 - - ucsc-fetchchromsizes=377=h0b8a92a_2 - - ucsc-genepredtobed=377=h0b8a92a_4 - - ucsc-gtftogenepred=377=h0b8a92a_4 - - ucsc-liftover=377=h0b8a92a_3 - - ucsc-oligomatch=377=h0b8a92a_2 - - ucsc-twobittofa=377=h0b8a92a_3 - - ucsc-wigtobigwig=377=h0b8a92a_2 - - urllib3=1.26.4=pyhd8ed1ab_0 - - wcwidth=0.2.5=pyh9f0ad1d_2 - - wheel=0.36.2=pyhd3deb0d_0 - - wrapt=1.12.1=py39h3811e60_3 - - xopen=1.1.0=py39hf3d152e_2 - - xorg-fixesproto=5.0=h14c3975_1002 - - xorg-inputproto=2.3.2=h14c3975_1002 - - xorg-kbproto=1.0.7=h14c3975_1002 - - xorg-libice=1.0.10=h516909a_0 - - xorg-libsm=1.2.3=hd9c2040_1000 - - xorg-libx11=1.6.12=h516909a_0 - - xorg-libxext=1.3.4=h516909a_0 - - xorg-libxfixes=5.0.3=h516909a_1004 - - xorg-libxi=1.7.10=h516909a_0 - - xorg-libxrender=0.9.10=h516909a_1002 - - xorg-libxt=1.2.1=h7f98852_0 - - xorg-libxtst=1.2.3=h516909a_1002 - - xorg-recordproto=1.14.2=h516909a_1002 - - xorg-renderproto=0.11.1=h14c3975_1002 - - xorg-xextproto=7.3.0=h14c3975_1002 - - xorg-xproto=7.0.31=h14c3975_1007 - - xz=5.2.5=h516909a_1 - - yaml=0.2.5=h516909a_0 - - yarl=1.5.1=py39h07f9747_0 - - zipp=3.4.1=pyhd8ed1ab_0 - - zlib=1.2.11=h516909a_1010 - - zstd=1.4.9=ha95c52a_0 + - _libgcc_mutex=0.1 + - _openmp_mutex=4.5 + - _r-mutex=1.0.1 + - aiohttp=3.7.4 + - alsa-lib=1.2.3 + - amply=0.1.4 + - apipkg=1.5 + - appdirs=1.4.4 + - argcomplete=1.12.3 + - argh=0.26.2 + - async-timeout=3.0.1 + - attrs=20.3.0 + - azure-common=1.1.27 + - azure-core=1.12.0 + - azure-storage-blob=12.8.1 + - backcall=0.2.0 + - backports=1.0 + - backports.functools_lru_cache=1.6.4 + - bedtools=2.30.0 + - binutils_impl_linux-64=2.35.1 + - binutils_linux-64=2.35 + - biopython=1.78 + - blinker=1.4 + - boost-cpp=1.74.0 + - boto=2.49.0 + - boto3=1.17.56 + - botocore=1.20.57 + - bowtie=1.3.0 + - bowtie2=2.4.2 + - brotlipy=0.7.0 + - bwidget=1.9.14 + - bx-python=0.8.11 + - bzip2=1.0.8 + - c-ares=1.17.1 + - ca-certificates=2021.4.13 + - cachetools=4.2.1 + - cairo=1.16.0 + - certifi=2020.12.5 + - cffi=1.14.5 + - chardet=4.0.0 + - click=7.1.2 + - coincbc=2.10.5 + - colorama=0.4.4 + - coloredlogs=15.0 + - colormath=3.0.0 + - commonmark=0.9.1 + - configargparse=1.4 + - cryptography=3.4.7 + - curl=7.76.1 + - cutadapt=3.4 + - cycler=0.10.0 + - datrie=0.8.2 + - dbus=1.13.18 + - decorator=5.0.7 + - deeptools=3.5.1 + - deeptoolsintervals=0.1.9 + - dnaio=0.5.0 + - docutils=0.17.1 + - execnet=1.8.0 + - expat=2.3.0 + - fastq-screen=0.14.0 + - fastqc=0.11.9 + - filelock=3.0.12 + - font-ttf-dejavu-sans-mono=2.37 + - fontconfig=2.13.1 + - freetype=2.10.4 + - fribidi=1.0.10 + - future=0.18.2 + - gat=1.3.6 + - gcc_impl_linux-64=9.3.0 + - gcc_linux-64=9.3.0 + - gettext=0.21.0 + - gffread=0.12.1 + - gffutils=0.10.1 + - gfortran_impl_linux-64=9.3.0 + - gfortran_linux-64=9.3.0 + - giflib=5.2.1 + - gitdb=4.0.7 + - gitpython=3.1.15 + - glib=2.68.1 + - glib-tools=2.68.1 + - google-api-core=1.26.2 + - google-auth=1.29.0 + - google-cloud-core=1.6.0 + - google-cloud-storage=1.37.1 + - google-crc32c=1.1.2 + - google-resumable-media=1.2.0 + - googleapis-common-protos=1.53.0 + - graphite2=1.3.14 + - gsl=2.6 + - gst-plugins-base=1.18.4 + - gstreamer=1.18.4 + - gxx_impl_linux-64=9.3.0 + - gxx_linux-64=9.3.0 + - harfbuzz=2.8.0 + - hdf5=1.10.6 + - hisat2=2.2.1 + - htslib=1.12 + - humanfriendly=9.1 + - icu=68.1 + - idna=2.10 + - importlib-metadata=4.0.1 + - importlib_metadata=4.0.1 + - iniconfig=1.1.1 + - intervalstats=1.01 + - ipython=7.22.0 + - ipython_genutils=0.2.0 + - isa-l=2.30.0 + - isodate=0.6.0 + - jedi=0.18.0 + - jemalloc=5.2.1 + - jinja2=2.11.3 + - jmespath=0.10.0 + - jpeg=9d + - jsonschema=3.2.0 + - jupyter_core=4.7.1 + - kallisto=0.46.2 + - kernel-headers_linux-64=2.6.32 + - kiwisolver=1.3.1 + - krb5=1.17.2 + - lcms2=2.12 + - ld_impl_linux-64=2.35.1 + - libblas=3.9.0 + - libcblas=3.9.0 + - libclang=11.1.0 + - libcrc32c=1.1.1 + - libcurl=7.76.1 + - libdeflate=1.7 + - libedit=3.1.20210216 + - libev=4.33 + - libevent=2.1.10 + - libffi=3.3 + - libgcc-devel_linux-64=9.3.0 + - libgcc-ng=9.3.0 + - libgd=2.3.2 + - libgfortran-ng=9.3.0 + - libgfortran5=9.3.0 + - libglib=2.68.1 + - libgomp=9.3.0 + - libiconv=1.16 + - liblapack=3.9.0 + - libllvm11=11.1.0 + - libnghttp2=1.43.0 + - libopenblas=0.3.13 + - libpng=1.6.37 + - libpq=13.2 + - libprotobuf=3.15.8 + - libssh2=1.9.0 + - libstdcxx-devel_linux-64=9.3.0 + - libstdcxx-ng=9.3.0 + - libtiff=4.2.0 + - libuuid=2.32.1 + - libwebp=1.2.0 + - libwebp-base=1.2.0 + - libxcb=1.14 + - libxkbcommon=1.0.3 + - libxml2=2.9.10 + - llvm-openmp=11.1.0 + - lz4-c=1.9.3 + - lzo=2.10 + - lzstring=1.0.4 + - make=4.3 + - markdown=3.3.4 + - markupsafe=1.1.1 + - matplotlib=3.4.1 + - matplotlib-base=3.4.1 + - mkl=2020.4 + - more-itertools=8.7.0 + - msrest=0.6.21 + - multidict=5.1.0 + - multiqc=1.10.1 + - mysql-common=8.0.23 + - mysql-connector-c=6.1.11 + - mysql-libs=8.0.23 + - nbformat=5.1.3 + - ncbi-ngs-sdk=2.11.0 + - ncurses=6.2 + - networkx=2.5 + - nspr=4.30 + - nss=3.64 + - numpy=1.20.2 + - oauthlib=3.1.0 + - olefile=0.46 + - openblas=0.3.13 + - openjdk=11.0.9.1 + - openssl=1.1.1k + - packaging=20.9 + - pandas=1.2.4 + - pandoc=2.12 + - pango=1.48.4 + - parso=0.8.2 + - patsy=0.5.1 + - pcre=8.44 + - pcre2=10.36 + - perl=5.26.2 + - perl-app-cpanminus=1.7044 + - perl-business-isbn=3.004 + - perl-business-isbn-data=20140910.003 + - perl-carp=1.38 + - perl-constant=1.33 + - perl-data-dumper=2.173 + - perl-encode=2.88 + - perl-exporter=5.72 + - perl-extutils-makemaker=7.36 + - perl-file-path=2.16 + - perl-file-temp=0.2304 + - perl-gd=2.68 + - perl-gdgraph=1.54 + - perl-gdtextutil=0.86 + - perl-mime-base64=3.15 + - perl-parent=0.236 + - perl-uri=1.76 + - perl-xml-libxml=2.0132 + - perl-xml-namespacesupport=1.12 + - perl-xml-sax=1.02 + - perl-xml-sax-base=1.09 + - perl-xsloader=0.24 + - pexpect=4.8.0 + - picard=2.25.2 + - pickleshare=0.7.5 + - pigz=2.6 + - pillow=8.2.0 + - pip=21.0.1 + - pixman=0.40.0 + - plotly=4.14.3 + - pluggy=0.13.1 + - preseq=3.1.2 + - prompt-toolkit=3.0.18 + - protobuf=3.15.8 + - psutil=5.8.0 + - ptyprocess=0.7.0 + - pulp=2.4 + - py=1.10.0 + - py2bit=0.3.0 + - pyasn1=0.4.8 + - pyasn1-modules=0.2.8 + - pybedtools=0.8.2 + - pybigwig=0.3.18 + - pycparser=2.20 + - pyfaidx=0.5.9.5 + - pygments=2.8.1 + - pyjwt=2.0.1 + - pyopenssl=20.0.1 + - pyparsing=2.4.7 + - pyqt=5.12.3 + - pyqt-impl=5.12.3 + - pyqt5-sip=4.19.18 + - pyqtchart=5.12 + - pyqtwebengine=5.12.1 + - pyrsistent=0.17.3 + - pysam=0.16.0.1 + - pysocks=1.7.1 + - pytest=6.2.3 + - pytest-forked=1.3.0 + - pytest-xdist=2.2.1 + - python=3.9.4 + - python-dateutil=2.8.1 + - python-isal=0.10.0 + - python-lzo=1.12 + - python_abi=3.9 + - pytz=2021.1 + - pyyaml=5.4.1 + - qt=5.12.9 + - r-base=4.0.3 + - ratelimiter=1.2.0 + - readline=8.1 + - requests=2.25.1 + - requests-oauthlib=1.3.0 + - retrying=1.3.3 + - rich=10.1.0 + - rsa=4.7.2 + - rseqc=4.0.0 + - s3transfer=0.4.2 + - salmon=1.4.0 + - samtools=1.12 + - scipy=1.6.2 + - seaborn=0.11.1 + - seaborn-base=0.11.1 + - sed=4.8 + - setuptools=52.0.0 + - simplejson=3.17.2 + - six=1.15.0 + - smart_open=5.0.0 + - smmap=3.0.5 + - snakemake-minimal=6.2.1 + - spectra=0.0.11 + - sqlite=3.35.5 + - sra-tools=2.10.0 + - star=2.7.8a + - statsmodels=0.12.2 + - stopit=1.1.2 + - subread=2.0.1 + - sysroot_linux-64=2.12 + - tbb=2020.3 + - tk=8.6.10 + - tktable=2.10 + - toml=0.10.2 + - toposort=1.6 + - tornado=6.1 + - trackhub=0.2.4 + - traitlets=5.0.5 + - typing-extensions=3.7.4.3 + - typing_extensions=3.7.4.3 + - tzdata=2021a + - ucsc-bedgraphtobigwig=377 + - ucsc-bedsort=377 + - ucsc-bedtobigbed=377 + - ucsc-bigwigmerge=377 + - ucsc-fetchchromsizes=377 + - ucsc-genepredtobed=377 + - ucsc-gtftogenepred=377 + - ucsc-liftover=377 + - ucsc-oligomatch=377 + - ucsc-twobittofa=377 + - ucsc-wigtobigwig=377 + - urllib3=1.26.4 + - wcwidth=0.2.5 + - wheel=0.36.2 + - wrapt=1.12.1 + - xopen=1.1.0 + - xorg-fixesproto=5.0 + - xorg-inputproto=2.3.2 + - xorg-kbproto=1.0.7 + - xorg-libice=1.0.10 + - xorg-libsm=1.2.3 + - xorg-libx11=1.6.12 + - xorg-libxext=1.3.4 + - xorg-libxfixes=5.0.3 + - xorg-libxi=1.7.10 + - xorg-libxrender=0.9.10 + - xorg-libxt=1.2.1 + - xorg-libxtst=1.2.3 + - xorg-recordproto=1.14.2 + - xorg-renderproto=0.11.1 + - xorg-xextproto=7.3.0 + - xorg-xproto=7.0.31 + - xz=5.2.5 + - yaml=0.2.5 + - yarl=1.5.1 + - zipp=3.4.1 + - zlib=1.2.11 + - zstd=1.4.9 From a1afb65d51d2a79f8b3997f83d083e8415d893df Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Wed, 9 Nov 2022 15:08:36 -0500 Subject: [PATCH 10/91] fully remove phix --- include/reference_configs/PhiX.yaml | 11 ----------- test/test_configs/test_chipseq_no_peaks.yaml | 1 - test/test_configs/test_chipseq_regression.yaml | 1 - test/test_configs/test_rnaseq_config.yaml | 1 - 4 files changed, 14 deletions(-) delete mode 100644 include/reference_configs/PhiX.yaml diff --git a/include/reference_configs/PhiX.yaml b/include/reference_configs/PhiX.yaml deleted file mode 100644 index 6c2dce35..00000000 --- a/include/reference_configs/PhiX.yaml +++ /dev/null @@ -1,11 +0,0 @@ -references: - phix: - default: - genome: - url: 'ftp://ftp.ncbi.nlm.nih.gov/genomes/Viruses/enterobacteria_phage_phix174_sensu_lato_uid14015/NC_001422.fna' - postprocess: - - 'lib.common.gzipped' - indexes: - - 'bowtie2' - - 'hisat2' - - 'star' diff --git a/test/test_configs/test_chipseq_no_peaks.yaml b/test/test_configs/test_chipseq_no_peaks.yaml index f40361c6..ccb0d77f 100644 --- a/test/test_configs/test_chipseq_no_peaks.yaml +++ b/test/test_configs/test_chipseq_no_peaks.yaml @@ -27,5 +27,4 @@ merged_bigwigs: {} include_references: - '../../include/reference_configs/test.yaml' - - '../../include/reference_configs/PhiX.yaml' - '../../include/reference_configs/Drosophila_melanogaster.yaml' diff --git a/test/test_configs/test_chipseq_regression.yaml b/test/test_configs/test_chipseq_regression.yaml index 6b91f5db..220dfaed 100644 --- a/test/test_configs/test_chipseq_regression.yaml +++ b/test/test_configs/test_chipseq_regression.yaml @@ -36,5 +36,4 @@ merged_bigwigs: {} include_references: - '../../include/reference_configs/test.yaml' - - '../../include/reference_configs/PhiX.yaml' - '../../include/reference_configs/Drosophila_melanogaster.yaml' diff --git a/test/test_configs/test_rnaseq_config.yaml b/test/test_configs/test_rnaseq_config.yaml index ad4a06c7..93ab5e0c 100644 --- a/test/test_configs/test_rnaseq_config.yaml +++ b/test/test_configs/test_rnaseq_config.yaml @@ -43,5 +43,4 @@ fastq_screen: include_references: - '../../include/reference_configs/test.yaml' - - '../../include/reference_configs/PhiX.yaml' - '../../include/reference_configs/Drosophila_melanogaster.yaml' From bc33b285d010b991c897da00365e62718ba5a82d Mon Sep 17 00:00:00 2001 From: Ryan Dale <ryan.dale@nih.gov> Date: Fri, 11 Nov 2022 18:38:13 -0500 Subject: [PATCH 11/91] use v1.9 env yml --- env-r.yml | 776 +++++++++++++++++++++++++++--------------------------- env.yml | 511 ++++++++++++++++++----------------- 2 files changed, 634 insertions(+), 653 deletions(-) diff --git a/env-r.yml b/env-r.yml index a4fec770..4b30a89a 100644 --- a/env-r.yml +++ b/env-r.yml @@ -1,397 +1,387 @@ +name: null channels: - conda-forge - bioconda dependencies: - - _libgcc_mutex=0.1 - - _openmp_mutex=4.5 - - _r-mutex=1.0.1 - - binutils_impl_linux-64=2.36.1 - - bioconductor-all=1.36.0 - - bioconductor-annotate=1.72.0 - - bioconductor-annotationdbi=1.56.1 - - bioconductor-annotationfilter=1.18.0 - - bioconductor-annotationhub=3.2.0 - - bioconductor-apeglm=1.16.0 - - bioconductor-biobase=2.54.0 - - bioconductor-biocfilecache=2.2.0 - - bioconductor-biocgenerics=0.40.0 - - bioconductor-biocio=1.4.0 - - bioconductor-biocparallel=1.28.0 - - bioconductor-biocversion=3.14.0 - - bioconductor-biomart=2.50.0 - - bioconductor-biostrings=2.62.0 - - bioconductor-clusterprofiler=4.2.0 - - bioconductor-complexheatmap=2.10.0 - - bioconductor-consensusclusterplus=1.58.0 - - bioconductor-degreport=1.30.0 - - bioconductor-delayedarray=0.20.0 - - bioconductor-deseq2=1.34.0 - - bioconductor-do.db=2.9 - - bioconductor-dose=3.20.0 - - bioconductor-dupradar=1.24.0 - - bioconductor-edger=3.36.0 - - bioconductor-enrichplot=1.14.1 - - bioconductor-ensembldb=2.18.1 - - bioconductor-fgsea=1.20.0 - - bioconductor-genefilter=1.76.0 - - bioconductor-geneplotter=1.72.0 - - bioconductor-genomeinfodb=1.30.0 - - bioconductor-genomeinfodbdata=1.2.7 - - bioconductor-genomicalignments=1.30.0 - - bioconductor-genomicfeatures=1.46.1 - - bioconductor-genomicranges=1.46.0 - - bioconductor-ggtree=3.2.0 - - bioconductor-go.db=3.14.0 - - bioconductor-gosemsim=2.20.0 - - bioconductor-graph=1.72.0 - - bioconductor-graphite=1.40.0 - - bioconductor-ihw=1.22.0 - - bioconductor-interactivedisplaybase=1.32.0 - - bioconductor-iranges=2.28.0 - - bioconductor-keggrest=1.34.0 - - bioconductor-limma=3.50.0 - - bioconductor-lpsymphony=1.22.0 - - bioconductor-matrixgenerics=1.6.0 - - bioconductor-protgenerics=1.26.0 - - bioconductor-qvalue=2.26.0 - - bioconductor-reactome.db=1.77.0 - - bioconductor-reactomepa=1.38.0 - - bioconductor-rhdf5=2.38.0 - - bioconductor-rhdf5filters=1.6.0 - - bioconductor-rhdf5lib=1.16.0 - - bioconductor-rhtslib=1.26.0 - - bioconductor-rsamtools=2.10.0 - - bioconductor-rsubread=2.8.0 - - bioconductor-rtracklayer=1.54.0 - - bioconductor-s4vectors=0.32.0 - - bioconductor-summarizedexperiment=1.24.0 - - bioconductor-sva=3.42.0 - - bioconductor-treeio=1.18.0 - - bioconductor-tximport=1.22.0 - - bioconductor-xvector=0.34.0 - - bioconductor-zlibbioc=1.40.0 - - bwidget=1.9.14 - - bzip2=1.0.8 - - c-ares=1.18.1 - - ca-certificates=2021.10.8 - - cairo=1.16.0 - - curl=7.83.1 - - expat=2.4.8 - - font-ttf-dejavu-sans-mono=2.37 - - font-ttf-inconsolata=3.000 - - font-ttf-source-code-pro=2.038 - - font-ttf-ubuntu=0.83 - - fontconfig=2.14.0 - - fonts-conda-ecosystem=1 - - fonts-conda-forge=1 - - freetype=2.10.4 - - fribidi=1.0.10 - - gcc_impl_linux-64=12.1.0 - - gettext=0.19.8.1 - - gfortran_impl_linux-64=12.1.0 - - gmp=6.2.1 - - graphite2=1.3.13 - - gsl=2.7 - - gxx_impl_linux-64=12.1.0 - - harfbuzz=5.1.0 - - icu=70.1 - - jpeg=9e - - kernel-headers_linux-64=2.6.32 - - keyutils=1.6.1 - - krb5=1.19.3 - - ld_impl_linux-64=2.36.1 - - lerc=3.0 - - libblas=3.9.0 - - libcblas=3.9.0 - - libcurl=7.83.1 - - libdeflate=1.12 - - libedit=3.1.20191231 - - libev=4.33 - - libffi=3.4.2 - - libgcc-devel_linux-64=12.1.0 - - libgcc-ng=12.1.0 - - libgfortran-ng=12.1.0 - - libgfortran5=12.1.0 - - libgit2=1.3.0 - - libglib=2.72.1 - - libgomp=12.1.0 - - libiconv=1.16 - - liblapack=3.9.0 - - libnghttp2=1.47.0 - - libopenblas=0.3.21 - - libpng=1.6.38 - - libsanitizer=12.1.0 - - libssh2=1.10.0 - - libstdcxx-devel_linux-64=12.1.0 - - libstdcxx-ng=12.1.0 - - libtiff=4.4.0 - - libuuid=2.32.1 - - libwebp-base=1.2.1 - - libxcb=1.13 - - libxml2=2.9.14 - - libzlib=1.2.12 - - lz4-c=1.9.3 - - make=4.3 - - ncurses=6.3 - - openssl=1.1.1q - - pandoc=2.16.1 - - pango=1.50.9 - - pcre=8.45 - - pcre2=10.37 - - pixman=0.40.0 - - pthread-stubs=0.4 - - r-ape=5.5 - - r-aplot=0.1.1 - - r-ashr=2.2_47 - - r-askpass=1.1 - - r-assertthat=0.2.1 - - r-babelgene=21.4 - - r-backports=1.3.0 - - r-base=4.1.3 - - r-base64enc=0.1_3 - - r-bbmle=1.0.24 - - r-bdsmatrix=1.3_4 - - r-bh=1.75.0_0 - - r-biocmanager=1.30.16 - - r-bit=4.0.4 - - r-bit64=4.0.5 - - r-bitops=1.0_7 - - r-blob=1.2.2 - - r-brew=1.0_6 - - r-brio=1.1.2 - - r-broom=0.7.10 - - r-bslib=0.3.1 - - r-cachem=1.0.6 - - r-callr=3.7.0 - - r-catools=1.18.2 - - r-checkmate=2.0.0 - - r-circlize=0.4.13 - - r-cli=3.1.0 - - r-clipr=0.7.1 - - r-clue=0.3_60 - - r-cluster=2.1.2 - - r-coda=0.19_4 - - r-codetools=0.2_18 - - r-colorspace=2.0_2 - - r-commonmark=1.7 - - r-covr=3.5.1 - - r-cowplot=1.1.1 - - r-cpp11=0.4.1 - - r-crayon=1.4.2 - - r-credentials=1.3.1 - - r-crosstalk=1.2.0 - - r-curl=4.3.2 - - r-data.table=1.14.2 - - r-dbi=1.1.1 - - r-dbplyr=2.1.1 - - r-dendextend=1.15.2 - - r-desc=1.4.0 - - r-devtools=2.4.2 - - r-diffobj=0.3.5 - - r-digest=0.6.28 - - r-doparallel=1.0.16 - - r-downloader=0.4 - - r-dplyr=1.0.7 - - r-dt=0.19 - - r-egg=0.4.5 - - r-ellipsis=0.3.2 - - r-emdbook=1.3.12 - - r-etrunct=0.1 - - r-evaluate=0.14 - - r-fansi=0.4.2 - - r-farver=2.1.0 - - r-fastmap=1.1.0 - - r-fastmatch=1.1_3 - - r-fdrtool=1.2.16 - - r-filelock=1.0.2 - - r-fontawesome=0.2.2 - - r-forcats=0.5.1 - - r-foreach=1.5.1 - - r-formatr=1.11 - - r-fs=1.5.0 - - r-futile.logger=1.4.3 - - r-futile.options=1.0.1 - - r-gclus=1.3.2 - - r-generics=0.1.1 - - r-gert=1.4.3 - - r-getoptlong=1.0.5 - - r-ggally=2.1.2 - - r-ggdendro=0.1.22 - - r-ggforce=0.3.3 - - r-ggfun=0.0.4 - - r-ggnewscale=0.4.5 - - r-ggplot2=3.3.5 - - r-ggplotify=0.1.0 - - r-ggraph=2.0.5 - - r-ggrepel=0.9.1 - - r-gh=1.3.0 - - r-git2r=0.28.0 - - r-gitcreds=0.1.1 - - r-globaloptions=0.1.2 - - r-glue=1.5.0 - - r-gplots=3.1.1 - - r-graphlayouts=0.7.1 - - r-gridextra=2.3 - - r-gridgraphics=0.5_1 - - r-gtable=0.3.0 - - r-gtools=3.9.2.2 - - r-heatmaply=1.3.0 - - r-hexbin=1.28.2 - - r-highr=0.9 - - r-hms=1.1.1 - - r-htmltools=0.5.2 - - r-htmlwidgets=1.5.4 - - r-httpuv=1.6.3 - - r-httr=1.4.2 - - r-igraph=1.2.8 - - r-ini=0.3.1 - - r-invgamma=1.1 - - r-irlba=2.3.3 - - r-isoband=0.2.5 - - r-iterators=1.0.13 - - r-jquerylib=0.1.4 - - r-jsonlite=1.7.2 - - r-kernsmooth=2.23_20 - - r-knitr=1.35 - - r-labeling=0.4.2 - - r-lambda.r=1.2.4 - - r-lasso2=1.2_22 - - r-later=1.2.0 - - r-lattice=0.20_45 - - r-lazyeval=0.2.2 - - r-lifecycle=1.0.1 - - r-locfit=1.5_9.4 - - r-logging=0.10_108 - - r-magrittr=2.0.1 - - r-markdown=1.1 - - r-mass=7.3_54 - - r-matrix=1.3_4 - - r-matrixstats=0.61.0 - - r-memoise=2.0.0 - - r-mgcv=1.8_38 - - r-mime=0.12 - - r-mixsqp=0.3_43 - - r-mnormt=2.0.2 - - r-msigdbr=7.4.1 - - r-munsell=0.5.0 - - r-mvtnorm=1.1_3 - - r-nlme=3.1_153 - - r-nozzle.r1=1.1_1.1 - - r-numderiv=2016.8_1.1 - - r-openssl=1.4.5 - - r-openxlsx=4.2.4 - - r-patchwork=1.1.1 - - r-pheatmap=1.0.12 - - r-pillar=1.6.4 - - r-pkgbuild=1.2.0 - - r-pkgconfig=2.0.3 - - r-pkgload=1.2.3 - - r-plogr=0.2.0 - - r-plotly=4.10.0 - - r-plyr=1.8.6 - - r-png=0.1_7 - - r-polyclip=1.10_0 - - r-praise=1.0.0 - - r-prettyunits=1.1.1 - - r-processx=3.5.2 - - r-progress=1.2.2 - - r-promises=1.2.0.1 - - r-ps=1.6.0 - - r-psych=2.1.9 - - r-purrr=0.3.4 - - r-qap=0.1_1 - - r-r6=2.5.1 - - r-rappdirs=0.3.3 - - r-rcmdcheck=1.4.0 - - r-rcolorbrewer=1.1_2 - - r-rcpp=1.0.7 - - r-rcpparmadillo=0.10.7.3.0 - - r-rcppeigen=0.3.3.9.1 - - r-rcppnumerical=0.4_0 - - r-rcurl=1.98_1.8 - - r-readr=2.1.0 - - r-registry=0.5_1 - - r-rematch2=2.1.2 - - r-remotes=2.4.1 - - r-reshape=0.8.8 - - r-reshape2=1.4.4 - - r-restfulr=0.0.13 - - r-rex=1.2.0 - - r-rjson=0.2.20 - - r-rlang=0.4.12 - - r-rmarkdown=2.11 - - r-roxygen2=7.1.2 - - r-rprojroot=2.0.2 - - r-rsqlite=2.2.8 - - r-rstudioapi=0.13 - - r-rvcheck=0.1.8 - - r-rversions=2.1.1 - - r-sass=0.4.0 - - r-scales=1.1.1 - - r-scatterpie=0.1.6 - - r-seriation=1.3.1 - - r-sessioninfo=1.2.1 - - r-shadowtext=0.0.9 - - r-shape=1.4.6 - - r-shiny=1.7.1 - - r-slam=0.1_48 - - r-snow=0.4_4 - - r-sourcetools=0.1.7 - - r-sparsem=1.81 - - r-spp=1.16.0 - - r-squarem=2021.1 - - r-stringi=1.7.8 - - r-stringr=1.4.0 - - r-survival=3.2_13 - - r-sys=3.4 - - r-testthat=3.1.0 - - r-tibble=3.1.6 - - r-tidygraph=1.2.0 - - r-tidyr=1.1.4 - - r-tidyselect=1.1.1 - - r-tidytree=0.3.6 - - r-tinytex=0.35 - - r-tmvnsim=1.0_2 - - r-truncnorm=1.0_8 - - r-tsp=1.1_11 - - r-tweenr=1.0.2 - - r-tzdb=0.2.0 - - r-upsetr=1.4.0 - - r-usethis=2.1.3 - - r-utf8=1.2.2 - - r-vctrs=0.3.8 - - r-viridis=0.6.2 - - r-viridislite=0.4.0 - - r-vroom=1.5.6 - - r-waldo=0.3.1 - - r-webshot=0.5.2 - - r-whisker=0.4 - - r-withr=2.4.2 - - r-xfun=0.28 - - r-xml=3.99_0.8 - - r-xml2=1.3.2 - - r-xopen=1.0.0 - - r-xtable=1.8_4 - - r-yaml=2.2.1 - - r-yulab.utils=0.0.4 - - r-zip=2.2.0 - - readline=8.1.2 - - sed=4.8 - - sysroot_linux-64=2.12 - - tk=8.6.12 - - tktable=2.10 - - xorg-kbproto=1.0.7 - - xorg-libice=1.0.10 - - xorg-libsm=1.2.3 - - xorg-libx11=1.7.2 - - xorg-libxau=1.0.9 - - xorg-libxdmcp=1.1.3 - - xorg-libxext=1.3.4 - - xorg-libxrender=0.9.10 - - xorg-libxt=1.2.1 - - xorg-renderproto=0.11.1 - - xorg-xextproto=7.3.0 - - xorg-xproto=7.0.31 - - xz=5.2.5 - - zlib=1.2.12 - - zstd=1.5.2 + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=2_gnu + - _r-mutex=1.0.1=anacondar_1 + - binutils_impl_linux-64=2.39=h6ceecb4_0 + - bioconductor-all=1.32.0=r40hdfd78af_1 + - bioconductor-annotate=1.68.0=r40hdfd78af_1 + - bioconductor-annotationdbi=1.52.0=r40hdfd78af_1 + - bioconductor-annotationhub=2.22.0=r40hdfd78af_1 + - bioconductor-apeglm=1.12.0=r40h399db7b_1 + - bioconductor-biobase=2.50.0=r40hd029910_1 + - bioconductor-biocfilecache=1.14.0=r40hdfd78af_1 + - bioconductor-biocgenerics=0.36.0=r40hdfd78af_1 + - bioconductor-biocparallel=1.24.1=r40h399db7b_0 + - bioconductor-biocversion=3.12.0=r40hdfd78af_1 + - bioconductor-biomart=2.46.3=r40hdfd78af_0 + - bioconductor-biostrings=2.58.0=r40hd029910_1 + - bioconductor-clusterprofiler=3.18.1=r40hdfd78af_0 + - bioconductor-complexheatmap=2.6.2=r40hdfd78af_1 + - bioconductor-consensusclusterplus=1.54.0=r40hdfd78af_1 + - bioconductor-degreport=1.26.0=r40hdfd78af_1 + - bioconductor-delayedarray=0.16.3=r40hd029910_0 + - bioconductor-deseq2=1.30.1=r40h399db7b_0 + - bioconductor-do.db=2.9=r40hdfd78af_10 + - bioconductor-dose=3.16.0=r40hdfd78af_1 + - bioconductor-dupradar=1.20.0=r40hdfd78af_1 + - bioconductor-edger=3.32.1=r40h399db7b_0 + - bioconductor-enrichplot=1.10.2=r40hdfd78af_0 + - bioconductor-fgsea=1.16.0=r40h399db7b_1 + - bioconductor-genefilter=1.72.1=r40hba52eb8_0 + - bioconductor-geneplotter=1.68.0=r40hdfd78af_1 + - bioconductor-genomeinfodb=1.26.4=r40hdfd78af_0 + - bioconductor-genomeinfodbdata=1.2.4=r40hdfd78af_2 + - bioconductor-genomicalignments=1.26.0=r40hd029910_1 + - bioconductor-genomicfeatures=1.42.2=r40hdfd78af_0 + - bioconductor-genomicranges=1.42.0=r40hd029910_1 + - bioconductor-go.db=3.12.1=r40hdfd78af_1 + - bioconductor-gosemsim=2.16.1=r40h399db7b_0 + - bioconductor-graph=1.68.0=r40hd029910_1 + - bioconductor-graphite=1.36.0=r40hdfd78af_1 + - bioconductor-ihw=1.18.0=r40hdfd78af_1 + - bioconductor-interactivedisplaybase=1.28.0=r40hdfd78af_1 + - bioconductor-iranges=2.24.1=r40hd029910_0 + - bioconductor-limma=3.46.0=r40hd029910_1 + - bioconductor-lpsymphony=1.18.0=r40h399db7b_1 + - bioconductor-matrixgenerics=1.2.1=r40hdfd78af_0 + - bioconductor-qvalue=2.22.0=r40hdfd78af_1 + - bioconductor-reactome.db=1.74.0=r40hdfd78af_1 + - bioconductor-reactomepa=1.34.0=r40hdfd78af_1 + - bioconductor-rhdf5=2.34.0=r40h399db7b_1 + - bioconductor-rhdf5filters=1.2.0=r40h399db7b_1 + - bioconductor-rhdf5lib=1.12.1=r40hd029910_0 + - bioconductor-rhtslib=1.22.0=r40hd029910_1 + - bioconductor-rsamtools=2.6.0=r40h399db7b_1 + - bioconductor-rsubread=2.4.3=r40hd029910_0 + - bioconductor-rtracklayer=1.50.0=r40h7f5ccec_2 + - bioconductor-s4vectors=0.28.1=r40hd029910_0 + - bioconductor-summarizedexperiment=1.20.0=r40hdfd78af_1 + - bioconductor-sva=3.38.0=r40hd029910_1 + - bioconductor-tximport=1.18.0=r40hdfd78af_1 + - bioconductor-xvector=0.30.0=r40hd029910_1 + - bioconductor-zlibbioc=1.36.0=r40hd029910_1 + - bwidget=1.9.14=ha770c72_1 + - bzip2=1.0.8=h7f98852_4 + - c-ares=1.18.1=h7f98852_0 + - ca-certificates=2022.9.24=ha878542_0 + - cairo=1.16.0=ha61ee94_1014 + - curl=7.86.0=h7bff187_1 + - expat=2.5.0=h27087fc_0 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=3.000=h77eed37_0 + - font-ttf-source-code-pro=2.038=h77eed37_0 + - font-ttf-ubuntu=0.83=hab24e00_0 + - fontconfig=2.14.1=hc2a2eb6_0 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - freetype=2.12.1=hca18f0e_0 + - fribidi=1.0.10=h36c2ea0_0 + - gcc_impl_linux-64=12.2.0=hcc96c02_19 + - gettext=0.21.1=h27087fc_0 + - gfortran_impl_linux-64=12.2.0=h55be85b_19 + - glpk=5.0=h445213a_0 + - gmp=6.2.1=h58526e2_0 + - graphite2=1.3.13=h58526e2_1001 + - gsl=2.7=he838d99_0 + - gxx_impl_linux-64=12.2.0=hcc96c02_19 + - harfbuzz=5.3.0=h418a68e_0 + - icu=70.1=h27087fc_0 + - jpeg=9e=h166bdaf_2 + - kernel-headers_linux-64=2.6.32=he073ed8_15 + - keyutils=1.6.1=h166bdaf_0 + - krb5=1.19.3=h3790be6_0 + - ld_impl_linux-64=2.39=hc81fddc_0 + - lerc=4.0.0=h27087fc_0 + - libblas=3.9.0=16_linux64_openblas + - libcblas=3.9.0=16_linux64_openblas + - libcurl=7.86.0=h7bff187_1 + - libdeflate=1.14=h166bdaf_0 + - libedit=3.1.20191231=he28a2e2_2 + - libev=4.33=h516909a_1 + - libffi=3.4.2=h7f98852_5 + - libgcc-devel_linux-64=12.2.0=h3b97bd3_19 + - libgcc-ng=12.2.0=h65d4601_19 + - libgfortran-ng=12.2.0=h69a702a_19 + - libgfortran5=12.2.0=h337968e_19 + - libgit2=1.5.0=hde0c96a_1 + - libglib=2.74.1=h606061b_1 + - libgomp=12.2.0=h65d4601_19 + - libiconv=1.17=h166bdaf_0 + - liblapack=3.9.0=16_linux64_openblas + - libnghttp2=1.47.0=hdcd2b5c_1 + - libopenblas=0.3.21=pthreads_h78a6416_3 + - libpng=1.6.38=h753d276_0 + - libsanitizer=12.2.0=h46fd767_19 + - libssh2=1.10.0=haa6b8db_3 + - libstdcxx-devel_linux-64=12.2.0=h3b97bd3_19 + - libstdcxx-ng=12.2.0=h46fd767_19 + - libtiff=4.4.0=h55922b4_4 + - libuuid=2.32.1=h7f98852_1000 + - libwebp-base=1.2.4=h166bdaf_0 + - libxcb=1.13=h7f98852_1004 + - libxml2=2.10.3=h7463322_0 + - libzlib=1.2.13=h166bdaf_4 + - make=4.3=hd18ef5c_1 + - ncurses=6.3=h27087fc_1 + - openssl=1.1.1s=h166bdaf_0 + - pandoc=2.19.2=h32600fe_1 + - pango=1.50.11=h382ae3d_0 + - pcre2=10.40=hc3806b6_0 + - pixman=0.40.0=h36c2ea0_0 + - pthread-stubs=0.4=h36c2ea0_1001 + - r-ashr=2.2_54=r40h7525677_0 + - r-askpass=1.1=r40hcfec24a_2 + - r-assertthat=0.2.1=r40hc72bb7e_2 + - r-babelgene=22.3=r40hc72bb7e_0 + - r-backports=1.4.1=r40hcfec24a_0 + - r-base=4.0.5=hb87df5d_8 + - r-base64enc=0.1_3=r40hcfec24a_1004 + - r-bbmle=1.0.25=r40hc72bb7e_0 + - r-bdsmatrix=1.3_6=r40h06615bd_0 + - r-bh=1.78.0_0=r40hc72bb7e_0 + - r-biocmanager=1.30.18=r40hc72bb7e_0 + - r-bit=4.0.4=r40hcfec24a_0 + - r-bit64=4.0.5=r40hcfec24a_0 + - r-bitops=1.0_7=r40h06615bd_0 + - r-blob=1.2.3=r40hc72bb7e_0 + - r-brew=1.0_7=r40hc72bb7e_0 + - r-brio=1.1.3=r40hcfec24a_0 + - r-broom=1.0.1=r40hc72bb7e_0 + - r-bslib=0.4.0=r40hc72bb7e_0 + - r-cachem=1.0.6=r40hcfec24a_0 + - r-cairo=1.6_0=r40h06615bd_0 + - r-callr=3.7.2=r40hc72bb7e_0 + - r-catools=1.18.2=r40h7525677_0 + - r-checkmate=2.1.0=r40h06615bd_0 + - r-circlize=0.4.15=r40hc72bb7e_0 + - r-cli=3.4.1=r40h7525677_0 + - r-clipr=0.8.0=r40hc72bb7e_0 + - r-clue=0.3_60=r40hcfec24a_0 + - r-cluster=2.1.3=r40h8da6f51_0 + - r-coda=0.19_4=r40hc72bb7e_0 + - r-codetools=0.2_18=r40hc72bb7e_0 + - r-colorspace=2.0_3=r40h06615bd_0 + - r-commonmark=1.8.0=r40h06615bd_0 + - r-cowplot=1.1.1=r40hc72bb7e_0 + - r-cpp11=0.4.2=r40hc72bb7e_0 + - r-crayon=1.5.1=r40hc72bb7e_0 + - r-credentials=1.3.2=r40hc72bb7e_0 + - r-crosstalk=1.2.0=r40hc72bb7e_0 + - r-curl=4.3.2=r40hcfec24a_0 + - r-data.table=1.14.2=r40hcfec24a_0 + - r-dbi=1.1.3=r40hc72bb7e_0 + - r-dbplyr=2.2.1=r40hc72bb7e_0 + - r-dendextend=1.16.0=r40hc72bb7e_0 + - r-desc=1.4.2=r40hc72bb7e_0 + - r-devtools=2.4.4=r40hc72bb7e_0 + - r-diffobj=0.3.5=r40hcfec24a_0 + - r-digest=0.6.29=r40h03ef668_0 + - r-downlit=0.4.2=r40hc72bb7e_0 + - r-downloader=0.4=r40hc72bb7e_1003 + - r-dplyr=1.0.10=r40h7525677_0 + - r-dt=0.25=r40hc72bb7e_0 + - r-egg=0.4.5=r40hc72bb7e_2 + - r-ellipsis=0.3.2=r40hcfec24a_0 + - r-emdbook=1.3.12=r40hc72bb7e_1 + - r-etrunct=0.1=r40hc72bb7e_1003 + - r-evaluate=0.16=r40hc72bb7e_0 + - r-fansi=1.0.3=r40h06615bd_0 + - r-farver=2.1.1=r40h7525677_0 + - r-fastmap=1.1.0=r40h03ef668_0 + - r-fastmatch=1.1_3=r40hcfec24a_0 + - r-fdrtool=1.2.17=r40hcfec24a_0 + - r-fontawesome=0.3.0=r40hc72bb7e_0 + - r-forcats=0.5.2=r40hc72bb7e_0 + - r-foreach=1.5.2=r40hc72bb7e_0 + - r-formatr=1.12=r40hc72bb7e_0 + - r-fs=1.5.2=r40h7525677_1 + - r-futile.logger=1.4.3=r40hc72bb7e_1003 + - r-futile.options=1.0.1=r40hc72bb7e_1002 + - r-gclus=1.3.2=r40hc72bb7e_2 + - r-generics=0.1.3=r40hc72bb7e_0 + - r-gert=1.5.0=r40h163148b_2 + - r-getoptlong=1.0.5=r40hc72bb7e_0 + - r-ggally=2.1.2=r40hc72bb7e_0 + - r-ggdendro=0.1.23=r40hc72bb7e_0 + - r-ggforce=0.3.4=r40h7525677_0 + - r-ggfun=0.0.7=r40hc72bb7e_0 + - r-ggnewscale=0.4.7=r40hc72bb7e_0 + - r-ggplot2=3.3.6=r40hc72bb7e_0 + - r-ggraph=2.0.6=r40h7525677_0 + - r-ggrepel=0.9.1=r40h03ef668_0 + - r-gh=1.3.1=r40hc72bb7e_0 + - r-gitcreds=0.1.2=r40hc72bb7e_0 + - r-globaloptions=0.1.2=r40ha770c72_0 + - r-glue=1.6.2=r40h06615bd_0 + - r-gplots=3.1.3=r40hc72bb7e_0 + - r-graphlayouts=0.8.1=r40h7525677_0 + - r-gridextra=2.3=r40hc72bb7e_1003 + - r-gtable=0.3.1=r40hc72bb7e_0 + - r-gtools=3.9.3=r40h06615bd_0 + - r-heatmaply=1.3.0=r40hc72bb7e_0 + - r-hexbin=1.28.2=r40h8da6f51_0 + - r-highr=0.9=r40hc72bb7e_0 + - r-hms=1.1.2=r40hc72bb7e_0 + - r-htmltools=0.5.3=r40h7525677_0 + - r-htmlwidgets=1.5.4=r40hc72bb7e_0 + - r-httpuv=1.6.6=r40h7525677_0 + - r-httr=1.4.4=r40hc72bb7e_0 + - r-igraph=1.3.4=r40hb34fc8a_0 + - r-ini=0.3.1=r40hc72bb7e_1003 + - r-invgamma=1.1=r40hc72bb7e_1 + - r-irlba=2.3.5=r40h5f7b363_0 + - r-isoband=0.2.5=r40h03ef668_0 + - r-iterators=1.0.14=r40hc72bb7e_0 + - r-jquerylib=0.1.4=r40hc72bb7e_0 + - r-jsonlite=1.8.0=r40h06615bd_0 + - r-kernsmooth=2.23_20=r40h742201e_0 + - r-knitr=1.40=r40hc72bb7e_0 + - r-labeling=0.4.2=r40hc72bb7e_1 + - r-lambda.r=1.2.4=r40hc72bb7e_1 + - r-lasso2=1.2_22=r40hcfec24a_0 + - r-later=1.2.0=r40h03ef668_0 + - r-lattice=0.20_45=r40hcfec24a_0 + - r-lazyeval=0.2.2=r40hcfec24a_2 + - r-lifecycle=1.0.2=r40hc72bb7e_0 + - r-locfit=1.5_9.4=r40hcfec24a_1 + - r-logging=0.10_108=r40ha770c72_2 + - r-magrittr=2.0.3=r40h06615bd_0 + - r-mass=7.3_58.1=r40h06615bd_0 + - r-matrix=1.4_1=r40h0154571_0 + - r-matrixstats=0.62.0=r40h06615bd_0 + - r-memoise=2.0.1=r40hc72bb7e_0 + - r-mgcv=1.8_40=r40h0154571_0 + - r-mime=0.12=r40hcfec24a_0 + - r-miniui=0.1.1.1=r40hc72bb7e_1002 + - r-mixsqp=0.3_43=r40h306847c_1 + - r-mnormt=2.1.0=r40h8da6f51_0 + - r-msigdbr=7.5.1=r40hc72bb7e_0 + - r-munsell=0.5.0=r40hc72bb7e_1004 + - r-mvtnorm=1.1_3=r40h859d828_0 + - r-nlme=3.1_159=r40h8da6f51_0 + - r-nozzle.r1=1.1_1.1=r40ha770c72_0 + - r-numderiv=2016.8_1.1=r40hc72bb7e_3 + - r-openssl=2.0.3=r40hfaab4ff_0 + - r-openxlsx=4.2.5=r40h03ef668_0 + - r-pheatmap=1.0.12=r40hc72bb7e_2 + - r-pillar=1.8.1=r40hc72bb7e_0 + - r-pkgbuild=1.3.1=r40hc72bb7e_0 + - r-pkgconfig=2.0.3=r40hc72bb7e_1 + - r-pkgdown=2.0.6=r40hc72bb7e_0 + - r-pkgload=1.3.0=r40hc72bb7e_0 + - r-plogr=0.2.0=r40hc72bb7e_1003 + - r-plotly=4.10.0=r40hc72bb7e_0 + - r-plyr=1.8.7=r40h7525677_0 + - r-png=0.1_7=r40hcfec24a_1004 + - r-polyclip=1.10_0=r40h7525677_2 + - r-praise=1.0.0=r40hc72bb7e_1005 + - r-prettyunits=1.1.1=r40hc72bb7e_1 + - r-processx=3.7.0=r40h06615bd_0 + - r-profvis=0.3.7=r40hcfec24a_0 + - r-progress=1.2.2=r40hc72bb7e_2 + - r-promises=1.2.0.1=r40h03ef668_0 + - r-ps=1.7.1=r40h06615bd_0 + - r-psych=2.2.5=r40hc72bb7e_0 + - r-purrr=0.3.4=r40hcfec24a_1 + - r-qap=0.1_2=r40h8da6f51_0 + - r-r6=2.5.1=r40hc72bb7e_0 + - r-ragg=1.2.2=r40hc1f6985_0 + - r-rappdirs=0.3.3=r40hcfec24a_0 + - r-rcmdcheck=1.4.0=r40h785f33e_0 + - r-rcolorbrewer=1.1_3=r40h785f33e_0 + - r-rcpp=1.0.9=r40h7525677_1 + - r-rcpparmadillo=0.11.2.3.1=r40h9f5de39_0 + - r-rcppeigen=0.3.3.9.2=r40h43535f1_0 + - r-rcppnumerical=0.4_0=r40h03ef668_1 + - r-rcurl=1.98_1.8=r40h06615bd_0 + - r-readr=2.1.2=r40h03ef668_0 + - r-registry=0.5_1=r40hc72bb7e_2 + - r-rematch2=2.1.2=r40hc72bb7e_1 + - r-remotes=2.4.2=r40hc72bb7e_0 + - r-reshape=0.8.9=r40hc72bb7e_0 + - r-reshape2=1.4.4=r40h03ef668_1 + - r-rjson=0.2.21=r40h7525677_1 + - r-rlang=1.0.6=r40h7525677_0 + - r-rmarkdown=2.16=r40hc72bb7e_0 + - r-roxygen2=7.2.1=r40h7525677_0 + - r-rprojroot=2.0.3=r40hc72bb7e_0 + - r-rsqlite=2.2.8=r40h03ef668_0 + - r-rstudioapi=0.14=r40hc72bb7e_0 + - r-rvcheck=0.2.1=r40hc72bb7e_0 + - r-rversions=2.1.2=r40hc72bb7e_0 + - r-sass=0.4.2=r40h7525677_0 + - r-scales=1.2.1=r40hc72bb7e_0 + - r-scatterpie=0.1.8=r40hc72bb7e_0 + - r-seriation=1.3.6=r40h8da6f51_0 + - r-sessioninfo=1.2.2=r40hc72bb7e_0 + - r-shadowtext=0.1.2=r40hc72bb7e_0 + - r-shape=1.4.6=r40ha770c72_0 + - r-shiny=1.7.2=r40h785f33e_0 + - r-slam=0.1_50=r40hb699f27_1 + - r-snow=0.4_4=r40hc72bb7e_0 + - r-sourcetools=0.1.7=r40h03ef668_1002 + - r-sparsem=1.81=r40h859d828_0 + - r-spp=1.16.0=r40h52a8340_4 + - r-squarem=2021.1=r40hc72bb7e_0 + - r-stringi=1.7.8=r40h30a9eb7_0 + - r-stringr=1.4.1=r40hc72bb7e_0 + - r-survival=3.4_0=r40h06615bd_0 + - r-sys=3.4=r40hcfec24a_0 + - r-systemfonts=1.0.4=r40hef9c87a_0 + - r-testthat=3.1.4=r40h7525677_0 + - r-textshaping=0.3.6=r40h9354b80_2 + - r-tibble=3.1.8=r40h06615bd_0 + - r-tidygraph=1.2.2=r40h7525677_0 + - r-tidyr=1.2.1=r40h7525677_0 + - r-tidyselect=1.1.2=r40hc72bb7e_0 + - r-tinytex=0.42=r40hc72bb7e_0 + - r-tmvnsim=1.0_2=r40h859d828_3 + - r-truncnorm=1.0_8=r40hcfec24a_1002 + - r-tsp=1.2_1=r40h06615bd_0 + - r-tweenr=2.0.2=r40h7525677_0 + - r-tzdb=0.3.0=r40h7525677_0 + - r-upsetr=1.4.0=r40hc72bb7e_2 + - r-urlchecker=1.0.1=r40hc72bb7e_0 + - r-usethis=2.1.6=r40hc72bb7e_0 + - r-utf8=1.2.2=r40hcfec24a_0 + - r-vctrs=0.4.1=r40h7525677_0 + - r-viridis=0.6.2=r40hc72bb7e_0 + - r-viridislite=0.4.1=r40hc72bb7e_0 + - r-vroom=1.5.7=r40h03ef668_0 + - r-waldo=0.4.0=r40hc72bb7e_0 + - r-webshot=0.5.4=r40hc72bb7e_0 + - r-whisker=0.4=r40hc72bb7e_1 + - r-withr=2.5.0=r40hc72bb7e_0 + - r-xfun=0.33=r40h7525677_0 + - r-xml=3.99_0.10=r40h06615bd_0 + - r-xml2=1.3.3=r40h7525677_1 + - r-xopen=1.0.0=r40hc72bb7e_1003 + - r-xtable=1.8_4=r40hc72bb7e_3 + - r-yaml=2.3.5=r40h06615bd_0 + - r-yulab.utils=0.0.5=r40hc72bb7e_0 + - r-zip=2.2.1=r40h06615bd_0 + - readline=8.1.2=h0f457ee_0 + - sed=4.8=he412f7d_0 + - sysroot_linux-64=2.12=he073ed8_15 + - tk=8.6.12=h27826a3_0 + - tktable=2.10=hb7b940f_3 + - xorg-kbproto=1.0.7=h7f98852_1002 + - xorg-libice=1.0.10=h7f98852_0 + - xorg-libsm=1.2.3=hd9c2040_1000 + - xorg-libx11=1.7.2=h7f98852_0 + - xorg-libxau=1.0.9=h7f98852_0 + - xorg-libxdmcp=1.1.3=h7f98852_0 + - xorg-libxext=1.3.4=h7f98852_1 + - xorg-libxrender=0.9.10=h7f98852_1003 + - xorg-libxt=1.2.1=h7f98852_2 + - xorg-renderproto=0.11.1=h7f98852_1002 + - xorg-xextproto=7.3.0=h7f98852_1002 + - xorg-xproto=7.0.31=h7f98852_1007 + - xz=5.2.6=h166bdaf_0 + - zlib=1.2.13=h166bdaf_4 + - zstd=1.5.2=h6239696_4 +prefix: /home/dalerr/proj/lcdb-wf/env-r diff --git a/env.yml b/env.yml index f0b068e2..66a8bd01 100644 --- a/env.yml +++ b/env.yml @@ -1,312 +1,306 @@ channels: - conda-forge - bioconda - - defaults dependencies: - _libgcc_mutex=0.1 - _openmp_mutex=4.5 - _r-mutex=1.0.1 - - aiohttp=3.7.4 - - alsa-lib=1.2.3 - - amply=0.1.4 - - apipkg=1.5 + - alsa-lib=1.2.3.2 + - amply=0.1.5 - appdirs=1.4.4 - - argcomplete=1.12.3 + - argcomplete=2.0.0 - argh=0.26.2 - - async-timeout=3.0.1 - - attrs=20.3.0 - - azure-common=1.1.27 - - azure-core=1.12.0 - - azure-storage-blob=12.8.1 + - asttokens=2.0.8 + - attr=2.5.1 + - attrs=22.1.0 - backcall=0.2.0 - backports=1.0 - backports.functools_lru_cache=1.6.4 - bedtools=2.30.0 - - binutils_impl_linux-64=2.35.1 - - binutils_linux-64=2.35 - - biopython=1.78 - - blinker=1.4 + - binutils_impl_linux-64=2.39 + - binutils_linux-64=2.39 + - biopython=1.79 - boost-cpp=1.74.0 - - boto=2.49.0 - - boto3=1.17.56 - - botocore=1.20.57 - - bowtie=1.3.0 - - bowtie2=2.4.2 + - bowtie=1.3.1 + - bowtie2=2.5.0 + - brotli=1.0.9 + - brotli-bin=1.0.9 - brotlipy=0.7.0 - bwidget=1.9.14 - - bx-python=0.8.11 + - bx-python=0.9.0 - bzip2=1.0.8 - - c-ares=1.17.1 - - ca-certificates=2021.4.13 - - cachetools=4.2.1 + - c-ares=1.18.1 + - ca-certificates=2022.9.24 - cairo=1.16.0 - - certifi=2020.12.5 - - cffi=1.14.5 - - chardet=4.0.0 - - click=7.1.2 - - coincbc=2.10.5 - - colorama=0.4.4 - - coloredlogs=15.0 + - certifi=2022.9.24 + - cffi=1.15.1 + - charset-normalizer=2.1.1 + - click=8.1.3 + - coin-or-cbc=2.10.8 + - coin-or-cgl=0.60.6 + - coin-or-clp=1.17.7 + - coin-or-osi=0.108.7 + - coin-or-utils=2.11.6 + - coincbc=2.10.8 + - colorama=0.4.6 + - coloredlogs=15.0.1 - colormath=3.0.0 - commonmark=0.9.1 - - configargparse=1.4 - - cryptography=3.4.7 - - curl=7.76.1 - - cutadapt=3.4 - - cycler=0.10.0 + - configargparse=1.5.3 + - connection_pool=0.0.3 + - contourpy=1.0.6 + - cryptography=38.0.2 + - curl=7.86.0 + - cutadapt=4.1 + - cycler=0.11.0 + - dataclasses=0.8 - datrie=0.8.2 - - dbus=1.13.18 - - decorator=5.0.7 + - dbus=1.13.6 + - decorator=5.1.1 - deeptools=3.5.1 - deeptoolsintervals=0.1.9 - - dnaio=0.5.0 - - docutils=0.17.1 - - execnet=1.8.0 - - expat=2.3.0 - - fastq-screen=0.14.0 + - dnaio=0.9.1 + - docutils=0.19 + - dpath=2.0.6 + - exceptiongroup=1.0.0 + - execnet=1.9.0 + - executing=1.1.1 + - expat=2.5.0 + - fastq-screen=0.15.2 - fastqc=0.11.9 - - filelock=3.0.12 + - fftw=3.3.10 + - filelock=3.8.0 - font-ttf-dejavu-sans-mono=2.37 - - fontconfig=2.13.1 - - freetype=2.10.4 + - font-ttf-inconsolata=3.000 + - font-ttf-source-code-pro=2.038 + - font-ttf-ubuntu=0.83 + - fontconfig=2.14.1 + - fonts-conda-ecosystem=1 + - fonts-conda-forge=1 + - fonttools=4.38.0 + - freetype=2.12.1 - fribidi=1.0.10 - future=0.18.2 - gat=1.3.6 - - gcc_impl_linux-64=9.3.0 - - gcc_linux-64=9.3.0 - - gettext=0.21.0 - - gffread=0.12.1 - - gffutils=0.10.1 - - gfortran_impl_linux-64=9.3.0 - - gfortran_linux-64=9.3.0 + - gcc_impl_linux-64=10.4.0 + - gcc_linux-64=10.4.0 + - gettext=0.21.1 + - gffread=0.12.7 + - gffutils=0.11.1 + - gfortran_impl_linux-64=10.4.0 + - gfortran_linux-64=10.4.0 - giflib=5.2.1 - - gitdb=4.0.7 - - gitpython=3.1.15 - - glib=2.68.1 - - glib-tools=2.68.1 - - google-api-core=1.26.2 - - google-auth=1.29.0 - - google-cloud-core=1.6.0 - - google-cloud-storage=1.37.1 - - google-crc32c=1.1.2 - - google-resumable-media=1.2.0 - - googleapis-common-protos=1.53.0 - - graphite2=1.3.14 - - gsl=2.6 - - gst-plugins-base=1.18.4 - - gstreamer=1.18.4 - - gxx_impl_linux-64=9.3.0 - - gxx_linux-64=9.3.0 - - harfbuzz=2.8.0 - - hdf5=1.10.6 + - gitdb=4.0.9 + - gitpython=3.1.29 + - glib=2.74.1 + - glib-tools=2.74.1 + - graphite2=1.3.13 + - gsl=2.7 + - gst-plugins-base=1.18.5 + - gstreamer=1.20.3 + - gxx_impl_linux-64=10.4.0 + - gxx_linux-64=10.4.0 + - harfbuzz=4.2.0 + - hdf5=1.12.1 - hisat2=2.2.1 - - htslib=1.12 - - humanfriendly=9.1 - - icu=68.1 - - idna=2.10 - - importlib-metadata=4.0.1 - - importlib_metadata=4.0.1 + - htslib=1.16 + - humanfriendly=10.0 + - icu=69.1 + - idna=3.4 + - importlib-metadata=4.11.4 + - importlib_metadata=4.11.4 + - importlib_resources=5.10.0 - iniconfig=1.1.1 - intervalstats=1.01 - - ipython=7.22.0 - - ipython_genutils=0.2.0 + - ipython=8.6.0 - isa-l=2.30.0 - - isodate=0.6.0 - - jedi=0.18.0 - - jemalloc=5.2.1 - - jinja2=2.11.3 - - jmespath=0.10.0 - - jpeg=9d - - jsonschema=3.2.0 - - jupyter_core=4.7.1 - - kallisto=0.46.2 + - jack=1.9.18 + - jedi=0.18.1 + - jinja2=3.1.2 + - jpeg=9e + - jsonschema=4.16.0 + - jupyter_core=4.11.1 + - kallisto=0.48.0 - kernel-headers_linux-64=2.6.32 - - kiwisolver=1.3.1 - - krb5=1.17.2 - - lcms2=2.12 - - ld_impl_linux-64=2.35.1 + - keyutils=1.6.1 + - kiwisolver=1.4.4 + - krb5=1.19.3 + - lcms2=2.13.1 + - ld_impl_linux-64=2.39 + - lerc=4.0.0 - libblas=3.9.0 + - libbrotlicommon=1.0.9 + - libbrotlidec=1.0.9 + - libbrotlienc=1.0.9 + - libcap=2.64 - libcblas=3.9.0 - - libclang=11.1.0 - - libcrc32c=1.1.1 - - libcurl=7.76.1 - - libdeflate=1.7 - - libedit=3.1.20210216 + - libclang=13.0.1 + - libcups=2.3.3 + - libcurl=7.86.0 + - libdb=6.2.32 + - libdeflate=1.13 + - libedit=3.1.20191231 - libev=4.33 - libevent=2.1.10 - - libffi=3.3 - - libgcc-devel_linux-64=9.3.0 - - libgcc-ng=9.3.0 - - libgd=2.3.2 - - libgfortran-ng=9.3.0 - - libgfortran5=9.3.0 - - libglib=2.68.1 - - libgomp=9.3.0 - - libiconv=1.16 + - libffi=3.4.2 + - libflac=1.3.4 + - libgcc-devel_linux-64=10.4.0 + - libgcc-ng=12.2.0 + - libgd=2.3.3 + - libgfortran-ng=12.2.0 + - libgfortran5=12.2.0 + - libglib=2.74.1 + - libgomp=12.2.0 + - libiconv=1.17 + - libjemalloc=5.2.1 - liblapack=3.9.0 - - libllvm11=11.1.0 - - libnghttp2=1.43.0 - - libopenblas=0.3.13 - - libpng=1.6.37 - - libpq=13.2 - - libprotobuf=3.15.8 - - libssh2=1.9.0 - - libstdcxx-devel_linux-64=9.3.0 - - libstdcxx-ng=9.3.0 - - libtiff=4.2.0 + - liblapacke=3.9.0 + - libllvm13=13.0.1 + - libnghttp2=1.47.0 + - libnsl=2.0.0 + - libogg=1.3.4 + - libopenblas=0.3.21 + - libopus=1.3.1 + - libpng=1.6.38 + - libpq=14.5 + - libsanitizer=10.4.0 + - libsndfile=1.0.31 + - libsqlite=3.39.4 + - libssh2=1.10.0 + - libstdcxx-devel_linux-64=10.4.0 + - libstdcxx-ng=12.2.0 + - libtiff=4.4.0 + - libtool=2.4.6 + - libudev1=251 - libuuid=2.32.1 - - libwebp=1.2.0 - - libwebp-base=1.2.0 - - libxcb=1.14 + - libvorbis=1.3.7 + - libwebp=1.2.4 + - libwebp-base=1.2.4 + - libxcb=1.13 - libxkbcommon=1.0.3 - - libxml2=2.9.10 - - llvm-openmp=11.1.0 - - lz4-c=1.9.3 + - libxml2=2.9.12 + - libzlib=1.2.13 - lzo=2.10 - lzstring=1.0.4 - make=4.3 - - markdown=3.3.4 - - markupsafe=1.1.1 - - matplotlib=3.4.1 - - matplotlib-base=3.4.1 - - mkl=2020.4 - - more-itertools=8.7.0 - - msrest=0.6.21 - - multidict=5.1.0 - - multiqc=1.10.1 - - mysql-common=8.0.23 + - markdown=3.4.1 + - markupsafe=2.1.1 + - matplotlib=3.6.0 + - matplotlib-base=3.6.0 + - matplotlib-inline=0.1.6 + - multiqc=1.13 + - munkres=1.1.4 + - mysql-common=8.0.31 - mysql-connector-c=6.1.11 - - mysql-libs=8.0.23 - - nbformat=5.1.3 - - ncbi-ngs-sdk=2.11.0 - - ncurses=6.2 - - networkx=2.5 - - nspr=4.30 - - nss=3.64 - - numpy=1.20.2 - - oauthlib=3.1.0 - - olefile=0.46 - - openblas=0.3.13 - - openjdk=11.0.9.1 - - openssl=1.1.1k - - packaging=20.9 - - pandas=1.2.4 - - pandoc=2.12 - - pango=1.48.4 - - parso=0.8.2 - - patsy=0.5.1 - - pcre=8.44 - - pcre2=10.36 - - perl=5.26.2 - - perl-app-cpanminus=1.7044 - - perl-business-isbn=3.004 - - perl-business-isbn-data=20140910.003 - - perl-carp=1.38 - - perl-constant=1.33 - - perl-data-dumper=2.173 - - perl-encode=2.88 - - perl-exporter=5.72 - - perl-extutils-makemaker=7.36 - - perl-file-path=2.16 - - perl-file-temp=0.2304 - - perl-gd=2.68 + - mysql-libs=8.0.31 + - nbformat=5.7.0 + - ncurses=6.3 + - networkx=2.8.7 + - nspr=4.32 + - nss=3.78 + - numpy=1.23.4 + - openjdk=11.0.1 + - openjpeg=2.5.0 + - openssl=1.1.1q + - packaging=21.3 + - pandas=1.5.1 + - pandoc=2.19.2 + - pango=1.50.7 + - parso=0.8.3 + - patsy=0.5.3 + - pbzip2=1.1.13 + - pcre2=10.37 + - perl=5.32.1 + - perl-gd=2.76 - perl-gdgraph=1.54 - perl-gdtextutil=0.86 - - perl-mime-base64=3.15 - - perl-parent=0.236 - - perl-uri=1.76 - - perl-xml-libxml=2.0132 - - perl-xml-namespacesupport=1.12 - - perl-xml-sax=1.02 - - perl-xml-sax-base=1.09 - - perl-xsloader=0.24 - pexpect=4.8.0 - - picard=2.25.2 + - picard=2.27.4 - pickleshare=0.7.5 - pigz=2.6 - - pillow=8.2.0 - - pip=21.0.1 + - pillow=9.2.0 + - pip=22.3 - pixman=0.40.0 - - plotly=4.14.3 - - pluggy=0.13.1 - - preseq=3.1.2 - - prompt-toolkit=3.0.18 - - protobuf=3.15.8 - - psutil=5.8.0 + - pkgutil-resolve-name=1.3.10 + - plac=1.3.5 + - plotly=5.11.0 + - pluggy=1.0.0 + - preseq=3.2.0 + - prompt-toolkit=3.0.31 + - psutil=5.9.3 + - pthread-stubs=0.4 - ptyprocess=0.7.0 - - pulp=2.4 - - py=1.10.0 + - pulp=2.6.0 + - pulseaudio=14.0 + - pure_eval=0.2.2 - py2bit=0.3.0 - - pyasn1=0.4.8 - - pyasn1-modules=0.2.8 - - pybedtools=0.8.2 + - pybedtools=0.9.0 - pybigwig=0.3.18 - - pycparser=2.20 - - pyfaidx=0.5.9.5 - - pygments=2.8.1 - - pyjwt=2.0.1 - - pyopenssl=20.0.1 - - pyparsing=2.4.7 - - pyqt=5.12.3 - - pyqt-impl=5.12.3 - - pyqt5-sip=4.19.18 - - pyqtchart=5.12 - - pyqtwebengine=5.12.1 - - pyrsistent=0.17.3 - - pysam=0.16.0.1 + - pycparser=2.21 + - pyfaidx=0.7.1 + - pygments=2.13.0 + - pyopenssl=22.1.0 + - pyparsing=3.0.9 + - pyqt=5.15.4 + - pyqt5-sip=12.9.0 + - pyrsistent=0.18.1 + - pysam=0.19.1 - pysocks=1.7.1 - - pytest=6.2.3 - - pytest-forked=1.3.0 - - pytest-xdist=2.2.1 - - python=3.9.4 - - python-dateutil=2.8.1 - - python-isal=0.10.0 - - python-lzo=1.12 - - python_abi=3.9 - - pytz=2021.1 - - pyyaml=5.4.1 - - qt=5.12.9 - - r-base=4.0.3 + - pytest=7.2.0 + - pytest-xdist=3.0.2 + - python=3.10.6 + - python-dateutil=2.8.2 + - python-fastjsonschema=2.16.2 + - python-isal=1.1.0 + - python-lzo=1.14 + - python_abi=3.10 + - pytz=2022.5 + - pyvcf3=1.0.3 + - pyyaml=6.0 + - qt-main=5.15.2 + - r-base=4.1.3 - ratelimiter=1.2.0 - - readline=8.1 - - requests=2.25.1 - - requests-oauthlib=1.3.0 - - retrying=1.3.3 - - rich=10.1.0 - - rsa=4.7.2 - - rseqc=4.0.0 - - s3transfer=0.4.2 - - salmon=1.4.0 - - samtools=1.12 - - scipy=1.6.2 - - seaborn=0.11.1 - - seaborn-base=0.11.1 + - readline=8.1.2 + - requests=2.28.1 + - reretry=0.11.1 + - rich=12.6.0 + - rich-click=1.5.2 + - rseqc=5.0.1 + - salmon=1.9.0 + - samtools=1.16.1 + - scipy=1.9.3 + - seaborn=0.12.1 + - seaborn-base=0.12.1 - sed=4.8 - - setuptools=52.0.0 - - simplejson=3.17.2 - - six=1.15.0 - - smart_open=5.0.0 + - setuptools=65.5.0 + - simplejson=3.17.6 + - sip=6.5.1 + - six=1.16.0 + - smart_open=6.2.0 - smmap=3.0.5 - - snakemake-minimal=6.2.1 + - snakemake-minimal=7.17.1 - spectra=0.0.11 - - sqlite=3.35.5 - - sra-tools=2.10.0 - - star=2.7.8a - - statsmodels=0.12.2 + - sqlite=3.39.4 + - sra-tools=2.9.6 + - stack_data=0.5.1 + - star=2.7.10a + - statsmodels=0.13.2 - stopit=1.1.2 - subread=2.0.1 - sysroot_linux-64=2.12 - - tbb=2020.3 - - tk=8.6.10 + - tabulate=0.9.0 + - tbb=2021.6.0 + - tenacity=8.1.0 + - tk=8.6.12 - tktable=2.10 - toml=0.10.2 - - toposort=1.6 - - tornado=6.1 + - tomli=2.0.1 + - toposort=1.7 + - tornado=6.2 - trackhub=0.2.4 - - traitlets=5.0.5 - - typing-extensions=3.7.4.3 - - typing_extensions=3.7.4.3 - - tzdata=2021a + - traitlets=5.5.0 + - typing_extensions=4.4.0 + - tzdata=2022f - ucsc-bedgraphtobigwig=377 - ucsc-bedsort=377 - ucsc-bedtobigbed=377 @@ -318,30 +312,27 @@ dependencies: - ucsc-oligomatch=377 - ucsc-twobittofa=377 - ucsc-wigtobigwig=377 - - urllib3=1.26.4 + - unicodedata2=15.0.0 + - urllib3=1.26.11 - wcwidth=0.2.5 - - wheel=0.36.2 - - wrapt=1.12.1 - - xopen=1.1.0 - - xorg-fixesproto=5.0 - - xorg-inputproto=2.3.2 + - wheel=0.37.1 + - wrapt=1.14.1 + - xopen=1.6.0 - xorg-kbproto=1.0.7 - xorg-libice=1.0.10 - xorg-libsm=1.2.3 - - xorg-libx11=1.6.12 + - xorg-libx11=1.7.2 + - xorg-libxau=1.0.9 + - xorg-libxdmcp=1.1.3 - xorg-libxext=1.3.4 - - xorg-libxfixes=5.0.3 - - xorg-libxi=1.7.10 - xorg-libxrender=0.9.10 - xorg-libxt=1.2.1 - - xorg-libxtst=1.2.3 - - xorg-recordproto=1.14.2 - xorg-renderproto=0.11.1 - xorg-xextproto=7.3.0 - xorg-xproto=7.0.31 - - xz=5.2.5 + - xz=5.2.6 - yaml=0.2.5 - - yarl=1.5.1 - - zipp=3.4.1 - - zlib=1.2.11 - - zstd=1.4.9 + - yte=1.5.1 + - zipp=3.10.0 + - zlib=1.2.13 + - zstd=1.5.2 From 1748d992f42e6e6230ea21ce59552b77783982dc Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 12 Nov 2022 09:07:00 -0500 Subject: [PATCH 12/91] update conda config; hash on env-r --- .github/workflows/main.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 062fec00..5ce27779 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -13,7 +13,7 @@ jobs: uses: actions/cache@v1 with: path: /opt/conda - key: ${{ hashFiles('env.yml') }} + key: ${{ hashFiles('env.yml') }}-${{ hashFiles('env-r.yml') }} - name: Rebuild cache if: steps.cache-conda.outputs.cache-hit != 'true' @@ -21,6 +21,8 @@ jobs: conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge + conda config --set channel_priority strict + conda install mamba -y mamba env create -n lcdb-wf-test --file env.yml mamba env create -n lcdb-wf-test-r --file env-r.yml From 9daee34bf6d0128664191a7f44a9f9b357ef6c76 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 12 Nov 2022 09:09:03 -0500 Subject: [PATCH 13/91] update cache action to v3 --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 5ce27779..eea6b2e9 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -10,7 +10,7 @@ jobs: - name: Cache conda env id: cache-conda - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: /opt/conda key: ${{ hashFiles('env.yml') }}-${{ hashFiles('env-r.yml') }} From 85b7951cdc73d4fc0cb09694bb141a732fd0fc12 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 12 Nov 2022 09:11:23 -0500 Subject: [PATCH 14/91] github actions fail fast --- .github/workflows/main.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index eea6b2e9..9d4581eb 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -3,6 +3,8 @@ jobs: build: runs-on: ubuntu-latest + strategy: + fail-fast: true container: continuumio/miniconda3 steps: From cd7e6b0b6967bcf97e4be7ceed80c0ad75f90b61 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 14:42:21 -0500 Subject: [PATCH 15/91] add gres=lscratch to clusterconfig and wrapper_slurm This is because recent versions of Snakemake use tempdir, so everything (including the main process) needs to use it as well. --- include/WRAPPER_SLURM | 1 + workflows/rnaseq/config/clusterconfig.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/WRAPPER_SLURM b/include/WRAPPER_SLURM index 548f6afb..bed1df6d 100755 --- a/include/WRAPPER_SLURM +++ b/include/WRAPPER_SLURM @@ -2,6 +2,7 @@ #SBATCH --job-name="lcdb-wf" #SBATCH --partition="norm" #SBATCH --time=12:00:00 +#SBATHC --gres=lscratch:5 # make logdir if [[ ! -e logs ]]; then mkdir -p logs; fi diff --git a/workflows/rnaseq/config/clusterconfig.yaml b/workflows/rnaseq/config/clusterconfig.yaml index f002fffd..e71837e1 100644 --- a/workflows/rnaseq/config/clusterconfig.yaml +++ b/workflows/rnaseq/config/clusterconfig.yaml @@ -20,16 +20,16 @@ collectrnaseqmetrics: prefix: "--gres=lscratch:20 --time=4:00:00 --mem=32g --partition=quick" salmon_index: - prefix: "--mem=32g" + prefix: "--gres=lscratch:20 --mem=32g" salmon: - prefix: "--mem=32g" + prefix: "--gres=lscratch:20 --mem=32g" kallisto_index: - prefix: "--mem=32g" + prefix: "--gres=lscratch:20 --mem=32g" kallisto: - prefix: "--mem=32g" + prefix: "--gres=lscratch:20 --mem=32g" bigwig_neg: prefix: "--gres=lscratch:20 --mem=16g" @@ -38,7 +38,7 @@ bigwig_pos: prefix: "--gres=lscratch:20 --mem=16g" star: - prefix: "--time=8:00:00 --mem=64g" + prefix: "--gres=lscratch:20 --time=8:00:00 --mem=64g" star_index: - prefix: "--time=8:00:00 --mem=64g" + prefix: "--gres=lscratch:20 --time=8:00:00 --mem=64g" From 1f4782461f9436717c9e5d8217a30e1c5ef31885 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 14:47:43 -0500 Subject: [PATCH 16/91] fix #368 --- lib/common.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/common.py b/lib/common.py index 24b7e95c..79d43187 100644 --- a/lib/common.py +++ b/lib/common.py @@ -629,6 +629,9 @@ def load_config(config, missing_references_ok=False): # Here we populate a list of reference sections. Items later on the list # will have higher priority includes = config.get('include_references', []) + for i in includes: + if not os.path.exists(i): + raise ValueError("include_references: '{}' does not exist".format(i)) reference_sections = [] # First the directories. Directories that come earlier lose to those that From 172c4147a5f1c6040f1ecd34e49c4997b2309db3 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 15:01:40 -0500 Subject: [PATCH 17/91] fix #367 Detects SRA sampletables and raises exeception if "Layout" or "layout" column not found. --- lib/common.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/common.py b/lib/common.py index 79d43187..829cc129 100644 --- a/lib/common.py +++ b/lib/common.py @@ -719,6 +719,21 @@ def is_paired_end(sampletable, sample): sample : str Assumed to be found in the first column of `sampletable` """ + # We can't fall back to detecting PE based on two fastq files provided for + # each sample when it's an SRA sampletable (which only has SRR accessions). + # + # So detect first detect if SRA sampletable based on presence of "Run" + # column and all values of that column starting with "SRR", and then raise + # an error if the Layout column does not exist. + + if "Run" in sampletable.columns: + if all(sampletable["Run"].str.startswith("SRR")): + if "Layout" not in sampletable.columns and "layout" not in sampletable.columns: + raise ValueError( + "Sampletable appears to be SRA, but no 'Layout' column " + "found. This is required to specify single- or paired-end " + "libraries.") + row = sampletable.set_index(sampletable.columns[0]).loc[sample] if 'orig_filename_R2' in row: return True From 98f420a8d5db3d076a1fdda6cfaacb78a03f6d09 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 15:08:17 -0500 Subject: [PATCH 18/91] add .bai to patterns/targets for markduplicates; fix #351 This ensures it's always created, even if bigwigs are not created (which otherwise cause them to enter the DAG) --- workflows/chipseq/config/chipseq_patterns.yaml | 1 + workflows/rnaseq/config/rnaseq_patterns.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/workflows/chipseq/config/chipseq_patterns.yaml b/workflows/chipseq/config/chipseq_patterns.yaml index c93562f2..84d59520 100644 --- a/workflows/chipseq/config/chipseq_patterns.yaml +++ b/workflows/chipseq/config/chipseq_patterns.yaml @@ -24,6 +24,7 @@ patterns_by_sample: markduplicates: bam: 'data/chipseq_samples/{sample}/{sample}.cutadapt.unique.nodups.bam' + bai: 'data/chipseq_samples/{sample}/{sample}.cutadapt.unique.nodups.bam.bai' metrics: 'data/chipseq_samples/{sample}/{sample}.cutadapt.unique.nodups.bam.metrics' merged_techreps: 'data/chipseq_merged/{label}/{label}.cutadapt.unique.nodups.merged.bam' diff --git a/workflows/rnaseq/config/rnaseq_patterns.yaml b/workflows/rnaseq/config/rnaseq_patterns.yaml index ecd95d7d..e7a6bdd1 100644 --- a/workflows/rnaseq/config/rnaseq_patterns.yaml +++ b/workflows/rnaseq/config/rnaseq_patterns.yaml @@ -25,6 +25,7 @@ rrna: multiqc: 'data/rnaseq_aggregation/multiqc.html' markduplicates: bam: 'data/rnaseq_samples/{sample}/{sample}.cutadapt.markdups.bam' + bai: 'data/rnaseq_samples/{sample}/{sample}.cutadapt.markdups.bam.bai' metrics: 'data/rnaseq_samples/{sample}/{sample}.cutadapt.markdups.bam.metrics' collectrnaseqmetrics: metrics: 'data/rnaseq_samples/{sample}/{sample}.collectrnaseqmetrics.metrics' From 85be804a55a247c4c425afface048f955839c8f1 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 17:05:58 -0500 Subject: [PATCH 19/91] fix R tests - use fully-qualified `:::` for accessing lcdbwf pkg functions - fix function and argument names in tests --- lib/lcdbwf/DESCRIPTION | 2 +- lib/lcdbwf/R/loading.R | 2 +- lib/lcdbwf/tests/testthat/test-dds.R | 6 +++--- lib/lcdbwf/tests/testthat/test-helpers.R | 4 ++-- lib/lcdbwf/tests/testthat/test-loading.R | 12 ++++++------ 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/lcdbwf/DESCRIPTION b/lib/lcdbwf/DESCRIPTION index d6781bb2..97dc6126 100644 --- a/lib/lcdbwf/DESCRIPTION +++ b/lib/lcdbwf/DESCRIPTION @@ -23,4 +23,4 @@ License: MIT Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.1.1 +RoxygenNote: 7.2.1 diff --git a/lib/lcdbwf/R/loading.R b/lib/lcdbwf/R/loading.R index 06422033..9ff0eae1 100644 --- a/lib/lcdbwf/R/loading.R +++ b/lib/lcdbwf/R/loading.R @@ -19,7 +19,7 @@ #' Additional args are passed to DESeq2::DESeqDataSetFromMatrix. DESeqDataSetFromCombinedFeatureCounts <- function(filename, sampletable, design, - sample_func=lcdbwf.samplename, + sample_func=lcdbwf_samplename, subset_counts=FALSE, ...){ # The sampletable may be data.frame or tibble; if it's a tibble then it diff --git a/lib/lcdbwf/tests/testthat/test-dds.R b/lib/lcdbwf/tests/testthat/test-dds.R index a9043b3b..64f2da7f 100644 --- a/lib/lcdbwf/tests/testthat/test-dds.R +++ b/lib/lcdbwf/tests/testthat/test-dds.R @@ -5,13 +5,13 @@ test_that("stripping gene versions", { rownames(dds) <- paste(rownames(dds), seq(1000), sep='.') - expect_error(lcdbwf::strip_dotted_version_from_dds(dds), "Gene names don't appear to be Ensembl") + expect_error(lcdbwf:::strip_dotted_version_from_dds(dds), "Gene names don't appear to be Ensembl") - forced <- lcdbwf::strip_dotted_version_from_dds(dds, force=TRUE) + forced <- lcdbwf:::strip_dotted_version_from_dds(dds, force=TRUE) expect_equal(rownames(forced)[1], "gene1") rownames(dds) <- paste0("ENS", rownames(dds), '.', seq(1000)) - fixed <- lcdbwf::strip_dotted_version_from_dds(dds) + fixed <- lcdbwf:::strip_dotted_version_from_dds(dds) expect_equal(rownames(fixed)[1], "ENSgene1") }) diff --git a/lib/lcdbwf/tests/testthat/test-helpers.R b/lib/lcdbwf/tests/testthat/test-helpers.R index 491fc605..9938cf8f 100644 --- a/lib/lcdbwf/tests/testthat/test-helpers.R +++ b/lib/lcdbwf/tests/testthat/test-helpers.R @@ -532,8 +532,8 @@ res <- new("DESeqResults", priorInfo = list(), rownames = c("FBgn0000061", lfcThreshold = 0)) -test_that("lcdbwf.samplename works", { - res <- lcdbwf.samplename("data/rnaseq_samples/sampleNNN.cutadapt.bam") +test_that("lcdbwf_samplename works", { + res <- lcdbwf_samplename("data/rnaseq_samples/sampleNNN.cutadapt.bam") expect_equal(res, "sampleNNN") }) diff --git a/lib/lcdbwf/tests/testthat/test-loading.R b/lib/lcdbwf/tests/testthat/test-loading.R index 762813c5..9611d676 100644 --- a/lib/lcdbwf/tests/testthat/test-loading.R +++ b/lib/lcdbwf/tests/testthat/test-loading.R @@ -5,7 +5,7 @@ sampletable <- data.frame( test_that("load from combined featurecounts", { - dds <- lcdbwf::DESeqDataSetFromCombinedFeatureCounts( + dds <- lcdbwf:::DESeqDataSetFromCombinedFeatureCounts( "featurecounts.txt", sampletable, design=~group @@ -15,7 +15,7 @@ test_that("load from combined featurecounts", { test_that("load from combined featurecounts, subset sampletable, no subset.counts", { expect_error( - lcdbwf::DESeqDataSetFromCombinedFeatureCounts( + lcdbwf:::DESeqDataSetFromCombinedFeatureCounts( "featurecounts.txt", sampletable %>% dplyr::filter(samplename != "sample4"), design=~group), @@ -27,10 +27,10 @@ test_that("load from combined featurecounts, subset sampletable, no subset.count }) test_that("load from combined featurecounts, subset sampletable, with subset.counts", { - dds <- lcdbwf::DESeqDataSetFromCombinedFeatureCounts( + dds <- lcdbwf:::DESeqDataSetFromCombinedFeatureCounts( "featurecounts.txt", sampletable %>% dplyr::filter(samplename != "sample4"), - design=~group, subset.counts=TRUE) + design=~group, subset_counts=TRUE) expect_s4_class(dds, "DESeqDataSet") }) @@ -47,10 +47,10 @@ test_that("load from combined featurecounts, using custom func", { stringr::str_split(stringr::fixed('/'), simplify=TRUE) x[,1] } - dds <- lcdbwf::DESeqDataSetFromCombinedFeatureCounts( + dds <- lcdbwf:::DESeqDataSetFromCombinedFeatureCounts( "featurecounts.txt", sampletable2, - sample.func=custom.func, + sample_func=custom.func, design=~group) expect_s4_class(dds, "DESeqDataSet") From 43d8d8e0d4f58f636d67e1a260a6ad6bc5b0e9be Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 17:42:44 -0500 Subject: [PATCH 20/91] add test settings to bam coverage args --- workflows/rnaseq/Snakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index 29d5af4a..e086402d 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -921,7 +921,7 @@ rule rseqc_read_distribution: BAMCOVERAGE_ARGS = ( '--minMappingQuality 20 ' # excludes multimappers '--smoothLength 10 ' # smooth signal with specified window - '--normalizeUsing BPM ' # equivalent to TPM + # '--normalizeUsing BPM ' # equivalent to TPM # [TEST SETTINGS] ) rule bigwig_neg: From ea937ac962dc64117782370d042b87e3149ac4cc Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 17:47:29 -0500 Subject: [PATCH 21/91] initial move to using the lcdb-wf-test script for CI --- .circleci/config.yml | 7 +- test/lcdb-wf-test | 170 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+), 2 deletions(-) create mode 100755 test/lcdb-wf-test diff --git a/.circleci/config.yml b/.circleci/config.yml index c5ab1074..4a67bf43 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -98,6 +98,8 @@ variables: cp workflows/colocalization/run_test.sh $DEPLOY/workflows/references cp workflows/colocalization/run_test.sh $DEPLOY/workflows/colocalization mkdir $DEPLOY/ci + mkdir $DEPLOY/test + cp test/lcdb-wf-test $DEPLOY/test cp ci/get-data.py $DEPLOY/ci # the ./run_test.sh scripts run this @@ -105,7 +107,7 @@ variables: # download example data cd $DEPLOY - python ci/get-data.py + test/lcdb-wf-test --get-data --kinds all # -------------------------------------------------------------------------- # Run the doctests across the included modules @@ -137,7 +139,8 @@ variables: command: | cd $DEPLOY/workflows/rnaseq source activate lcdb-wf-test - ./run_test.sh --use-conda -n + $DEPLOY/test/lcdb-wf-test --rnaseq dryrun + # -------------------------------------------------------------------------- # Standard chipseq workflow chipseq-step: &chipseq-step diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test new file mode 100755 index 00000000..18e4664a --- /dev/null +++ b/test/lcdb-wf-test @@ -0,0 +1,170 @@ +#!/usr/bin/env python + +""" +This script aims to make it more convenient to run various tests using +different configs. +""" +import os +import subprocess as sp +import sys +from pathlib import Path + +HERE = Path(__file__).resolve().parent +TOPLEVEL = Path(__file__).resolve().parent.parent + + +def get_data(kinds="all", branch="master", verbose=True): + """ + Download the test data from the lcdb-test-data repo + """ + URL = "https://github.com/lcdb/lcdb-test-data/blob/{0}/data/{{}}?raw=true".format( + branch + ) + data_files = { + "rnaseq": [ + ( + "rnaseq_samples/sample1/sample1.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample1.fq.gz", + ), + ( + "rnaseq_samples/sample2/sample2.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample2.fq.gz", + ), + ( + "rnaseq_samples/sample3/sample3.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample3.fq.gz", + ), + ( + "rnaseq_samples/sample4/sample4.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample4.fq.gz", + ), + ( + "rnaseq_samples/sample1/sample1.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample1PE_1.fq.gz", + ), + ( + "rnaseq_samples/sample1/sample1.small_R2.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample1PE_2.fq.gz", + ), + ( + "rnaseq_samples/sample2/sample2.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample2PE_1.fq.gz", + ), + ( + "rnaseq_samples/sample2/sample2.small_R2.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample2PE_2.fq.gz", + ), + ], + "chipseq": [ + ( + "chipseq_samples/input_1/input_1.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_input1.fq.gz", + ), + ( + "chipseq_samples/input_2/input_2.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_input2.fq.gz", + ), + ( + "chipseq_samples/input_3/input_3.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_input3.fq.gz", + ), + ( + "chipseq_samples/ip_1/ip_1.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip1.fq.gz", + ), + ( + "chipseq_samples/ip_2/ip_2.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip2.fq.gz", + ), + ( + "chipseq_samples/ip_3/ip_3.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip3.fq.gz", + ), + ( + "chipseq_samples/ip_4/ip_4.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip4.fq.gz", + ), + ], + } + cwd = os.getcwd() + if str(cwd) != str(TOPLEVEL): + raise ValueError(f"cwd: {cwd}; Please run this from the top level of the repo") + if kinds == "all": + kinds = list(data_files.keys()) + for kind in kinds: + for fn, dest in data_files[kind]: + url = URL.format(fn) + if verbose: + print(f"downloading {url}") + if dest is None: + dest = fn + dest = Path(dest) + dest.parent.mkdir(parents=True, exist_ok=True) + sp.run(f"wget -q -O- {url} > {dest}", shell=True, check=True) + +def run_pytest(): + sp.run(["pytest", "--doctest-modules", "lib"], check=True) + +def run_url_check(): + sys.path.insert(0, str(TOPLEVEL)) + from lib.common import check_all_urls_found + check_all_urls_found() + +def r_package_check(env_r='./env-r'): + sp.run([f"{env_r}/bin/Rscript", "-e", "testthat::test('lib/lcdbwf', export_all=TRUE)"]) + +def snakefile(directory, args=None): + sp.run(['bash', 'run_test.sh'] + args, cwd=TOPLEVEL / directory, check=True) + + +if __name__ == "__main__": + + import argparse + + ap = argparse.ArgumentParser() + ap.add_argument( + "--get-data", + action="store_true", + help="Download example data. See --kinds argument for controlling this", + ) + ap.add_argument( + "--kinds", + nargs="+", + default="all", + choices=["chipseq", "rnaseq", "all"], + help="Download data for which workflows?" + ) + + + ap.add_argument('--env', default='./env', help="Specify main conda env. Default is %(default)s") + ap.add_argument('--env-r', default='./env-r', help="Specify R conda env. Default is %(default)s") + ap.add_argument('--pytest', action='store_true', help="Run pytest unit tests on lib directory") + ap.add_argument('--urls', action='store_true', help='Check all URLs found across config files') + ap.add_argument('--r-test', action='store_true', help='Run devtools::test on lcdbwf R package. Set R environment with --env-r.') + ap.add_argument('--rnaseq', choices=['dryrun', 'standard']) + ap.add_argument('--references', action='store_true') + ap.add_argument('--cpus', help='Number of cores to use when calling snakemake, default is %(default)s', default='2') + args = ap.parse_args() + if args.get_data: + get_data(kinds=args.kinds) + + if args.pytest: + run_pytest() + + if args.urls: + run_url_check() + + if args.r_test: + r_package_check() + + if args.rnaseq: + if args.rnaseq == 'dryrun': + snakefile('workflows/rnaseq', ['-n', '--use-conda']) + + if args.rnaseq == 'standard': + snakefile('workflows/rnaseq', ['--use-conda', '-j', args.cpus, '-k', '-p', '-r']) + sp.run(['python', 'rnaseq_trackhub.py', 'config/config.yaml', 'config/hub_config.yaml'], check=True, cwd='workflows/rnaseq') + + if args.references: + snakefile('workflows/references', ['--use-conda', '-j', args.cpus, '-k', '-p', '-r', '--configfile', 'config/config.yaml']) +# vim: ft=python From 0e239d6966e25e3a0f6e18c4e4f795e54df7065f Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 17:56:24 -0500 Subject: [PATCH 22/91] fix "kinds" arg --- test/lcdb-wf-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 18e4664a..2c6e3633 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -89,7 +89,7 @@ def get_data(kinds="all", branch="master", verbose=True): cwd = os.getcwd() if str(cwd) != str(TOPLEVEL): raise ValueError(f"cwd: {cwd}; Please run this from the top level of the repo") - if kinds == "all": + if "all" in kinds: kinds = list(data_files.keys()) for kind in kinds: for fn, dest in data_files[kind]: From ab28a1f6ce7c9b16f0a2a8c66ae8b9aeaf900fae Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov`> Date: Sat, 19 Nov 2022 18:06:11 -0500 Subject: [PATCH 23/91] start v1.10 changelog --- docs/changelog.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index e1fb489d..160bba54 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,5 +1,17 @@ Changelog ========= +v1.10 +----- + +General +~~~~~~~ +- Migrated to a unified testing script that simplifies local and CI testing +- Added "--gres:lscratch" to all slurm-related params +- If sampletable is from SRA, raise an error if a Layout column can't be found + (to prevent incorrect interpretation of samples as single-end) +- Fix R tests +- ensure bam indexes are made for the markdups bams, even if bigwigs are not created +- fix library loads in rnaseq.Rmd to ensure they come before parallelization configuration v1.9 ---- From 7d39e803f093f1ef61f064a07e979bea2edcab9c Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Tue, 22 Nov 2022 20:03:22 -0500 Subject: [PATCH 24/91] next round of porting all tests to test/lcdb-wf-test --- .circleci/config.yml | 95 +--- ci/ensure_docs.py | 4 + test/lcdb-wf-test | 451 ++++++++++++------ test/test_configs/star_1pass.tsv | 3 + test/test_configs/star_2pass.tsv | 3 + .../test_sra_sampletable_SE_only.tsv | 6 +- test/test_configs/two_samples.tsv | 4 +- test/workflow_test_params.yaml | 61 +++ workflows/rnaseq/run_downstream_test.sh | 8 + 9 files changed, 422 insertions(+), 213 deletions(-) mode change 100644 => 100755 ci/ensure_docs.py create mode 100644 test/test_configs/star_1pass.tsv create mode 100644 test/test_configs/star_2pass.tsv create mode 100644 test/workflow_test_params.yaml diff --git a/.circleci/config.yml b/.circleci/config.yml index 4a67bf43..b1a63dc1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -107,7 +107,7 @@ variables: # download example data cd $DEPLOY - test/lcdb-wf-test --get-data --kinds all + test/lcdb-wf-test data --kinds=all --verbose # -------------------------------------------------------------------------- # Run the doctests across the included modules @@ -117,17 +117,17 @@ variables: command: | source activate lcdb-wf-test - # Ensure that the chunks in rnaseq.Rmd have matching documentation - (cd ci && python ensure_docs.py) + # run unit tests and doctests for the modules in lib + test/lcdb-wf-test unit_tests --pytest - pytest --doctest-modules lib + # Ensure that the chunks in rnaseq.Rmd have matching documentation + test/lcdb-wf-test unit_tests --ensure-docs # find all URLs in reference configs and make sure they exist - python -c 'from lib.common import check_all_urls_found; check_all_urls_found()' + test/lcdb-wf-test unit_tests --url-check - source deactivate - source activate lcdb-wf-test-r - Rscript -e "devtools::test('lib/lcdbwf')" + # run R package unit tests using the R env + test/lcdb-wf-test unit_tests --r-test --env-r lcdb-wf-test-r # -------------------------------------------------------------------------- @@ -137,7 +137,6 @@ variables: run: name: dry run command: | - cd $DEPLOY/workflows/rnaseq source activate lcdb-wf-test $DEPLOY/test/lcdb-wf-test --rnaseq dryrun @@ -190,27 +189,29 @@ variables: command: | cd $DEPLOY/workflows/references source activate lcdb-wf-test - ./run_test.sh --use-conda -j2 -k -p -r --configfile config/config.yaml + $DEPLOY/test/lcdb-wf-test --references + # -------------------------------------------------------------------------- # Standard RNA-seq workflow rnaseq-step: &rnaseq-step run: name: rnaseq workflow command: | - cd $DEPLOY/workflows/rnaseq + cd $DEPLOY source activate lcdb-wf-test - ./run_test.sh --use-conda -j2 -k -p -r - python rnaseq_trackhub.py config/config.yaml config/hub_config.yaml + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --use-conda -j2 -k -p -r + + $DEPLOY/test/lcdb-wf-test rnaseq --trackhub # Starting in v1.6, we separate out the non-R from the # R environments. So we need to test the rnaseq.Rmd separately # outside the context of the Snakefile. source activate lcdb-wf-test-r - # This script runs the preprocessor on the Rmd files and stores them + # This run the preprocessor on the Rmd files and stores them # in a new download-test directory (see the comments in the script # for details) - bash run_downstream_test.sh + $DEPLOY/ test/lcdb-wf-test rnaseq --downstream # bundle up the entire directory to be used as an artifact tar -zcf downstream.tar.gz downstream-test/ @@ -224,63 +225,17 @@ variables: command: | ORIG=$(pwd) cd $DEPLOY - cp -r workflows/rnaseq workflows/rnaseq-misc-test - - # make a copy of the data so we can get a fresh copy each time below - cp -r workflows/rnaseq/data /tmp/data - cd workflows/rnaseq-misc-test source activate lcdb-wf-test - echo "test SRA, PE" - rm -r data - ./run_test.sh -j 1 --use-conda -k -p -r --until cutadapt \ - --configfile $ORIG/test/test_configs/test_rnaseq_config.yaml \ - --config sampletable=$ORIG/test/test_configs/test_sra_sampletable.tsv - - echo "test SRA, SE" - rm -r data - ./run_test.sh -j 1 --use-conda -k -p -r --until cutadapt \ - --configfile $ORIG/test/test_configs/test_rnaseq_config.yaml \ - --config sampletable=$ORIG/test/test_configs/test_sra_sampletable_SE_only.tsv - - echo "test strandedness, PE" - rm -r data && cp -r /tmp/data data - ./run_test.sh -j 2 --use-conda -k -p -r --until strand_check \ - --configfile $ORIG/test/test_configs/test_rnaseq_config.yaml \ - --config sampletable=$ORIG/test/test_configs/test_pe_sampletable.tsv - - echo "test strandedness, SE" - rm -r data && cp -r /tmp/data data - ./run_test.sh -j 2 --use-conda -k -p -r --until strand_check \ - --configfile $ORIG/test/test_configs/test_rnaseq_config.yaml \ - --config sampletable=$ORIG/test/test_configs/two_samples.tsv - - echo "test STAR 2-pass alignment" - rm -r data && cp -r /tmp/data data - ./run_test.sh -j 2 --use-conda -k -p -r \ - --forcerun star_pass1 \ - --configfile \ - $ORIG/test/test_configs/test_rnaseq_config.yaml \ - $ORIG/test/test_configs/star_override_2pass.yaml \ - --config sampletable=$ORIG/test/test_configs/two_samples.tsv \ - --until star_pass2 - - echo "test STAR 1-pass alignment" - rm -r data && cp -r /tmp/data data - ./run_test.sh -j 2 --use-conda -k -p -r \ - --forcerun star \ - --configfile \ - $ORIG/test/test_configs/test_rnaseq_config.yaml \ - $ORIG/test/test_configs/star_override_1pass.yaml \ - --config sampletable=$ORIG/test/test_configs/two_samples.tsv \ - --until star - - echo "test PE reads" - rm -r data && cp -r /tmp/data data - ./run_test.sh -j 2 --use-conda -k -p -r --until multiqc \ - --configfile \ - $ORIG/test/test_configs/test_rnaseq_config.yaml \ - --config sampletable=$ORIG/test/test_configs/test_pe_sampletable.tsv + # Check the help for test/lcdb-wf-test to see what args these + # provide; some of them use the --until argument to restrict the + # rules that are run. + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --sra-pe -k -r -p -j2 --use-conda + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --sra-se -k -r -p -j2 --use-conda + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --strandedness-pe -k -r -p -j2 --use-conda + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --star-2pass -k -r -p -j2 --use-conda + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --star-1pass -k -r -p -j2 --use-conda + # -------------------------------------------------------------------------- # Standard colocalization workflow diff --git a/ci/ensure_docs.py b/ci/ensure_docs.py old mode 100644 new mode 100755 index cee62f6d..232d8fab --- a/ci/ensure_docs.py +++ b/ci/ensure_docs.py @@ -96,3 +96,7 @@ def get_headings(rst, underline="-"): print("\n") print("\n".join(errors)) sys.exit(1) + +else: + print("OK: found documentation for these identified chunks:") + print("- " + "\n- ".join(sorted(headings))) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 2c6e3633..3e04c7ba 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -3,168 +3,343 @@ """ This script aims to make it more convenient to run various tests using different configs. + +data: gets example data +unit: runs unit tests (pytest, testthat, check urls, check docs) +workflows: runs workflows and downstream tasks + +rnaseq: + standard: + desc: "Run main rnaseq workflow. Supply additional snakemake args." + command: "cd workflows/rnaseq && ./run_test.sh $SNAKEMAKE_ARGS" + trackhub: + desc: "Build the trackhub for rnaseq. Requires 'standard' to have been run" + command: "cd workflows/rnaseq && python rnaseq_trackhub.py config/config.yaml config/hub_config.yaml" + """ import os +import shlex import subprocess as sp import sys from pathlib import Path +import argparse +import yaml HERE = Path(__file__).resolve().parent TOPLEVEL = Path(__file__).resolve().parent.parent +WORKFLOW_ARGS = yaml.safe_load(open(TOPLEVEL / "test" / "workflow_test_params.yaml")) + -def get_data(kinds="all", branch="master", verbose=True): +def print_header(name): + print("-" * 80) + print("lcdb-wf-test: ", name) + print("-" * 80) + + +class Runner(object): """ - Download the test data from the lcdb-test-data repo + To add a new command, create a new method with a name starting with + "_cmd_", create a new ArgumentParser. """ - URL = "https://github.com/lcdb/lcdb-test-data/blob/{0}/data/{{}}?raw=true".format( - branch + + global_parser = argparse.ArgumentParser(add_help=False) + global_parser.add_argument( + "--env", default=str(TOPLEVEL / "env"), help="Main conda environment to use" + ) + global_parser.add_argument( + "--env-r", + default=str(TOPLEVEL / "env-r"), + help="Conda environment containing R to use", + ) + global_parser.add_argument( + "--orig", + default=str(TOPLEVEL), + help=f"""If specified, you can use the special string '__ORIG__' in + command line arguments (for example, when specifying config files). + Mostly used in CI.""", ) - data_files = { - "rnaseq": [ - ( - "rnaseq_samples/sample1/sample1.small_R1.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample1.fq.gz", - ), - ( - "rnaseq_samples/sample2/sample2.small_R1.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample2.fq.gz", - ), - ( - "rnaseq_samples/sample3/sample3.small_R1.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample3.fq.gz", - ), - ( - "rnaseq_samples/sample4/sample4.small_R1.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample4.fq.gz", - ), - ( - "rnaseq_samples/sample1/sample1.small_R1.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample1PE_1.fq.gz", - ), - ( - "rnaseq_samples/sample1/sample1.small_R2.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample1PE_2.fq.gz", - ), - ( - "rnaseq_samples/sample2/sample2.small_R1.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample2PE_1.fq.gz", - ), - ( - "rnaseq_samples/sample2/sample2.small_R2.fastq.gz", - "workflows/rnaseq/data/example_data/rnaseq_sample2PE_2.fq.gz", - ), - ], - "chipseq": [ - ( - "chipseq_samples/input_1/input_1.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_input1.fq.gz", - ), - ( - "chipseq_samples/input_2/input_2.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_input2.fq.gz", - ), - ( - "chipseq_samples/input_3/input_3.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_input3.fq.gz", - ), - ( - "chipseq_samples/ip_1/ip_1.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_ip1.fq.gz", - ), - ( - "chipseq_samples/ip_2/ip_2.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_ip2.fq.gz", - ), - ( - "chipseq_samples/ip_3/ip_3.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_ip3.fq.gz", - ), - ( - "chipseq_samples/ip_4/ip_4.tiny_R1.fastq.gz", - "workflows/chipseq/data/example_data/chipseq_ip4.fq.gz", - ), - ], - } - cwd = os.getcwd() - if str(cwd) != str(TOPLEVEL): - raise ValueError(f"cwd: {cwd}; Please run this from the top level of the repo") - if "all" in kinds: - kinds = list(data_files.keys()) - for kind in kinds: - for fn, dest in data_files[kind]: - url = URL.format(fn) - if verbose: - print(f"downloading {url}") - if dest is None: - dest = fn - dest = Path(dest) - dest.parent.mkdir(parents=True, exist_ok=True) - sp.run(f"wget -q -O- {url} > {dest}", shell=True, check=True) - -def run_pytest(): - sp.run(["pytest", "--doctest-modules", "lib"], check=True) - -def run_url_check(): - sys.path.insert(0, str(TOPLEVEL)) - from lib.common import check_all_urls_found - check_all_urls_found() - -def r_package_check(env_r='./env-r'): - sp.run([f"{env_r}/bin/Rscript", "-e", "testthat::test('lib/lcdbwf', export_all=TRUE)"]) - -def snakefile(directory, args=None): - sp.run(['bash', 'run_test.sh'] + args, cwd=TOPLEVEL / directory, check=True) + def __init__(self): + parser = argparse.ArgumentParser( + description="Test runner for lcdb-wf", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) -if __name__ == "__main__": + choices = [i.replace("_cmd_", "") for i in dir(self) if i.startswith("_cmd_")] - import argparse + parser.add_argument("command", help="Subcommand to run", choices=choices) + args = parser.parse_args(sys.argv[1:2]) + if not hasattr(self, "_cmd_" + args.command): + print("Unrecognized command") + parser.print_help() + sys.exit(1) + getattr(self, "_cmd_" + args.command)() - ap = argparse.ArgumentParser() - ap.add_argument( - "--get-data", - action="store_true", - help="Download example data. See --kinds argument for controlling this", - ) - ap.add_argument( - "--kinds", - nargs="+", - default="all", - choices=["chipseq", "rnaseq", "all"], - help="Download data for which workflows?" - ) + def _cmd_data(self): + parser = argparse.ArgumentParser( + description="Download data", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[self.global_parser], + ) + + parser.add_argument( + "--kind", + default="all", + choices=["rnaseq", "chipseq"], + help="Kind of data to download", + ) + parser.add_argument( + "--branch", default="main", help="Branch from lcdb-test-data to use" + ) + parser.add_argument( + "--verbose", + action="store_true", + help="Be verbose about what's being downloaded", + ) + args = parser.parse_args(sys.argv[2:]) - ap.add_argument('--env', default='./env', help="Specify main conda env. Default is %(default)s") - ap.add_argument('--env-r', default='./env-r', help="Specify R conda env. Default is %(default)s") - ap.add_argument('--pytest', action='store_true', help="Run pytest unit tests on lib directory") - ap.add_argument('--urls', action='store_true', help='Check all URLs found across config files') - ap.add_argument('--r-test', action='store_true', help='Run devtools::test on lcdbwf R package. Set R environment with --env-r.') - ap.add_argument('--rnaseq', choices=['dryrun', 'standard']) - ap.add_argument('--references', action='store_true') - ap.add_argument('--cpus', help='Number of cores to use when calling snakemake, default is %(default)s', default='2') - args = ap.parse_args() - if args.get_data: - get_data(kinds=args.kinds) + repo = "lcdb-test-data" + URL = f"https://github.com/lcdb/{repo}/blob/{args.branch}/data/{{}}?raw=true" - if args.pytest: - run_pytest() + # This dict maps files in the `data` directory of the repo to a local + # path to which it should be downloaded. + data_files = { + "rnaseq": [ + ( + "rnaseq_samples/sample1/sample1.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample1.fq.gz", + ), + ( + "rnaseq_samples/sample2/sample2.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample2.fq.gz", + ), + ( + "rnaseq_samples/sample3/sample3.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample3.fq.gz", + ), + ( + "rnaseq_samples/sample4/sample4.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample4.fq.gz", + ), + ( + "rnaseq_samples/sample1/sample1.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample1PE_1.fq.gz", + ), + ( + "rnaseq_samples/sample1/sample1.small_R2.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample1PE_2.fq.gz", + ), + ( + "rnaseq_samples/sample2/sample2.small_R1.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample2PE_1.fq.gz", + ), + ( + "rnaseq_samples/sample2/sample2.small_R2.fastq.gz", + "workflows/rnaseq/data/example_data/rnaseq_sample2PE_2.fq.gz", + ), + ], + "chipseq": [ + ( + "chipseq_samples/input_1/input_1.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_input1.fq.gz", + ), + ( + "chipseq_samples/input_2/input_2.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_input2.fq.gz", + ), + ( + "chipseq_samples/input_3/input_3.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_input3.fq.gz", + ), + ( + "chipseq_samples/ip_1/ip_1.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip1.fq.gz", + ), + ( + "chipseq_samples/ip_2/ip_2.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip2.fq.gz", + ), + ( + "chipseq_samples/ip_3/ip_3.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip3.fq.gz", + ), + ( + "chipseq_samples/ip_4/ip_4.tiny_R1.fastq.gz", + "workflows/chipseq/data/example_data/chipseq_ip4.fq.gz", + ), + ], + } - if args.urls: - run_url_check() + if args.kind == "all": + kinds = list(data_files.keys()) + else: + kinds = [args.kind] + for kind in kinds: + for fn, dest in data_files[kind]: + url = URL.format(fn) + if args.verbose: + print(f"downloading {url}") + if dest is None: + dest = fn + dest = Path(dest) + dest.parent.mkdir(parents=True, exist_ok=True) + sp.run( + f"wget -q -O- {url} > {dest}", shell=True, check=True, cwd=TOPLEVEL + ) - if args.r_test: - r_package_check() + def _cmd_unit_tests(self): + parser = argparse.ArgumentParser( + description="Run various unit tests and checks", + parents=[self.global_parser], + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + parser.add_argument( + "--pytest", + action="store_true", + help="Run pytest unit tests and module doctests on lib/ directory", + ) + parser.add_argument( + "--url-check", + action="store_true", + help="Ensure that URLs in config files (e.g., to genome references) are still valid", + ) + parser.add_argument( + "--r-test", + action="store_true", + help="Run devtools::test on the lcdbwf R package. Be sure to check --env-r.", + ) - if args.rnaseq: - if args.rnaseq == 'dryrun': - snakefile('workflows/rnaseq', ['-n', '--use-conda']) + parser.add_argument( + "--ensure-docs", + action="store_true", + help="Ensure that all named R chunks are documented in the online help docs", + ) - if args.rnaseq == 'standard': - snakefile('workflows/rnaseq', ['--use-conda', '-j', args.cpus, '-k', '-p', '-r']) - sp.run(['python', 'rnaseq_trackhub.py', 'config/config.yaml', 'config/hub_config.yaml'], check=True, cwd='workflows/rnaseq') + args = parser.parse_args(sys.argv[2:]) + + if args.pytest: + print_header("pytest") + sp.run(["pytest", "--doctest-modules", "lib"], check=True, cwd=TOPLEVEL) + + if args.url_check: + print_header("url check") + sys.path.insert(0, str(TOPLEVEL)) + from lib.common import check_all_urls_found + + check_all_urls_found() + + if args.r_test: + sp.run( + [ + f"{args.env_r}/bin/Rscript", + "-e", + "devtools::test('lib/lcdbwf', export_all=TRUE)", + ] + ) + + if args.ensure_docs: + sp.run(["./ensure_docs.py"], check=True, cwd=TOPLEVEL / "ci") + + def _cmd_rnaseq(self): + parser = argparse.ArgumentParser( + description="Run rnaseq workflow and downstream tests", + parents=[self.global_parser], + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + parser.add_argument( + "--run-workflow", + action="store_true", + help="""Run rnaseq workflow using the run_tesh.sh harness, which + edits the Snakefile to use test settings before running. Additional + args not specified here are passed to Snakemake, or use other flags + below to easily specify config sets.""", + ) + parser.add_argument( + "--trackhub", action="store_true", help="Build the rnaseq track hub" + ) + parser.add_argument( + "--downstream", + action="store_true", + help="""Run the downstream rnaseq.Rmd, via + workflows/rnaseq/run_downstream_test.sh. This runs the preprocessor + on the files to allow the use of # [TEST SETTINGS] comments; see + that script for detail.s Make sure --env-r is set correctly""", + ) + group = parser.add_mutually_exclusive_group() + workflow_prefix = "bash run_test.sh" + workflow_dir = "workflow/rnaseq" + for key, val in WORKFLOW_ARGS["rnaseq"].items(): + group.add_argument( + "--" + key, + action="store_const", + default="", + dest="additional_args", + const=val["args"], + help=f"""GROUP: Part of mutually exclusive rnaseq group. Runs the + following: cd {workflow_dir} && {workflow_prefix} + {val['args']}. See workflow_test_params.yaml for details.""", + ) + + args, extra = parser.parse_known_args(sys.argv[2:]) + + if args.run_workflow: + print(args) + if args.additional_args: + extra.extend(shlex.split(args.additional_args)) + + extra = [i.replace("__ORIG__", args.orig) for i in extra] + strargs = " ".join(extra) + print_header(f"Running workflows/rnaseq/run_test.sh with args: {strargs}") + sp.run( + shlex.split(workflow_prefix) + extra, + cwd=TOPLEVEL / "workflows/rnaseq", + check=True, + ) + if args.trackhub: + print_header("running trackhub script") + sp.run( + [ + "python", + "rnaseq_trackhub.py", + "config/config.yaml", + "config/hub_config.yaml", + ], + check=True, + cwd="workflows/rnaseq", + ) + print("See workflows/rnaseq/staging for the built trackhub") + + if args.downstream: + print_header("running downstream rnaseq.Rmd") + sp.run( + [ + "bash", + "run_downstream_test.sh", + ], + env={"ENV_R": args.env_r, **os.environ}, + cwd="workflows/rnaseq", + ) + + +if __name__ == "__main__": + Runner() +if __name__ == "__mn__": if args.references: - snakefile('workflows/references', ['--use-conda', '-j', args.cpus, '-k', '-p', '-r', '--configfile', 'config/config.yaml']) + print_header("references") + snakefile( + "workflows/references", + snakemake_args=[ + "--use-conda", + "-j", + args.cpus, + "-k", + "-p", + "-r", + "--configfile", + "config/config.yaml", + ], + ) # vim: ft=python diff --git a/test/test_configs/star_1pass.tsv b/test/test_configs/star_1pass.tsv new file mode 100644 index 00000000..3c73275e --- /dev/null +++ b/test/test_configs/star_1pass.tsv @@ -0,0 +1,3 @@ +samplename group layout orig_filename +sample1-star-1pass control SE data/example_data/rnaseq_sample1PE_1.fq.gz +sample2-star-1pass control SE data/example_data/rnaseq_sample2.fq.gz diff --git a/test/test_configs/star_2pass.tsv b/test/test_configs/star_2pass.tsv new file mode 100644 index 00000000..8cf98eb0 --- /dev/null +++ b/test/test_configs/star_2pass.tsv @@ -0,0 +1,3 @@ +samplename group layout orig_filename +sample1-star-2pass control SE data/example_data/rnaseq_sample1PE_1.fq.gz +sample2-star-2pass control SE data/example_data/rnaseq_sample2.fq.gz diff --git a/test/test_configs/test_sra_sampletable_SE_only.tsv b/test/test_configs/test_sra_sampletable_SE_only.tsv index 486e9396..6b403643 100644 --- a/test/test_configs/test_sra_sampletable_SE_only.tsv +++ b/test/test_configs/test_sra_sampletable_SE_only.tsv @@ -1,4 +1,4 @@ samplename Run layout -sra1 SRR948304 SINGLE -sra2 SRR948304 SINGLE -sra3 SRR948305 SINGLE +sra4 SRR948304 SINGLE +sra5 SRR948304 SINGLE +sra6 SRR948305 SINGLE diff --git a/test/test_configs/two_samples.tsv b/test/test_configs/two_samples.tsv index 30886104..57ccb7d9 100644 --- a/test/test_configs/two_samples.tsv +++ b/test/test_configs/two_samples.tsv @@ -1,3 +1,3 @@ samplename group layout orig_filename -sample1 control SE data/example_data/rnaseq_sample1PE_1.fq.gz -sample2 control SE data/example_data/rnaseq_sample2.fq.gz +sample1_of_2 control SE data/example_data/rnaseq_sample1PE_1.fq.gz +sample2_of_2 control SE data/example_data/rnaseq_sample2.fq.gz diff --git a/test/workflow_test_params.yaml b/test/workflow_test_params.yaml new file mode 100644 index 00000000..f396f9d3 --- /dev/null +++ b/test/workflow_test_params.yaml @@ -0,0 +1,61 @@ +# NOTE: +# +# The "__ORIG__" placeholder is a mechanism for allowing the CI to run config +# files from a full cloned repo within a deployed directory. The __ORIG__ will +# be filled in with the lcdb-wf-test "--orig" argument, which defaults to the +# top-level repo dir. +# +# In other words, "__ORIG__/" will be replaced with the top-level dir unless +# you specify --orig. +# +# +# NOTE: +# These arguments are pulled into the test/lcdb-wf-test runner script +# automatically. + +rnaseq: + sra-pe: + args: | + --until cutadapt + --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml + --config sampletable=__ORIG__/test/test_configs/test_sra_sampletable.tsv + + sra-se: + args: | + --until cutadapt + --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml + --config sampletable=__ORIG__/test/test_configs/test_sra_sampletable_SE_only.tsv + + strandedness-pe: + args: | + --until strand_check + --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml + --config sampletable=__ORIG__/test/test_configs/test_pe_sampletable.tsv + + strandedness-se: + args: | + --until strand_check + --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml + --config sampletable=__ORIG__/test/test_configs/two_samples.tsv + + star-2pass: + args: | + --until star_pass2 + --configfile + __ORIG__/test/test_configs/test_rnaseq_config.yaml + __ORIG__/test/test_configs/star_override_2pass.yaml + --config sampletable=__ORIG__/test/test_configs/star_2pass.tsv + + star-1pass: + args: | + --until star + --configfile + __ORIG__/test/test_configs/test_rnaseq_config.yaml + __ORIG__/test/test_configs/star_override_1pass.yaml + --config sampletable=__ORIG__/test/test_configs/star_1pass.tsv + +pe: + args: | + --until multiqc + --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml + --config sampletable=__ORIG__/test/test_configs/test_pe_sampletable.tsv diff --git a/workflows/rnaseq/run_downstream_test.sh b/workflows/rnaseq/run_downstream_test.sh index 6440d5a1..57ad932d 100755 --- a/workflows/rnaseq/run_downstream_test.sh +++ b/workflows/rnaseq/run_downstream_test.sh @@ -19,4 +19,12 @@ done cp downstream/config.yaml downstream-test/config.yaml cp downstream/text.yaml downstream-test/text.yaml +if [ -z "$ENV_R" ]; then + echo Please set \$ENV_R to the conda env containing R and retry. Exiting. + exit 1 +fi + +eval "$(conda shell.bash hook)" +conda activate $ENV_R Rscript -e "rmarkdown::render('downstream-test/rnaseq.Rmd')" +conda deactivate From 6f90e6739492f5cfde324504cac4661ce37c7da9 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Tue, 22 Nov 2022 20:51:47 -0500 Subject: [PATCH 25/91] fix ci config typo --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b1a63dc1..f2b02c6d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -211,7 +211,7 @@ variables: # This run the preprocessor on the Rmd files and stores them # in a new download-test directory (see the comments in the script # for details) - $DEPLOY/ test/lcdb-wf-test rnaseq --downstream + $DEPLOY/test/lcdb-wf-test rnaseq --downstream # bundle up the entire directory to be used as an artifact tar -zcf downstream.tar.gz downstream-test/ From ece7c1a62aa8108b4082c802a92dacb2dfc13956 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Tue, 22 Nov 2022 21:00:29 -0500 Subject: [PATCH 26/91] remove redundant libsizes rules addresses #342 --- workflows/chipseq/Snakefile | 56 ------------------------------------- workflows/rnaseq/Snakefile | 56 ------------------------------------- 2 files changed, 112 deletions(-) diff --git a/workflows/chipseq/Snakefile b/workflows/chipseq/Snakefile index 401448c6..532bceae 100644 --- a/workflows/chipseq/Snakefile +++ b/workflows/chipseq/Snakefile @@ -59,9 +59,7 @@ def wrapper_for(path): final_targets = utils.flatten(( c.targets['bam'], utils.flatten(c.targets['fastqc']), - utils.flatten(c.targets['libsizes']), [c.targets['fastq_screen']], - [c.targets['libsizes_table']], [c.targets['multiqc']], utils.flatten(c.targets['markduplicates']), utils.flatten(c.targets['bigwig']), @@ -320,62 +318,8 @@ rule fastq_screen: wrapper_for('fastq_screen/wrapper.py') -rule libsizes_table: - """ - Aggregate fastq and bam counts in to a single table - """ - input: - utils.flatten(c.targets['libsizes']) - output: - json=c.patterns['libsizes_yaml'], - tsv=c.patterns['libsizes_table'] - run: - def sample(f): - return os.path.basename(os.path.dirname(f)) - - def million(f): - return float(open(f).read()) / 1e6 - - def stage(f): - return os.path.basename(f).split('.', 1)[1].replace('.gz', '').replace('.count', '') - - df = pd.DataFrame(dict(filename=list(map(str, input)))) - df['sample'] = df.filename.apply(sample) - df['million'] = df.filename.apply(million) - df['stage'] = df.filename.apply(stage) - df = df.set_index('filename') - df = df.pivot('sample', columns='stage', values='million') - - # make nicer column names - convert = { - 'fastq.libsize': 'stage1_raw', - 'cutadapt.fastq.libsize' : 'stage2_trimmed', - 'cutadapt.bam.libsize': 'stage3_aligned', - 'cutadapt.unique.bam.libsize': 'stage4_unique', - 'cutadapt.unique.nodups.bam.libsize': 'stage5_nodups', - } - - df.columns = [convert[i] for i in df.columns] - - df.to_csv(output.tsv, sep='\t') - y = { - 'id': 'libsizes_table', - 'section_name': 'Library sizes', - 'description': 'Library sizes at various stages of the pipeline', - 'plot_type': 'table', - 'pconfig': { - 'id': 'libsizes_table_table', - 'title': 'Library size table', - 'min': 0 - }, - 'data': yaml.load(df.transpose().to_json(), Loader=yaml.FullLoader), - } - with open(output.json, 'w') as fout: - yaml.dump(y, fout, default_flow_style=False) - multiqc_inputs = [ utils.flatten(c.targets['fastqc']) + - utils.flatten(c.targets['libsizes_yaml']) + utils.flatten(c.targets['cutadapt']) + utils.flatten(c.targets['bam']) + utils.flatten(c.targets['markduplicates']) + diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index e086402d..a41b28e9 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -51,9 +51,7 @@ def wrapper_for(path): # See "patterns and targets" in the documentation for what's going on here. final_targets = utils.flatten(( utils.flatten(c.targets['fastqc']), - utils.flatten(c.targets['libsizes']), [c.targets['fastq_screen']], - [c.targets['libsizes_table']], [c.targets['rrna_percentages_table']], [c.targets['multiqc']], utils.flatten(c.targets['featurecounts']), @@ -625,59 +623,6 @@ rule rrna_libsizes_table: yaml.dump(y, fout, default_flow_style=False) -rule libsizes_table: - """ - Aggregate fastq and bam counts in to a single table - """ - input: - utils.flatten(c.targets['libsizes']) - output: - json=c.patterns['libsizes_yaml'], - tsv=c.patterns['libsizes_table'] - run: - def sample(f): - return os.path.basename(os.path.dirname(f)) - - def million(f): - return float(open(f).read()) / 1e6 - - def stage(f): - return os.path.basename(f).split('.', 1)[1].replace('.gz', '').replace('.count', '') - - df = pd.DataFrame(dict(filename=list(map(str, input)))) - df['sample'] = df.filename.apply(sample) - df['million'] = df.filename.apply(million) - df['stage'] = df.filename.apply(stage) - df = df.set_index('filename') - df = df.pivot('sample', columns='stage', values='million') - - # make nicer column names - convert = { - 'fastq.libsize': 'stage1_raw', - 'cutadapt.fastq.libsize' : 'stage2_trimmed', - 'cutadapt.bam.libsize': 'stage3_aligned', - } - - df.columns = [convert[i] for i in df.columns] - - df.to_csv(output.tsv, sep='\t') - y = { - 'id': 'libsizes_table', - 'section_name': 'Library sizes', - 'description': 'Library sizes at various stages of the pipeline', - 'plot_type': 'table', - 'pconfig': { - 'id': 'libsizes_table_table', - 'title': 'Library size table', - 'min': 0 - }, - 'data': yaml.load(df.transpose().to_json(), Loader=yaml.FullLoader), - } - with open(output.json, 'w') as fout: - yaml.dump(y, fout, default_flow_style=False) - - - rule multiqc: """ Aggregate various QC stats and logs into a single HTML report with MultiQC @@ -687,7 +632,6 @@ rule multiqc: input: files=( utils.flatten(c.targets['fastqc']) + - utils.flatten(c.targets['libsizes_yaml']) + utils.flatten(c.targets['rrna_percentages_yaml']) + utils.flatten(c.targets['cutadapt']) + utils.flatten(c.targets['featurecounts']) + From 33f2948d0fb3ad44e09b9ad7d8325bb62535831e Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Wed, 23 Nov 2022 10:14:19 -0500 Subject: [PATCH 27/91] default to correct branch --- test/lcdb-wf-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 3e04c7ba..188cd502 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -90,7 +90,7 @@ class Runner(object): help="Kind of data to download", ) parser.add_argument( - "--branch", default="main", help="Branch from lcdb-test-data to use" + "--branch", default="master", help="Branch from lcdb-test-data to use" ) parser.add_argument( "--verbose", From fd56a35e4689a85db2a7fe7a0afe3be7e723f78e Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Wed, 23 Nov 2022 10:15:07 -0500 Subject: [PATCH 28/91] improve docs and help for testing script --- test/lcdb-wf-test | 12 +++++++++--- test/workflow_test_params.yaml | 26 ++++++++++++++++---------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 188cd502..38c59b7b 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -203,12 +203,13 @@ class Runner(object): parser.add_argument( "--url-check", action="store_true", - help="Ensure that URLs in config files (e.g., to genome references) are still valid", + help="Ensure that URLs found in config files (e.g., to genome references) are still valid", ) parser.add_argument( "--r-test", action="store_true", - help="Run devtools::test on the lcdbwf R package. Be sure to check --env-r.", + help="""Run devtools::test on the lcdbwf R package. Activates the + conda environment specified by --env-r just before running.""", ) parser.add_argument( @@ -243,6 +244,10 @@ class Runner(object): sp.run(["./ensure_docs.py"], check=True, cwd=TOPLEVEL / "ci") def _cmd_rnaseq(self): + """ + This function handles the "rnaseq" subcommand. + """ + parser = argparse.ArgumentParser( description="Run rnaseq workflow and downstream tests", parents=[self.global_parser], @@ -267,6 +272,7 @@ class Runner(object): on the files to allow the use of # [TEST SETTINGS] comments; see that script for detail.s Make sure --env-r is set correctly""", ) + group = parser.add_mutually_exclusive_group() workflow_prefix = "bash run_test.sh" workflow_dir = "workflow/rnaseq" @@ -279,7 +285,7 @@ class Runner(object): const=val["args"], help=f"""GROUP: Part of mutually exclusive rnaseq group. Runs the following: cd {workflow_dir} && {workflow_prefix} - {val['args']}. See workflow_test_params.yaml for details.""", + {val['args']}. {val['desc']} Configured in workflow_test_params.yaml.""", ) args, extra = parser.parse_known_args(sys.argv[2:]) diff --git a/test/workflow_test_params.yaml b/test/workflow_test_params.yaml index f396f9d3..f04cfe40 100644 --- a/test/workflow_test_params.yaml +++ b/test/workflow_test_params.yaml @@ -1,44 +1,48 @@ +# This file configures arguments for running various workflows that are pulled +# into the test/lcdb-wf-test runner script automatically. It is a way of +# # NOTE: # # The "__ORIG__" placeholder is a mechanism for allowing the CI to run config -# files from a full cloned repo within a deployed directory. The __ORIG__ will -# be filled in with the lcdb-wf-test "--orig" argument, which defaults to the -# top-level repo dir. -# -# In other words, "__ORIG__/" will be replaced with the top-level dir unless -# you specify --orig. +# files living in a full cloned repo, but within a (different) deployed +# directory. The __ORIG__ indicates the full cloned repo and will be filled in +# with the lcdb-wf-test "--orig" argument, which defaults to the top-level repo +# dir. # -# -# NOTE: -# These arguments are pulled into the test/lcdb-wf-test runner script -# automatically. +# For local testing, don't specify --orig and leave the default. This will +# automatically fill in the top-level dir of the current repo. rnaseq: sra-pe: + desc: Tests paired-end data downloaded directly from SRA. Only run until the cutadapt rule. args: | --until cutadapt --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml --config sampletable=__ORIG__/test/test_configs/test_sra_sampletable.tsv sra-se: + desc: Tests single-end data downloaded directly from SRA. Only run until the cutadapt rule. args: | --until cutadapt --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml --config sampletable=__ORIG__/test/test_configs/test_sra_sampletable_SE_only.tsv strandedness-pe: + desc: Tests running the strandedness pre-check using paired-end data. args: | --until strand_check --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml --config sampletable=__ORIG__/test/test_configs/test_pe_sampletable.tsv strandedness-se: + desc: Tests running the strandedness pre-check using single-ended data. args: | --until strand_check --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml --config sampletable=__ORIG__/test/test_configs/two_samples.tsv star-2pass: + desc: Tests running STAR in 2-pass mode. Only runs until the star_pass2 rule. args: | --until star_pass2 --configfile @@ -47,6 +51,7 @@ rnaseq: --config sampletable=__ORIG__/test/test_configs/star_2pass.tsv star-1pass: + desc: Tests running STAR in 1-pass (default) mode. Only runs until the star rule. args: | --until star --configfile @@ -55,6 +60,7 @@ rnaseq: --config sampletable=__ORIG__/test/test_configs/star_1pass.tsv pe: + desc: Tests paired-end data args: | --until multiqc --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml From c6765a16e63cb98cfb1d33480c785e706b27b33c Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Wed, 23 Nov 2022 10:15:24 -0500 Subject: [PATCH 29/91] ensure configured env-r is activated before testing lib --- test/lcdb-wf-test | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 38c59b7b..2a96dd7b 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -232,12 +232,14 @@ class Runner(object): check_all_urls_found() if args.r_test: + print_header("R test") sp.run( - [ - f"{args.env_r}/bin/Rscript", - "-e", - "devtools::test('lib/lcdbwf', export_all=TRUE)", - ] + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env_r} " + '''&& Rscript -e "devtools::test('lib/lcdbwf', export_all=TRUE)"''', + shell=True, + check=True, + executable="/bin/bash" ) if args.ensure_docs: From 0abaa4604e87010f415ef1af421d5c06bbb7faaf Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Wed, 23 Nov 2022 20:55:46 -0500 Subject: [PATCH 30/91] improvements to testing config and script --- .circleci/config.yml | 27 ++++++++------ test/lcdb-wf-test | 47 +++++++++++++++---------- workflows/rnaseq/run_downstream_test.sh | 8 ----- 3 files changed, 44 insertions(+), 38 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f2b02c6d..b43f5828 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -50,6 +50,8 @@ variables: # x11-utils required to avoid R::png() segfaulting apt update && apt install -y locales-all locales x11-utils echo 'export DEPLOY=/tmp/lcdb-wf-test' >> $BASH_ENV + echo 'export LCDBWF_ENV=lcdb-wf-test' >> $BASH_ENV + echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV echo 'export LC_ALL=en_US.utf8' >> $BASH_ENV echo 'export LANG=en_US.utf8' >> $BASH_ENV source $BASH_ENV @@ -72,8 +74,8 @@ variables: conda config --system --add channels bioconda conda config --system --add channels conda-forge conda install mamba -y - mamba env create -n lcdb-wf-test --file env.yml - mamba env create -n lcdb-wf-test-r --file env-r.yml + mamba env create -n $LCDBWF_ENV --file env.yml + mamba env create -n $LCDBWF_ENV_R --file env-r.yml fi # -------------------------------------------------------------------------- @@ -127,7 +129,7 @@ variables: test/lcdb-wf-test unit_tests --url-check # run R package unit tests using the R env - test/lcdb-wf-test unit_tests --r-test --env-r lcdb-wf-test-r + test/lcdb-wf-test unit_tests --r-test # -------------------------------------------------------------------------- @@ -199,9 +201,9 @@ variables: command: | cd $DEPLOY source activate lcdb-wf-test - $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --use-conda -j2 -k -p -r + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --use-conda -j2 -k -p -r --orig $ORIG - $DEPLOY/test/lcdb-wf-test rnaseq --trackhub + $DEPLOY/test/lcdb-wf-test rnaseq --trackhub --orig $ORIG # Starting in v1.6, we separate out the non-R from the # R environments. So we need to test the rnaseq.Rmd separately @@ -229,12 +231,15 @@ variables: # Check the help for test/lcdb-wf-test to see what args these # provide; some of them use the --until argument to restrict the - # rules that are run. - $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --sra-pe -k -r -p -j2 --use-conda - $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --sra-se -k -r -p -j2 --use-conda - $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --strandedness-pe -k -r -p -j2 --use-conda - $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --star-2pass -k -r -p -j2 --use-conda - $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --star-1pass -k -r -p -j2 --use-conda + # rules that are run. Note the use of --orig $ORIG to use the test + # configs from the original clone rather than the deployed directory. + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --sra-pe -k -r -p -j2 --use-conda --orig $ORIG + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --sra-se -k -r -p -j2 --use-conda --orig $ORIG + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --strandedness-pe -k -r -p -j2 --use-conda --orig $ORIG + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --star-2pass -k -r -p -j2 --use-conda --orig $ORIG + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --star-1pass -k -r -p -j2 --use-conda --orig $ORIG + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --pe -k -r -p -j2 --use-conda --orig $ORIG + # -------------------------------------------------------------------------- diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 2a96dd7b..fb7adf39 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -43,27 +43,32 @@ class Runner(object): "_cmd_", create a new ArgumentParser. """ + default_env = os.getenv("LCDBWF_ENV", str(TOPLEVEL / "env")) + default_env_r = os.getenv("LCDBWF_ENV_R", str(TOPLEVEL / "env-r")) global_parser = argparse.ArgumentParser(add_help=False) global_parser.add_argument( - "--env", default=str(TOPLEVEL / "env"), help="Main conda environment to use" + "--env", default=default_env, + help=f"""Main conda environment to use. Override + by setting $LCDBWF_ENV or override that by explicity setting --env. Currently will use {default_env}""" ) global_parser.add_argument( "--env-r", - default=str(TOPLEVEL / "env-r"), - help="Conda environment containing R to use", + default=default_env_r, + help=f"""Main R conda environment to use. Override by setting + $LCDBWF_ENV_R or override that by explicity setting --env-r. Currently + will use {default_env_r}""" ) global_parser.add_argument( "--orig", default=str(TOPLEVEL), help=f"""If specified, you can use the special string '__ORIG__' in - command line arguments (for example, when specifying config files). - Mostly used in CI.""", + command line arguments which will be filled in with the value provided + here. Mostly used in CI.""", ) def __init__(self): parser = argparse.ArgumentParser( description="Test runner for lcdb-wf", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) choices = [i.replace("_cmd_", "") for i in dir(self) if i.startswith("_cmd_")] @@ -79,7 +84,6 @@ class Runner(object): def _cmd_data(self): parser = argparse.ArgumentParser( description="Download data", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, parents=[self.global_parser], ) @@ -193,7 +197,6 @@ class Runner(object): parser = argparse.ArgumentParser( description="Run various unit tests and checks", parents=[self.global_parser], - formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) parser.add_argument( "--pytest", @@ -253,7 +256,6 @@ class Runner(object): parser = argparse.ArgumentParser( description="Run rnaseq workflow and downstream tests", parents=[self.global_parser], - formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) parser.add_argument( "--run-workflow", @@ -272,9 +274,15 @@ class Runner(object): help="""Run the downstream rnaseq.Rmd, via workflows/rnaseq/run_downstream_test.sh. This runs the preprocessor on the files to allow the use of # [TEST SETTINGS] comments; see - that script for detail.s Make sure --env-r is set correctly""", + that script for details. Activates environment configured in + --env-r before running.""", ) + # Here we programmatically build the parser from the + # workflow_test_params.yaml file. They are added to + # a mutually-exclusive group to avoid overwriting each others' config + # file params. They all write their params to the args.additional_args + # attribute. group = parser.add_mutually_exclusive_group() workflow_prefix = "bash run_test.sh" workflow_dir = "workflow/rnaseq" @@ -285,9 +293,10 @@ class Runner(object): default="", dest="additional_args", const=val["args"], - help=f"""GROUP: Part of mutually exclusive rnaseq group. Runs the - following: cd {workflow_dir} && {workflow_prefix} - {val['args']}. {val['desc']} Configured in workflow_test_params.yaml.""", + help=f"""GROUP: Part of mutually exclusive rnaseq group. Runs + the following: cd {workflow_dir} && {workflow_prefix} + {val['args']}. {val['desc']} Configured in + workflow_test_params.yaml.""", ) args, extra = parser.parse_known_args(sys.argv[2:]) @@ -322,12 +331,12 @@ class Runner(object): if args.downstream: print_header("running downstream rnaseq.Rmd") sp.run( - [ - "bash", - "run_downstream_test.sh", - ], - env={"ENV_R": args.env_r, **os.environ}, - cwd="workflows/rnaseq", + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env_r} " + "&& (cd workflows/rnaseq && bash run_downstream_test.sh)", + shell=True, + check=True, + executable="/bin/bash" ) diff --git a/workflows/rnaseq/run_downstream_test.sh b/workflows/rnaseq/run_downstream_test.sh index 57ad932d..ba0fa79b 100755 --- a/workflows/rnaseq/run_downstream_test.sh +++ b/workflows/rnaseq/run_downstream_test.sh @@ -18,13 +18,5 @@ done # Make sure we move the config file there too cp downstream/config.yaml downstream-test/config.yaml cp downstream/text.yaml downstream-test/text.yaml - -if [ -z "$ENV_R" ]; then - echo Please set \$ENV_R to the conda env containing R and retry. Exiting. - exit 1 -fi - -eval "$(conda shell.bash hook)" -conda activate $ENV_R Rscript -e "rmarkdown::render('downstream-test/rnaseq.Rmd')" conda deactivate From 6a5413bfc9753e8a7f528e354bc2c4604d563990 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Wed, 23 Nov 2022 21:13:19 -0500 Subject: [PATCH 31/91] minor tweaks to r tests --- lib/lcdbwf/R/loading.R | 3 +++ workflows/rnaseq/run_downstream_test.sh | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/lcdbwf/R/loading.R b/lib/lcdbwf/R/loading.R index 9ff0eae1..68fcc818 100644 --- a/lib/lcdbwf/R/loading.R +++ b/lib/lcdbwf/R/loading.R @@ -22,6 +22,9 @@ DESeqDataSetFromCombinedFeatureCounts <- function(filename, sampletable, sample_func=lcdbwf_samplename, subset_counts=FALSE, ...){ + if (is.null(subset_counts)){ + subset_counts <- FALSE + } # The sampletable may be data.frame or tibble; if it's a tibble then it # likely doesn't have rownames. So in this function we assume that it's the # first column that contains the samplenames. diff --git a/workflows/rnaseq/run_downstream_test.sh b/workflows/rnaseq/run_downstream_test.sh index ba0fa79b..7544c5dd 100755 --- a/workflows/rnaseq/run_downstream_test.sh +++ b/workflows/rnaseq/run_downstream_test.sh @@ -19,4 +19,3 @@ done cp downstream/config.yaml downstream-test/config.yaml cp downstream/text.yaml downstream-test/text.yaml Rscript -e "rmarkdown::render('downstream-test/rnaseq.Rmd')" -conda deactivate From b088449135da4e7e02ec81d9be975066e5f70e75 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Wed, 23 Nov 2022 21:21:38 -0500 Subject: [PATCH 32/91] minor test fixes --- .circleci/config.yml | 9 ++++----- test/lcdb-wf-test | 13 ------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b43f5828..e3ba5d12 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,7 +48,7 @@ variables: name: Set path command: | # x11-utils required to avoid R::png() segfaulting - apt update && apt install -y locales-all locales x11-utils + apt update && apt install -y locales-all locales rsync x11-utils echo 'export DEPLOY=/tmp/lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV=lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV @@ -62,10 +62,6 @@ variables: name: Setup conda command: | set -e - apt update - apt install -y locales-all locales - export LC_ALL=en_US.utf8 - export LANG=en_US.utf8 # We only do the installation if the conda environment does not already # exist. if ! conda env list | grep -q "lcdb-wf-test"; then @@ -119,6 +115,9 @@ variables: command: | source activate lcdb-wf-test + echo LCDBWF_ENV_R=$LCDBWF_ENV_R + echo LCDBWF_ENV=$LCDBWF_ENV + # run unit tests and doctests for the modules in lib test/lcdb-wf-test unit_tests --pytest diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index fb7adf39..d841290f 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -3,19 +3,6 @@ """ This script aims to make it more convenient to run various tests using different configs. - -data: gets example data -unit: runs unit tests (pytest, testthat, check urls, check docs) -workflows: runs workflows and downstream tasks - -rnaseq: - standard: - desc: "Run main rnaseq workflow. Supply additional snakemake args." - command: "cd workflows/rnaseq && ./run_test.sh $SNAKEMAKE_ARGS" - trackhub: - desc: "Build the trackhub for rnaseq. Requires 'standard' to have been run" - command: "cd workflows/rnaseq && python rnaseq_trackhub.py config/config.yaml config/hub_config.yaml" - """ import os import shlex From c1d0137d84199550b20e1fcee783108fad4f47a1 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Thu, 24 Nov 2022 09:00:26 -0500 Subject: [PATCH 33/91] run set-path on pytest ci job --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index e3ba5d12..84ed9342 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -299,6 +299,7 @@ jobs: steps: - checkout - *restore_cache + - *set-path - *setup - *pytest-step From ab339b3405b6da7e92207f125b14b6c258489d69 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Thu, 24 Nov 2022 09:14:43 -0500 Subject: [PATCH 34/91] copy test config for ci --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 84ed9342..caec003b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -98,6 +98,7 @@ variables: mkdir $DEPLOY/ci mkdir $DEPLOY/test cp test/lcdb-wf-test $DEPLOY/test + cp test/workflow_test_params.yaml $DEPLOY/test cp ci/get-data.py $DEPLOY/ci # the ./run_test.sh scripts run this From 0f774da8f9f47b1afe757772442454805f3d8ced Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Thu, 24 Nov 2022 09:36:48 -0500 Subject: [PATCH 35/91] typo in ci config --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index caec003b..587d25ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -106,7 +106,7 @@ variables: # download example data cd $DEPLOY - test/lcdb-wf-test data --kinds=all --verbose + test/lcdb-wf-test data --kind=all --verbose # -------------------------------------------------------------------------- # Run the doctests across the included modules From 62ed17b2fe1bb79b890b3cd7ade851a1354377ff Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Thu, 24 Nov 2022 09:49:44 -0500 Subject: [PATCH 36/91] allow --kind all --- test/lcdb-wf-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index d841290f..4a5c251d 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -77,7 +77,7 @@ class Runner(object): parser.add_argument( "--kind", default="all", - choices=["rnaseq", "chipseq"], + choices=["all", "rnaseq", "chipseq"], help="Kind of data to download", ) parser.add_argument( From cd8422eff5812d5cdaa820493d1dab5af5ba8357 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Thu, 24 Nov 2022 18:58:02 -0500 Subject: [PATCH 37/91] export $ORIG --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 587d25ff..9e045938 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,6 +54,7 @@ variables: echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV echo 'export LC_ALL=en_US.utf8' >> $BASH_ENV echo 'export LANG=en_US.utf8' >> $BASH_ENV + echo 'export ORIG=$(pwd)' >> $BASH_ENV source $BASH_ENV # -------------------------------------------------------------------------- # Set up conda if the environments do not already exist @@ -160,7 +161,6 @@ variables: run: name: chipseq misc command: | - ORIG=$(pwd) cd $DEPLOY/workflows/chipseq source activate lcdb-wf-test ./run_test.sh --use-conda -j2 -k -p -r \ From 03c83dfafd2c493f3ba7551e9f7afa579361bf6b Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Thu, 24 Nov 2022 19:58:25 -0500 Subject: [PATCH 38/91] more test refactoring --- .circleci/config.yml | 14 +-- test/lcdb-wf-test | 152 ++++++++++++++++++++++++++++----- test/workflow_test_params.yaml | 12 +-- 3 files changed, 139 insertions(+), 39 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9e045938..b6111153 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -133,16 +133,6 @@ variables: test/lcdb-wf-test unit_tests --r-test - # -------------------------------------------------------------------------- - # Other downstream jobs depend on this so that we can catch trivial errors - # quickly - rnaseq-dryrun: &rnaseq-dryrun - run: - name: dry run - command: | - source activate lcdb-wf-test - $DEPLOY/test/lcdb-wf-test --rnaseq dryrun - # -------------------------------------------------------------------------- # Standard chipseq workflow chipseq-step: &chipseq-step @@ -189,9 +179,8 @@ variables: run: name: references workflow command: | - cd $DEPLOY/workflows/references source activate lcdb-wf-test - $DEPLOY/test/lcdb-wf-test --references + $DEPLOY/test/lcdb-wf-test references --run-workflow --configfile=config/config.yaml -j2 -p -r -k --orig $ORIG # -------------------------------------------------------------------------- # Standard RNA-seq workflow @@ -201,6 +190,7 @@ variables: command: | cd $DEPLOY source activate lcdb-wf-test + $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow -n $DEPLOY/test/lcdb-wf-test rnaseq --run-workflow --use-conda -j2 -k -p -r --orig $ORIG $DEPLOY/test/lcdb-wf-test rnaseq --trackhub --orig $ORIG diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 4a5c251d..dcc75a09 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -55,7 +55,60 @@ class Runner(object): def __init__(self): parser = argparse.ArgumentParser( - description="Test runner for lcdb-wf", + description=""" + Test runner for lcdb-wf. There are many things to test; as a first pass use + these with appropriate Snakemake args (-n, -j, --use-conda, etc) + + %(prog)s data --kind all + %(prog)s unit_tests --pytest + %(prog)s unit_tests --r-test + %(prog)s rnaseq --run-workflow + %(prog)s rnaseq --trackhub + %(prog)s rnaseq --downstream + %(prog)s chipseq --run-workflow + %(prog)s references --run-workflow --configfile=config/config.yaml + + DATA + ---- + %(prog)s data --kind all --verbose + + UNIT TESTS + ---------- + # Run the pytest unit tests on the lib/ + %(prog)s unit_tests --pytest + + # Run tests on lcdbwf R package + %(prog)s unit_tests --r-test + + # Ensure URLs in the configs exist + %(prog)s unit_tests --url-check + + # Ensure rnaseq.Rmd has matching sections in the docs + %(prog)s unit_tests --ensure-docs + + RNASEQ + ------ + # Run main workflow + %(prog)s rnaseq --run-workflow + + # Build RNA-seq trackhub from output of main workflow + %(prog)s rnaseq --trackhub + + # Run rnaseq.Rmd + %(prog)s rnaseq --downstream + + # Each of these runs a restricted subset of the workflow with + # customized configs; they should be run one at a time. + %(prog)s rnaseq --run-workflow --sra-pe + %(prog)s rnaseq --run-workflow --sra-se + %(prog)s rnaseq --run-workflow --strandedness-pe + %(prog)s rnaseq --run-workflow --strandedness-se + %(prog)s rnaseq --run-workflow --star-2pass + %(prog)s rnaseq --run-workflow --star-1pass + %(prog)s rnaseq --run-workflow --pe + + """, + formatter_class=argparse.RawDescriptionHelpFormatter ) choices = [i.replace("_cmd_", "") for i in dir(self) if i.startswith("_cmd_")] @@ -272,7 +325,7 @@ class Runner(object): # attribute. group = parser.add_mutually_exclusive_group() workflow_prefix = "bash run_test.sh" - workflow_dir = "workflow/rnaseq" + workflow_dir = TOPLEVEL / "workflows/rnaseq" for key, val in WORKFLOW_ARGS["rnaseq"].items(): group.add_argument( "--" + key, @@ -295,11 +348,17 @@ class Runner(object): extra = [i.replace("__ORIG__", args.orig) for i in extra] strargs = " ".join(extra) - print_header(f"Running workflows/rnaseq/run_test.sh with args: {strargs}") + cmd = ( + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env} " + f"&& (cd {workflow_dir} && {workflow_prefix} {strargs})" + ) + print_header(f"Running the following command:\n{cmd}") sp.run( - shlex.split(workflow_prefix) + extra, - cwd=TOPLEVEL / "workflows/rnaseq", + cmd, check=True, + shell=True, + executable="/bin/bash" ) if args.trackhub: print_header("running trackhub script") @@ -326,24 +385,75 @@ class Runner(object): executable="/bin/bash" ) + def _cmd_chipseq(self): + """ + This function handles the "chipseq" subcommand. + """ + + parser = argparse.ArgumentParser( + description="Run chipseq workflow", + parents=[self.global_parser], + ) + parser.add_argument( + "--run-workflow", + action="store_true", + help="""Run chipseq workflow using the run_tesh.sh harness, which + edits the Snakefile to use test settings before running. Additional + args not specified here are passed to Snakemake, or use other flags + below to easily specify config sets.""", + ) + args, extra = parser.parse_known_args(sys.argv[2:]) + workflow_prefix = "bash run_test.sh" + workflow_dir = TOPLEVEL / "workflows/chipseq" + if args.run_workflow: + extra = [i.replace("__ORIG__", args.orig) for i in extra] + strargs = " ".join(extra) + cmd = ( + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env} " + f"&& (cd {workflow_dir} && {workflow_prefix} {strargs})" + ) + print_header(f"Running the following command:\n{cmd}") + sp.run( + cmd, + shell=True, + check=True, + executable="/bin/bash" + ) + + def _cmd_references(self): + parser = argparse.ArgumentParser( + description="Run references workflow", + parents=[self.global_parser], + ) + parser.add_argument( + "--run-workflow", + action="store_true", + help="""Run references workflow using the run_tesh.sh harness, which + edits the Snakefile to use test settings before running.""" + ) + args, extra = parser.parse_known_args(sys.argv[2:]) + + workflow_prefix = "bash run_test.sh" + workflow_dir = TOPLEVEL / "workflows/references" + if args.run_workflow: + extra = [i.replace("__ORIG__", args.orig) for i in extra] + strargs = " ".join(extra) + cmd = ( + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env} " + f"&& (cd {workflow_dir} && {workflow_prefix} {strargs})" + ) + print_header(f"Running the following command:\n{cmd}") + sp.run( + cmd, + shell=True, + check=True, + executable="/bin/bash" + ) + if __name__ == "__main__": Runner() -if __name__ == "__mn__": - if args.references: - print_header("references") - snakefile( - "workflows/references", - snakemake_args=[ - "--use-conda", - "-j", - args.cpus, - "-k", - "-p", - "-r", - "--configfile", - "config/config.yaml", - ], - ) # vim: ft=python diff --git a/test/workflow_test_params.yaml b/test/workflow_test_params.yaml index f04cfe40..70e57da6 100644 --- a/test/workflow_test_params.yaml +++ b/test/workflow_test_params.yaml @@ -59,9 +59,9 @@ rnaseq: __ORIG__/test/test_configs/star_override_1pass.yaml --config sampletable=__ORIG__/test/test_configs/star_1pass.tsv -pe: - desc: Tests paired-end data - args: | - --until multiqc - --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml - --config sampletable=__ORIG__/test/test_configs/test_pe_sampletable.tsv + pe: + desc: Tests paired-end data + args: | + --until multiqc + --configfile __ORIG__/test/test_configs/test_rnaseq_config.yaml + --config sampletable=__ORIG__/test/test_configs/test_pe_sampletable.tsv From 7fb9b9b8af376f2af97aa795853d95a41672bd33 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 08:27:20 -0500 Subject: [PATCH 39/91] test infra updates --- .circleci/config.yml | 5 +++-- test/lcdb-wf-test | 39 +++++++++++++++++++++++++++++++-------- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b6111153..47d09373 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -141,8 +141,9 @@ variables: command: | cd $DEPLOY/workflows/chipseq source activate lcdb-wf-test - ./run_test.sh --use-conda -j2 -k -p -r - python chipseq_trackhub.py config/config.yaml config/hub_config.yaml + $DEPLOY/test/lcdb-wf-test chipseq --run-workflow --use-conda -j2 -k -p -r + $DEPLOY/test/lcdb-wf-test chipseq --trackhub + # -------------------------------------------------------------------------- # Previous versions had an error where chipseq peaks needed to be defined for # every caller. This does a (relatively) quick test to only run a single diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index dcc75a09..9b14523d 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -361,16 +361,19 @@ class Runner(object): executable="/bin/bash" ) if args.trackhub: - print_header("running trackhub script") + cmd = ( + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env} " + f"&& (cd {workflow_dir} " + "&& python rnaseq_trackhub config/config.yaml config/hub_config.yaml)" + ) + print_header(f"Building trackhub with command: {cmd}") + sp.run( - [ - "python", - "rnaseq_trackhub.py", - "config/config.yaml", - "config/hub_config.yaml", - ], + cmd, + shell=True, check=True, - cwd="workflows/rnaseq", + executable="/bin/bash" ) print("See workflows/rnaseq/staging for the built trackhub") @@ -402,9 +405,13 @@ class Runner(object): args not specified here are passed to Snakemake, or use other flags below to easily specify config sets.""", ) + parser.add_argument( + "--trackhub", action="store_true", help="Build the rnaseq track hub" + ) args, extra = parser.parse_known_args(sys.argv[2:]) workflow_prefix = "bash run_test.sh" workflow_dir = TOPLEVEL / "workflows/chipseq" + if args.run_workflow: extra = [i.replace("__ORIG__", args.orig) for i in extra] strargs = " ".join(extra) @@ -420,6 +427,22 @@ class Runner(object): check=True, executable="/bin/bash" ) + if args.trackhub: + cmd = ( + 'eval "$(conda shell.bash hook)" ' + f"&& conda activate {args.env} " + f"&& (cd {workflow_dir} " + "&& python chipseq_trackhub config/config.yaml config/hub_config.yaml)" + ) + print_header(f"Building trackhub with command: {cmd}") + + sp.run( + cmd, + shell=True, + check=True, + executable="/bin/bash" + ) + print("See workflows/chipseq/staging for the built trackhub") def _cmd_references(self): parser = argparse.ArgumentParser( From 32a42280888fe99e08e58d30a483004eb052214b Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 08:45:15 -0500 Subject: [PATCH 40/91] typo --- test/lcdb-wf-test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/lcdb-wf-test b/test/lcdb-wf-test index 9b14523d..375c921a 100755 --- a/test/lcdb-wf-test +++ b/test/lcdb-wf-test @@ -365,7 +365,7 @@ class Runner(object): 'eval "$(conda shell.bash hook)" ' f"&& conda activate {args.env} " f"&& (cd {workflow_dir} " - "&& python rnaseq_trackhub config/config.yaml config/hub_config.yaml)" + "&& python rnaseq_trackhub.py config/config.yaml config/hub_config.yaml)" ) print_header(f"Building trackhub with command: {cmd}") @@ -432,7 +432,7 @@ class Runner(object): 'eval "$(conda shell.bash hook)" ' f"&& conda activate {args.env} " f"&& (cd {workflow_dir} " - "&& python chipseq_trackhub config/config.yaml config/hub_config.yaml)" + "&& python chipseq_trackhub.py config/config.yaml config/hub_config.yaml)" ) print_header(f"Building trackhub with command: {cmd}") From 92b7fc05d11d8d50e5d25da41508e5272b0643ea Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 15:46:23 -0500 Subject: [PATCH 41/91] debug test --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 47d09373..32013571 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -63,6 +63,7 @@ variables: name: Setup conda command: | set -e + echo $LCDBWF_ENV # We only do the installation if the conda environment does not already # exist. if ! conda env list | grep -q "lcdb-wf-test"; then From 8c39c3ff4fbdc34bd40946a05571882bb0261da9 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 15:49:45 -0500 Subject: [PATCH 42/91] debug test --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 32013571..4825981a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -63,7 +63,6 @@ variables: name: Setup conda command: | set -e - echo $LCDBWF_ENV # We only do the installation if the conda environment does not already # exist. if ! conda env list | grep -q "lcdb-wf-test"; then @@ -71,6 +70,8 @@ variables: conda config --system --add channels defaults conda config --system --add channels bioconda conda config --system --add channels conda-forge + echo "env: $LCDBWF_ENV" + echo "env-r: $LCDBWF_ENV_R" conda install mamba -y mamba env create -n $LCDBWF_ENV --file env.yml mamba env create -n $LCDBWF_ENV_R --file env-r.yml From 82e0e96457fa2270473b79214901e4302c6cafe0 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 15:51:56 -0500 Subject: [PATCH 43/91] debug test --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4825981a..e9c9dfd2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -63,6 +63,7 @@ variables: name: Setup conda command: | set -e + source $BASH_ENV # We only do the installation if the conda environment does not already # exist. if ! conda env list | grep -q "lcdb-wf-test"; then From 3c32959fe4e4326a47570b7d2659feeca6712a1d Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 15:59:03 -0500 Subject: [PATCH 44/91] debug test --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index e9c9dfd2..e72a90f1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -264,6 +264,7 @@ jobs: <<: *defaults steps: - checkout + - *set-path # Check the hashes of requirements files. If they match a cache, load it. # The cache is set up to be the entire miniconda installation, so that From ea7558f885a76686778bb6cea5149d47cec9266f Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 16:28:06 -0500 Subject: [PATCH 45/91] debug test --- .circleci/config.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e72a90f1..2deb6683 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,6 +49,7 @@ variables: command: | # x11-utils required to avoid R::png() segfaulting apt update && apt install -y locales-all locales rsync x11-utils + conda install -y yaml echo 'export DEPLOY=/tmp/lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV=lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV @@ -71,9 +72,7 @@ variables: conda config --system --add channels defaults conda config --system --add channels bioconda conda config --system --add channels conda-forge - echo "env: $LCDBWF_ENV" - echo "env-r: $LCDBWF_ENV_R" - conda install mamba -y + conda install mamba yaml -y mamba env create -n $LCDBWF_ENV --file env.yml mamba env create -n $LCDBWF_ENV_R --file env-r.yml fi From c836e91c6499c6a76521b5931141765f38ac5b89 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 16:46:15 -0500 Subject: [PATCH 46/91] debug test --- .circleci/config.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2deb6683..f2112515 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -198,11 +198,6 @@ variables: $DEPLOY/test/lcdb-wf-test rnaseq --trackhub --orig $ORIG - # Starting in v1.6, we separate out the non-R from the - # R environments. So we need to test the rnaseq.Rmd separately - # outside the context of the Snakefile. - source activate lcdb-wf-test-r - # This run the preprocessor on the Rmd files and stores them # in a new download-test directory (see the comments in the script # for details) From 04f01fab708699bb9ee5b8d86a4dc29ddfed6943 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 17:29:42 -0500 Subject: [PATCH 47/91] debug test --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f2112515..d5d62086 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -204,7 +204,7 @@ variables: $DEPLOY/test/lcdb-wf-test rnaseq --downstream # bundle up the entire directory to be used as an artifact - tar -zcf downstream.tar.gz downstream-test/ + tar -zcf downstream.tar.gz workflows/rnaseq/downstream-test/ # -------------------------------------------------------------------------- # Various tests on RNA-seq workflow that don't warrant the overhead of a new From 54bf20e10be9539a90300f59150d402b130c133e Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Fri, 25 Nov 2022 21:39:24 -0500 Subject: [PATCH 48/91] typo in wrapper_slurm --- include/WRAPPER_SLURM | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/WRAPPER_SLURM b/include/WRAPPER_SLURM index bed1df6d..09590f4b 100755 --- a/include/WRAPPER_SLURM +++ b/include/WRAPPER_SLURM @@ -2,7 +2,7 @@ #SBATCH --job-name="lcdb-wf" #SBATCH --partition="norm" #SBATCH --time=12:00:00 -#SBATHC --gres=lscratch:5 +#SBATCH --gres=lscratch:5 # make logdir if [[ ! -e logs ]]; then mkdir -p logs; fi From c457320958cd49c03f5e5eaa10a88ae04c96062a Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sat, 26 Nov 2022 10:01:37 -0500 Subject: [PATCH 49/91] remove shell prefix setup --- workflows/rnaseq/Snakefile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index a41b28e9..7b6e3d8a 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -23,11 +23,6 @@ config = common.load_config(config) include: '../references/Snakefile' -shell.prefix( - 'set -euo pipefail; export R_PROFILE_USER=; export TMPDIR={};' - .format(cluster_specific.tempdir_for_biowulf()) -) -shell.executable('/bin/bash') # Verify configuration of config and sampletable files helpers.preflight(config) From d539abf635b7e14bebe44b53dffd17c7d24ffcfc Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sat, 26 Nov 2022 10:03:07 -0500 Subject: [PATCH 50/91] add resources to rnaseq rules --- workflows/rnaseq/Snakefile | 142 ++++++++++++++++++++++++++++++++----- 1 file changed, 123 insertions(+), 19 deletions(-) diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index 7b6e3d8a..cbef1644 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -23,6 +23,13 @@ config = common.load_config(config) include: '../references/Snakefile' +def autobump(value): + """ + Increments value for each attempt. + """ + def f(wildcards, attempt): + return attempt * value + return f # Verify configuration of config and sampletable files helpers.preflight(config) @@ -77,7 +84,7 @@ rule targets: if 'orig_filename' in c.sampletable.columns: - localrules: symlinks + localrules: symlinks, symlink_targets # Convert the sampletable to be indexed by the first column, for # convenience in generating the input/output filenames. @@ -101,6 +108,10 @@ if 'orig_filename' in c.sampletable.columns: orig_for_sample output: render_r1_r2(c.patterns['fastq']) + threads: 1 + resources: + mem_mb=100, + runtime=10, run: assert len(output) == len(input), (input, output) for src, linkname in zip(input, output): @@ -126,6 +137,9 @@ if 'Run' in c.sampletable.columns and sum(c.sampletable['Run'].str.startswith('S is_paired=c.is_paired, sampletable=_st, # limit = 100000, # [TEST SETTINGS] + resources: + mem_mb=1024, + runtime=autobump(120) conda: '../../wrappers/wrappers/fastq-dump/environment.yaml' script: @@ -147,6 +161,9 @@ rule sample_strand_check: log: c.patterns['strand_check']['tsv'] + '.log' threads: 6 + resources: + mem_mb=1024 * 8, + runtime=autobump(120) run: prefix = aligners.prefix_from_bowtie2_index(input.index) nreads = int(config['strand_check_reads']) * 4 @@ -183,6 +200,9 @@ rule strand_check: filelist=temporary('strand_check/filelist') log: 'strand_check/strandedness.log' + resources: + mem_mb=1024 * 1, + runtime=autobump(120) run: with open(output.filelist, 'w') as fout: for i in input: @@ -207,6 +227,9 @@ rule cutadapt: log: render_r1_r2(c.patterns['cutadapt'])[0] + '.log' threads: 6 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) run: # NOTE: Change cutadapt params here @@ -248,6 +271,9 @@ rule fastqc: output: html='{sample_dir}/{sample}/fastqc/{sample}{suffix}_fastqc.html', zip='{sample_dir}/{sample}/fastqc/{sample}{suffix}_fastqc.zip', + resources: + mem_mb=1024 * 2, + runtime=autobump(120) script: wrapper_for('fastqc/wrapper.py') @@ -265,6 +291,9 @@ if config['aligner']['index'] == 'hisat2': log: c.patterns['bam'] + '.log' threads: 6 + resources: + mem_mb=1024 * 32, + runtime=autobump(120) run: prefix = aligners.prefix_from_bowtie2_index(input.index) sam = output.bam.replace('.bam', '.sam') @@ -337,6 +366,9 @@ if config['aligner']['index'] == 'star': log: c.patterns['bam'].replace('.bam', '.star.bam.log') threads: 16 + resources: + mem_mb=1024 * 64, + runtime=autobump(120) run: genomedir = os.path.dirname(input.index[0]) outdir = os.path.dirname(output[0]) @@ -369,6 +401,9 @@ if config['aligner']['index'] == 'star-twopass': log: c.patterns['bam'].replace('.bam', '.star-pass1.bam.log') threads: 16 + resources: + mem_mb=1024 * 64, + runtime=autobump(120) run: genomedir = os.path.dirname(input.index[0]) outdir = os.path.dirname(output[0]) @@ -406,6 +441,9 @@ if config['aligner']['index'] == 'star-twopass': log: c.patterns['bam'].replace('.bam', '.star-pass2.bam.log') threads: 16 + resources: + mem_mb=1024 * 64, + runtime=autobump(120) run: genomedir = os.path.dirname(input.index[0]) outdir = os.path.dirname(output[0]) @@ -444,6 +482,9 @@ rule rRNA: log: c.patterns['rrna']['bam'] + '.log' threads: 6 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) run: prefix = aligners.prefix_from_bowtie2_index(input.index) sam = output.bam.replace('.bam', '.sam') @@ -474,6 +515,10 @@ rule fastq_count: fastq='{sample_dir}/{sample}/{sample}{suffix}.fastq.gz' output: '{sample_dir}/{sample}/{sample}{suffix}.fastq.gz.libsize' + threads: 1 + resources: + mem_mb=1024 * 1, + runtime=autobump(120) shell: 'zcat {input} | echo $((`wc -l`/4)) > {output}' @@ -486,6 +531,10 @@ rule bam_count: bam='{sample_dir}/{sample}/{suffix}.bam' output: '{sample_dir}/{sample}/{suffix}.bam.libsize' + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'samtools view -c {input} > {output}' @@ -498,6 +547,10 @@ rule bam_index: bam='{prefix}.bam' output: bai='{prefix}.bam.bai' + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'samtools index {input} {output}' @@ -524,6 +577,10 @@ rule fastq_screen: txt=c.patterns['fastq_screen'] log: c.patterns['fastq_screen'] + '.log' + threads: 6 + resources: + mem_mb=1024 * 4, + runtime=autobump(120) params: subset=100000 script: wrapper_for('fastq_screen/wrapper.py') @@ -541,6 +598,9 @@ rule featurecounts: log: '{sample_dir}/rnaseq_aggregation/featurecounts.txt.log' threads: 8 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) run: # NOTE: By default, we use -p for paired-end p_arg = '' @@ -577,6 +637,10 @@ rule rrna_libsizes_table: output: json=c.patterns['rrna_percentages_yaml'], tsv=c.patterns['rrna_percentages_table'] + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) run: def rrna_sample(f): return helpers.extract_wildcards(c.patterns['rrna']['libsize'], f)['sample'] @@ -641,6 +705,10 @@ rule multiqc: config='config/multiqc_config.yaml' output: c.targets['multiqc'] log: c.targets['multiqc'][0] + '.log' + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) run: analysis_directory = set([os.path.dirname(i) for i in input]) outdir = os.path.dirname(c.targets['multiqc'][0]) @@ -675,6 +743,11 @@ rule markduplicates: # config. java_args='-Xmx20g' # java_args='-Xmx2g' # [TEST SETTINGS -1] + threads: 1 + resources: + mem_mb=1024 * 32, + runtime=autobump(120), + disk_mb=1024 *100 shell: 'picard ' '{params.java_args} ' @@ -703,6 +776,10 @@ rule collectrnaseqmetrics: # java_args='-Xmx2g' # [TEST SETTINGS -1] log: c.patterns['collectrnaseqmetrics']['metrics'] + '.log' + threads: 1 + resources: + mem_mb=1024 * 32, + runtime=autobump(120) run: strand_arg = helpers.strand_arg_lookup( c, { @@ -732,6 +809,10 @@ rule preseq: bam=c.patterns['bam'] output: c.patterns['preseq'] + threads: 1 + resources: + mem_mb=1024 * 1, + runtime=autobump(120) shell: 'preseq ' 'c_curve ' @@ -754,6 +835,9 @@ rule salmon: log: c.patterns['salmon'] + '.log' threads: 6 + resources: + mem_mb=1024 * 32, + runtime=autobump(120) run: if c.is_paired: fastq_arg = f'-1 {input.fastq[0]} -2 {input.fastq[1]} ' @@ -794,6 +878,9 @@ rule kallisto: c.patterns['kallisto'] + '.log' threads: 8 + resources: + mem_mb=1024 * 32, + runtime=autobump(120) run: if c.is_paired: se_args = '' @@ -837,6 +924,9 @@ rule rseqc_infer_experiment: txt=c.patterns['rseqc']['infer_experiment'] log: c.patterns['rseqc']['infer_experiment'] + '.log' + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'infer_experiment.py -r {input.bed12} -i {input.bam} > {output} &> {log}' @@ -852,10 +942,33 @@ rule rseqc_read_distribution: txt=c.patterns['rseqc']['read_distribution'] log: c.patterns['rseqc']['read_distribution'] + '.log' + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'read_distribution.py -i {input.bam} -r {input.bed12} > {output} &> {log}' +rule idxstats: + """ + Run samtools idxstats on sample bams + """ + input: + bam=c.patterns['markduplicates']['bam'], + bai=c.patterns['markduplicates']['bam'] + '.bai' + output: + txt=c.patterns['samtools']['idxstats'] + log: + c.patterns['samtools']['idxstats'] + '.log' + resources: + mem_mb=1024 * 16, + runtime=autobump(120) + run: + shell( + 'samtools idxstats {input.bam} 2> {log} 1> {output.txt}' + ) + + # Common arguments used for bamCoverage rules below BAMCOVERAGE_ARGS = ( '--minMappingQuality 20 ' # excludes multimappers @@ -872,6 +985,9 @@ rule bigwig_neg: bai=c.patterns['markduplicates']['bam'] + '.bai', output: c.patterns['bigwig']['neg'] threads: 8 + resources: + mem_mb=1024 * 16, + runtime=autobump(120) log: c.patterns['bigwig']['neg'] + '.log' run: @@ -902,6 +1018,9 @@ rule bigwig_pos: bai=c.patterns['markduplicates']['bam'] + '.bai', output: c.patterns['bigwig']['pos'] threads: 8 + resources: + mem_mb=1024 * 16, + runtime=autobump(120) log: c.patterns['bigwig']['pos'] + '.log' @@ -950,6 +1069,9 @@ if 'merged_bigwigs' in config: c.patterns['merged_bigwig'] log: c.patterns['merged_bigwig'] + '.log' + resources: + mem_mb=1024 * 16, + runtime=autobump(120) script: wrapper_for('average-bigwigs/wrapper.py') @@ -975,22 +1097,4 @@ rule rnaseq_rmarkdown: '> {log} 2>&1' # [TEST_SETTINGS -1] - -rule idxstats: - """ - Run samtools idxstats on sample bams - """ - input: - bam=c.patterns['markduplicates']['bam'], - bai=c.patterns['markduplicates']['bam'] + '.bai' - output: - txt=c.patterns['samtools']['idxstats'] - log: - c.patterns['samtools']['idxstats'] + '.log' - run: - shell( - 'samtools idxstats {input.bam} 2> {log} 1> {output.txt}' - ) - - # vim: ft=python From 1799f0f5b9e8940bb8f70b7edc3f7a63898bbcdc Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sat, 26 Nov 2022 10:19:02 -0500 Subject: [PATCH 51/91] rm shell prefix from rnaseq --- workflows/rnaseq/Snakefile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index a41b28e9..7b6e3d8a 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -23,11 +23,6 @@ config = common.load_config(config) include: '../references/Snakefile' -shell.prefix( - 'set -euo pipefail; export R_PROFILE_USER=; export TMPDIR={};' - .format(cluster_specific.tempdir_for_biowulf()) -) -shell.executable('/bin/bash') # Verify configuration of config and sampletable files helpers.preflight(config) From 22a5f69bf0fc356f54ab32e1bbfb5dbccb032672 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Wed, 22 Feb 2023 16:11:03 -0500 Subject: [PATCH 52/91] remove clusterconfig and cluster from WRAPPER_SLURM --- include/WRAPPER_SLURM | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/WRAPPER_SLURM b/include/WRAPPER_SLURM index 09590f4b..5151e141 100755 --- a/include/WRAPPER_SLURM +++ b/include/WRAPPER_SLURM @@ -16,8 +16,6 @@ if [[ ! -e logs ]]; then mkdir -p logs; fi --rerun-incomplete \ --jobname "s.{rulename}.{jobid}.sh" \ -j 999 \ - --cluster-config config/clusterconfig.yaml \ - --cluster 'sbatch {cluster.prefix} --cpus-per-task={threads} --output=logs/{rule}.o.%j --error=logs/{rule}.e.%j' \ --use-conda \ --configfile config/config.yaml \ --latency-wait=300 \ From e26bde8f85753eb4ae0a20df9003b8c7869eca38 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 23 Feb 2023 13:37:20 -0500 Subject: [PATCH 53/91] use snakemake profile env var if set --- include/WRAPPER_SLURM | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/WRAPPER_SLURM b/include/WRAPPER_SLURM index 5151e141..e598572c 100755 --- a/include/WRAPPER_SLURM +++ b/include/WRAPPER_SLURM @@ -7,6 +7,22 @@ # make logdir if [[ ! -e logs ]]; then mkdir -p logs; fi +# use SNAKEMAKE_PROFILE if one is set in the environment variables +if [ -z "$LCDBWF_SNAKE_PROFILE" ]; then + if [ -z "$SNAKEMAKE_PROFILE" ]; then + # no snakemake profile found + PROFILE_CMD="" + echo "No environment variable SNAKEMAKE_PROFILE or LCDBWF_SNAKE_PROFILE found." + echo "snakemake will run in single job." + else + # generic SNAKEMAKE_PROFILE found + PROFILE_CMD="--profile $SNAKEMAKE_PROFILE" + fi +else +# LCDBWF_SNAKE_PROFILE found, this takes priority if both profile variables are set +PROFILE_CMD="--profile $LCDBWF_SNAKE_PROFILE" +fi + # Run snakemake ( time snakemake \ @@ -18,6 +34,7 @@ if [[ ! -e logs ]]; then mkdir -p logs; fi -j 999 \ --use-conda \ --configfile config/config.yaml \ + $PROFILE_CMD \ --latency-wait=300 \ --max-jobs-per-second 1 \ --max-status-checks-per-second 0.01 \ From 46e42262356f3b71cd03400e5cf3ba681162b0c8 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 23 Feb 2023 15:30:19 -0500 Subject: [PATCH 54/91] update chipseq Snakefile for snakemake profile --- workflows/chipseq/Snakefile | 98 +++++++++++++++++++++++++++++++++++-- 1 file changed, 93 insertions(+), 5 deletions(-) diff --git a/workflows/chipseq/Snakefile b/workflows/chipseq/Snakefile index 532bceae..18a9bb27 100644 --- a/workflows/chipseq/Snakefile +++ b/workflows/chipseq/Snakefile @@ -24,11 +24,13 @@ config = common.load_config(config) include: '../references/Snakefile' -shell.prefix( - 'set -euo pipefail; export R_PROFILE_USER=; export TMPDIR={};' - .format(cluster_specific.tempdir_for_biowulf()) -) -shell.executable('/bin/bash') +def autobump(value): + """ + Increments value for each attempt. + """ + def f(wildcards, attempt): + return attempt * value + return f # Verify configuration of config and sampletable files helpers.preflight(config) @@ -114,6 +116,10 @@ if 'orig_filename' in c.sampletable.columns: orig_for_sample output: render_r1_r2(c.patterns['fastq']) + threads: 1 + resources: + mem_mb=100, + runtime=10, run: assert len(output) == len(input), (input, output) for src, linkname in zip(input, output): @@ -139,6 +145,9 @@ if 'Run' in c.sampletable.columns and sum(c.sampletable['Run'].str.startswith('S is_paired=c.is_paired, sampletable=_st, # limit = 100000, # [TEST SETTINGS] + resources: + mem_mb=autobump(1024), + runtime=autobump(120) conda: '../../wrappers/wrappers/fastq-dump/environment.yaml' script: @@ -152,6 +161,9 @@ rule cutadapt: fastq=render_r1_r2(c.patterns['fastq']) output: fastq=render_r1_r2(c.patterns['cutadapt']) + resources: + mem_mb=1024 * 2, + runtime=autobump(120) log: render_r1_r2(c.patterns['cutadapt'])[0] + '.log' threads: 6 @@ -196,6 +208,9 @@ rule fastqc: output: html='{sample_dir}/{sample}/fastqc/{sample}{suffix}_fastqc.html', zip='{sample_dir}/{sample}/fastqc/{sample}{suffix}_fastqc.zip', + resources: + mem_mb=1024 * 2, + runtime=autobump(120) script: wrapper_for('fastqc/wrapper.py') @@ -212,6 +227,9 @@ rule bowtie2: log: c.patterns['bam'] + '.log' threads: 16 + resources: + mem_mb=1024 * 32, + runtime=autobump(120) run: prefix = aligners.prefix_from_bowtie2_index(input.index) sam = output.bam.replace('.bam', '.sam') @@ -248,6 +266,10 @@ rule unique: c.patterns['bam'] output: c.patterns['unique'] + threads: 1 + resources: + mem_mb=1024, + runtime=autobump(120) shell: # NOTE: the quality score chosen here should reflect the scores output # by the aligner used. For example, STAR uses 255 as max mapping @@ -263,6 +285,10 @@ rule fastq_count: fastq='{sample_dir}/{sample}/{sample}{suffix}.fastq.gz' output: '{sample_dir}/{sample}/{sample}{suffix}.fastq.gz.libsize' + threads: 1 + resources: + mem_mb=1024 * 1, + runtime=autobump(120) shell: 'zcat {input} | echo $((`wc -l`/4)) > {output}' @@ -275,6 +301,10 @@ rule bam_count: bam='{sample_dir}/{sample}/{suffix}.bam' output: '{sample_dir}/{sample}/{suffix}.bam.libsize' + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'samtools view -c {input} > {output}' @@ -287,6 +317,10 @@ rule bam_index: bam='{prefix}.bam' output: bai='{prefix}.bam.bai' + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'samtools index {input} {output}' @@ -313,6 +347,10 @@ rule fastq_screen: txt=c.patterns['fastq_screen'] log: c.patterns['fastq_screen'] + '.log' + threads: 6 + resources: + mem_mb=autobump(1024 * 4), + runtime=autobump(120) params: subset=100000 script: wrapper_for('fastq_screen/wrapper.py') @@ -345,6 +383,10 @@ rule multiqc: c.targets['multiqc'] log: c.targets['multiqc'][0] + '.log' + threads: 1 + resources: + mem_mb=1024 * 2, + runtime=autobump(120) run: analysis_directory = set([os.path.dirname(i) for i in input]) outdir = os.path.dirname(c.targets['multiqc'][0]) @@ -373,6 +415,11 @@ rule markduplicates: metrics=c.patterns['markduplicates']['metrics'] log: c.patterns['markduplicates']['bam'] + '.log' + threads: 1 + resources: + mem_mb=1024 * 32, + runtime=autobump(120), + disk_mb=1024 *100 params: # NOTE: Be careful with the memory here; make sure you have enough # and/or it matches the resources you're requesting in the cluster @@ -408,6 +455,11 @@ rule merge_techreps: metrics=c.patterns['merged_techreps'] + '.metrics' log: c.patterns['merged_techreps'] + '.log' + threads: 1 + resources: + mem_mb=1024 * 32, + runtime=autobump(120), + disk_mb=1024 *100 params: # NOTE: Be careful with the memory here; make sure you have enough # and/or it matches the resources you're requesting in the cluster @@ -426,6 +478,10 @@ if c.is_paired: metrics=c.patterns['collectinsertsizemetrics']['metrics'] log: c.patterns['collectinsertsizemetrics']['metrics'] + '.log' + threads: 1 + resources: + mem_mb=1024 * 32, + runtime=autobump(120), params: java_args='-Xmx20g' # java_args='-Xmx2g' # [TEST SETTINGS -1] @@ -451,6 +507,10 @@ rule bigwig: c.patterns['bigwig'] log: c.patterns['bigwig'] + '.log' + threads: 1 + resources: + mem_mb=1024 * 16, + runtime=autobump(120) shell: 'bamCoverage ' '--bam {input.bam} ' @@ -484,6 +544,10 @@ rule fingerprint: metrics=c.patterns['fingerprint']['metrics'] threads: 8 log: c.patterns['fingerprint']['metrics'] + '.log' + threads: 1 + resources: + mem_mb=1024 * 32, + runtime=autobump(120) run: if len(input.control) == 0: jsdsample_arg = "" @@ -529,6 +593,9 @@ rule sicer: bed=c.patterns['peaks']['sicer'] log: c.patterns['peaks']['sicer'] + '.log' + resources: + mem_mb=1024 * 16, + runtime=autobump(120) params: block=lambda wc: chipseq.block_for_run(config, wc.sicer_run, 'sicer') wrapper: @@ -552,6 +619,9 @@ rule macs2: chromsizes=refdict[c.organism][config['aligner']['tag']]['chromsizes'], output: bed=c.patterns['peaks']['macs2'] + resources: + mem_mb=1024 * 16, + runtime=autobump(120) log: c.patterns['peaks']['macs2'] + '.log' params: @@ -583,6 +653,9 @@ rule spp: rdata=c.patterns['peaks']['spp'] + '.RData' log: c.patterns['peaks']['spp'] + '.log' + resources: + mem_mb=1024 * 16, + runtime=autobump(120) params: block=lambda wc: chipseq.block_for_run(config, wc.spp_run, 'spp'), keep_tempfiles=False, @@ -604,6 +677,9 @@ rule bed_to_bigbed: bed='{prefix}.bed', chromsizes=refdict[c.organism][config['aligner']['tag']]['chromsizes'] output: '{prefix}.bigbed' + resources: + mem_mb=1024 * 2, + runtime=autobump(120) log: '{prefix}.bigbed.log' run: # Based on the filename, identify the algorithm. Based on the contents, @@ -652,6 +728,9 @@ rule multibigwigsummary: npz=c.targets['multibigwigsummary']['npz'], tab=c.targets['multibigwigsummary']['tab'] threads: 16 + resources: + mem_mb=1024 * 16, + runtime=autobump(120) run: # from the input files, figure out the sample name. labels = ' '.join([i.split('/')[-2] for i in input]) @@ -675,6 +754,9 @@ rule plotcorrelation: output: heatmap=c.targets['plotcorrelation']['heatmap'], tab=c.targets['plotcorrelation']['tab'] + resources: + mem_mb=1024 * 2, + runtime=autobump(120) shell: 'plotCorrelation ' '--corData {input} ' @@ -705,6 +787,9 @@ if 'merged_bigwigs' in config: chromsizes=refdict[c.organism][config['aligner']['tag']]['chromsizes'], output: c.patterns['merged_bigwig'] + resources: + mem_mb=1024 * 16, + runtime=autobump(120) log: c.patterns['merged_bigwig'] + '.log' script: @@ -719,6 +804,9 @@ rule idxstats: bai=c.patterns['markduplicates']['bam'] + '.bai' output: txt=c.patterns['samtools']['idxstats'] + resources: + mem_mb=1024 * 16, + runtime=autobump(120) log: c.patterns['samtools']['idxstats'] + '.log' run: From 12935fb312b61dc5c02fa86ee044e4e261071f20 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 23 Feb 2023 15:51:40 -0500 Subject: [PATCH 55/91] fix input.control in fingerprint --- workflows/chipseq/Snakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq/Snakefile b/workflows/chipseq/Snakefile index 18a9bb27..1ccdee16 100644 --- a/workflows/chipseq/Snakefile +++ b/workflows/chipseq/Snakefile @@ -552,7 +552,7 @@ rule fingerprint: if len(input.control) == 0: jsdsample_arg = "" else: - jsdsample_arg = '--JSDsample {input.control}' + jsdsample_arg = '--JSDsample ' + str(input.control) shell( 'plotFingerprint ' '--bamfiles {input.bams} ' '-p {threads} ' From 2fcbea5877c17cd82d03767514c6b5470bd3c183 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 24 Feb 2023 12:35:07 -0500 Subject: [PATCH 56/91] set --restart-times to 3 --- include/WRAPPER_SLURM | 1 + 1 file changed, 1 insertion(+) diff --git a/include/WRAPPER_SLURM b/include/WRAPPER_SLURM index e598572c..393a12fd 100755 --- a/include/WRAPPER_SLURM +++ b/include/WRAPPER_SLURM @@ -29,6 +29,7 @@ fi -p \ --directory $PWD \ -k \ + --restart-times 3 \ --rerun-incomplete \ --jobname "s.{rulename}.{jobid}.sh" \ -j 999 \ From f29ae61ef1588fd8c06cfb15764b29bd853f0e4f Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 24 Feb 2023 12:37:05 -0500 Subject: [PATCH 57/91] autobump mem_mb for fastq_dump --- workflows/rnaseq/Snakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index cbef1644..fa41b43a 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -138,7 +138,7 @@ if 'Run' in c.sampletable.columns and sum(c.sampletable['Run'].str.startswith('S sampletable=_st, # limit = 100000, # [TEST SETTINGS] resources: - mem_mb=1024, + mem_mb=autobump(1024), runtime=autobump(120) conda: '../../wrappers/wrappers/fastq-dump/environment.yaml' From 62bf67fa6e16d4901579c817f06a99a5e1a90348 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Mon, 6 Mar 2023 11:20:44 -0500 Subject: [PATCH 58/91] fix volcano plots not showing before barplot --- lib/lcdbwf/R/plotting.R | 18 ++++++++++++------ lib/lcdbwf/R/results.R | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/lcdbwf/R/plotting.R b/lib/lcdbwf/R/plotting.R index 216871ec..c848f0d9 100644 --- a/lib/lcdbwf/R/plotting.R +++ b/lib/lcdbwf/R/plotting.R @@ -340,7 +340,7 @@ counts.plot <- function(df, rank.nb=NULL, no.aes=FALSE, facet='label') { #' Plot a histogram of raw pvals #' -#' This is right out of the DESeq2 vignette, from the section about independent +#' This is edited from the DESeq2 vignette, from the section about independent #' filtering. The resulting histogram indicates pvals for those genes kept and #' removed before multiple testing adjustment. #' @@ -352,11 +352,17 @@ pval_hist <- function(res){ h1 <- hist(res$pvalue[!use], breaks=0:50/50, plot=FALSE) h2 <- hist(res$pvalue[use], breaks=0:50/50, plot=FALSE) colori <- c(`counts too low`='khaki', `pass`="powderblue") - barplot(height = rbind(h1$counts, h2$counts), beside = FALSE, - col = colori, space = 0, main = "", ylab="frequency") - text(x = c(0, length(h1$counts)), y = 0, label = paste(c(0,1)), - adj = c(0.5,1.7), xpd=NA) - legend("topright", fill=rev(colori), legend=rev(names(colori))) + df <- rbind(data.frame(x=h1$mids, counts=h1$counts, label='counts too low'), + data.frame(x=h2$mids, counts=h2$counts, label='pass') + ) + plt <- ggplot2::ggplot(df, aes(x=x, y=counts, fill=label)) + + geom_bar(stat = 'identity', color='gray20') + + theme_classic() + + scale_fill_manual(values=c("#EBE379", "#A3DAE0")) + + xlab('p-value') + + ylab('frequency') + + theme(legend.position = c(0.8, 0.8)) + return(plt) } #' Barplot of size factors by sample diff --git a/lib/lcdbwf/R/results.R b/lib/lcdbwf/R/results.R index d84ecd4c..b1cec3aa 100644 --- a/lib/lcdbwf/R/results.R +++ b/lib/lcdbwf/R/results.R @@ -56,7 +56,7 @@ build_results_tabs <- function(res_list, dds_list, config, text){ lcdbwf:::mdcat('### P-value distribution') lcdbwf:::folded_markdown(text$results_plots$pval_hist, "Help") - lcdbwf:::pval_hist(res_i) + print(lcdbwf:::pval_hist(res_i)) if (config$toggle$results_diagnostics){ lcdbwf:::results_diagnostics(res=res_i, dds=res_list[[name]]$dds, name=name, config=config, text=text) From 651d4e2fb28b6e728b7fd2f78bc7371ee8bc0454 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Mon, 6 Mar 2023 11:21:44 -0500 Subject: [PATCH 59/91] allow skipping orgDb --- lib/lcdbwf/R/annotations.R | 52 +++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/lib/lcdbwf/R/annotations.R b/lib/lcdbwf/R/annotations.R index 473c4b95..d1a40b7d 100644 --- a/lib/lcdbwf/R/annotations.R +++ b/lib/lcdbwf/R/annotations.R @@ -119,10 +119,11 @@ get_annotation_db <- function(config, dbtype, genus_species=NULL, orgdb_key_over #' #' @param res_list List of DESeqResults objects #' @param config Full config object, at least containing config$orgdb +#' @param use_orgdb Boolean to use or bypass orgDb extra columns #' #' @return List of same results objects, but each one with additional columns #' attached as specified in the config -attach_extra <- function(res_list, config, force_intersect){ +attach_extra <- function(res_list, config, force_intersect, use_orgdb=TRUE){ if (missing(force_intersect)) force_intersect <- config$main$force_intersect if (is.null(force_intersect)) force_intersect <- FALSE @@ -149,28 +150,39 @@ attach_extra <- function(res_list, config, force_intersect){ keys <- rownames(res_list[[1]]$res) - orgdb <- lcdbwf:::get_annotation_db(config, dbtype="OrgDb") + if (use_orgdb == TRUE) { + orgdb <- lcdbwf:::get_annotation_db(config, dbtype="OrgDb") - # Create a dataframe mapping gene IDs to the various configured columns - lookups <- list() - for (col in config$annotation$orgdb_columns){ - lookups[[col]] <- mapIds(orgdb, keys=keys, column=col, keytype=config$annotation$keytype, multiVal='first') - if (col %in% config$annotation$fill){ - lookups[[col]] <- ifelse(is.na(lookups[[col]]), keys, lookups[[col]]) - } - } - lookups <- data.frame(lookups) - - # Use that dataframe to attach additional columns to each results object - for (name in names(res_list)){ - res <- res_list[[name]]$res - orig_colnames <- colnames(res) + # Create a dataframe mapping gene IDs to the various configured columns + lookups <- list() for (col in config$annotation$orgdb_columns){ - res[[col]] <- lookups[[col]] + lookups[[col]] <- mapIds(orgdb, keys=keys, column=col, keytype=config$annotation$keytype, multiVal='first') + if (col %in% config$annotation$fill){ + lookups[[col]] <- ifelse(is.na(lookups[[col]]), keys, lookups[[col]]) + } + } + lookups <- data.frame(lookups) + + # Use that dataframe to attach additional columns to each results object + for (name in names(res_list)){ + res <- res_list[[name]]$res + orig_colnames <- colnames(res) + for (col in config$annotation$orgdb_columns){ + res[[col]] <- lookups[[col]] + } + res$gene <- rownames(res) + res <- res[, c('gene', config$annotation$orgdb_columns, orig_colnames)] + res_list[[name]]$res <- res + } + } else { + # attach the genes as SYMBOLs in absence of OrgDb data + for (name in names(res_list)){ + res <- res_list[[name]]$res + res$gene <- rownames(res) + res$SYMBOL <- rownames(res) + res_list[[name]]$res <- res } - res$gene <- rownames(res) - res <- res[, c('gene', config$annotation$orgdb_columns, orig_colnames)] - res_list[[name]]$res <- res } + return(res_list) } From 09e1e2f3ac00a945d6200932c01b5e579c6413d8 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Tue, 7 Mar 2023 14:32:42 -0500 Subject: [PATCH 60/91] use ::: --- .../downstream/functional-enrichment.Rmd | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/workflows/rnaseq/downstream/functional-enrichment.Rmd b/workflows/rnaseq/downstream/functional-enrichment.Rmd index 17df5b9b..f0626f15 100644 --- a/workflows/rnaseq/downstream/functional-enrichment.Rmd +++ b/workflows/rnaseq/downstream/functional-enrichment.Rmd @@ -33,7 +33,7 @@ a particular annotation category. devtools::document('../../../lib/lcdbwf') devtools::load_all('../../../lib/lcdbwf') -config <- lcdbwf::load_config('config.yaml') +config <- lcdbwf:::load_config('config.yaml') ``` ```{r load, cache=TRUE, cache.extra=file.info('combined.Rds')$mtime} @@ -45,8 +45,8 @@ dds_list <- obj$dds_list ```{r functional_enrichment_prep, cache=TRUE, config=config$annotation$keytype, eval=config$toggle$functional_enrichment, dependson='load'} # We assume that keys are unique across all term2gene_lists. -term2gene_list <- lcdbwf::get_go_term2gene(config) -term2name <- lcdbwf::get_go_descriptions() +term2gene_list <- lcdbwf:::get_go_term2gene(config) +term2name <- lcdbwf:::get_go_descriptions() # We need to assign each key to its respective term2name dataframe (or NULL if # none) @@ -57,9 +57,9 @@ ontology_list <- c(term2gene_list) # This can take up a lot of memory on CI/CD, so we only do this if not doing # a test. if (!config$toggle$test){ - msigdb_df <- lcdbwf::get_msigdb_df(config) - msigdb_term2gene_list <- lcdbwf::get_msigdb_term2gene_list(msigdb_df) - msigdb_term2name <- lcdbwf::get_msigdb_term2name(msigdb_df) + msigdb_df <- lcdbwf:::get_msigdb_df(config) + msigdb_term2gene_list <- lcdbwf:::get_msigdb_term2gene_list(msigdb_df) + msigdb_term2name <- lcdbwf:::get_msigdb_term2name(msigdb_df) ontology_term2name_mapping <- c(ontology_term2name_mapping, lapply(msigdb_term2gene_list, function(x) NULL)) ontology_list <- c(ontology_list, msigdb_term2gene_list) } @@ -78,7 +78,7 @@ for (name in names(res_list)){ for (ont in names(config$functional_enrichment$ontologies)){ term2gene <- ontology_list[[ont]] term2name <- ontology_term2name_mapping[[ont]] - enrich_res <- lcdbwf::run_enrichment( + enrich_res <- lcdbwf:::run_enrichment( res_list[[name]], direction=direction, TERM2GENE=term2gene, @@ -99,13 +99,13 @@ for (name in names(res_list)){ ```{r functional_enrichment_plots} # Interestingly, it's the *caching* that causes this to hang for a loooong time. -dotplot_list <- lcdbwf::enrich_list_lapply(all_enrich, dotplots, config=config, send_names=TRUE) -emapplot_list <- lcdbwf::enrich_list_lapply(all_enrich, emapplots, config=config, send_names=TRUE) -cnetplot_list <- lcdbwf::enrich_list_lapply(all_enrich, cnetplots, config=config, send_names=TRUE) +dotplot_list <- lcdbwf:::enrich_list_lapply(all_enrich, dotplots, config=config, send_names=TRUE) +emapplot_list <- lcdbwf:::enrich_list_lapply(all_enrich, emapplots, config=config, send_names=TRUE) +cnetplot_list <- lcdbwf:::enrich_list_lapply(all_enrich, cnetplots, config=config, send_names=TRUE) ``` ```{r, results='asis'} -lcdbwf::mdcat("There are many different databases that annotate genes into sets.", +lcdbwf:::mdcat("There are many different databases that annotate genes into sets.", "The following sets are used here:") knitr::kable(config$functional_enrichment$ontologies %>% as.data.frame %>% t()) @@ -120,19 +120,19 @@ for (name in names(res_list)){ for (direction in config$functional_enrichment$directions){ mdcat("### ", direction, "{.tabset}") if (length(all_enrich[[name]][[direction]]) == 0){ - lcdbwf::mdcat("Too few genes differentially expressed.") + lcdbwf:::mdcat("Too few genes differentially expressed.") next } for (ont in names(all_enrich[[name]][[direction]])){ - lcdbwf::mdcat("#### ", ont, "{.tabset}") + lcdbwf:::mdcat("#### ", ont, "{.tabset}") - lcdbwf::mdcat("##### dotplot") + lcdbwf:::mdcat("##### dotplot") print(dotplot_list[[name]][[direction]][[ont]]) - lcdbwf::mdcat("##### emapplot") + lcdbwf:::mdcat("##### emapplot") print(emapplot_list[[name]][[direction]][[ont]]) - lcdbwf::mdcat("##### cnetplot") + lcdbwf:::mdcat("##### cnetplot") print(cnetplot_list[[name]][[direction]][[ont]]) } } From b1c81de170f9c0159ea0d89d43fd3dd426f34372 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Tue, 7 Mar 2023 14:36:10 -0500 Subject: [PATCH 61/91] modify gene pattern to be stand-alone Rmd --- workflows/rnaseq/downstream/gene-patterns.Rmd | 107 ++++++++++++++++-- 1 file changed, 100 insertions(+), 7 deletions(-) diff --git a/workflows/rnaseq/downstream/gene-patterns.Rmd b/workflows/rnaseq/downstream/gene-patterns.Rmd index 56d514c7..e2bf94e0 100644 --- a/workflows/rnaseq/downstream/gene-patterns.Rmd +++ b/workflows/rnaseq/downstream/gene-patterns.Rmd @@ -1,3 +1,45 @@ +--- +title: Gene pattern analysis +output: + html_document: + code_folding: hide + toc: true + toc_float: true + toc_depth: 3 +--- + +```{r global_options, include=FALSE} +# Sets up global options for rendering RMarkdown into HTML. +knitr::opts_chunk$set( + warning=FALSE, + message=FALSE +) +``` + +```{r} +library(dplyr) +library(tidyr) +library(clusterProfiler) +library(DESeq2) +library(DEGreport) +``` + +```{r load_helpers} +# Load the lcdbwf R package, which is stored locally. +# This package has many custom functions used throughout this document. +devtools::document('../../../lib/lcdbwf') +devtools::load_all('../../../lib/lcdbwf') + +config <- lcdbwf:::load_config('config.yaml') +``` + +```{r load, cache=TRUE, cache.extra=file.info('combined.Rds')$mtime} +obj <- readRDS('combined.Rds') +res.list <- obj$res_list +dds.list <- obj$dds_list +``` + + # Gene patterns {.tabset} We can roughly group genes into expression patterns. This uses the [DEGreport @@ -55,17 +97,23 @@ low.minc <- 1 more, they are merged together - Clusters with fewer than `r minc` genes are not shown. +Gene pattern for changed genes in individual contrasts are also indicated below. + ```{r finalclusters, fig.width=12, results='asis', cache=TRUE, dependson='selections'} # Run the clustering, identify patterns, and generate plots. # Docs: https://lcdb.github.io/lcdb-wf/rnaseq-rmd.html#finalclusters # NOTE: which genes to cluster?------------------------------------------------ # By default, we get all the changed genes, but you may want only the up or # down genes. -ll <- lapply(res.list, function (x) get.sig(x[['res']], 'changed')) +ll <- lapply(res.list, function (x) lcdbwf:::get_sig(x[['res']], 'changed')) # Filter out results where there were zero genes detected. ll <- ll[lapply(ll, length) > 0] +# get the list of all changed in any contrast +all.changed <- list('union_all_contrasts' = unlist(ll) %>% unique()) +ll <- c(all.changed, ll) + add.cluster.id <- function(clusters, res, label){ # Merges the degPattern cluster IDs `cluster` with DESeqresults `res` # `label` will be used to create a cluster column with a unique column name @@ -79,9 +127,16 @@ add.cluster.id <- function(clusters, res, label){ return(res) } +# n.list will store all the clusters to later add the cluster ID to res.list +n.list <- list() + for (name in names(ll)){ # Print a nice Markdown header - mdcat('## ', res.list[[name]][['label']]) + if (name == 'union_all_contrasts') { + mdcat('## ', name) + } else { + mdcat('## ', res.list[[name]][['label']]) + } genes <- ll[[name]] @@ -98,15 +153,23 @@ for (name in names(ll)){ } # Extract the normalized counts for these genes - vsd.i <- varianceStabilizingTransformation(dds.list[[ res.list[[name]][['dds']] ]], blind=TRUE) + if (name == 'union_all_contrasts') { + vsd.i <- varianceStabilizingTransformation(dds.list[[ 1 ]], blind=TRUE) + } else { + vsd.i <- varianceStabilizingTransformation(dds.list[[ res.list[[name]][['dds']] ]], blind=TRUE) + } idx <- rownames(vsd.i) %in% genes ma <- assay(vsd.i)[idx,] # Remove genes with identical normalized counts across all samples ma <- ma[apply(as.data.frame(ma), 1, n_distinct) > 1, ] - colData.i <- colData(dds.list[[ res.list[[name]][['dds']] ]]) - colData.i <- colData.i[,!(colnames(colData.i) %in% exclude.for.printing)] + if (name == 'union_all_contrasts') { + colData.i <- colData(dds.list[[ 1 ]]) + } else { + colData.i <- colData(dds.list[[ res.list[[name]][['dds']] ]]) + } + #colData.i <- colData.i[,!(colnames(colData.i) %in% exclude.for.printing)] # Sometimes, if there are limited clusters, degPattern fails. The solution @@ -151,6 +214,7 @@ for (name in names(ll)){ ) ) + n.list[[name]] <- n2 # In the final_clusters directory, this creates files containing lists of # the genes in each cluster, and adds a link to the Markdown. @@ -167,8 +231,37 @@ for (name in names(ll)){ dev.copy(pdf, file=pdf.file) dev.off() mdcat('- [', pdf.file, '](', pdf.file, '), PDF') +} +``` - # merge the degPattern cluster IDs with res.list - res.list[[name]][['res']] <- add.cluster.id(clusters=n2, res=res.list[[name]][['res']], label=name) +```{r add_cluster_id_res} +# merge the degPattern cluster IDs with res.list +for (name in names(res.list)) { + for (llname in names(ll)) { + res.list[[name]][['res']] <- add.cluster.id(clusters=n.list[[llname]], + res=res.list[[name]][['res']], + label=llname) + } } ``` + + + +# Exported results + +```{r excel, results='asis'} +lcdbwf:::exported_excel(res.list, dds.list, file='final_clusters/consolidated_results.xlsx') +``` + +Here is a single Excel file with one worksheet for each contrast: +[final_clusters/consolidated_results.xlsx](final_clusters/consolidated_results.xlsx) + +Alternatively, the files below are TSVs that can be opened in Excel or used +progammatically with downstream tools: + +```{r write_output, results='asis'} +# Write out files for full and each selection, and create a link to them in the +# HTML generated by this RMarkdown. +tbl <- lcdbwf:::exported_tsvs(res.list, directory='final_clusters') +knitr::kable(tbl, row.names=FALSE) +``` From 6b0ceae65361717b71ad9ce01bd35dd9f8dcc454 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 10 Mar 2023 13:23:16 -0500 Subject: [PATCH 62/91] add R plotting function for scatterplot of 2 contrasts LFCs color-coded by padj --- lib/lcdbwf/R/plotting.R | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/lib/lcdbwf/R/plotting.R b/lib/lcdbwf/R/plotting.R index c848f0d9..c850b9dc 100644 --- a/lib/lcdbwf/R/plotting.R +++ b/lib/lcdbwf/R/plotting.R @@ -418,3 +418,80 @@ plotSparsity2 <- function(dds){ } + + +#' Plot a scatterplot of two contrasts' LFCs, color-coded by significance +#' +#' This is edited from the DESeq2 vignette, from the section about independent +#' filtering. The resulting histogram indicates pvals for those genes kept and +#' removed before multiple testing adjustment. +#' +#' @param res_i DESeq2 results object +#' @param res_j second DESeq2 results object +#' @param padj.thr float, p.adj threshold +#' @param name.col string, gene name column to merge the 2 results, also used for labelling plots +#' @param label_i, label_j string, label for res_i and res_j +#' @param return.values boolean, whether to return the ggplot object (FALSE) or the dataframe (TRUE) +#' @param' color.palette list of string, colors to use for significance categories 'Both - same LFC sign', +#' 'Both - opposite LFC sign 'None', label_i, label_j + +#' @return Either returns a ggplot object of the scatterplot, or the corresponding dataframe if return.values=TRUE + +lfc_scatter <- function(res_i, res_j, padj.thr=0.1, name.col='SYMBOL', label_i=NULL, label_j=NULL, + return.values=FALSE, color.palette=c('#FF3333', "#FF6699", '#999999', '#66CCCC', '#0072B2')) { + # colors from color-blind palette red pink grey cyan blue + # check whether the genes match in res_i and res_j, emits a warning if not + diff.genes <- c(setdiff(rownames(res_i), rownames(res_j)), + setdiff(rownames(res_j), rownames(res_i))) %>% + unlist() %>% + unique() + if( length(diff.genes) > 0 ) { + warning(paste0(length(diff.genes), + ' genes were discarded because found in one res but not the other')) + } + + # use generic labels if not provided + if (is.null(label_i)) { + label_i <- 'LFCs contrast 1' + } + if (is.null(label_j)) { + label_j <- 'LFCs contrast 2' + } + + # join results into dataframe + cols.sub <- c('log2FoldChange', 'padj', name.col) + df <- merge(as.data.frame(res_i)[cols.sub], + as.data.frame(res_j)[cols.sub], + by= name.col) + # add significance column + df <- df %>% + mutate('Significance' = case_when( + (padj.x <= padj.thr) & (padj.y <= padj.thr) & (log2FoldChange.x * log2FoldChange.y >= 0) ~ 'Both - same LFC sign', + (padj.x <= padj.thr) & (padj.y <= padj.thr) & (log2FoldChange.x * log2FoldChange.y < 0) ~ 'Both - opposite LFC sign', + (padj.x <= padj.thr) ~ label_i, + (padj.y <= padj.thr) ~ label_j, + TRUE ~ 'None')) + + # if return.values, return the dataframe now, no need to generate the plot + if (return.values == TRUE) { + return(df) + } + + # Significance as factor, to reorder in the graph + df[['Significance']] <- factor(df[['Significance']], levels=c('None', label_j, label_i, 'Both - opposite LFC sign', 'Both - same LFC sign')) + + names(color.palette) <- c('Both - same LFC sign', 'Both - opposite LFC sign', 'None', label_i, label_j) + + p <- ggplot(df %>% arrange(Significance), aes_string(x='log2FoldChange.x', y='log2FoldChange.y', + color='Significance', label=name.col)) + + geom_point(size=1) + + theme_bw() + + scale_color_manual(values=color.palette) + + geom_abline(color="#333333", linetype="dashed", size=0.5, alpha=0.7) + + geom_hline(yintercept=0, color="#333333", linetype="dashed", size=0.5, alpha=0.7) + + geom_vline(xintercept=0, color="#333333", linetype="dashed", size=0.5, alpha=0.7) + + xlab(label_i) + + ylab(label_j) + + return(p) +} From ad2b6e045fcdc025df008a5fa281d7dfc65fbe17 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Wed, 29 Mar 2023 13:27:32 -0400 Subject: [PATCH 63/91] make lcdb-wf snakemake profile name consistent with snakemake --- include/WRAPPER_SLURM | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/WRAPPER_SLURM b/include/WRAPPER_SLURM index 393a12fd..841058f4 100755 --- a/include/WRAPPER_SLURM +++ b/include/WRAPPER_SLURM @@ -8,7 +8,7 @@ if [[ ! -e logs ]]; then mkdir -p logs; fi # use SNAKEMAKE_PROFILE if one is set in the environment variables -if [ -z "$LCDBWF_SNAKE_PROFILE" ]; then +if [ -z "$LCDBWF_SNAKEMAKE_PROFILE" ]; then if [ -z "$SNAKEMAKE_PROFILE" ]; then # no snakemake profile found PROFILE_CMD="" @@ -19,8 +19,8 @@ if [ -z "$LCDBWF_SNAKE_PROFILE" ]; then PROFILE_CMD="--profile $SNAKEMAKE_PROFILE" fi else -# LCDBWF_SNAKE_PROFILE found, this takes priority if both profile variables are set -PROFILE_CMD="--profile $LCDBWF_SNAKE_PROFILE" +# LCDBWF_SNAKEMAKE_PROFILE found, this takes priority if both profile variables are set +PROFILE_CMD="--profile $LCDBWF_SNAKEMAKE_PROFILE" fi # Run snakemake From e72a291930203ca53e4789ecd3e980498f1a59a6 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Wed, 29 Mar 2023 13:28:18 -0400 Subject: [PATCH 64/91] fix fastq-dump autobump --- workflows/rnaseq/Snakefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workflows/rnaseq/Snakefile b/workflows/rnaseq/Snakefile index fa41b43a..2798827f 100644 --- a/workflows/rnaseq/Snakefile +++ b/workflows/rnaseq/Snakefile @@ -138,7 +138,8 @@ if 'Run' in c.sampletable.columns and sum(c.sampletable['Run'].str.startswith('S sampletable=_st, # limit = 100000, # [TEST SETTINGS] resources: - mem_mb=autobump(1024), + mem_mb=1024, + disk_mb=autobump(1024), runtime=autobump(120) conda: '../../wrappers/wrappers/fastq-dump/environment.yaml' From 7d2be46dd48f056a853f73e28b150e8d4a4bed05 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 06:11:43 -0400 Subject: [PATCH 65/91] update env requirements to latest compatible versions --- env-r.yml | 770 ++++++++++++++++++++++++++++-------------------------- env.yml | 446 ++++++++++++++++--------------- 2 files changed, 631 insertions(+), 585 deletions(-) diff --git a/env-r.yml b/env-r.yml index 4b30a89a..a23ff911 100644 --- a/env-r.yml +++ b/env-r.yml @@ -1,387 +1,403 @@ -name: null channels: - conda-forge - bioconda dependencies: - - _libgcc_mutex=0.1=conda_forge + - _libgcc_mutex=0.1 - _openmp_mutex=4.5=2_gnu - - _r-mutex=1.0.1=anacondar_1 - - binutils_impl_linux-64=2.39=h6ceecb4_0 - - bioconductor-all=1.32.0=r40hdfd78af_1 - - bioconductor-annotate=1.68.0=r40hdfd78af_1 - - bioconductor-annotationdbi=1.52.0=r40hdfd78af_1 - - bioconductor-annotationhub=2.22.0=r40hdfd78af_1 - - bioconductor-apeglm=1.12.0=r40h399db7b_1 - - bioconductor-biobase=2.50.0=r40hd029910_1 - - bioconductor-biocfilecache=1.14.0=r40hdfd78af_1 - - bioconductor-biocgenerics=0.36.0=r40hdfd78af_1 - - bioconductor-biocparallel=1.24.1=r40h399db7b_0 - - bioconductor-biocversion=3.12.0=r40hdfd78af_1 - - bioconductor-biomart=2.46.3=r40hdfd78af_0 - - bioconductor-biostrings=2.58.0=r40hd029910_1 - - bioconductor-clusterprofiler=3.18.1=r40hdfd78af_0 - - bioconductor-complexheatmap=2.6.2=r40hdfd78af_1 - - bioconductor-consensusclusterplus=1.54.0=r40hdfd78af_1 - - bioconductor-degreport=1.26.0=r40hdfd78af_1 - - bioconductor-delayedarray=0.16.3=r40hd029910_0 - - bioconductor-deseq2=1.30.1=r40h399db7b_0 - - bioconductor-do.db=2.9=r40hdfd78af_10 - - bioconductor-dose=3.16.0=r40hdfd78af_1 - - bioconductor-dupradar=1.20.0=r40hdfd78af_1 - - bioconductor-edger=3.32.1=r40h399db7b_0 - - bioconductor-enrichplot=1.10.2=r40hdfd78af_0 - - bioconductor-fgsea=1.16.0=r40h399db7b_1 - - bioconductor-genefilter=1.72.1=r40hba52eb8_0 - - bioconductor-geneplotter=1.68.0=r40hdfd78af_1 - - bioconductor-genomeinfodb=1.26.4=r40hdfd78af_0 - - bioconductor-genomeinfodbdata=1.2.4=r40hdfd78af_2 - - bioconductor-genomicalignments=1.26.0=r40hd029910_1 - - bioconductor-genomicfeatures=1.42.2=r40hdfd78af_0 - - bioconductor-genomicranges=1.42.0=r40hd029910_1 - - bioconductor-go.db=3.12.1=r40hdfd78af_1 - - bioconductor-gosemsim=2.16.1=r40h399db7b_0 - - bioconductor-graph=1.68.0=r40hd029910_1 - - bioconductor-graphite=1.36.0=r40hdfd78af_1 - - bioconductor-ihw=1.18.0=r40hdfd78af_1 - - bioconductor-interactivedisplaybase=1.28.0=r40hdfd78af_1 - - bioconductor-iranges=2.24.1=r40hd029910_0 - - bioconductor-limma=3.46.0=r40hd029910_1 - - bioconductor-lpsymphony=1.18.0=r40h399db7b_1 - - bioconductor-matrixgenerics=1.2.1=r40hdfd78af_0 - - bioconductor-qvalue=2.22.0=r40hdfd78af_1 - - bioconductor-reactome.db=1.74.0=r40hdfd78af_1 - - bioconductor-reactomepa=1.34.0=r40hdfd78af_1 - - bioconductor-rhdf5=2.34.0=r40h399db7b_1 - - bioconductor-rhdf5filters=1.2.0=r40h399db7b_1 - - bioconductor-rhdf5lib=1.12.1=r40hd029910_0 - - bioconductor-rhtslib=1.22.0=r40hd029910_1 - - bioconductor-rsamtools=2.6.0=r40h399db7b_1 - - bioconductor-rsubread=2.4.3=r40hd029910_0 - - bioconductor-rtracklayer=1.50.0=r40h7f5ccec_2 - - bioconductor-s4vectors=0.28.1=r40hd029910_0 - - bioconductor-summarizedexperiment=1.20.0=r40hdfd78af_1 - - bioconductor-sva=3.38.0=r40hd029910_1 - - bioconductor-tximport=1.18.0=r40hdfd78af_1 - - bioconductor-xvector=0.30.0=r40hd029910_1 - - bioconductor-zlibbioc=1.36.0=r40hd029910_1 - - bwidget=1.9.14=ha770c72_1 - - bzip2=1.0.8=h7f98852_4 - - c-ares=1.18.1=h7f98852_0 - - ca-certificates=2022.9.24=ha878542_0 - - cairo=1.16.0=ha61ee94_1014 - - curl=7.86.0=h7bff187_1 - - expat=2.5.0=h27087fc_0 - - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - - font-ttf-inconsolata=3.000=h77eed37_0 - - font-ttf-source-code-pro=2.038=h77eed37_0 - - font-ttf-ubuntu=0.83=hab24e00_0 - - fontconfig=2.14.1=hc2a2eb6_0 + - _r-mutex=1.0.1 + - binutils_impl_linux-64=2.40 + - bioconductor-all=1.40.0 + - bioconductor-annotate=1.76.0 + - bioconductor-annotationdbi=1.60.0 + - bioconductor-annotationhub=3.6.0 + - bioconductor-apeglm=1.20.0 + - bioconductor-biobase=2.58.0 + - bioconductor-biocfilecache=2.6.0 + - bioconductor-biocgenerics=0.44.0 + - bioconductor-biocio=1.8.0 + - bioconductor-biocparallel=1.32.5 + - bioconductor-biocversion=3.16.0 + - bioconductor-biomart=2.54.0 + - bioconductor-biostrings=2.66.0 + - bioconductor-clusterprofiler=4.6.0 + - bioconductor-complexheatmap=2.14.0 + - bioconductor-consensusclusterplus=1.62.0 + - bioconductor-data-packages=20230202 + - bioconductor-degreport=1.34.0 + - bioconductor-delayedarray=0.24.0 + - bioconductor-deseq2=1.38.0 + - bioconductor-dose=3.24.0 + - bioconductor-edger=3.40.0 + - bioconductor-enrichplot=1.18.0 + - bioconductor-fgsea=1.24.0 + - bioconductor-genefilter=1.80.0 + - bioconductor-geneplotter=1.76.0 + - bioconductor-genomeinfodb=1.34.8 + - bioconductor-genomeinfodbdata=1.2.9 + - bioconductor-genomicalignments=1.34.0 + - bioconductor-genomicfeatures=1.50.2 + - bioconductor-genomicranges=1.50.0 + - bioconductor-ggtree=3.6.0 + - bioconductor-go.db=3.16.0 + - bioconductor-gosemsim=2.24.0 + - bioconductor-hdo.db=0.99.1 + - bioconductor-ihw=1.26.0 + - bioconductor-interactivedisplaybase=1.36.0 + - bioconductor-iranges=2.32.0 + - bioconductor-keggrest=1.38.0 + - bioconductor-limma=3.54.0 + - bioconductor-lpsymphony=1.26.0 + - bioconductor-matrixgenerics=1.10.0 + - bioconductor-qvalue=2.30.0 + - bioconductor-rhdf5=2.42.0 + - bioconductor-rhdf5filters=1.10.0 + - bioconductor-rhdf5lib=1.20.0 + - bioconductor-rhtslib=2.0.0 + - bioconductor-rsamtools=2.14.0 + - bioconductor-rtracklayer=1.58.0 + - bioconductor-s4vectors=0.36.0 + - bioconductor-summarizedexperiment=1.28.0 + - bioconductor-sva=3.46.0 + - bioconductor-treeio=1.22.0 + - bioconductor-tximport=1.26.0 + - bioconductor-xvector=0.38.0 + - bioconductor-zlibbioc=1.44.0 + - bwidget=1.9.14 + - bzip2=1.0.8 + - c-ares=1.18.1 + - ca-certificates=2022.12.7 + - cairo=1.16.0 + - curl=7.87.0 + - expat=2.5.0 + - font-ttf-dejavu-sans-mono=2.37 + - font-ttf-inconsolata=3.000 + - font-ttf-source-code-pro=2.038 + - font-ttf-ubuntu=0.83 + - fontconfig=2.14.2 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - - freetype=2.12.1=hca18f0e_0 - - fribidi=1.0.10=h36c2ea0_0 - - gcc_impl_linux-64=12.2.0=hcc96c02_19 - - gettext=0.21.1=h27087fc_0 - - gfortran_impl_linux-64=12.2.0=h55be85b_19 - - glpk=5.0=h445213a_0 - - gmp=6.2.1=h58526e2_0 - - graphite2=1.3.13=h58526e2_1001 - - gsl=2.7=he838d99_0 - - gxx_impl_linux-64=12.2.0=hcc96c02_19 - - harfbuzz=5.3.0=h418a68e_0 - - icu=70.1=h27087fc_0 - - jpeg=9e=h166bdaf_2 - - kernel-headers_linux-64=2.6.32=he073ed8_15 - - keyutils=1.6.1=h166bdaf_0 - - krb5=1.19.3=h3790be6_0 - - ld_impl_linux-64=2.39=hc81fddc_0 - - lerc=4.0.0=h27087fc_0 + - freetype=2.12.1 + - fribidi=1.0.10 + - gcc_impl_linux-64=12.2.0 + - gettext=0.21.1 + - gfortran_impl_linux-64=12.2.0 + - glpk=5.0 + - gmp=6.2.1 + - graphite2=1.3.13 + - gsl=2.7 + - gxx_impl_linux-64=12.2.0 + - harfbuzz=6.0.0 + - icu=70.1 + - jpeg=9e + - jq=1.6 + - kernel-headers_linux-64=2.6.32 + - keyutils=1.6.1 + - krb5=1.20.1 + - ld_impl_linux-64=2.40 + - lerc=4.0.0 - libblas=3.9.0=16_linux64_openblas - libcblas=3.9.0=16_linux64_openblas - - libcurl=7.86.0=h7bff187_1 - - libdeflate=1.14=h166bdaf_0 - - libedit=3.1.20191231=he28a2e2_2 - - libev=4.33=h516909a_1 - - libffi=3.4.2=h7f98852_5 - - libgcc-devel_linux-64=12.2.0=h3b97bd3_19 - - libgcc-ng=12.2.0=h65d4601_19 - - libgfortran-ng=12.2.0=h69a702a_19 - - libgfortran5=12.2.0=h337968e_19 - - libgit2=1.5.0=hde0c96a_1 - - libglib=2.74.1=h606061b_1 - - libgomp=12.2.0=h65d4601_19 - - libiconv=1.17=h166bdaf_0 + - libcurl=7.87.0 + - libdeflate=1.17 + - libedit=3.1.20191231 + - libev=4.33 + - libffi=3.4.2 + - libgcc-devel_linux-64=12.2.0 + - libgcc-ng=12.2.0 + - libgfortran-ng=12.2.0 + - libgfortran5=12.2.0 + - libgit2=1.5.1 + - libglib=2.74.1 + - libgomp=12.2.0 + - libiconv=1.17 - liblapack=3.9.0=16_linux64_openblas - - libnghttp2=1.47.0=hdcd2b5c_1 - - libopenblas=0.3.21=pthreads_h78a6416_3 - - libpng=1.6.38=h753d276_0 - - libsanitizer=12.2.0=h46fd767_19 - - libssh2=1.10.0=haa6b8db_3 - - libstdcxx-devel_linux-64=12.2.0=h3b97bd3_19 - - libstdcxx-ng=12.2.0=h46fd767_19 - - libtiff=4.4.0=h55922b4_4 - - libuuid=2.32.1=h7f98852_1000 - - libwebp-base=1.2.4=h166bdaf_0 - - libxcb=1.13=h7f98852_1004 - - libxml2=2.10.3=h7463322_0 - - libzlib=1.2.13=h166bdaf_4 - - make=4.3=hd18ef5c_1 - - ncurses=6.3=h27087fc_1 - - openssl=1.1.1s=h166bdaf_0 - - pandoc=2.19.2=h32600fe_1 - - pango=1.50.11=h382ae3d_0 - - pcre2=10.40=hc3806b6_0 - - pixman=0.40.0=h36c2ea0_0 - - pthread-stubs=0.4=h36c2ea0_1001 - - r-ashr=2.2_54=r40h7525677_0 - - r-askpass=1.1=r40hcfec24a_2 - - r-assertthat=0.2.1=r40hc72bb7e_2 - - r-babelgene=22.3=r40hc72bb7e_0 - - r-backports=1.4.1=r40hcfec24a_0 - - r-base=4.0.5=hb87df5d_8 - - r-base64enc=0.1_3=r40hcfec24a_1004 - - r-bbmle=1.0.25=r40hc72bb7e_0 - - r-bdsmatrix=1.3_6=r40h06615bd_0 - - r-bh=1.78.0_0=r40hc72bb7e_0 - - r-biocmanager=1.30.18=r40hc72bb7e_0 - - r-bit=4.0.4=r40hcfec24a_0 - - r-bit64=4.0.5=r40hcfec24a_0 - - r-bitops=1.0_7=r40h06615bd_0 - - r-blob=1.2.3=r40hc72bb7e_0 - - r-brew=1.0_7=r40hc72bb7e_0 - - r-brio=1.1.3=r40hcfec24a_0 - - r-broom=1.0.1=r40hc72bb7e_0 - - r-bslib=0.4.0=r40hc72bb7e_0 - - r-cachem=1.0.6=r40hcfec24a_0 - - r-cairo=1.6_0=r40h06615bd_0 - - r-callr=3.7.2=r40hc72bb7e_0 - - r-catools=1.18.2=r40h7525677_0 - - r-checkmate=2.1.0=r40h06615bd_0 - - r-circlize=0.4.15=r40hc72bb7e_0 - - r-cli=3.4.1=r40h7525677_0 - - r-clipr=0.8.0=r40hc72bb7e_0 - - r-clue=0.3_60=r40hcfec24a_0 - - r-cluster=2.1.3=r40h8da6f51_0 - - r-coda=0.19_4=r40hc72bb7e_0 - - r-codetools=0.2_18=r40hc72bb7e_0 - - r-colorspace=2.0_3=r40h06615bd_0 - - r-commonmark=1.8.0=r40h06615bd_0 - - r-cowplot=1.1.1=r40hc72bb7e_0 - - r-cpp11=0.4.2=r40hc72bb7e_0 - - r-crayon=1.5.1=r40hc72bb7e_0 - - r-credentials=1.3.2=r40hc72bb7e_0 - - r-crosstalk=1.2.0=r40hc72bb7e_0 - - r-curl=4.3.2=r40hcfec24a_0 - - r-data.table=1.14.2=r40hcfec24a_0 - - r-dbi=1.1.3=r40hc72bb7e_0 - - r-dbplyr=2.2.1=r40hc72bb7e_0 - - r-dendextend=1.16.0=r40hc72bb7e_0 - - r-desc=1.4.2=r40hc72bb7e_0 - - r-devtools=2.4.4=r40hc72bb7e_0 - - r-diffobj=0.3.5=r40hcfec24a_0 - - r-digest=0.6.29=r40h03ef668_0 - - r-downlit=0.4.2=r40hc72bb7e_0 - - r-downloader=0.4=r40hc72bb7e_1003 - - r-dplyr=1.0.10=r40h7525677_0 - - r-dt=0.25=r40hc72bb7e_0 - - r-egg=0.4.5=r40hc72bb7e_2 - - r-ellipsis=0.3.2=r40hcfec24a_0 - - r-emdbook=1.3.12=r40hc72bb7e_1 - - r-etrunct=0.1=r40hc72bb7e_1003 - - r-evaluate=0.16=r40hc72bb7e_0 - - r-fansi=1.0.3=r40h06615bd_0 - - r-farver=2.1.1=r40h7525677_0 - - r-fastmap=1.1.0=r40h03ef668_0 - - r-fastmatch=1.1_3=r40hcfec24a_0 - - r-fdrtool=1.2.17=r40hcfec24a_0 - - r-fontawesome=0.3.0=r40hc72bb7e_0 - - r-forcats=0.5.2=r40hc72bb7e_0 - - r-foreach=1.5.2=r40hc72bb7e_0 - - r-formatr=1.12=r40hc72bb7e_0 - - r-fs=1.5.2=r40h7525677_1 - - r-futile.logger=1.4.3=r40hc72bb7e_1003 - - r-futile.options=1.0.1=r40hc72bb7e_1002 - - r-gclus=1.3.2=r40hc72bb7e_2 - - r-generics=0.1.3=r40hc72bb7e_0 - - r-gert=1.5.0=r40h163148b_2 - - r-getoptlong=1.0.5=r40hc72bb7e_0 - - r-ggally=2.1.2=r40hc72bb7e_0 - - r-ggdendro=0.1.23=r40hc72bb7e_0 - - r-ggforce=0.3.4=r40h7525677_0 - - r-ggfun=0.0.7=r40hc72bb7e_0 - - r-ggnewscale=0.4.7=r40hc72bb7e_0 - - r-ggplot2=3.3.6=r40hc72bb7e_0 - - r-ggraph=2.0.6=r40h7525677_0 - - r-ggrepel=0.9.1=r40h03ef668_0 - - r-gh=1.3.1=r40hc72bb7e_0 - - r-gitcreds=0.1.2=r40hc72bb7e_0 - - r-globaloptions=0.1.2=r40ha770c72_0 - - r-glue=1.6.2=r40h06615bd_0 - - r-gplots=3.1.3=r40hc72bb7e_0 - - r-graphlayouts=0.8.1=r40h7525677_0 - - r-gridextra=2.3=r40hc72bb7e_1003 - - r-gtable=0.3.1=r40hc72bb7e_0 - - r-gtools=3.9.3=r40h06615bd_0 - - r-heatmaply=1.3.0=r40hc72bb7e_0 - - r-hexbin=1.28.2=r40h8da6f51_0 - - r-highr=0.9=r40hc72bb7e_0 - - r-hms=1.1.2=r40hc72bb7e_0 - - r-htmltools=0.5.3=r40h7525677_0 - - r-htmlwidgets=1.5.4=r40hc72bb7e_0 - - r-httpuv=1.6.6=r40h7525677_0 - - r-httr=1.4.4=r40hc72bb7e_0 - - r-igraph=1.3.4=r40hb34fc8a_0 - - r-ini=0.3.1=r40hc72bb7e_1003 - - r-invgamma=1.1=r40hc72bb7e_1 - - r-irlba=2.3.5=r40h5f7b363_0 - - r-isoband=0.2.5=r40h03ef668_0 - - r-iterators=1.0.14=r40hc72bb7e_0 - - r-jquerylib=0.1.4=r40hc72bb7e_0 - - r-jsonlite=1.8.0=r40h06615bd_0 - - r-kernsmooth=2.23_20=r40h742201e_0 - - r-knitr=1.40=r40hc72bb7e_0 - - r-labeling=0.4.2=r40hc72bb7e_1 - - r-lambda.r=1.2.4=r40hc72bb7e_1 - - r-lasso2=1.2_22=r40hcfec24a_0 - - r-later=1.2.0=r40h03ef668_0 - - r-lattice=0.20_45=r40hcfec24a_0 - - r-lazyeval=0.2.2=r40hcfec24a_2 - - r-lifecycle=1.0.2=r40hc72bb7e_0 - - r-locfit=1.5_9.4=r40hcfec24a_1 - - r-logging=0.10_108=r40ha770c72_2 - - r-magrittr=2.0.3=r40h06615bd_0 - - r-mass=7.3_58.1=r40h06615bd_0 - - r-matrix=1.4_1=r40h0154571_0 - - r-matrixstats=0.62.0=r40h06615bd_0 - - r-memoise=2.0.1=r40hc72bb7e_0 - - r-mgcv=1.8_40=r40h0154571_0 - - r-mime=0.12=r40hcfec24a_0 - - r-miniui=0.1.1.1=r40hc72bb7e_1002 - - r-mixsqp=0.3_43=r40h306847c_1 - - r-mnormt=2.1.0=r40h8da6f51_0 - - r-msigdbr=7.5.1=r40hc72bb7e_0 - - r-munsell=0.5.0=r40hc72bb7e_1004 - - r-mvtnorm=1.1_3=r40h859d828_0 - - r-nlme=3.1_159=r40h8da6f51_0 - - r-nozzle.r1=1.1_1.1=r40ha770c72_0 - - r-numderiv=2016.8_1.1=r40hc72bb7e_3 - - r-openssl=2.0.3=r40hfaab4ff_0 - - r-openxlsx=4.2.5=r40h03ef668_0 - - r-pheatmap=1.0.12=r40hc72bb7e_2 - - r-pillar=1.8.1=r40hc72bb7e_0 - - r-pkgbuild=1.3.1=r40hc72bb7e_0 - - r-pkgconfig=2.0.3=r40hc72bb7e_1 - - r-pkgdown=2.0.6=r40hc72bb7e_0 - - r-pkgload=1.3.0=r40hc72bb7e_0 - - r-plogr=0.2.0=r40hc72bb7e_1003 - - r-plotly=4.10.0=r40hc72bb7e_0 - - r-plyr=1.8.7=r40h7525677_0 - - r-png=0.1_7=r40hcfec24a_1004 - - r-polyclip=1.10_0=r40h7525677_2 - - r-praise=1.0.0=r40hc72bb7e_1005 - - r-prettyunits=1.1.1=r40hc72bb7e_1 - - r-processx=3.7.0=r40h06615bd_0 - - r-profvis=0.3.7=r40hcfec24a_0 - - r-progress=1.2.2=r40hc72bb7e_2 - - r-promises=1.2.0.1=r40h03ef668_0 - - r-ps=1.7.1=r40h06615bd_0 - - r-psych=2.2.5=r40hc72bb7e_0 - - r-purrr=0.3.4=r40hcfec24a_1 - - r-qap=0.1_2=r40h8da6f51_0 - - r-r6=2.5.1=r40hc72bb7e_0 - - r-ragg=1.2.2=r40hc1f6985_0 - - r-rappdirs=0.3.3=r40hcfec24a_0 - - r-rcmdcheck=1.4.0=r40h785f33e_0 - - r-rcolorbrewer=1.1_3=r40h785f33e_0 - - r-rcpp=1.0.9=r40h7525677_1 - - r-rcpparmadillo=0.11.2.3.1=r40h9f5de39_0 - - r-rcppeigen=0.3.3.9.2=r40h43535f1_0 - - r-rcppnumerical=0.4_0=r40h03ef668_1 - - r-rcurl=1.98_1.8=r40h06615bd_0 - - r-readr=2.1.2=r40h03ef668_0 - - r-registry=0.5_1=r40hc72bb7e_2 - - r-rematch2=2.1.2=r40hc72bb7e_1 - - r-remotes=2.4.2=r40hc72bb7e_0 - - r-reshape=0.8.9=r40hc72bb7e_0 - - r-reshape2=1.4.4=r40h03ef668_1 - - r-rjson=0.2.21=r40h7525677_1 - - r-rlang=1.0.6=r40h7525677_0 - - r-rmarkdown=2.16=r40hc72bb7e_0 - - r-roxygen2=7.2.1=r40h7525677_0 - - r-rprojroot=2.0.3=r40hc72bb7e_0 - - r-rsqlite=2.2.8=r40h03ef668_0 - - r-rstudioapi=0.14=r40hc72bb7e_0 - - r-rvcheck=0.2.1=r40hc72bb7e_0 - - r-rversions=2.1.2=r40hc72bb7e_0 - - r-sass=0.4.2=r40h7525677_0 - - r-scales=1.2.1=r40hc72bb7e_0 - - r-scatterpie=0.1.8=r40hc72bb7e_0 - - r-seriation=1.3.6=r40h8da6f51_0 - - r-sessioninfo=1.2.2=r40hc72bb7e_0 - - r-shadowtext=0.1.2=r40hc72bb7e_0 - - r-shape=1.4.6=r40ha770c72_0 - - r-shiny=1.7.2=r40h785f33e_0 - - r-slam=0.1_50=r40hb699f27_1 - - r-snow=0.4_4=r40hc72bb7e_0 - - r-sourcetools=0.1.7=r40h03ef668_1002 - - r-sparsem=1.81=r40h859d828_0 - - r-spp=1.16.0=r40h52a8340_4 - - r-squarem=2021.1=r40hc72bb7e_0 - - r-stringi=1.7.8=r40h30a9eb7_0 - - r-stringr=1.4.1=r40hc72bb7e_0 - - r-survival=3.4_0=r40h06615bd_0 - - r-sys=3.4=r40hcfec24a_0 - - r-systemfonts=1.0.4=r40hef9c87a_0 - - r-testthat=3.1.4=r40h7525677_0 - - r-textshaping=0.3.6=r40h9354b80_2 - - r-tibble=3.1.8=r40h06615bd_0 - - r-tidygraph=1.2.2=r40h7525677_0 - - r-tidyr=1.2.1=r40h7525677_0 - - r-tidyselect=1.1.2=r40hc72bb7e_0 - - r-tinytex=0.42=r40hc72bb7e_0 - - r-tmvnsim=1.0_2=r40h859d828_3 - - r-truncnorm=1.0_8=r40hcfec24a_1002 - - r-tsp=1.2_1=r40h06615bd_0 - - r-tweenr=2.0.2=r40h7525677_0 - - r-tzdb=0.3.0=r40h7525677_0 - - r-upsetr=1.4.0=r40hc72bb7e_2 - - r-urlchecker=1.0.1=r40hc72bb7e_0 - - r-usethis=2.1.6=r40hc72bb7e_0 - - r-utf8=1.2.2=r40hcfec24a_0 - - r-vctrs=0.4.1=r40h7525677_0 - - r-viridis=0.6.2=r40hc72bb7e_0 - - r-viridislite=0.4.1=r40hc72bb7e_0 - - r-vroom=1.5.7=r40h03ef668_0 - - r-waldo=0.4.0=r40hc72bb7e_0 - - r-webshot=0.5.4=r40hc72bb7e_0 - - r-whisker=0.4=r40hc72bb7e_1 - - r-withr=2.5.0=r40hc72bb7e_0 - - r-xfun=0.33=r40h7525677_0 - - r-xml=3.99_0.10=r40h06615bd_0 - - r-xml2=1.3.3=r40h7525677_1 - - r-xopen=1.0.0=r40hc72bb7e_1003 - - r-xtable=1.8_4=r40hc72bb7e_3 - - r-yaml=2.3.5=r40h06615bd_0 - - r-yulab.utils=0.0.5=r40hc72bb7e_0 - - r-zip=2.2.1=r40h06615bd_0 - - readline=8.1.2=h0f457ee_0 - - sed=4.8=he412f7d_0 - - sysroot_linux-64=2.12=he073ed8_15 - - tk=8.6.12=h27826a3_0 - - tktable=2.10=hb7b940f_3 - - xorg-kbproto=1.0.7=h7f98852_1002 - - xorg-libice=1.0.10=h7f98852_0 - - xorg-libsm=1.2.3=hd9c2040_1000 - - xorg-libx11=1.7.2=h7f98852_0 - - xorg-libxau=1.0.9=h7f98852_0 - - xorg-libxdmcp=1.1.3=h7f98852_0 - - xorg-libxext=1.3.4=h7f98852_1 - - xorg-libxrender=0.9.10=h7f98852_1003 - - xorg-libxt=1.2.1=h7f98852_2 - - xorg-renderproto=0.11.1=h7f98852_1002 - - xorg-xextproto=7.3.0=h7f98852_1002 - - xorg-xproto=7.0.31=h7f98852_1007 - - xz=5.2.6=h166bdaf_0 - - zlib=1.2.13=h166bdaf_4 - - zstd=1.5.2=h6239696_4 -prefix: /home/dalerr/proj/lcdb-wf/env-r + - libnghttp2=1.51.0 + - libnsl=2.0.0 + - libopenblas=0.3.21 + - libpng=1.6.39 + - libsanitizer=12.2.0 + - libsqlite=3.40.0 + - libssh2=1.10.0 + - libstdcxx-devel_linux-64=12.2.0 + - libstdcxx-ng=12.2.0 + - libtiff=4.5.0 + - libuuid=2.38.1 + - libwebp-base=1.3.0 + - libxcb=1.13 + - libxml2=2.10.3 + - libzlib=1.2.13 + - make=4.3 + - ncurses=6.3 + - oniguruma=6.9.8 + - openssl=1.1.1t + - pandoc=2.19.2 + - pango=1.50.14 + - pcre2=10.40 + - pixman=0.40.0 + - pthread-stubs=0.4 + - python=3.11.0 + - python_abi=3.11=3_cp311 + - r-ape=5.7_1 + - r-aplot=0.1.10 + - r-ashr=2.2_54 + - r-askpass=1.1 + - r-assertthat=0.2.1 + - r-babelgene=22.9 + - r-backports=1.4.1 + - r-base=4.2.2 + - r-base64enc=0.1_3 + - r-bbmle=1.0.25 + - r-bdsmatrix=1.3_6 + - r-bh=1.81.0_1 + - r-biocmanager=1.30.20 + - r-bit=4.0.5 + - r-bit64=4.0.5 + - r-bitops=1.0_7 + - r-blob=1.2.4 + - r-brew=1.0_8 + - r-brio=1.1.3 + - r-broom=1.0.4 + - r-bslib=0.4.2 + - r-ca=0.71.1 + - r-cachem=1.0.7 + - r-callr=3.7.3 + - r-circlize=0.4.15 + - r-cli=3.6.1 + - r-clipr=0.8.0 + - r-clue=0.3_64 + - r-cluster=2.1.4 + - r-coda=0.19_4 + - r-codetools=0.2_19 + - r-colorspace=2.1_0 + - r-commonmark=1.9.0 + - r-cowplot=1.1.1 + - r-cpp11=0.4.3 + - r-crayon=1.5.2 + - r-credentials=1.3.2 + - r-crosstalk=1.2.0 + - r-curl=4.3.3 + - r-data.table=1.14.8 + - r-dbi=1.1.3 + - r-dbplyr=2.3.2 + - r-dendextend=1.17.1 + - r-desc=1.4.2 + - r-devtools=2.4.5 + - r-diffobj=0.3.5 + - r-digest=0.6.31 + - r-doparallel=1.0.17 + - r-downlit=0.4.2 + - r-downloader=0.4 + - r-dplyr=1.1.1 + - r-dt=0.27 + - r-egg=0.4.5 + - r-ellipsis=0.3.2 + - r-emdbook=1.3.12 + - r-etrunct=0.1 + - r-evaluate=0.20 + - r-fansi=1.0.4 + - r-farver=2.1.1 + - r-fastmap=1.1.1 + - r-fastmatch=1.1_3 + - r-fdrtool=1.2.17 + - r-filelock=1.0.2 + - r-fontawesome=0.5.0 + - r-forcats=1.0.0 + - r-foreach=1.5.2 + - r-formatr=1.14 + - r-fs=1.6.1 + - r-futile.logger=1.4.3 + - r-futile.options=1.0.1 + - r-gclus=1.3.2 + - r-generics=0.1.3 + - r-gert=1.9.2 + - r-getoptlong=1.0.5 + - r-ggally=2.1.2 + - r-ggdendro=0.1.23 + - r-ggforce=0.4.1 + - r-ggfun=0.0.9 + - r-ggnewscale=0.4.8 + - r-ggplot2=3.4.1 + - r-ggplotify=0.1.0 + - r-ggraph=2.1.0 + - r-ggrepel=0.9.3 + - r-gh=1.4.0 + - r-gitcreds=0.1.2 + - r-globaloptions=0.1.2 + - r-glue=1.6.2 + - r-graphlayouts=0.8.4 + - r-gridextra=2.3 + - r-gridgraphics=0.5_1 + - r-gson=0.1.0 + - r-gtable=0.3.3 + - r-heatmaply=1.4.2 + - r-hexbin=1.28.3 + - r-highr=0.10 + - r-hms=1.1.3 + - r-htmltools=0.5.5 + - r-htmlwidgets=1.6.2 + - r-httpuv=1.6.9 + - r-httr=1.4.5 + - r-httr2=0.2.2 + - r-igraph=1.4.1 + - r-ini=0.3.1 + - r-invgamma=1.1 + - r-irlba=2.3.5.1 + - r-isoband=0.2.7 + - r-iterators=1.0.14 + - r-jquerylib=0.1.4 + - r-jsonlite=1.8.4 + - r-knitr=1.42 + - r-labeling=0.4.2 + - r-lambda.r=1.2.4 + - r-later=1.3.0 + - r-lattice=0.20_45 + - r-lazyeval=0.2.2 + - r-lifecycle=1.0.3 + - r-locfit=1.5_9.7 + - r-logging=0.10_108 + - r-magrittr=2.0.3 + - r-mass=7.3_58.3 + - r-matrix=1.5_3 + - r-matrixstats=0.63.0 + - r-memoise=2.0.1 + - r-mgcv=1.8_42 + - r-mime=0.12 + - r-miniui=0.1.1.1 + - r-mixsqp=0.3_48 + - r-mnormt=2.1.1 + - r-msigdbr=7.5.1 + - r-munsell=0.5.0 + - r-mvtnorm=1.1_3 + - r-nlme=3.1_162 + - r-numderiv=2016.8_1.1 + - r-openssl=2.0.5 + - r-openxlsx=4.2.5.2 + - r-patchwork=1.1.2 + - r-pheatmap=1.0.12 + - r-pillar=1.9.0 + - r-pkgbuild=1.4.0 + - r-pkgconfig=2.0.3 + - r-pkgdown=2.0.7 + - r-pkgload=1.3.2 + - r-plogr=0.2.0 + - r-plotly=4.10.1 + - r-plyr=1.8.8 + - r-png=0.1_8 + - r-polyclip=1.10_4 + - r-praise=1.0.0 + - r-prettyunits=1.1.1 + - r-processx=3.8.0 + - r-profvis=0.3.7 + - r-progress=1.2.2 + - r-promises=1.2.0.1 + - r-ps=1.7.3 + - r-psych=2.3.3 + - r-purrr=1.0.1 + - r-qap=0.1_2 + - r-r6=2.5.1 + - r-ragg=1.2.5 + - r-rappdirs=0.3.3 + - r-rcmdcheck=1.4.0 + - r-rcolorbrewer=1.1_3 + - r-rcpp=1.0.10 + - r-rcpparmadillo=0.11.4.4.0 + - r-rcppeigen=0.3.3.9.3 + - r-rcppnumerical=0.5_0 + - r-rcurl=1.98_1.10 + - r-readr=2.1.4 + - r-registry=0.5_1 + - r-rematch2=2.1.2 + - r-remotes=2.4.2 + - r-reshape=0.8.9 + - r-reshape2=1.4.4 + - r-restfulr=0.0.15 + - r-rjson=0.2.21 + - r-rlang=1.1.0 + - r-rmarkdown=2.21 + - r-roxygen2=7.2.3 + - r-rprojroot=2.0.3 + - r-rsqlite=2.3.0 + - r-rstudioapi=0.14 + - r-rvcheck=0.2.1 + - r-rversions=2.1.2 + - r-sass=0.4.5 + - r-scales=1.2.1 + - r-scatterpie=0.1.8 + - r-seriation=1.4.2 + - r-sessioninfo=1.2.2 + - r-shadowtext=0.1.2 + - r-shape=1.4.6 + - r-shiny=1.7.4 + - r-slam=0.1_50 + - r-snow=0.4_4 + - r-sourcetools=0.1.7_1 + - r-sparsem=1.81 + - r-squarem=2021.1 + - r-stringi=1.7.12 + - r-stringr=1.5.0 + - r-survival=3.5_5 + - r-sys=3.4.1 + - r-systemfonts=1.0.4 + - r-testthat=3.1.7 + - r-textshaping=0.3.6 + - r-tibble=3.2.1 + - r-tidygraph=1.2.3 + - r-tidyr=1.3.0 + - r-tidyselect=1.2.0 + - r-tidytree=0.4.2 + - r-tinytex=0.44 + - r-tmvnsim=1.0_2 + - r-truncnorm=1.0_9 + - r-tsp=1.2_3 + - r-tweenr=2.0.2 + - r-tzdb=0.3.0 + - r-upsetr=1.4.0 + - r-urlchecker=1.0.1 + - r-usethis=2.1.6 + - r-utf8=1.2.3 + - r-vctrs=0.6.1 + - r-viridis=0.6.2 + - r-viridislite=0.4.1 + - r-vroom=1.6.1 + - r-waldo=0.4.0 + - r-webshot=0.5.4 + - r-whisker=0.4.1 + - r-withr=2.5.0 + - r-xfun=0.38 + - r-xml=3.99_0.14 + - r-xml2=1.3.3 + - r-xopen=1.0.0 + - r-xtable=1.8_4 + - r-yaml=2.3.7 + - r-yulab.utils=0.0.6 + - r-zip=2.2.2 + - readline=8.2 + - sed=4.8 + - sysroot_linux-64=2.12 + - tk=8.6.12 + - tktable=2.10 + - tzdata=2023c + - xorg-kbproto=1.0.7 + - xorg-libice=1.0.10 + - xorg-libsm=1.2.3 + - xorg-libx11=1.8.4 + - xorg-libxau=1.0.9 + - xorg-libxdmcp=1.1.3 + - xorg-libxext=1.3.4 + - xorg-libxrender=0.9.10 + - xorg-libxt=1.2.1 + - xorg-renderproto=0.11.1 + - xorg-xextproto=7.3.0 + - xorg-xproto=7.0.31 + - xz=5.2.6 + - yaml=0.2.5 + - zlib=1.2.13 + - zstd=1.5.2 + - argcomplete=3.0.5 + - pip=23.0.1 + - pyyaml=6.0 + - setuptools=67.6.1 + - toml=0.10.2 + - wheel=0.40.0 + - xmltodict=0.13.0 + - yq=3.1.1 diff --git a/env.yml b/env.yml index 66a8bd01..a47dcab5 100644 --- a/env.yml +++ b/env.yml @@ -5,302 +5,185 @@ dependencies: - _libgcc_mutex=0.1 - _openmp_mutex=4.5 - _r-mutex=1.0.1 - - alsa-lib=1.2.3.2 - - amply=0.1.5 - - appdirs=1.4.4 - - argcomplete=2.0.0 - - argh=0.26.2 - - asttokens=2.0.8 + - alsa-lib=1.2.8 - attr=2.5.1 - - attrs=22.1.0 - - backcall=0.2.0 - backports=1.0 - backports.functools_lru_cache=1.6.4 - bedtools=2.30.0 - - binutils_impl_linux-64=2.39 - - binutils_linux-64=2.39 - - biopython=1.79 - - boost-cpp=1.74.0 + - binutils_impl_linux-64=2.40 - bowtie=1.3.1 - - bowtie2=2.5.0 + - bowtie2=2.5.1 - brotli=1.0.9 - brotli-bin=1.0.9 - - brotlipy=0.7.0 - bwidget=1.9.14 - - bx-python=0.9.0 - bzip2=1.0.8 - c-ares=1.18.1 - - ca-certificates=2022.9.24 + - ca-certificates=2022.12.7 - cairo=1.16.0 - - certifi=2022.9.24 - - cffi=1.15.1 - - charset-normalizer=2.1.1 - - click=8.1.3 - coin-or-cbc=2.10.8 - coin-or-cgl=0.60.6 - coin-or-clp=1.17.7 - coin-or-osi=0.108.7 - coin-or-utils=2.11.6 - coincbc=2.10.8 - - colorama=0.4.6 - - coloredlogs=15.0.1 - - colormath=3.0.0 - - commonmark=0.9.1 - - configargparse=1.5.3 - connection_pool=0.0.3 - - contourpy=1.0.6 - - cryptography=38.0.2 - - curl=7.86.0 - - cutadapt=4.1 - - cycler=0.11.0 - - dataclasses=0.8 - - datrie=0.8.2 + - curl=7.87.0 - dbus=1.13.6 - - decorator=5.1.1 - - deeptools=3.5.1 - - deeptoolsintervals=0.1.9 - - dnaio=0.9.1 - - docutils=0.19 - - dpath=2.0.6 - - exceptiongroup=1.0.0 - - execnet=1.9.0 - - executing=1.1.1 - expat=2.5.0 - fastq-screen=0.15.2 - - fastqc=0.11.9 + - fastqc=0.12.1 - fftw=3.3.10 - - filelock=3.8.0 - font-ttf-dejavu-sans-mono=2.37 - font-ttf-inconsolata=3.000 - font-ttf-source-code-pro=2.038 - font-ttf-ubuntu=0.83 - - fontconfig=2.14.1 - - fonts-conda-ecosystem=1 - - fonts-conda-forge=1 - - fonttools=4.38.0 + - fontconfig=2.14.2 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 - freetype=2.12.1 - fribidi=1.0.10 - - future=0.18.2 - - gat=1.3.6 - - gcc_impl_linux-64=10.4.0 - - gcc_linux-64=10.4.0 + - gcc_impl_linux-64=12.2.0 - gettext=0.21.1 - gffread=0.12.7 - - gffutils=0.11.1 - - gfortran_impl_linux-64=10.4.0 - - gfortran_linux-64=10.4.0 + - gfortran_impl_linux-64=12.2.0 - giflib=5.2.1 - - gitdb=4.0.9 - - gitpython=3.1.29 - glib=2.74.1 - glib-tools=2.74.1 - graphite2=1.3.13 - gsl=2.7 - - gst-plugins-base=1.18.5 - - gstreamer=1.20.3 - - gxx_impl_linux-64=10.4.0 - - gxx_linux-64=10.4.0 - - harfbuzz=4.2.0 + - gst-plugins-base=1.21.3 + - gstreamer=1.21.3 + - gstreamer-orc=0.4.33 + - gxx_impl_linux-64=12.2.0 + - harfbuzz=6.0.0 - hdf5=1.12.1 - hisat2=2.2.1 - - htslib=1.16 - - humanfriendly=10.0 - - icu=69.1 - - idna=3.4 - - importlib-metadata=4.11.4 - - importlib_metadata=4.11.4 - - importlib_resources=5.10.0 - - iniconfig=1.1.1 - - intervalstats=1.01 - - ipython=8.6.0 + - htslib=1.17 + - icu=70.1 + - importlib_resources=5.12.0 + - intervalstats=1.01=0 - isa-l=2.30.0 - - jack=1.9.18 - - jedi=0.18.1 - - jinja2=3.1.2 + - jack=1.9.22 - jpeg=9e - - jsonschema=4.16.0 - - jupyter_core=4.11.1 + - jupyter_core=5.3.0 - kallisto=0.48.0 - kernel-headers_linux-64=2.6.32 - keyutils=1.6.1 - - kiwisolver=1.4.4 - - krb5=1.19.3 - - lcms2=2.13.1 - - ld_impl_linux-64=2.39 + - krb5=1.20.1 + - lame=3.100 + - lcms2=2.14 + - ld_impl_linux-64=2.40 - lerc=4.0.0 - libblas=3.9.0 - libbrotlicommon=1.0.9 - libbrotlidec=1.0.9 - libbrotlienc=1.0.9 - - libcap=2.64 + - libcap=2.66 - libcblas=3.9.0 - - libclang=13.0.1 + - libclang=15.0.7 + - libclang13=15.0.7 - libcups=2.3.3 - - libcurl=7.86.0 + - libcurl=7.87.0 - libdb=6.2.32 - libdeflate=1.13 - libedit=3.1.20191231 - libev=4.33 - libevent=2.1.10 - libffi=3.4.2 - - libflac=1.3.4 - - libgcc-devel_linux-64=10.4.0 + - libflac=1.4.2 + - libgcc-devel_linux-64=12.2.0 - libgcc-ng=12.2.0 + - libgcrypt=1.10.1 - libgd=2.3.3 - libgfortran-ng=12.2.0 - libgfortran5=12.2.0 - libglib=2.74.1 - libgomp=12.2.0 + - libgpg-error=1.46 + - libhwloc=2.9.0 - libiconv=1.17 - - libjemalloc=5.2.1 - liblapack=3.9.0 - liblapacke=3.9.0 - - libllvm13=13.0.1 - - libnghttp2=1.47.0 + - libllvm15=15.0.7 + - libnghttp2=1.51.0 - libnsl=2.0.0 - libogg=1.3.4 - libopenblas=0.3.21 - libopus=1.3.1 - - libpng=1.6.38 - - libpq=14.5 - - libsanitizer=10.4.0 - - libsndfile=1.0.31 - - libsqlite=3.39.4 + - libpng=1.6.39 + - libpq=15.1 + - libsanitizer=12.2.0 + - libsndfile=1.2.0 + - libsqlite=3.40.0 - libssh2=1.10.0 - - libstdcxx-devel_linux-64=10.4.0 + - libstdcxx-devel_linux-64=12.2.0 - libstdcxx-ng=12.2.0 + - libsystemd0=252 - libtiff=4.4.0 - - libtool=2.4.6 - - libudev1=251 - - libuuid=2.32.1 + - libtool=2.4.7 + - libudev1=253 + - libuuid=2.38.1 - libvorbis=1.3.7 - libwebp=1.2.4 - libwebp-base=1.2.4 - libxcb=1.13 - - libxkbcommon=1.0.3 - - libxml2=2.9.12 + - libxkbcommon=1.5.0 + - libxml2=2.10.3 - libzlib=1.2.13 + - lz4-c=1.9.4 - lzo=2.10 - - lzstring=1.0.4 - make=4.3 - - markdown=3.4.1 - - markupsafe=2.1.1 - - matplotlib=3.6.0 - - matplotlib-base=3.6.0 - - matplotlib-inline=0.1.6 - - multiqc=1.13 - - munkres=1.1.4 - - mysql-common=8.0.31 + - matplotlib-base=3.7.1 + - mpg123=1.31.3 + - mysql-common=8.0.32 - mysql-connector-c=6.1.11 - - mysql-libs=8.0.31 - - nbformat=5.7.0 + - mysql-libs=8.0.32 - ncurses=6.3 - - networkx=2.8.7 - - nspr=4.32 - - nss=3.78 - - numpy=1.23.4 - - openjdk=11.0.1 + - nspr=4.35 + - nss=3.89 + - openjdk=17.0.3 - openjpeg=2.5.0 - - openssl=1.1.1q - - packaging=21.3 - - pandas=1.5.1 - - pandoc=2.19.2 - - pango=1.50.7 - - parso=0.8.3 - - patsy=0.5.3 - - pbzip2=1.1.13 - - pcre2=10.37 + - openssl=1.1.1t + - pandoc=3.1.1 + - pango=1.50.14 + - pbzip2=1.1.13=0 + - pcre2=10.40 - perl=5.32.1 - perl-gd=2.76 - perl-gdgraph=1.54 - perl-gdtextutil=0.86 - - pexpect=4.8.0 - - picard=2.27.4 - - pickleshare=0.7.5 + - picard=3.0.0 - pigz=2.6 - - pillow=9.2.0 - - pip=22.3 - pixman=0.40.0 - - pkgutil-resolve-name=1.3.10 - - plac=1.3.5 - - plotly=5.11.0 - - pluggy=1.0.0 - preseq=3.2.0 - - prompt-toolkit=3.0.31 - - psutil=5.9.3 + - prompt_toolkit=3.0.38 - pthread-stubs=0.4 - - ptyprocess=0.7.0 - - pulp=2.6.0 - - pulseaudio=14.0 + - pulseaudio=16.1 - pure_eval=0.2.2 - - py2bit=0.3.0 - - pybedtools=0.9.0 - - pybigwig=0.3.18 - - pycparser=2.21 - - pyfaidx=0.7.1 - - pygments=2.13.0 - - pyopenssl=22.1.0 - - pyparsing=3.0.9 - - pyqt=5.15.4 - - pyqt5-sip=12.9.0 - - pyrsistent=0.18.1 - - pysam=0.19.1 - - pysocks=1.7.1 - - pytest=7.2.0 - - pytest-xdist=3.0.2 - - python=3.10.6 - - python-dateutil=2.8.2 - - python-fastjsonschema=2.16.2 + - pyqt=5.15.7 + - python=3.10.8 + - python-fastjsonschema=2.16.3 - python-isal=1.1.0 - - python-lzo=1.14 - - python_abi=3.10 - - pytz=2022.5 - - pyvcf3=1.0.3 - - pyyaml=6.0 - - qt-main=5.15.2 - - r-base=4.1.3 - - ratelimiter=1.2.0 - - readline=8.1.2 - - requests=2.28.1 - - reretry=0.11.1 - - rich=12.6.0 - - rich-click=1.5.2 - - rseqc=5.0.1 - - salmon=1.9.0 + - python_abi=3.10=3_cp310 + - qt-main=5.15.6 + - r-base=4.2.2 + - readline=8.2 + - salmon=0.8.1=0 - samtools=1.16.1 - - scipy=1.9.3 - - seaborn=0.12.1 - - seaborn-base=0.12.1 + - seaborn-base=0.12.2 - sed=4.8 - - setuptools=65.5.0 - - simplejson=3.17.6 - - sip=6.5.1 - - six=1.16.0 - - smart_open=6.2.0 - - smmap=3.0.5 - - snakemake-minimal=7.17.1 - - spectra=0.0.11 - - sqlite=3.39.4 + - smart_open=6.3.0 + - snakemake-minimal=7.25.0 - sra-tools=2.9.6 - - stack_data=0.5.1 - - star=2.7.10a - - statsmodels=0.13.2 - - stopit=1.1.2 - - subread=2.0.1 + - stack_data=0.6.2 + - star=2.7.10b + - subread=2.0.3 - sysroot_linux-64=2.12 - - tabulate=0.9.0 - - tbb=2021.6.0 - - tenacity=8.1.0 + - tbb=2021.8.0 - tk=8.6.12 - tktable=2.10 - - toml=0.10.2 - - tomli=2.0.1 - - toposort=1.7 - - tornado=6.2 - - trackhub=0.2.4 - - traitlets=5.5.0 - - typing_extensions=4.4.0 - - tzdata=2022f + - typing_extensions=4.5.0 + - tzdata=2023c - ucsc-bedgraphtobigwig=377 - ucsc-bedsort=377 - ucsc-bedtobigbed=377 @@ -312,27 +195,174 @@ dependencies: - ucsc-oligomatch=377 - ucsc-twobittofa=377 - ucsc-wigtobigwig=377 - - unicodedata2=15.0.0 - - urllib3=1.26.11 - - wcwidth=0.2.5 - - wheel=0.37.1 - - wrapt=1.14.1 - - xopen=1.6.0 + - xcb-util=0.4.0 + - xcb-util-image=0.4.0 + - xcb-util-keysyms=0.4.0 + - xcb-util-renderutil=0.3.9 + - xcb-util-wm=0.4.1 + - xkeyboard-config=2.38 + - xorg-fixesproto=5.0 + - xorg-inputproto=2.3.2 - xorg-kbproto=1.0.7 - xorg-libice=1.0.10 - xorg-libsm=1.2.3 - - xorg-libx11=1.7.2 + - xorg-libx11=1.8.4 - xorg-libxau=1.0.9 - xorg-libxdmcp=1.1.3 - xorg-libxext=1.3.4 + - xorg-libxfixes=5.0.3 + - xorg-libxi=1.7.10 - xorg-libxrender=0.9.10 - xorg-libxt=1.2.1 + - xorg-libxtst=1.2.3 + - xorg-recordproto=1.14.2 - xorg-renderproto=0.11.1 - xorg-xextproto=7.3.0 - xorg-xproto=7.0.31 - xz=5.2.6 - yaml=0.2.5 - - yte=1.5.1 - - zipp=3.10.0 - zlib=1.2.13 - zstd=1.5.2 + - amply=0.1.5 + - appdirs=1.4.4 + - argcomplete=3.0.5 + - argh=0.27.2 + - asttokens=2.2.1 + - attrs=22.2.0 + - backcall=0.2.0 + - backports.functools_lru_cache=1.6.4 + - biopython=1.81 + - brotlipy=0.7.0 + - bx-python=0.9.0 + - certifi=2022.12.7 + - cffi=1.15.1 + - charset-normalizer=2.1.1 + - click=8.1.3 + - colorama=0.4.6 + - coloredlogs=15.0.1 + - colormath=3.0.0 + - configargparse=1.5.3 + - connection_pool=0.0.3 + - contourpy=1.0.7 + - cryptography=39.0.0 + - cutadapt=4.3 + - cycler=0.11.0 + - datrie=0.8.2 + - decorator=5.1.1 + - deeptools=3.5.1 + - deeptoolsintervals=0.1.9 + - dnaio=0.10.0 + - docutils=0.19 + - dpath=2.1.5 + - exceptiongroup=1.1.1 + - execnet=1.9.0 + - executing=1.2.0 + - python-fastjsonschema=2.16.3 + - filelock=3.10.7 + - fonttools=4.39.3 + - future=0.18.3 + - gat=1.3.6 + - gffutils=0.11.1 + - gitdb=4.0.10 + - gitpython=3.1.31 + - humanfriendly=10.0 + - idna=3.4 + - importlib-metadata=6.1.0 + - importlib-resources=5.12.0 + - iniconfig=2.0.0 + - ipython=8.11.0 + - python-isal=1.1.0 + - jedi=0.18.2 + - jinja2=3.1.2 + - jsonschema=4.17.3 + - jupyter_core=5.3.0 + - kiwisolver=1.4.4 + - lzstring=1.0.4 + - markdown=3.4.3 + - markdown-it-py=2.2.0 + - markupsafe=2.1.2 + - matplotlib=3.7.1 + - matplotlib-inline=0.1.6 + - mdurl=0.1.0 + - multiqc=1.14 + - munkres=1.1.4 + - nbformat=5.8.0 + - networkx=3.0 + - numpy=1.23.5 + - packaging=23.0 + - pandas=1.5.3 + - parso=0.8.3 + - patsy=0.5.3 + - pexpect=4.8.0 + - pickleshare=0.7.5 + - pillow=9.2.0 + - pip=23.0.1 + - pkgutil-resolve-name=1.3.10 + - plac=1.3.5 + - platformdirs=3.2.0 + - plotly=5.13.1 + - pluggy=1.0.0 + - ply=3.11 + - pooch=1.7.0 + - prompt-toolkit=3.0.38 + - psutil=5.9.4 + - ptyprocess=0.7.0 + - pulp=2.7.0 + - pure_eval=0.2.2 + - py2bit=0.3.0 + - pybedtools=0.9.0 + - pybigwig=0.3.18 + - pycparser=2.21 + - pyfaidx=0.7.2.1 + - pygments=2.14.0 + - pyopenssl=23.1.1 + - pyparsing=3.0.9 + - pyqt=5.15.7 + - pyqt5-sip=12.11.0 + - pyrsistent=0.19.3 + - pysam=0.20.0 + - pysocks=1.7.1 + - pytest=7.2.2 + - pytest-xdist=3.2.1 + - python-dateutil=2.8.2 + - python-lzo=1.14 + - pytz=2023.3 + - pyvcf3=1.0.3 + - pyyaml=6.0 + - requests=2.28.2 + - reretry=0.11.8 + - rich=13.3.3 + - rich-click=1.6.1 + - rseqc=5.0.1 + - scipy=1.10.1 + - seaborn=0.12.2 + - setuptools=67.6.1 + - simplejson=3.18.4 + - sip=6.7.7 + - six=1.16.0 + - smart-open=6.3.0 + - smmap=3.0.5 + - snakemake=7.25.0 + - spectra=0.0.11 + - stack_data=0.6.2 + - statsmodels=0.13.5 + - stopit=1.1.2 + - tabulate=0.9.0 + - tenacity=8.2.2 + - throttler=1.2.1 + - toml=0.10.2 + - tomli=2.0.1 + - toposort=1.10 + - tornado=6.2 + - trackhub=0.2.4 + - traitlets=5.9.0 + - typing-extensions=4.5.0 + - unicodedata2=15.0.0 + - urllib3=1.26.15 + - wcwidth=0.2.6 + - wheel=0.40.0 + - wrapt=1.15.0 + - xopen=1.7.0 + - yte=1.5.1 + - zipp=3.15.0 + - zstandard=0.19.0 From f48e7a7fbd90a5936b44b081a9b572caa2575e1a Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 08:46:54 -0400 Subject: [PATCH 66/91] update broken ERCC link --- include/reference_configs/ERCC.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/reference_configs/ERCC.yaml b/include/reference_configs/ERCC.yaml index cea79ccc..22aa25af 100644 --- a/include/reference_configs/ERCC.yaml +++ b/include/reference_configs/ERCC.yaml @@ -2,14 +2,14 @@ references: ercc: srm2374: genome: - url: 'https://www-s.nist.gov/srmors/certificates/documents/SRM2374_Sequence_v1.FASTA' + url: 'https://tsapps.nist.gov/srmext/certificates/documents/SRM2374_Sequence_v1.FASTA' postprocess: "lib.postprocess.ercc.fasta_postprocess" indexes: - 'bowtie2' - 'hisat2' - 'star' annotation: - url: 'https://www-s.nist.gov/srmors/certificates/documents/SRM2374_Sequence_v1.FASTA' + url: 'https://tsapps.nist.gov/srmext/certificates/documents/SRM2374_Sequence_v1.FASTA' postprocess: "lib.postprocess.ercc.gtf_postprocess" fisher92: From 682cf2a7ae971675c2b6e3bcf7b61b1bad536feb Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 10:47:41 -0400 Subject: [PATCH 67/91] fix salmon version requirements --- env.yml | 386 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 197 insertions(+), 189 deletions(-) diff --git a/env.yml b/env.yml index a47dcab5..e7d7a61f 100644 --- a/env.yml +++ b/env.yml @@ -5,120 +5,168 @@ dependencies: - _libgcc_mutex=0.1 - _openmp_mutex=4.5 - _r-mutex=1.0.1 - - alsa-lib=1.2.8 + - alsa-lib=1.2.3.2 + - amply=0.1.5 + - appdirs=1.4.4 + - argcomplete=3.0.5 + - argh=0.27.2 + - asttokens=2.2.1 - attr=2.5.1 + - attrs=22.2.0 + - backcall=0.2.0 - backports=1.0 - backports.functools_lru_cache=1.6.4 - bedtools=2.30.0 - - binutils_impl_linux-64=2.40 + - binutils_impl_linux-64=2.39 + - binutils_linux-64=2.39 + - biopython=1.81 + - boost-cpp=1.74.0 - bowtie=1.3.1 - bowtie2=2.5.1 - brotli=1.0.9 - brotli-bin=1.0.9 + - brotlipy=0.7.0 - bwidget=1.9.14 + - bx-python=0.9.0 - bzip2=1.0.8 - c-ares=1.18.1 - ca-certificates=2022.12.7 - cairo=1.16.0 + - certifi=2022.12.7 + - cffi=1.15.1 + - charset-normalizer=2.1.1 + - click=8.1.3 - coin-or-cbc=2.10.8 - coin-or-cgl=0.60.6 - coin-or-clp=1.17.7 - coin-or-osi=0.108.7 - coin-or-utils=2.11.6 - coincbc=2.10.8 + - colorama=0.4.6 + - coloredlogs=15.0.1 + - colormath=3.0.0 + - configargparse=1.5.3 - connection_pool=0.0.3 - - curl=7.87.0 + - contourpy=1.0.7 + - cryptography=39.0.0 + - curl=7.86.0 + - cutadapt=4.3 + - cycler=0.11.0 + - datrie=0.8.2 - dbus=1.13.6 + - decorator=5.1.1 + - deeptools=3.5.1 + - deeptoolsintervals=0.1.9 + - dnaio=0.10.0 + - docutils=0.19 + - dpath=2.1.5 + - exceptiongroup=1.1.1 + - execnet=1.9.0 + - executing=1.2.0 - expat=2.5.0 - fastq-screen=0.15.2 - fastqc=0.12.1 - fftw=3.3.10 + - filelock=3.10.7 - font-ttf-dejavu-sans-mono=2.37 - font-ttf-inconsolata=3.000 - font-ttf-source-code-pro=2.038 - font-ttf-ubuntu=0.83 - fontconfig=2.14.2 - - fonts-conda-ecosystem=1=0 - - fonts-conda-forge=1=0 + - fonts-conda-ecosystem=1 + - fonts-conda-forge=1 + - fonttools=4.39.3 - freetype=2.12.1 - fribidi=1.0.10 - - gcc_impl_linux-64=12.2.0 + - future=0.18.3 + - gat=1.3.6 + - gcc_impl_linux-64=10.4.0 + - gcc_linux-64=10.4.0 - gettext=0.21.1 - gffread=0.12.7 - - gfortran_impl_linux-64=12.2.0 + - gffutils=0.11.1 + - gfortran_impl_linux-64=10.4.0 + - gfortran_linux-64=10.4.0 - giflib=5.2.1 + - gitdb=4.0.10 + - gitpython=3.1.31 - glib=2.74.1 - glib-tools=2.74.1 - graphite2=1.3.13 - gsl=2.7 - - gst-plugins-base=1.21.3 - - gstreamer=1.21.3 - - gstreamer-orc=0.4.33 - - gxx_impl_linux-64=12.2.0 - - harfbuzz=6.0.0 + - gst-plugins-base=1.18.5 + - gstreamer=1.20.3 + - gxx_impl_linux-64=10.4.0 + - gxx_linux-64=10.4.0 + - harfbuzz=4.2.0 - hdf5=1.12.1 - hisat2=2.2.1 - - htslib=1.17 - - icu=70.1 + - htslib=1.16 + - humanfriendly=10.0 + - icu=69.1 + - idna=3.4 + - importlib-metadata=6.1.0 - importlib_resources=5.12.0 - - intervalstats=1.01=0 + - iniconfig=2.0.0 + - intervalstats=1.01 + - ipython=8.11.0 - isa-l=2.30.0 - - jack=1.9.22 + - jack=1.9.18 + - jedi=0.18.2 + - jinja2=3.1.2 - jpeg=9e + - jsonschema=4.17.3 - jupyter_core=5.3.0 - kallisto=0.48.0 - kernel-headers_linux-64=2.6.32 - keyutils=1.6.1 - - krb5=1.20.1 - - lame=3.100 + - kiwisolver=1.4.4 + - krb5=1.19.3 - lcms2=2.14 - - ld_impl_linux-64=2.40 + - ld_impl_linux-64=2.39 - lerc=4.0.0 - libblas=3.9.0 - libbrotlicommon=1.0.9 - libbrotlidec=1.0.9 - libbrotlienc=1.0.9 - - libcap=2.66 + - libcap=2.64 - libcblas=3.9.0 - - libclang=15.0.7 - - libclang13=15.0.7 + - libclang=13.0.1 - libcups=2.3.3 - - libcurl=7.87.0 + - libcurl=7.86.0 - libdb=6.2.32 - libdeflate=1.13 - libedit=3.1.20191231 - libev=4.33 - libevent=2.1.10 - libffi=3.4.2 - - libflac=1.4.2 - - libgcc-devel_linux-64=12.2.0 + - libflac=1.3.4 + - libgcc-devel_linux-64=10.4.0 - libgcc-ng=12.2.0 - - libgcrypt=1.10.1 - libgd=2.3.3 - libgfortran-ng=12.2.0 - libgfortran5=12.2.0 - libglib=2.74.1 - libgomp=12.2.0 - - libgpg-error=1.46 - - libhwloc=2.9.0 + - libhwloc=2.8.0 - libiconv=1.17 + - libjemalloc=5.3.0 - liblapack=3.9.0 - liblapacke=3.9.0 - - libllvm15=15.0.7 + - libllvm13=13.0.1 - libnghttp2=1.51.0 - libnsl=2.0.0 - libogg=1.3.4 - libopenblas=0.3.21 - libopus=1.3.1 - libpng=1.6.39 - - libpq=15.1 - - libsanitizer=12.2.0 - - libsndfile=1.2.0 + - libpq=14.5 + - libsanitizer=10.4.0 + - libsndfile=1.0.31 - libsqlite=3.40.0 - libssh2=1.10.0 - - libstdcxx-devel_linux-64=12.2.0 + - libstdcxx-devel_linux-64=10.4.0 - libstdcxx-ng=12.2.0 - - libsystemd0=252 - libtiff=4.4.0 - libtool=2.4.7 - libudev1=253 @@ -127,187 +175,99 @@ dependencies: - libwebp=1.2.4 - libwebp-base=1.2.4 - libxcb=1.13 - - libxkbcommon=1.5.0 - - libxml2=2.10.3 + - libxkbcommon=1.0.3 + - libxml2=2.9.14 - libzlib=1.2.13 - - lz4-c=1.9.4 - lzo=2.10 - - make=4.3 - - matplotlib-base=3.7.1 - - mpg123=1.31.3 - - mysql-common=8.0.32 - - mysql-connector-c=6.1.11 - - mysql-libs=8.0.32 - - ncurses=6.3 - - nspr=4.35 - - nss=3.89 - - openjdk=17.0.3 - - openjpeg=2.5.0 - - openssl=1.1.1t - - pandoc=3.1.1 - - pango=1.50.14 - - pbzip2=1.1.13=0 - - pcre2=10.40 - - perl=5.32.1 - - perl-gd=2.76 - - perl-gdgraph=1.54 - - perl-gdtextutil=0.86 - - picard=3.0.0 - - pigz=2.6 - - pixman=0.40.0 - - preseq=3.2.0 - - prompt_toolkit=3.0.38 - - pthread-stubs=0.4 - - pulseaudio=16.1 - - pure_eval=0.2.2 - - pyqt=5.15.7 - - python=3.10.8 - - python-fastjsonschema=2.16.3 - - python-isal=1.1.0 - - python_abi=3.10=3_cp310 - - qt-main=5.15.6 - - r-base=4.2.2 - - readline=8.2 - - salmon=0.8.1=0 - - samtools=1.16.1 - - seaborn-base=0.12.2 - - sed=4.8 - - smart_open=6.3.0 - - snakemake-minimal=7.25.0 - - sra-tools=2.9.6 - - stack_data=0.6.2 - - star=2.7.10b - - subread=2.0.3 - - sysroot_linux-64=2.12 - - tbb=2021.8.0 - - tk=8.6.12 - - tktable=2.10 - - typing_extensions=4.5.0 - - tzdata=2023c - - ucsc-bedgraphtobigwig=377 - - ucsc-bedsort=377 - - ucsc-bedtobigbed=377 - - ucsc-bigwigmerge=377 - - ucsc-fetchchromsizes=377 - - ucsc-genepredtobed=377 - - ucsc-gtftogenepred=377 - - ucsc-liftover=377 - - ucsc-oligomatch=377 - - ucsc-twobittofa=377 - - ucsc-wigtobigwig=377 - - xcb-util=0.4.0 - - xcb-util-image=0.4.0 - - xcb-util-keysyms=0.4.0 - - xcb-util-renderutil=0.3.9 - - xcb-util-wm=0.4.1 - - xkeyboard-config=2.38 - - xorg-fixesproto=5.0 - - xorg-inputproto=2.3.2 - - xorg-kbproto=1.0.7 - - xorg-libice=1.0.10 - - xorg-libsm=1.2.3 - - xorg-libx11=1.8.4 - - xorg-libxau=1.0.9 - - xorg-libxdmcp=1.1.3 - - xorg-libxext=1.3.4 - - xorg-libxfixes=5.0.3 - - xorg-libxi=1.7.10 - - xorg-libxrender=0.9.10 - - xorg-libxt=1.2.1 - - xorg-libxtst=1.2.3 - - xorg-recordproto=1.14.2 - - xorg-renderproto=0.11.1 - - xorg-xextproto=7.3.0 - - xorg-xproto=7.0.31 - - xz=5.2.6 - - yaml=0.2.5 - - zlib=1.2.13 - - zstd=1.5.2 - - amply=0.1.5 - - appdirs=1.4.4 - - argcomplete=3.0.5 - - argh=0.27.2 - - asttokens=2.2.1 - - attrs=22.2.0 - - backcall=0.2.0 - - backports.functools_lru_cache=1.6.4 - - biopython=1.81 - - brotlipy=0.7.0 - - bx-python=0.9.0 - - certifi=2022.12.7 - - cffi=1.15.1 - - charset-normalizer=2.1.1 - - click=8.1.3 - - colorama=0.4.6 - - coloredlogs=15.0.1 - - colormath=3.0.0 - - configargparse=1.5.3 - - connection_pool=0.0.3 - - contourpy=1.0.7 - - cryptography=39.0.0 - - cutadapt=4.3 - - cycler=0.11.0 - - datrie=0.8.2 - - decorator=5.1.1 - - deeptools=3.5.1 - - deeptoolsintervals=0.1.9 - - dnaio=0.10.0 - - docutils=0.19 - - dpath=2.1.5 - - exceptiongroup=1.1.1 - - execnet=1.9.0 - - executing=1.2.0 - - python-fastjsonschema=2.16.3 - - filelock=3.10.7 - - fonttools=4.39.3 - - future=0.18.3 - - gat=1.3.6 - - gffutils=0.11.1 - - gitdb=4.0.10 - - gitpython=3.1.31 - - humanfriendly=10.0 - - idna=3.4 - - importlib-metadata=6.1.0 - - importlib-resources=5.12.0 - - iniconfig=2.0.0 - - ipython=8.11.0 - - python-isal=1.1.0 - - jedi=0.18.2 - - jinja2=3.1.2 - - jsonschema=4.17.3 - - jupyter_core=5.3.0 - - kiwisolver=1.4.4 - lzstring=1.0.4 + - make=4.3 - markdown=3.4.3 - markdown-it-py=2.2.0 - markupsafe=2.1.2 - matplotlib=3.7.1 + - matplotlib-base=3.7.1 - matplotlib-inline=0.1.6 - mdurl=0.1.0 - multiqc=1.14 - munkres=1.1.4 + - mysql-common=8.0.32 + - mysql-connector-c=6.1.11 + - mysql-libs=8.0.32 - nbformat=5.8.0 + - ncbi-vdb=3.0.2 + - ncurses=6.3 - networkx=3.0 + - nspr=4.35 + - nss=3.89 - numpy=1.23.5 + - openjdk=11.0.1 + - openjpeg=2.5.0 + - openssl=1.1.1t + - ossuuid=1.6.2 - packaging=23.0 - pandas=1.5.3 + - pandoc=3.1.1 + - pango=1.50.7 - parso=0.8.3 - patsy=0.5.3 + - pbzip2=1.1.13 + - pcre2=10.37 + - perl=5.32.1 + - perl-alien-build=2.48 + - perl-alien-libxml2=0.17 + - perl-business-isbn=3.007 + - perl-business-isbn-data=20210112.006 + - perl-capture-tiny=0.48 + - perl-carp=1.50 + - perl-constant=1.33 + - perl-data-dumper=2.183 + - perl-encode=3.19 + - perl-exporter=5.74 + - perl-extutils-makemaker=7.70 + - perl-ffi-checklib=0.28 + - perl-file-chdir=0.1011 + - perl-file-path=2.18 + - perl-file-temp=0.2304 + - perl-file-which=1.24 + - perl-gd=2.76 + - perl-gdgraph=1.54 + - perl-gdtextutil=0.86 + - perl-importer=0.026 + - perl-mime-base64=3.16 + - perl-parent=0.241 + - perl-path-tiny=0.124 + - perl-pathtools=3.75 + - perl-scope-guard=0.21 + - perl-storable=3.15 + - perl-sub-info=0.002 + - perl-term-table=0.016 + - perl-test2-suite=0.000145 + - perl-uri=5.12 + - perl-xml-libxml=2.0207 + - perl-xml-namespacesupport=1.12 + - perl-xml-sax=1.02 + - perl-xml-sax-base=1.09 - pexpect=4.8.0 + - picard=3.0.0 - pickleshare=0.7.5 + - pigz=2.6 - pillow=9.2.0 - pip=23.0.1 + - pixman=0.40.0 - pkgutil-resolve-name=1.3.10 - plac=1.3.5 - platformdirs=3.2.0 - - plotly=5.13.1 + - plotly=5.14.0 - pluggy=1.0.0 - - ply=3.11 - pooch=1.7.0 + - preseq=3.2.0 - prompt-toolkit=3.0.38 + - prompt_toolkit=3.0.38 - psutil=5.9.4 + - pthread-stubs=0.4 - ptyprocess=0.7.0 - pulp=2.7.0 + - pulseaudio=14.0 - pure_eval=0.2.2 - py2bit=0.3.0 - pybedtools=0.9.0 @@ -317,39 +277,58 @@ dependencies: - pygments=2.14.0 - pyopenssl=23.1.1 - pyparsing=3.0.9 - - pyqt=5.15.7 - - pyqt5-sip=12.11.0 + - pyqt=5.15.4 + - pyqt5-sip=12.9.0 - pyrsistent=0.19.3 - pysam=0.20.0 - pysocks=1.7.1 - pytest=7.2.2 - pytest-xdist=3.2.1 + - python=3.10.8 - python-dateutil=2.8.2 + - python-fastjsonschema=2.16.3 + - python-isal=1.1.0 - python-lzo=1.14 + - python_abi=3.10 - pytz=2023.3 - pyvcf3=1.0.3 - pyyaml=6.0 + - qt-main=5.15.2 + - r-base=4.1.3 + - readline=8.2 - requests=2.28.2 - reretry=0.11.8 - rich=13.3.3 - rich-click=1.6.1 - rseqc=5.0.1 + - salmon=1.10.1 + - samtools=1.16.1 - scipy=1.10.1 - seaborn=0.12.2 + - seaborn-base=0.12.2 + - sed=4.8 - setuptools=67.6.1 - simplejson=3.18.4 - - sip=6.7.7 + - sip=6.5.1 - six=1.16.0 - - smart-open=6.3.0 + - smart_open=6.3.0 - smmap=3.0.5 - - snakemake=7.25.0 + - snakemake-minimal=7.25.0 - spectra=0.0.11 + - sqlite=3.40.0 + - sra-tools=3.0.3 - stack_data=0.6.2 + - star=2.7.10b - statsmodels=0.13.5 - stopit=1.1.2 + - subread=2.0.3 + - sysroot_linux-64=2.12 - tabulate=0.9.0 + - tbb=2021.7.0 - tenacity=8.2.2 - throttler=1.2.1 + - tk=8.6.12 + - tktable=2.10 - toml=0.10.2 - tomli=2.0.1 - toposort=1.10 @@ -357,12 +336,41 @@ dependencies: - trackhub=0.2.4 - traitlets=5.9.0 - typing-extensions=4.5.0 + - typing_extensions=4.5.0 + - tzdata=2023c + - ucsc-bedgraphtobigwig=377 + - ucsc-bedsort=377 + - ucsc-bedtobigbed=377 + - ucsc-bigwigmerge=377 + - ucsc-fetchchromsizes=377 + - ucsc-genepredtobed=377 + - ucsc-gtftogenepred=377 + - ucsc-liftover=377 + - ucsc-oligomatch=377 + - ucsc-twobittofa=377 + - ucsc-wigtobigwig=377 - unicodedata2=15.0.0 - urllib3=1.26.15 - wcwidth=0.2.6 - wheel=0.40.0 - wrapt=1.15.0 - xopen=1.7.0 + - xorg-kbproto=1.0.7 + - xorg-libice=1.0.10 + - xorg-libsm=1.2.3 + - xorg-libx11=1.8.4 + - xorg-libxau=1.0.9 + - xorg-libxdmcp=1.1.3 + - xorg-libxext=1.3.4 + - xorg-libxrender=0.9.10 + - xorg-libxt=1.2.1 + - xorg-renderproto=0.11.1 + - xorg-xextproto=7.3.0 + - xorg-xproto=7.0.31 + - xz=5.2.6 + - yaml=0.2.5 - yte=1.5.1 - zipp=3.15.0 + - zlib=1.2.13 - zstandard=0.19.0 + - zstd=1.5.2 From 1c15b7e3f042ae0e3bbe12c211418f2bfabe716f Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 10:48:22 -0400 Subject: [PATCH 68/91] update conda upon requirements updates --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d5d62086..43c35896 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -69,6 +69,7 @@ variables: # exist. if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." + conda update conda conda config --system --add channels defaults conda config --system --add channels bioconda conda config --system --add channels conda-forge From 7071724324bbf7004168f9a8f7e2fa2c315f464f Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 15:38:10 -0400 Subject: [PATCH 69/91] fix picard version --- env.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env.yml b/env.yml index e7d7a61f..211aed41 100644 --- a/env.yml +++ b/env.yml @@ -248,7 +248,7 @@ dependencies: - perl-xml-sax=1.02 - perl-xml-sax-base=1.09 - pexpect=4.8.0 - - picard=3.0.0 + - picard=2.27.4 - pickleshare=0.7.5 - pigz=2.6 - pillow=9.2.0 From d11e54dc13bb4c9fe7a69bb711692a0a8068a00c Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 16:35:33 -0400 Subject: [PATCH 70/91] debug tests --- .circleci/config.yml | 69 ++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 43c35896..fb16899e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -67,6 +67,7 @@ variables: source $BASH_ENV # We only do the installation if the conda environment does not already # exist. + mamba --version if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." conda update conda @@ -403,41 +404,41 @@ workflows: test-suite: jobs: - initial-setup - - pytest: - requires: - - initial-setup - - chipseq: - requires: - - initial-setup - - pytest +# - pytest: +# requires: +# - initial-setup +# - chipseq: +# requires: +# - initial-setup +# - pytest - chipseq-misc: requires: - initial-setup - pytest - - rnaseq: - requires: - - initial-setup - - pytest - - rnaseq-misc: - requires: - - initial-setup - - pytest - - references: - requires: - - initial-setup - - pytest - - colocalization: - requires: - - initial-setup - - pytest - - build-docs: - requires: - - initial-setup - - report-env: - requires: - - rnaseq - - rnaseq-misc - - chipseq - - chipseq-misc - - references - - colocalization +# - rnaseq: +# requires: +# - initial-setup +# - pytest +# - rnaseq-misc: +# requires: +# - initial-setup +# - pytest +# - references: +# requires: +# - initial-setup +# - pytest +# - colocalization: +# requires: +# - initial-setup +# - pytest +# - build-docs: +# requires: +# - initial-setup +# - report-env: +# requires: +# - rnaseq +# - rnaseq-misc +# - chipseq +# - chipseq-misc +# - references +# - colocalization From a13c805997a8cdbb4e58191b7eabae4bb7b5f945 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Thu, 30 Mar 2023 16:38:26 -0400 Subject: [PATCH 71/91] debug tests --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fb16899e..63ecebe9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -404,9 +404,9 @@ workflows: test-suite: jobs: - initial-setup -# - pytest: -# requires: -# - initial-setup + - pytest: + requires: + - initial-setup # - chipseq: # requires: # - initial-setup From 9a3d6296efc7a8a7ba24cdb880a8b905c1e970d9 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 06:03:49 -0400 Subject: [PATCH 72/91] debug tests --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 63ecebe9..b15f7be7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -67,7 +67,8 @@ variables: source $BASH_ENV # We only do the installation if the conda environment does not already # exist. - mamba --version + conda env export | grep mamba + exit 1 if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." conda update conda From 154904aed123af944486b289ddc34df61d6f8145 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 06:11:09 -0400 Subject: [PATCH 73/91] debug tests --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b15f7be7..dc3bc117 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -67,7 +67,8 @@ variables: source $BASH_ENV # We only do the installation if the conda environment does not already # exist. - conda env export | grep mamba + conda env export | grep glib + which mamba exit 1 if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." From 5069a7d748cd6f37ab99f00ab5cf5f229d6e4e37 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 06:18:56 -0400 Subject: [PATCH 74/91] debug tests --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dc3bc117..eb6ddd9a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -67,7 +67,9 @@ variables: source $BASH_ENV # We only do the installation if the conda environment does not already # exist. - conda env export | grep glib + conda env export | grep libc + conda env export | grep mamba + conda env list which mamba exit 1 if ! conda env list | grep -q "lcdb-wf-test"; then From b5e5fb757948fe996e6b03ca0a5ce77fc47be54f Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 06:25:50 -0400 Subject: [PATCH 75/91] debug tests --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index eb6ddd9a..5dd6c03b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -71,6 +71,7 @@ variables: conda env export | grep mamba conda env list which mamba + mamba --version exit 1 if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." From 06c5d9a7abd4de657b85fe3d02baf3e3dfdf23af Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 10:10:14 -0400 Subject: [PATCH 76/91] debug tests --- .circleci/config.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5dd6c03b..e01a72f7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,7 +26,7 @@ variables: save_cache: &save_cache save_cache: - key: v0-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + key: v1-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} paths: - /opt/conda @@ -49,7 +49,7 @@ variables: command: | # x11-utils required to avoid R::png() segfaulting apt update && apt install -y locales-all locales rsync x11-utils - conda install -y yaml + conda install -y yaml gcc echo 'export DEPLOY=/tmp/lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV=lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV @@ -67,19 +67,17 @@ variables: source $BASH_ENV # We only do the installation if the conda environment does not already # exist. - conda env export | grep libc conda env export | grep mamba conda env list - which mamba - mamba --version - exit 1 if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." conda update conda conda config --system --add channels defaults conda config --system --add channels bioconda conda config --system --add channels conda-forge - conda install mamba yaml -y + conda install gcc mamba yaml -y + which mamba + mamba --version mamba env create -n $LCDBWF_ENV --file env.yml mamba env create -n $LCDBWF_ENV_R --file env-r.yml fi From cd6caf40647f83a84f07977a311bc3502d97632b Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 10:21:39 -0400 Subject: [PATCH 77/91] debug tests --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e01a72f7..3ff2d04c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,7 +49,7 @@ variables: command: | # x11-utils required to avoid R::png() segfaulting apt update && apt install -y locales-all locales rsync x11-utils - conda install -y yaml gcc + conda install -y yaml echo 'export DEPLOY=/tmp/lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV=lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV From bc2aacaf1be830867405fa1ea311b433f1455acb Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 10:30:16 -0400 Subject: [PATCH 78/91] debug tests --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3ff2d04c..97b222fc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,7 +38,7 @@ variables: restore_cache: &restore_cache restore_cache: keys: - - v0-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + - v1-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} # -------------------------------------------------------------------------- # The path needs to be set each time; in jobs below this will be called as From a93b30add9634d027136cb47ee0d0f624102c119 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 10:39:02 -0400 Subject: [PATCH 79/91] debug tests --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 97b222fc..c18413a3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,7 +26,7 @@ variables: save_cache: &save_cache save_cache: - key: v1-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + key: v2-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} paths: - /opt/conda From 53bb131669d4fdfc829825645877d95c57eebc17 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 10:53:08 -0400 Subject: [PATCH 80/91] trigger rebuilding envs --- env.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/env.yml b/env.yml index 211aed41..4594f5ea 100644 --- a/env.yml +++ b/env.yml @@ -374,3 +374,4 @@ dependencies: - zlib=1.2.13 - zstandard=0.19.0 - zstd=1.5.2 +# From 13d9c2c4376a3b8739707bcedd6211683a3dc2e0 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 11:52:35 -0400 Subject: [PATCH 81/91] debug tests --- .circleci/config.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c18413a3..b7285000 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,7 +26,7 @@ variables: save_cache: &save_cache save_cache: - key: v2-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + key: v0-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} paths: - /opt/conda @@ -67,8 +67,6 @@ variables: source $BASH_ENV # We only do the installation if the conda environment does not already # exist. - conda env export | grep mamba - conda env list if ! conda env list | grep -q "lcdb-wf-test"; then echo "Setting up conda..." conda update conda From 99663a6a115f5645f843b88c8c311a982c22518d Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 12:26:26 -0400 Subject: [PATCH 82/91] debug tests --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index b7285000..083d65ab 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -86,6 +86,7 @@ variables: run: name: Download example data command: | + conda info --envs source activate lcdb-wf-test # rsync is required for the deployment process From 9811f88b89631416f69e130e542cec3016188738 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 12:56:35 -0400 Subject: [PATCH 83/91] debug tests --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 083d65ab..98a56985 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -433,9 +433,9 @@ workflows: # requires: # - initial-setup # - pytest -# - build-docs: -# requires: -# - initial-setup + - build-docs: + requires: + - initial-setup # - report-env: # requires: # - rnaseq From 44512091e0e4fd688694eeaff152aca65c72fd51 Mon Sep 17 00:00:00 2001 From: Caroline Esnault <caroline.esnault@nih.gov> Date: Fri, 31 Mar 2023 13:15:38 -0400 Subject: [PATCH 84/91] trigger new cache --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 98a56985..3d3e72b9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,7 +26,7 @@ variables: save_cache: &save_cache save_cache: - key: v0-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + key: v3-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} paths: - /opt/conda From 34408bbc599722a7522f26e3655411cc8e750449 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 10:18:07 -0400 Subject: [PATCH 85/91] align save/restore caches --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3d3e72b9..4595e48b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,7 +38,7 @@ variables: restore_cache: &restore_cache restore_cache: keys: - - v1-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + - v3-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} # -------------------------------------------------------------------------- # The path needs to be set each time; in jobs below this will be called as From 5e483a993a185a05cd71c51c236cf6286c0df666 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 10:23:06 -0400 Subject: [PATCH 86/91] invalidate cache --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4595e48b..71f7a0a5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,7 +26,7 @@ variables: save_cache: &save_cache save_cache: - key: v3-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + key: v4-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} paths: - /opt/conda @@ -38,7 +38,7 @@ variables: restore_cache: &restore_cache restore_cache: keys: - - v3-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} + - v4-{{ checksum "env.yml" }}-{{ checksum "env-r.yml" }} # -------------------------------------------------------------------------- # The path needs to be set each time; in jobs below this will be called as From 0e375d466cfb0b647f04596d42080207e91f35a9 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 10:23:17 -0400 Subject: [PATCH 87/91] don't need to install yaml so early --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 71f7a0a5..d36b5f71 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,7 +49,6 @@ variables: command: | # x11-utils required to avoid R::png() segfaulting apt update && apt install -y locales-all locales rsync x11-utils - conda install -y yaml echo 'export DEPLOY=/tmp/lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV=lcdb-wf-test' >> $BASH_ENV echo 'export LCDBWF_ENV_R=lcdb-wf-test-r' >> $BASH_ENV From de03bffca9daea09e12d023c557b875d6c7606c5 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 10:23:28 -0400 Subject: [PATCH 88/91] set strict channel priority --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d36b5f71..67bcb040 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -72,6 +72,7 @@ variables: conda config --system --add channels defaults conda config --system --add channels bioconda conda config --system --add channels conda-forge + conda config --system --set channel_priority strict conda install gcc mamba yaml -y which mamba mamba --version From 6452bcc9aff8b6993c386bf38ed161323fa5bffd Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 10:23:44 -0400 Subject: [PATCH 89/91] streamline jobs for tighter feedback loop when troubleshooting --- .circleci/config.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 67bcb040..f28289a4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -406,9 +406,9 @@ workflows: test-suite: jobs: - initial-setup - - pytest: - requires: - - initial-setup +# - pytest: +# requires: +# - initial-setup # - chipseq: # requires: # - initial-setup @@ -416,7 +416,7 @@ workflows: - chipseq-misc: requires: - initial-setup - - pytest +# - pytest # - rnaseq: # requires: # - initial-setup @@ -433,9 +433,9 @@ workflows: # requires: # - initial-setup # - pytest - - build-docs: - requires: - - initial-setup +# - build-docs: +# requires: +# - initial-setup # - report-env: # requires: # - rnaseq From 5f7dfffc1dd13ce65c650777cb61086fd3d1970e Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 10:46:08 -0400 Subject: [PATCH 90/91] try an actual test with gh actions --- .github/workflows/main.yaml | 48 ++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 9d4581eb..058e9590 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,4 +1,11 @@ on: [push] +env: + DEPLOY: /tmp/lcdb-wf-test + LCDBWF_ENV: lcdb-wf-test + LCDBWF_ENV_R: lcdb-wf-test-r + LC_ALL: en_US.utf8 + LANG: en_US.utf8 + jobs: build: @@ -29,8 +36,43 @@ jobs: mamba env create -n lcdb-wf-test --file env.yml mamba env create -n lcdb-wf-test-r --file env-r.yml - - name: STAR available? - shell: bash + - name: Download example data + run: | + conda info --envs + source activate lcdb-wf-test + + # rsync is required for the deployment process + apt install -y rsync + + # Deploy to the new directory, so we are testing the real-world case of post-deployment. + # Note that $DEPLOY is set in the "set-paths" step configured above. + python deploy.py --flavor full --dest $DEPLOY --branch $GITHUB_HEAD_REF --clone + + # Separately copy over some test-specific files + cp workflows/chipseq/run_test.sh $DEPLOY/workflows/chipseq + cp workflows/rnaseq/run_test.sh $DEPLOY/workflows/rnaseq + cp workflows/rnaseq/run_downstream_test.sh $DEPLOY/workflows/rnaseq + cp workflows/colocalization/run_test.sh $DEPLOY/workflows/references + cp workflows/colocalization/run_test.sh $DEPLOY/workflows/colocalization + mkdir $DEPLOY/ci + mkdir $DEPLOY/test + cp test/lcdb-wf-test $DEPLOY/test + cp test/workflow_test_params.yaml $DEPLOY/test + cp ci/get-data.py $DEPLOY/ci + + # the ./run_test.sh scripts run this + cp ci/preprocessor.py $DEPLOY/ci + + # download example data + cd $DEPLOY + test/lcdb-wf-test data --kind=all --verbose + + - name: chipseq misc run: | + cd $DEPLOY/workflows/chipseq source activate lcdb-wf-test - STAR --version + ./run_test.sh --use-conda -j2 -k -p -r \ + --configfile $ORIG/test/test_configs/test_chipseq_regression.yaml \ + --config sampletable=$ORIG/test/test_configs/chipseq_one_run.tsv \ + merged_bigwigs="{}" \ + --until bed_to_bigbed From 8ceaf5abfcc63f92350cde4e631bdd044a2b2ac0 Mon Sep 17 00:00:00 2001 From: daler <ryan.dale@nih.gov> Date: Sun, 2 Apr 2023 11:15:51 -0400 Subject: [PATCH 91/91] syntax --- .github/workflows/main.yaml | 46 ++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 058e9590..f8a41faf 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -38,34 +38,34 @@ jobs: - name: Download example data run: | - conda info --envs - source activate lcdb-wf-test + conda info --envs + source activate lcdb-wf-test - # rsync is required for the deployment process - apt install -y rsync + # rsync is required for the deployment process + apt install -y rsync - # Deploy to the new directory, so we are testing the real-world case of post-deployment. - # Note that $DEPLOY is set in the "set-paths" step configured above. - python deploy.py --flavor full --dest $DEPLOY --branch $GITHUB_HEAD_REF --clone + # Deploy to the new directory, so we are testing the real-world case of post-deployment. + # Note that $DEPLOY is set in the "set-paths" step configured above. + python deploy.py --flavor full --dest $DEPLOY --branch $GITHUB_HEAD_REF --clone - # Separately copy over some test-specific files - cp workflows/chipseq/run_test.sh $DEPLOY/workflows/chipseq - cp workflows/rnaseq/run_test.sh $DEPLOY/workflows/rnaseq - cp workflows/rnaseq/run_downstream_test.sh $DEPLOY/workflows/rnaseq - cp workflows/colocalization/run_test.sh $DEPLOY/workflows/references - cp workflows/colocalization/run_test.sh $DEPLOY/workflows/colocalization - mkdir $DEPLOY/ci - mkdir $DEPLOY/test - cp test/lcdb-wf-test $DEPLOY/test - cp test/workflow_test_params.yaml $DEPLOY/test - cp ci/get-data.py $DEPLOY/ci + # Separately copy over some test-specific files + cp workflows/chipseq/run_test.sh $DEPLOY/workflows/chipseq + cp workflows/rnaseq/run_test.sh $DEPLOY/workflows/rnaseq + cp workflows/rnaseq/run_downstream_test.sh $DEPLOY/workflows/rnaseq + cp workflows/colocalization/run_test.sh $DEPLOY/workflows/references + cp workflows/colocalization/run_test.sh $DEPLOY/workflows/colocalization + mkdir $DEPLOY/ci + mkdir $DEPLOY/test + cp test/lcdb-wf-test $DEPLOY/test + cp test/workflow_test_params.yaml $DEPLOY/test + cp ci/get-data.py $DEPLOY/ci - # the ./run_test.sh scripts run this - cp ci/preprocessor.py $DEPLOY/ci + # the ./run_test.sh scripts run this + cp ci/preprocessor.py $DEPLOY/ci - # download example data - cd $DEPLOY - test/lcdb-wf-test data --kind=all --verbose + # download example data + cd $DEPLOY + test/lcdb-wf-test data --kind=all --verbose - name: chipseq misc run: |