From c01be7f1d215a84f8e3698a111718c9351cac0ff Mon Sep 17 00:00:00 2001 From: milekm Date: Fri, 1 Apr 2022 12:30:38 +0200 Subject: [PATCH 01/27] added separate yaml files for mapping+sc and DE pipeline --- conda_env_de.yaml | 589 ++++++++++++++++++++++++++++++++++++++ conda_env_mapping_sc.yaml | 505 ++++++++++++++++++++++++++++++++ 2 files changed, 1094 insertions(+) create mode 100644 conda_env_de.yaml create mode 100644 conda_env_mapping_sc.yaml diff --git a/conda_env_de.yaml b/conda_env_de.yaml new file mode 100644 index 0000000..a8f20d5 --- /dev/null +++ b/conda_env_de.yaml @@ -0,0 +1,589 @@ +name: sea_snap_de +channels: + - conda-forge + - default + - bioconda + - defaults +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=0_gnu + - _r-mutex=1.0.1=anacondar_1 + - aioeasywebdav=2.4.0=py37_1000 + - aiohttp=3.6.2=py37h516909a_0 + - alsa-lib=1.1.5=h516909a_1002 + - appdirs=1.4.3=py_1 + - async-timeout=3.0.1=py_1000 + - atk-1.0=2.36.0=h3371d22_4 + - attrs=19.3.0=py_0 + - backcall=0.2.0=pyh9f0ad1d_0 + - bamtools=2.5.1=he513fc3_6 + - bcftools=1.3.1=h5bf99c6_7 + - bcrypt=3.1.7=py37h8f50634_1 + - bedtools=2.29.2=hc088bd4_0 + - binutils_impl_linux-64=2.36.1=h193b22a_2 + - binutils_linux-64=2.36=hf3e587d_33 + - bioconductor-annotate=1.72.0=r41hdfd78af_0 + - bioconductor-annotationdbi=1.56.1=r41hdfd78af_0 + - bioconductor-apeglm=1.16.0=r41h619a076_1 + - bioconductor-biobase=2.54.0=r41h5c21468_1 + - 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.3=r41h619a076_0 + - bioconductor-biomart=2.50.0=r41hdfd78af_0 + - bioconductor-biostrings=2.62.0=r41h5c21468_1 + - bioconductor-clusterprofiler=4.2.0=r41hdfd78af_0 + - bioconductor-delayedarray=0.20.0=r41h5c21468_1 + - bioconductor-deseq2=1.34.0=r41h619a076_1 + - bioconductor-do.db=2.9=0 + - bioconductor-dose=3.20.0=r41hdfd78af_0 + - bioconductor-dupradar=1.24.0=r41hdfd78af_0 + - bioconductor-ebseq=1.34.0=r41hdfd78af_0 + - bioconductor-enrichplot=1.14.1=r41hdfd78af_0 + - bioconductor-fgsea=1.20.0=r41h619a076_1 + - bioconductor-genefilter=1.76.0=r41hba52eb8_0 + - bioconductor-genelendatabase=1.30.0=r41hdfd78af_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=r41h5c21468_1 + - bioconductor-genomicfeatures=1.46.1=r41hdfd78af_0 + - bioconductor-genomicranges=1.46.1=r41h5c21468_0 + - bioconductor-ggtree=3.2.0=r41hdfd78af_0 + - bioconductor-go.db=3.14.0=r41hdfd78af_0 + - bioconductor-gosemsim=2.20.0=r41h619a076_1 + - bioconductor-goseq=1.46.0=r41hdfd78af_0 + - bioconductor-iranges=2.28.0=r41h5c21468_1 + - bioconductor-keggrest=1.34.0=r41hdfd78af_0 + - bioconductor-matrixgenerics=1.6.0=r41hdfd78af_0 + - bioconductor-noiseq=2.38.0=r41hdfd78af_0 + - bioconductor-org.hs.eg.db=3.14.0=r41hdfd78af_0 + - bioconductor-org.mm.eg.db=3.14.0=r41hdfd78af_0 + - bioconductor-qvalue=2.26.0=r41hdfd78af_0 + - bioconductor-rhtslib=1.26.0=r41h5c21468_1 + - bioconductor-rsamtools=2.10.0=r41h619a076_1 + - bioconductor-rsubread=2.8.1=r41h5c21468_0 + - bioconductor-rtracklayer=1.54.0=r41hd029910_0 + - bioconductor-s4vectors=0.32.3=r41h5c21468_0 + - bioconductor-summarizedexperiment=1.24.0=r41hdfd78af_0 + - bioconductor-treeio=1.18.0=r41hdfd78af_0 + - bioconductor-tximport=1.22.0=r41hdfd78af_0 + - bioconductor-xvector=0.34.0=r41h5c21468_1 + - bioconductor-zlibbioc=1.40.0=r41h5c21468_1 + - biopython=1.76=py37h516909a_0 + - boost-cpp=1.74.0=h312852a_4 + - boto3=1.13.6=pyh9f0ad1d_0 + - botocore=1.16.6=pyh9f0ad1d_0 + - brotli=1.0.9=h7f98852_6 + - brotli-bin=1.0.9=h7f98852_6 + - brotlipy=0.7.0=py37h8f50634_1000 + - bwidget=1.9.14=0 + - bx-python=0.8.8=py37h5266303_1 + - bzip2=1.0.8=h516909a_2 + - c-ares=1.18.1=h7f98852_0 + - ca-certificates=2021.10.8=ha878542_0 + - cachetools=3.1.1=py_0 + - cairo=1.16.0=h6cf1ce9_1008 + - certifi=2021.10.8=py37h89c1867_1 + - cffi=1.15.0=py37h036bc23_0 + - chardet=3.0.4=py37hc8dfbb8_1006 + - click=7.1.2=pyh9f0ad1d_0 + - colorama=0.4.4=pyh9f0ad1d_0 + - coloredlogs=14.0=py37hc8dfbb8_1 + - colormath=3.0.0=py_2 + - commonmark=0.9.1=py_0 + - configargparse=1.2.3=pyh9f0ad1d_0 + - crc32c=2.0=py37h516909a_0 + - cryptography=36.0.0=py37h9ce1e76_0 + - curl=7.82.0=h2283fc2_0 + - cycler=0.10.0=py_2 + - dataclasses=0.8=pyhc8e2a94_3 + - datrie=0.8.2=py37h8f50634_0 + - decorator=4.4.2=py_0 + - docutils=0.15.2=py37_0 + - drmaa=0.7.9=py_1000 + - dropbox=9.4.0=py_0 + - expat=2.4.7=h27087fc_0 + - fastqc=0.11.9=0 + - fftw=3.3.10=nompi_h77c792f_102 + - filechunkio=1.8=py_2 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=2.001=hab24e00_0 + - font-ttf-source-code-pro=2.030=hab24e00_0 + - font-ttf-ubuntu=0.83=hab24e00_0 + - fontconfig=2.13.96=h8e229c2_2 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - fonttools=4.31.2=py37h540881e_0 + - freetype=2.10.4=h0708190_1 + - fribidi=1.0.10=h36c2ea0_0 + - ftputil=3.4=py_0 + - future=0.18.2=py37hc8dfbb8_1 + - g-ir-build-tools=1.72.0=py37hb997759_0 + - g-ir-host-tools=1.72.0=h1def2ed_0 + - gcc_impl_linux-64=9.3.0=h6df7d76_17 + - gcc_linux-64=9.3.0=hf25ea35_33 + - gdk-pixbuf=2.42.8=hff1cb4f_0 + - gettext=0.19.8.1=h73d1719_1008 + - gfortran_impl_linux-64=9.3.0=hc4a2995_19 + - gfortran_linux-64=9.3.0=hdc58fab_33 + - ghostscript=9.18=1 + - giflib=5.2.1=h516909a_2 + - gitdb=4.0.5=py_0 + - gitpython=3.1.2=py_0 + - glib=2.70.2=h780b84a_4 + - glib-tools=2.70.2=h780b84a_4 + - gmp=6.2.1=h58526e2_0 + - gobject-introspection=1.72.0=py37h1b8cbc2_0 + - google-api-core=1.17.0=py37hc8dfbb8_0 + - google-auth=1.14.2=pyh9f0ad1d_0 + - google-cloud-core=1.3.0=py_0 + - google-cloud-storage=1.28.1=pyh9f0ad1d_0 + - google-resumable-media=0.5.0=py_1 + - googleapis-common-protos=1.51.0=py37hc8dfbb8_2 + - graphite2=1.3.13=he1b5a44_1001 + - graphviz=2.50.0=h85b4f2f_1 + - gsl=2.6=he838d99_2 + - gtk2=2.24.33=h539f30e_1 + - gts=0.7.6=h64030ff_2 + - gxx_impl_linux-64=9.3.0=hbdd7822_17 + - gxx_linux-64=9.3.0=h3fbe746_33 + - harfbuzz=3.1.1=h83ec7ef_0 + - htslib=1.3.1=1 + - humanfriendly=8.2=py37hc8dfbb8_0 + - icu=68.2=h9c3ff4c_0 + - idna=2.9=py_1 + - imagemagick=7.1.0_27=pl5321hae5efcc_0 + - importlib-metadata=1.6.0=py37hc8dfbb8_0 + - importlib_metadata=1.6.0=0 + - ipython=7.16.1=py37h43977f1_0 + - ipython_genutils=0.2.0=py_1 + - jbig=2.1=h516909a_2002 + - jedi=0.17.1=py37hc8dfbb8_0 + - jemalloc=5.2.1=he1b5a44_1 + - jinja2=2.11.2=pyh9f0ad1d_0 + - jmespath=0.9.5=py_0 + - jpeg=9e=h7f98852_0 + - jsonschema=3.2.0=py37hc8dfbb8_1 + - jupyter_core=4.6.3=py37hc8dfbb8_1 + - kernel-headers_linux-64=2.6.32=he073ed8_15 + - keyutils=1.6.1=h166bdaf_0 + - kiwisolver=1.2.0=py37h99015e2_0 + - krb5=1.19.3=h08a2579_0 + - lcms2=2.9=hbd6801e_1 + - ld_impl_linux-64=2.36.1=hea4e1c9_2 + - lerc=3.0=h9c3ff4c_0 + - libblas=3.9.0=13_linux64_openblas + - libbrotlicommon=1.0.9=h7f98852_6 + - libbrotlidec=1.0.9=h7f98852_6 + - libbrotlienc=1.0.9=h7f98852_6 + - libcblas=3.9.0=13_linux64_openblas + - libcroco=0.6.13=h8d621e5_1 + - libcurl=7.82.0=h2283fc2_0 + - libdeflate=1.10=h7f98852_0 + - libedit=3.1.20191231=he28a2e2_2 + - libev=4.33=h516909a_1 + - libffi=3.4.2=h7f98852_5 + - libgcc=7.2.0=h69d50b8_2 + - libgcc-devel_linux-64=9.3.0=hb95220a_17 + - libgcc-ng=11.2.0=h1d223b6_14 + - libgd=2.3.3=h6ad9fb6_0 + - libgfortran-ng=9.4.0=h69a702a_14 + - libgfortran5=9.4.0=h62347ff_14 + - libgirepository=1.72.0=h26ff761_0 + - libglib=2.70.2=h174f98d_4 + - libgomp=11.2.0=h1d223b6_14 + - libiconv=1.16=h516909a_0 + - libidn2=2.3.0=h516909a_0 + - libjemalloc=5.2.1=h9c3ff4c_6 + - liblapack=3.9.0=13_linux64_openblas + - libnghttp2=1.47.0=he49606f_0 + - libnsl=2.0.0=h7f98852_0 + - libopenblas=0.3.18=pthreads_h8fe5266_0 + - libpng=1.6.37=hed695b0_1 + - libprotobuf=3.11.4=h8b12597_0 + - librsvg=2.52.5=hc3c00ef_1 + - libssh2=1.10.0=ha35d2d1_2 + - libstdcxx-devel_linux-64=9.3.0=hf0c5c8d_17 + - libstdcxx-ng=11.2.0=he4da1e4_14 + - libtiff=4.3.0=h542a066_3 + - libtool=2.4.6=h14c3975_1002 + - libunistring=0.9.10=h14c3975_0 + - libuuid=2.32.1=h14c3975_1000 + - libwebp=1.2.2=h3452ae3_0 + - libwebp-base=1.2.2=h7f98852_1 + - libxcb=1.13=h14c3975_1002 + - libxml2=2.9.12=h72842e0_0 + - libzlib=1.2.11=h166bdaf_1014 + - lz4-c=1.9.3=h9c3ff4c_1 + - lzo=2.10=h14c3975_1000 + - lzstring=1.0.4=py_1001 + - make=4.3=h516909a_0 + - markdown=3.2.1=py_0 + - markupsafe=1.1.1=py37h8f50634_1 + - matplotlib-base=3.5.1=py37h1058ff1_0 + - multidict=4.7.5=py37h8f50634_1 + - multiqc=1.12=pyhdfd78af_0 + - munkres=1.1.4=pyh9f0ad1d_0 + - mysql-connector-c=6.1.6=2 + - nbformat=5.0.6=py_0 + - ncurses=6.3=h9c3ff4c_0 + - networkx=2.7.1=pyhd8ed1ab_0 + - numpy=1.21.5=py37hf2998dd_0 + - olefile=0.46=pyh9f0ad1d_1 + - openblas=0.3.18=pthreads_h4748800_0 + - openjdk=11.0.1=h600c080_1018 + - openjpeg=2.4.0=hb52868f_1 + - openssl=3.0.2=h166bdaf_1 + - packaging=21.3=pyhd8ed1ab_0 + - pandas=1.3.5=py37he8f5f7f_0 + - pango=1.48.10=h54213e6_2 + - paramiko=2.7.1=py37_0 + - parso=0.7.0=pyh9f0ad1d_0 + - pcre=8.45=h9c3ff4c_0 + - pcre2=10.37=h032f7d1_0 + - perl=5.32.1=2_h7f98852_perl5 + - perl-app-cpanminus=1.7045=pl5321hd8ed1ab_0 + - perl-carp=1.50=pl5321hd8ed1ab_0 + - perl-constant=1.33=pl5321hd8ed1ab_0 + - perl-cpan-meta=2.150010=pl5321hdfd78af_1 + - perl-cpan-meta-requirements=2.140=pl5321hdfd78af_1 + - perl-cpan-meta-yaml=0.018=pl5321hdfd78af_1 + - perl-data-dumper=2.183=pl5321hec16e2b_1 + - perl-encode=3.16=pl5321hec16e2b_1 + - perl-exporter=5.74=pl5321hd8ed1ab_0 + - perl-extutils-cbuilder=0.280230=pl5321hdfd78af_2 + - perl-extutils-makemaker=7.64=pl5321hd8ed1ab_0 + - perl-extutils-manifest=1.73=pl5321hdfd78af_0 + - perl-extutils-parsexs=3.44=pl5321hdfd78af_0 + - perl-file-path=2.18=pl5321hd8ed1ab_0 + - perl-file-temp=0.2304=pl5321hd8ed1ab_0 + - perl-getopt-long=2.52=pl5321hdfd78af_0 + - perl-ipc-cmd=1.04=pl5321hdfd78af_0 + - perl-json-pp=4.07=pl5321hdfd78af_0 + - perl-locale-maketext-simple=0.21=pl5321hdfd78af_3 + - perl-module-build=0.4231=pl5321hdfd78af_0 + - perl-module-corelist=5.20220320=pl5321hdfd78af_0 + - perl-module-load=0.34=pl5321hdfd78af_0 + - perl-module-load-conditional=0.68=0 + - perl-module-metadata=1.000037=pl5321hdfd78af_0 + - perl-params-check=0.38=pl5321hdfd78af_2 + - perl-parent=0.238=pl5321hd8ed1ab_0 + - perl-perl-ostype=1.010=pl5321hdfd78af_2 + - perl-scalar-list-utils=1.62=pl5321hec16e2b_0 + - perl-text-abbrev=1.02=pl5321hdfd78af_1 + - perl-text-parsewords=3.30=pl5321hdfd78af_1 + - perl-version=0.9924=pl5321hec16e2b_2 + - pexpect=4.8.0=py37hc8dfbb8_1 + - picard=2.22.4=0 + - pickleshare=0.7.5=py37hc8dfbb8_1001 + - pillow=7.2.0=py37h718be6c_0 + - pip=20.1=pyh9f0ad1d_0 + - pixman=0.40.0=h36c2ea0_0 + - pkg-config=0.29.2=h516909a_1006 + - preseq=2.0.3=hc216eb9_5 + - prettytable=0.7.2=py_3 + - prompt-toolkit=3.0.5=py_1 + - protobuf=3.11.4=py37h3340039_1 + - psutil=5.7.0=py37h8f50634_1 + - pthread-stubs=0.4=h14c3975_1001 + - ptyprocess=0.6.0=py_1001 + - pyasn1=0.4.8=py_0 + - pyasn1-modules=0.2.7=py_0 + - pybigwig=0.3.17=py37hc013797_0 + - pycparser=2.20=py_0 + - pygments=2.6.1=py_0 + - pygraphviz=1.3=py37h14c3975_1 + - pynacl=1.3.0=py37h516909a_1001 + - pyopenssl=19.1.0=py_1 + - pyparsing=2.4.7=pyh9f0ad1d_0 + - pyrsistent=0.16.0=py37h8f50634_0 + - pysam=0.9.1=py37h7a862ea_12 + - pysftp=0.2.9=py_1 + - pysocks=1.7.1=py37hc8dfbb8_1 + - python=3.7.12=hf930737_100_cpython + - python-dateutil=2.8.1=py_0 + - python-irodsclient=0.8.2=py_0 + - python-lzo=1.12=py37h81344f2_1001 + - python_abi=3.7=1_cp37m + - pytz=2020.1=pyh9f0ad1d_0 + - pyyaml=5.3.1=py37h8f50634_0 + - qualimap=2.2.2d=1 + - r=4.1=r41hd8ed1ab_1004 + - r-acepack=1.4.1=r41h859d828_1006 + - r-ape=5.6_2=r41h43535f1_0 + - r-aplot=0.1.2=r41hc72bb7e_0 + - r-ashr=2.2_54=r41h7525677_0 + - r-askpass=1.1=r41hcfec24a_2 + - r-assertthat=0.2.1=r41hc72bb7e_2 + - r-babelgene=21.4=r41hc72bb7e_0 + - r-backports=1.4.1=r41hcfec24a_0 + - r-base=4.1.1=hb67fd72_0 + - r-base64enc=0.1_3=r41hcfec24a_1004 + - r-bbmle=1.0.24=r41hc72bb7e_0 + - r-bdsmatrix=1.3_4=r41hcfec24a_1 + - r-bh=1.78.0_0=r41hc72bb7e_0 + - r-biasedurn=1.07=r41h03ef668_1004 + - r-bibtex=0.4.2.3=r41hcfec24a_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-blockmodeling=1.0.5=r41h859d828_0 + - r-boot=1.3_28=r41hc72bb7e_0 + - r-brio=1.1.3=r41hcfec24a_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-class=7.3_20=r41hcfec24a_0 + - r-cli=3.2.0=r41h03ef668_0 + - r-clipr=0.8.0=r41hc72bb7e_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_3=r41h06615bd_0 + - r-commonmark=1.8.0=r41h06615bd_0 + - r-cowplot=1.1.1=r41hc72bb7e_0 + - r-cpp11=0.4.2=r41hc72bb7e_0 + - r-crayon=1.5.1=r41hc72bb7e_0 + - r-curl=4.3.2=r41hcfec24a_0 + - r-data.table=1.14.2=r41hcfec24a_0 + - r-dbi=1.1.2=r41hc72bb7e_0 + - r-dbplyr=2.1.1=r41hc72bb7e_0 + - r-desc=1.4.1=r41hc72bb7e_0 + - r-diffobj=0.3.5=r41hcfec24a_0 + - r-digest=0.6.29=r41h03ef668_0 + - r-doparallel=1.0.17=r41hc72bb7e_0 + - r-dorng=1.8.2=r41hc72bb7e_1 + - r-downloader=0.4=r41hc72bb7e_1003 + - r-dplyr=1.0.8=r41h7525677_0 + - r-ellipsis=0.3.2=r41hcfec24a_0 + - r-emdbook=1.3.12=r41hc72bb7e_1 + - r-etrunct=0.1=r41hc72bb7e_1003 + - r-europepmc=0.4.1=r41hc72bb7e_0 + - r-evaluate=0.15=r41hc72bb7e_0 + - r-fansi=1.0.3=r41h06615bd_0 + - r-farver=2.1.0=r41h03ef668_0 + - r-fastmap=1.1.0=r41h03ef668_0 + - r-fastmatch=1.1_3=r41hcfec24a_0 + - r-filelock=1.0.2=r41hcfec24a_1002 + - r-fontawesome=0.2.2=r41hc72bb7e_0 + - r-foreach=1.5.2=r41hc72bb7e_0 + - r-foreign=0.8_82=r41hcfec24a_0 + - r-formatr=1.11=r41hc72bb7e_0 + - r-formula=1.2_4=r41hc72bb7e_0 + - r-fs=1.5.2=r41h03ef668_0 + - r-futile.logger=1.4.3=r41hc72bb7e_1003 + - r-futile.options=1.0.1=r41hc72bb7e_1002 + - r-gdata=2.18.0=r41hc72bb7e_1003 + - r-generics=0.1.2=r41hc72bb7e_0 + - r-getopt=1.20.3=r41ha770c72_2 + - r-ggforce=0.3.3=r41h03ef668_0 + - r-ggfun=0.0.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-ggridges=0.5.3=r41hc72bb7e_0 + - r-glue=1.6.2=r41h06615bd_0 + - r-gplots=3.1.1=r41hc72bb7e_0 + - r-graphlayouts=0.8.0=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-highr=0.9=r41hc72bb7e_0 + - r-hmisc=4.6_0=r41h859d828_0 + - r-hms=1.1.1=r41hc72bb7e_0 + - r-htmltable=2.4.0=r41hc72bb7e_0 + - r-htmltools=0.5.2=r41h03ef668_0 + - r-htmlwidgets=1.5.4=r41hc72bb7e_0 + - r-httpuv=1.6.5=r41h03ef668_0 + - r-httr=1.4.2=r41hc72bb7e_0 + - r-igraph=1.2.11=r41he0372cf_0 + - r-invgamma=1.1=r41hc72bb7e_1 + - r-irlba=2.3.5=r41he454529_0 + - r-isoband=0.2.5=r41h03ef668_0 + - r-iterators=1.0.14=r41hc72bb7e_0 + - r-jpeg=0.1_9=r41hcfec24a_0 + - r-jquerylib=0.1.4=r41hc72bb7e_0 + - r-jsonlite=1.8.0=r41h06615bd_0 + - r-kernsmooth=2.23_20=r41h742201e_0 + - r-knitr=1.38=r41hc72bb7e_0 + - r-labeling=0.4.2=r41hc72bb7e_1 + - r-lambda.r=1.2.4=r41hc72bb7e_1 + - r-later=1.2.0=r41h03ef668_0 + - r-lattice=0.20_45=r41hcfec24a_0 + - r-latticeextra=0.6_29=r41hc72bb7e_1 + - r-lazyeval=0.2.2=r41hcfec24a_2 + - r-lifecycle=1.0.1=r41hc72bb7e_0 + - r-locfit=1.5_9.5=r41h06615bd_0 + - r-magrittr=2.0.2=r41hcfec24a_0 + - r-markdown=1.1=r41hcfec24a_1 + - r-mass=7.3_56=r41h06615bd_0 + - r-matrix=1.4_1=r41h0154571_0 + - r-matrixstats=0.61.0=r41hcfec24a_0 + - r-memoise=2.0.1=r41hc72bb7e_0 + - r-mgcv=1.8_39=r41h0154571_0 + - r-mime=0.12=r41hcfec24a_0 + - r-mixsqp=0.3_43=r41h306847c_1 + - r-msigdbr=7.4.1=r41hc72bb7e_0 + - r-munsell=0.5.0=r41hc72bb7e_1004 + - r-mvtnorm=1.1_3=r41h859d828_0 + - r-nlme=3.1_155=r41h859d828_0 + - r-nnet=7.3_17=r41hcfec24a_0 + - r-numderiv=2016.8_1.1=r41hc72bb7e_3 + - r-openssl=2.0.0=r41h1f3e0c5_0 + - r-optparse=1.7.1=r41hc72bb7e_0 + - r-patchwork=1.1.1=r41hc72bb7e_0 + - r-pheatmap=1.0.12=r41hc72bb7e_2 + - r-pillar=1.7.0=r41hc72bb7e_0 + - r-pkgbuild=1.3.1=r41hc72bb7e_0 + - r-pkgconfig=2.0.3=r41hc72bb7e_1 + - r-pkgload=1.2.4=r41h03ef668_0 + - r-pkgmaker=0.32.2=r41hc72bb7e_0 + - r-plogr=0.2.0=r41hc72bb7e_1003 + - r-plyr=1.8.7=r41h7525677_0 + - r-png=0.1_7=r41hcfec24a_1004 + - r-polyclip=1.10_0=r41h03ef668_2 + - r-praise=1.0.0=r41hc72bb7e_1005 + - r-prettyunits=1.1.1=r41hc72bb7e_1 + - r-processx=3.5.3=r41h06615bd_0 + - r-progress=1.2.2=r41hc72bb7e_2 + - r-promises=1.2.0.1=r41h03ef668_0 + - r-ps=1.6.0=r41hcfec24a_0 + - r-purrr=0.3.4=r41hcfec24a_1 + - r-r6=2.5.1=r41hc72bb7e_0 + - r-rappdirs=0.3.3=r41hcfec24a_0 + - r-rcolorbrewer=1.1_2=r41h785f33e_1003 + - r-rcpp=1.0.8.3=r41h7525677_0 + - r-rcpparmadillo=0.10.8.1.0=r41h306847c_0 + - r-rcppeigen=0.3.3.9.1=r41h306847c_0 + - r-rcppnumerical=0.4_0=r41h03ef668_1 + - r-rcurl=1.98_1.6=r41hcfec24a_0 + - r-readr=2.1.2=r41h03ef668_0 + - r-recommended=4.1=r41hd8ed1ab_1004 + - r-registry=0.5_1=r41hc72bb7e_2 + - r-rematch2=2.1.2=r41hc72bb7e_1 + - r-reshape2=1.4.4=r41h03ef668_1 + - r-restfulr=0.0.13=r41h73dbb54_2 + - r-rjson=0.2.21=r41h03ef668_0 + - r-rlang=1.0.2=r41h7525677_0 + - r-rngtools=1.5.2=r41hc72bb7e_0 + - r-rpart=4.1.16=r41hcfec24a_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-sass=0.4.1=r41h7525677_0 + - r-scales=1.1.1=r41hc72bb7e_0 + - r-scatterpie=0.1.6=r41hc72bb7e_0 + - r-shadowtext=0.1.1=r41hc72bb7e_0 + - r-shiny=1.7.1=r41h785f33e_0 + - r-snow=0.4_4=r41hc72bb7e_0 + - r-sourcetools=0.1.7=r41h03ef668_1002 + - r-spatial=7.3_15=r41hcfec24a_0 + - r-squarem=2021.1=r41hc72bb7e_0 + - r-stringi=1.7.6=r41hcabe038_0 + - r-stringr=1.4.0=r41hc72bb7e_2 + - r-survival=3.3_1=r41h06615bd_0 + - r-sys=3.4=r41hcfec24a_0 + - r-testthat=3.1.2=r41h03ef668_0 + - r-tibble=3.1.6=r41hcfec24a_0 + - r-tidygraph=1.2.0=r41h7525677_0 + - r-tidyr=1.2.0=r41h03ef668_0 + - r-tidyselect=1.1.2=r41hc72bb7e_0 + - r-tidytree=0.3.9=r41hc72bb7e_0 + - r-triebeard=0.3.0=r41h9c3ff4c_1003 + - r-truncnorm=1.0_8=r41hcfec24a_1002 + - r-tweenr=1.0.2=r41h03ef668_0 + - r-tzdb=0.2.0=r41h03ef668_0 + - r-upsetr=1.4.0=r41hc72bb7e_2 + - r-urltools=1.7.3=r41h03ef668_2 + - 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.7=r41h03ef668_0 + - r-waldo=0.4.0=r41hc72bb7e_0 + - r-withr=2.5.0=r41hc72bb7e_0 + - r-writexl=1.4.0=r41hcfec24a_0 + - r-xfun=0.30=r41h7525677_0 + - r-xml=3.99_0.9=r41h06615bd_0 + - r-xml2=1.3.3=r41h03ef668_0 + - r-xtable=1.8_4=r41hc72bb7e_3 + - r-yaml=2.3.5=r41h06615bd_0 + - r-yulab.utils=0.0.4=r41hc72bb7e_0 + - r-zeallot=0.1.0=r41hc72bb7e_1003 + - ratelimiter=1.2.0=py37_1000 + - readline=8.1=h46c0cb4_0 + - requests=2.23.0=pyh8c360ce_2 + - rich=12.0.1=pyhd8ed1ab_0 + - rna-seqc=2.3.5=h335d4e2_3 + - rpy2=3.4.5=py37r41hb1e94ed_3 + - rsa=4.0=py_0 + - rsem=1.2.28=0 + - rseqc=3.0.1=py37h516909a_1 + - s3transfer=0.3.3=py37hc8dfbb8_1 + - salmon=1.7.0=h84f40af_0 + - samtools=1.3.1=h41a57b0_9 + - scipy=1.7.3=py37hf2a6cf1_0 + - sed=4.8=he412f7d_0 + - setuptools=46.1.3=py37hc8dfbb8_0 + - simplegeneric=0.8.1=py_1 + - simplejson=3.17.0=py37h8f50634_1 + - six=1.14.0=py_1 + - smmap=3.0.4=pyh9f0ad1d_0 + - snakemake=5.14.0=0 + - snakemake-minimal=5.14.0=py_1 + - spectra=0.0.11=py_1 + - sqlite=3.37.1=h4ff8645_0 + - star=2.7.3a=0 + - subread=2.0.0=hed695b0_0 + - sysroot_linux-64=2.12=he073ed8_15 + - tbb=2020.2=h4bd325d_4 + - tk=8.6.12=h27826a3_0 + - tktable=2.10=h555a92e_3 + - toposort=1.5=py_3 + - tornado=6.0.4=py37h8f50634_1 + - tpmcalculator=0.0.4=h7376a40_0 + - traitlets=4.3.3=py37hc8dfbb8_1 + - trimadap=r9=0 + - typing_extensions=4.1.1=pyha770c72_0 + - tzlocal=2.1=pyh9f0ad1d_0 + - ucsc-bigwigsummary=357=1 + - unicodedata2=14.0.0=py37h5e8e339_0 + - urllib3=1.25.9=py_0 + - wcwidth=0.2.5=pyh9f0ad1d_0 + - wget=1.20.3=ha35d2d1_1 + - wheel=0.34.2=py_1 + - wrapt=1.12.1=py37h8f50634_1 + - xmlrunner=1.7.7=py_0 + - 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=h84519dc_1000 + - xorg-libx11=1.6.9=h516909a_0 + - xorg-libxau=1.0.9=h14c3975_0 + - xorg-libxdmcp=1.1.3=h516909a_0 + - xorg-libxext=1.3.4=h516909a_0 + - xorg-libxfixes=5.0.3=h516909a_1004 + - xorg-libxi=1.7.10=h516909a_0 + - xorg-libxpm=3.5.13=h516909a_0 + - xorg-libxrender=0.9.10=h516909a_1002 + - xorg-libxt=1.1.5=h516909a_1003 + - 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_0 + - yaml=0.2.4=h516909a_0 + - yarl=1.3.0=py37h516909a_1000 + - zipp=3.1.0=py_0 + - zlib=1.2.11=h166bdaf_1014 + - zstd=1.5.2=ha95c52a_0 diff --git a/conda_env_mapping_sc.yaml b/conda_env_mapping_sc.yaml new file mode 100644 index 0000000..0214a55 --- /dev/null +++ b/conda_env_mapping_sc.yaml @@ -0,0 +1,505 @@ +name: sea_snap_mapping_sc +channels: + - conda-forge + - default + - bioconda + - defaults +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=0_gnu + - _r-mutex=1.0.1=anacondar_1 + - aioeasywebdav=2.4.0=py37_1000 + - aiohttp=3.6.2=py37h516909a_0 + - alsa-lib=1.1.5=h516909a_1002 + - appdirs=1.4.3=py_1 + - async-timeout=3.0.1=py_1000 + - attrs=19.3.0=py_0 + - backcall=0.2.0=pyh9f0ad1d_0 + - bamtools=2.5.1=he513fc3_6 + - bcrypt=3.1.7=py37h8f50634_1 + - bedtools=2.29.2=hc088bd4_0 + - binutils_impl_linux-64=2.34=h53a641e_7 + - binutils_linux-64=2.34=hc952b39_18 + - bioconductor-annotate=1.60.1=r351_0 + - bioconductor-annotationdbi=1.44.0=r351_0 + - bioconductor-apeglm=1.4.1=r351hf484d3e_0 + - bioconductor-biobase=2.42.0=r351h14c3975_1 + - bioconductor-biocgenerics=0.28.0=r351_1 + - bioconductor-biocparallel=1.16.6=r351h1c2f66e_0 + - bioconductor-biomart=2.38.0=r351_0 + - bioconductor-biostrings=2.50.2=r351h14c3975_0 + - bioconductor-clusterprofiler=3.10.1=r351_0 + - bioconductor-delayedarray=0.8.0=r351h14c3975_0 + - bioconductor-deseq2=1.22.1=r351hf484d3e_0 + - bioconductor-do.db=2.9=r351_4 + - bioconductor-dose=3.8.0=r351_0 + - bioconductor-dupradar=1.14.0=r351_0 + - bioconductor-ebseq=1.24.0=r351_0 + - bioconductor-enrichplot=1.2.0=r351_0 + - bioconductor-fgsea=1.8.0=r351hf484d3e_0 + - bioconductor-genefilter=1.64.0=r351h1c2f66e_1 + - bioconductor-genelendatabase=1.18.0=r351_0 + - bioconductor-geneplotter=1.60.0=r351_0 + - bioconductor-genomeinfodb=1.18.1=r351_0 + - bioconductor-genomeinfodbdata=1.2.1=r351_0 + - bioconductor-genomicalignments=1.18.1=r351h14c3975_0 + - bioconductor-genomicfeatures=1.34.1=r351_0 + - bioconductor-genomicranges=1.34.0=r351h14c3975_0 + - bioconductor-go.db=3.7.0=r351_0 + - bioconductor-gosemsim=2.8.0=r351hf484d3e_0 + - bioconductor-goseq=1.34.1=r351_0 + - bioconductor-iranges=2.16.0=r351h14c3975_0 + - bioconductor-noiseq=2.26.1=r351_0 + - bioconductor-org.hs.eg.db=3.7.0=r351_0 + - bioconductor-org.mm.eg.db=3.7.0=r351_0 + - bioconductor-qvalue=2.14.1=r351_0 + - bioconductor-rsamtools=1.34.0=r351hf484d3e_0 + - bioconductor-rsubread=1.34.0=r351h14c3975_0 + - bioconductor-rtracklayer=1.42.1=r351h9d9f1b6_1 + - bioconductor-s4vectors=0.20.1=r351h14c3975_0 + - bioconductor-summarizedexperiment=1.12.0=r351_0 + - bioconductor-tximport=1.12.1=r351_1 + - bioconductor-xvector=0.22.0=r351h14c3975_0 + - bioconductor-zlibbioc=1.28.0=r351h14c3975_0 + - biopython=1.76=py37h516909a_0 + - boost-cpp=1.70.0=h8e57a91_2 + - boto3=1.13.6=pyh9f0ad1d_0 + - botocore=1.16.6=pyh9f0ad1d_0 + - brotlipy=0.7.0=py37h8f50634_1000 + - bwidget=1.9.14=0 + - bx-python=0.8.8=py37h5266303_1 + - bzip2=1.0.8=h516909a_2 + - ca-certificates=2021.10.8=ha878542_0 + - cachetools=3.1.1=py_0 + - cairo=1.16.0=hcf35c78_1003 + - certifi=2021.10.8=py37h89c1867_1 + - cffi=1.14.0=py37hd463f26_0 + - chardet=3.0.4=py37hc8dfbb8_1006 + - click=7.1.2=pyh9f0ad1d_0 + - coloredlogs=14.0=py37hc8dfbb8_1 + - colormath=3.0.0=py_2 + - configargparse=1.2.3=pyh9f0ad1d_0 + - crc32c=2.0=py37h516909a_0 + - cryptography=2.9.2=py37hb09aad4_0 + - curl=7.68.0=hf8cf82a_0 + - cycler=0.10.0=py_2 + - datrie=0.8.2=py37h8f50634_0 + - decorator=4.4.2=py_0 + - docutils=0.15.2=py37_0 + - drmaa=0.7.9=py_1000 + - dropbox=9.4.0=py_0 + - expat=2.2.9=he1b5a44_2 + - fastqc=0.11.9=0 + - fftw=3.3.8=nompi_h7f3a6c3_1110 + - filechunkio=1.8=py_2 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=2.001=hab24e00_0 + - font-ttf-source-code-pro=2.030=hab24e00_0 + - font-ttf-ubuntu=0.83=hab24e00_0 + - fontconfig=2.13.1=h86ecdb6_1001 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - freetype=2.10.1=he06d7ca_0 + - fribidi=1.0.9=h516909a_0 + - ftputil=3.4=py_0 + - future=0.18.2=py37hc8dfbb8_1 + - gcc_impl_linux-64=7.3.0=habb00fd_1 + - gcc_linux-64=7.3.0=h553295d_18 + - gdk-pixbuf=2.32.2=1 + - gettext=0.19.8.1=hc5be6a0_1002 + - gfortran_impl_linux-64=7.3.0=hdf63c60_1 + - gfortran_linux-64=7.3.0=h553295d_18 + - ghostscript=9.18=1 + - giflib=5.2.1=h516909a_2 + - gitdb=4.0.5=py_0 + - gitpython=3.1.2=py_0 + - glib=2.64.2=h6f030ca_0 + - gmp=6.2.0=he1b5a44_2 + - gobject-introspection=1.58.2=py37h619baee_1004 + - google-api-core=1.17.0=py37hc8dfbb8_0 + - google-auth=1.14.2=pyh9f0ad1d_0 + - google-cloud-core=1.3.0=py_0 + - google-cloud-storage=1.28.1=pyh9f0ad1d_0 + - google-resumable-media=0.5.0=py_1 + - googleapis-common-protos=1.51.0=py37hc8dfbb8_2 + - graphite2=1.3.13=he1b5a44_1001 + - graphviz=2.42.3=h0511662_0 + - gsl=2.5=h294904e_1 + - gxx_impl_linux-64=7.3.0=hdf63c60_1 + - gxx_linux-64=7.3.0=h553295d_18 + - harfbuzz=2.4.0=h9f30f68_3 + - htslib=1.9=ha228f0b_7 + - humanfriendly=8.2=py37hc8dfbb8_0 + - icu=64.2=he1b5a44_1 + - idna=2.9=py_1 + - imagemagick=7.0.10_6=pl526ha9fe49d_0 + - importlib-metadata=1.6.0=py37hc8dfbb8_0 + - importlib_metadata=1.6.0=0 + - ipython=7.16.1=py37h43977f1_0 + - ipython_genutils=0.2.0=py_1 + - jbig=2.1=h516909a_2002 + - jedi=0.17.1=py37hc8dfbb8_0 + - jemalloc=5.2.1=he1b5a44_1 + - jinja2=2.11.2=pyh9f0ad1d_0 + - jmespath=0.9.5=py_0 + - jpeg=9c=h14c3975_1001 + - jsonschema=3.2.0=py37hc8dfbb8_1 + - jupyter_core=4.6.3=py37hc8dfbb8_1 + - kiwisolver=1.2.0=py37h99015e2_0 + - krb5=1.16.4=h2fd8d38_0 + - lcms2=2.9=hbd6801e_1 + - ld_impl_linux-64=2.34=h53a641e_7 + - libblas=3.8.0=11_openblas + - libcblas=3.8.0=11_openblas + - libcroco=0.6.13=h8d621e5_1 + - libcurl=7.68.0=hda55be3_0 + - libdeflate=1.0=h14c3975_1 + - libedit=3.1.20170329=hf8c457e_1001 + - libffi=3.2.1=he1b5a44_1007 + - libgcc=7.2.0=h69d50b8_2 + - libgcc-ng=9.2.0=h24d8f2e_2 + - libgfortran-ng=7.3.0=hdf63c60_5 + - libgomp=9.2.0=h24d8f2e_2 + - libiconv=1.15=h516909a_1006 + - libidn2=2.3.0=h516909a_0 + - liblapack=3.8.0=11_openblas + - libopenblas=0.3.6=h6e990d7_6 + - libpng=1.6.37=hed695b0_1 + - libprotobuf=3.11.4=h8b12597_0 + - librsvg=2.46.4=h33a7fed_0 + - libssh2=1.8.2=h22169c7_2 + - libstdcxx-ng=9.2.0=hdf63c60_2 + - libtiff=4.1.0=hc3755c2_3 + - libtool=2.4.6=h14c3975_1002 + - libunistring=0.9.10=h14c3975_0 + - libuuid=2.32.1=h14c3975_1000 + - libwebp=1.0.2=h56121f0_5 + - libxcb=1.13=h14c3975_1002 + - libxml2=2.9.10=hee79883_0 + - lz4-c=1.9.2=he1b5a44_1 + - lzo=2.10=h14c3975_1000 + - lzstring=1.0.4=py_1001 + - make=4.3=h516909a_0 + - markdown=3.2.1=py_0 + - markupsafe=1.1.1=py37h8f50634_1 + - matplotlib-base=3.1.1=py37h250f245_2 + - multidict=4.7.5=py37h8f50634_1 + - multiqc=1.8=py_2 + - mysql-connector-c=6.1.6=2 + - nbformat=5.0.6=py_0 + - ncurses=6.1=hf484d3e_1002 + - networkx=2.2=py_1 + - numpy=1.18.4=py37h8960a57_0 + - openblas=0.3.6=h6e990d7_6 + - openjdk=11.0.1=h600c080_1018 + - openjpeg=2.3.1=h981e76c_3 + - openssl=1.1.1g=h516909a_0 + - pandas=1.0.3=py37h0da4684_1 + - pango=1.42.4=h7062337_4 + - paramiko=2.7.1=py37_0 + - parso=0.7.0=pyh9f0ad1d_0 + - pcre=8.44=he1b5a44_0 + - perl=5.26.2=h516909a_1006 + - perl-app-cpanminus=1.7044=pl526_1 + - perl-carp=1.38=pl526_3 + - perl-constant=1.33=pl526_1 + - perl-cpan-meta=2.150010=pl526_0 + - perl-cpan-meta-requirements=2.140=pl526_0 + - perl-cpan-meta-yaml=0.018=pl526_0 + - perl-data-dumper=2.173=pl526_0 + - perl-encode=2.88=pl526_1 + - perl-exporter=5.72=pl526_1 + - perl-extutils-cbuilder=0.280230=pl526_1 + - perl-extutils-makemaker=7.36=pl526_1 + - perl-extutils-manifest=1.72=pl526_0 + - perl-extutils-parsexs=3.35=pl526_0 + - perl-file-path=2.16=pl526_0 + - perl-file-temp=0.2304=pl526_2 + - perl-getopt-long=2.50=pl526_1 + - perl-ipc-cmd=1.02=pl526_0 + - perl-json-pp=4.04=pl526_0 + - perl-locale-maketext-simple=0.21=pl526_2 + - perl-module-build=0.4224=pl526_3 + - perl-module-corelist=5.20190524=pl526_0 + - perl-module-load=0.32=pl526_1 + - perl-module-load-conditional=0.68=pl526_2 + - perl-module-metadata=1.000036=pl526_0 + - perl-params-check=0.38=pl526_1 + - perl-parent=0.236=pl526_1 + - perl-perl-ostype=1.010=pl526_1 + - perl-scalar-list-utils=1.52=pl526h516909a_0 + - perl-text-abbrev=1.02=pl526_0 + - perl-text-parsewords=3.30=pl526_0 + - perl-version=0.9924=pl526_0 + - pexpect=4.8.0=py37hc8dfbb8_1 + - picard=2.22.4=0 + - pickleshare=0.7.5=py37hc8dfbb8_1001 + - pip=20.1=pyh9f0ad1d_0 + - pixman=0.38.0=h516909a_1003 + - pkg-config=0.29.2=h516909a_1006 + - preseq=2.0.3=hf53bd2b_3 + - prettytable=0.7.2=py_3 + - prompt-toolkit=3.0.5=py_1 + - protobuf=3.11.4=py37h3340039_1 + - psutil=5.7.0=py37h8f50634_1 + - pthread-stubs=0.4=h14c3975_1001 + - ptyprocess=0.6.0=py_1001 + - pyasn1=0.4.8=py_0 + - pyasn1-modules=0.2.7=py_0 + - pybigwig=0.3.17=py37hc013797_0 + - pycparser=2.20=py_0 + - pygments=2.6.1=py_0 + - pygraphviz=1.3=py37h14c3975_1 + - pynacl=1.3.0=py37h516909a_1001 + - pyopenssl=19.1.0=py_1 + - pyparsing=2.4.7=pyh9f0ad1d_0 + - pyrsistent=0.16.0=py37h8f50634_0 + - pysam=0.15.3=py37hda2845c_1 + - pysftp=0.2.9=py_1 + - pysocks=1.7.1=py37hc8dfbb8_1 + - python=3.7.6=h8356626_5_cpython + - python-dateutil=2.8.1=py_0 + - python-irodsclient=0.8.2=py_0 + - python-lzo=1.12=py37h81344f2_1001 + - python_abi=3.7=1_cp37m + - pytz=2020.1=pyh9f0ad1d_0 + - pyyaml=5.3.1=py37h8f50634_0 + - qualimap=2.2.2d=1 + - r=3.5.1=r35_1003 + - r-acepack=1.4.1=r35h9bbef5b_1004 + - r-ashr=2.2_47=r35h0357c0b_0 + - r-askpass=1.1=r35hcdcec82_1 + - r-assertthat=0.2.1=r35h6115d3f_1 + - r-backports=1.1.6=r35hcdcec82_1 + - r-base=3.5.1=hc461eb7_1012 + - r-base64enc=0.1_3=r35hcdcec82_1003 + - r-bbmle=1.0.23.1=r35h6115d3f_0 + - r-bdsmatrix=1.3_4=r35hcdcec82_0 + - r-bh=1.72.0_3=r35h6115d3f_0 + - r-biasedurn=1.07=r35h0357c0b_1003 + - r-bibtex=0.4.2.2=r35hcdcec82_0 + - r-biocmanager=1.30.10=r35h6115d3f_0 + - r-bit=1.1_15.2=r35hcdcec82_0 + - r-bit64=0.9_7=r35hcdcec82_1001 + - r-bitops=1.0_6=r35hcdcec82_1003 + - r-blob=1.2.0=r35_1 + - r-blockmodeling=0.3.6=r35h9bbef5b_0 + - r-boot=1.3_25=r35h6115d3f_0 + - r-callr=3.4.3=r35h6115d3f_0 + - r-catools=1.17.1.4=r35h0357c0b_0 + - r-checkmate=2.0.0=r35hcdcec82_0 + - r-class=7.3_17=r35hcdcec82_0 + - r-cli=2.0.2=r35h6115d3f_0 + - r-clipr=0.7.0=r35h6115d3f_0 + - r-cluster=2.1.0=r35h9bbef5b_2 + - r-coda=0.19_3=r35h6115d3f_1 + - r-codetools=0.2_16=r35h6115d3f_1001 + - r-colorspace=1.4_1=r35hcdcec82_1 + - r-cowplot=1.0.0=r35h6115d3f_1 + - r-crayon=1.3.4=r35h6115d3f_1002 + - r-curl=4.3=r35hcdcec82_0 + - r-data.table=1.11.6=r351hc070d10_0 + - r-dbi=1.1.0=r35h6115d3f_0 + - r-desc=1.2.0=r35h6115d3f_1002 + - r-digest=0.6.25=r35h0357c0b_1 + - r-doparallel=1.0.15=r35h6115d3f_0 + - r-dorng=1.8.2=r35h6115d3f_0 + - r-dplyr=0.8.5=r35h0357c0b_0 + - r-ellipsis=0.3.0=r35hcdcec82_0 + - r-emdbook=1.3.12=r35h6115d3f_0 + - r-etrunct=0.1=r35_1001 + - r-europepmc=0.3=r35h6115d3f_1001 + - r-evaluate=0.14=r35h6115d3f_1 + - r-fansi=0.4.1=r35hcdcec82_0 + - r-farver=2.0.3=r35h0357c0b_0 + - r-fastmap=1.0.1=r35h0357c0b_0 + - r-fastmatch=1.1_0=r35hcdcec82_1004 + - r-foreach=1.5.0=r35h6115d3f_0 + - r-foreign=0.8_76=r35hcdcec82_0 + - r-formatr=1.7=r35h6115d3f_1 + - r-formula=1.2_3=r35h6115d3f_1002 + - r-futile.logger=1.4.3=r35h6115d3f_1002 + - r-futile.options=1.0.1=r35h6115d3f_1001 + - r-gdata=2.18.0=r35h6115d3f_1002 + - r-getopt=1.20.3=r35_1 + - r-ggforce=0.3.1=r35h0357c0b_0 + - r-ggplot2=3.3.0=r35h6115d3f_0 + - r-ggplotify=0.0.5=r35h6115d3f_0 + - r-ggraph=2.0.2=r35h0357c0b_0 + - r-ggrepel=0.8.2=r35h0357c0b_0 + - r-ggridges=0.5.2=r35h6115d3f_1 + - r-glue=1.4.0=r35hcdcec82_0 + - r-gplots=3.0.3=r35h6115d3f_0 + - r-graphlayouts=0.7.0=r35h0357c0b_0 + - r-gridextra=2.3=r35h6115d3f_1002 + - r-gridgraphics=0.5_0=r35h6115d3f_0 + - r-gtable=0.3.0=r35h6115d3f_2 + - r-gtools=3.8.2=r35hcdcec82_0 + - r-highr=0.8=r35h6115d3f_1 + - r-hmisc=4.4_0=r35h9bbef5b_0 + - r-hms=0.5.3=r35h6115d3f_0 + - r-htmltable=1.13.3=r35h6115d3f_0 + - r-htmltools=0.4.0=r35h0357c0b_0 + - r-htmlwidgets=1.5.1=r35h6115d3f_0 + - r-httpuv=1.5.2=r35h0357c0b_1 + - r-httr=1.4.1=r35h6115d3f_1 + - r-igraph=1.2.5=r35hd626d4e_0 + - r-invgamma=1.1=r35h6115d3f_0 + - r-irlba=2.3.3=r35h7fa42b6_2 + - r-isoband=0.2.1=r35h0357c0b_0 + - r-iterators=1.0.12=r35h6115d3f_0 + - r-jsonlite=1.6.1=r35hcdcec82_0 + - r-kernsmooth=2.23_17=r35hfa343cc_0 + - r-knitr=1.28=r35h6115d3f_0 + - r-labeling=0.3=r35h6115d3f_1002 + - r-lambda.r=1.2.4=r35h6115d3f_0 + - r-later=1.0.0=r35h0357c0b_0 + - r-lattice=0.20_41=r35hcdcec82_1 + - r-latticeextra=0.6_28=r35h6115d3f_1002 + - r-lifecycle=0.2.0=r35h6115d3f_0 + - r-locfit=1.5_9.4=r35hcdcec82_0 + - r-magrittr=1.5=r35h6115d3f_1002 + - r-markdown=1.1=r35hcdcec82_0 + - r-mass=7.3_51.6=r35hcdcec82_1 + - r-matrix=1.2_18=r35h7fa42b6_2 + - r-matrixstats=0.56.0=r35hcdcec82_0 + - r-memoise=1.1.0=r35h6115d3f_1003 + - r-mgcv=1.8_31=r35h7fa42b6_0 + - r-mime=0.9=r35hcdcec82_0 + - r-mixsqp=0.3_17=r35h0357c0b_0 + - r-msigdbr=7.0.1=r35h6115d3f_1 + - r-munsell=0.5.0=r35h6115d3f_1002 + - r-mvtnorm=1.1_0=r35h9bbef5b_0 + - r-nlme=3.1_147=r35h9bbef5b_0 + - r-nnet=7.3_14=r35hcdcec82_0 + - r-numderiv=2016.8_1.1=r35h6115d3f_1 + - r-openssl=1.4.1=r35he5c4762_0 + - r-optparse=1.6.6=r35h6115d3f_0 + - r-pheatmap=1.0.12=r35h6115d3f_1 + - r-pillar=1.4.3=r35h6115d3f_0 + - r-pkgbuild=1.0.7=r35h6115d3f_0 + - r-pkgconfig=2.0.3=r35h6115d3f_0 + - r-pkgload=1.0.2=r35h0357c0b_1001 + - r-pkgmaker=0.31.1=r35h6115d3f_0 + - r-plogr=0.2.0=r35h6115d3f_1002 + - r-plyr=1.8.6=r35h0357c0b_0 + - r-polyclip=1.10_0=r35h0357c0b_1 + - r-praise=1.0.0=r35h6115d3f_1003 + - r-prettyunits=1.1.1=r35h6115d3f_0 + - r-processx=3.4.2=r35hcdcec82_0 + - r-progress=1.2.2=r35h6115d3f_1 + - r-promises=1.1.0=r35h0357c0b_0 + - r-ps=1.3.2=r35hcdcec82_0 + - r-purrr=0.3.4=r35hcdcec82_0 + - r-r6=2.4.1=r35h6115d3f_0 + - r-rcolorbrewer=1.1_2=r35h6115d3f_1002 + - r-rcpp=1.0.4.6=r35h0357c0b_0 + - r-rcpparmadillo=0.9.870.2.0=r35h51c796c_0 + - r-rcppeigen=0.3.3.7.0=r35h0357c0b_0 + - r-rcppnumerical=0.4_0=r35h0357c0b_0 + - r-rcurl=1.98_1.2=r35hcdcec82_0 + - r-readr=1.3.1=r35h0357c0b_1002 + - r-recommended=3.5.1=r35_1003 + - r-registry=0.5_1=r35h6115d3f_1 + - r-reshape2=1.4.4=r35h0357c0b_0 + - r-rlang=0.4.5=r35hcdcec82_2 + - r-rngtools=1.5=r35h6115d3f_0 + - r-rpart=4.1_15=r35hcdcec82_1 + - r-rprojroot=1.3_2=r35h6115d3f_1002 + - r-rsqlite=2.2.0=r35h0357c0b_0 + - r-rstudioapi=0.11=r35h6115d3f_0 + - r-rvcheck=0.1.8=r35h6115d3f_0 + - r-scales=1.1.0=r35h6115d3f_0 + - r-shiny=1.4.0.2=r35h6115d3f_0 + - r-snow=0.4_3=r35h6115d3f_1001 + - r-sourcetools=0.1.7=r35he1b5a44_1001 + - r-spatial=7.3_12=r35hcdcec82_0 + - r-squarem=2020.2=r35h6115d3f_0 + - r-stringi=1.4.6=r35h0e574ca_1 + - r-stringr=1.4.0=r35h6115d3f_1 + - r-survival=3.1_12=r35hcdcec82_0 + - r-sys=3.3=r35hcdcec82_0 + - r-testthat=2.3.2=r35h0357c0b_0 + - r-tibble=3.0.1=r35hcdcec82_0 + - r-tidygraph=1.1.2=r35h0357c0b_1 + - r-tidyr=1.0.2=r35h0357c0b_0 + - r-tidyselect=1.0.0=r35h6115d3f_0 + - r-triebeard=0.3.0=r35he1b5a44_1002 + - r-truncnorm=1.0_8=r35hcdcec82_1001 + - r-tweenr=1.0.1=r35h0357c0b_1001 + - r-upsetr=1.4.0=r35h6115d3f_1 + - r-urltools=1.7.3=r35h0357c0b_1 + - r-utf8=1.1.4=r35hcdcec82_1002 + - r-vctrs=0.2.4=r35hcdcec82_0 + - r-viridis=0.5.1=r35h6115d3f_1003 + - r-viridislite=0.3.0=r35h6115d3f_1002 + - r-withr=2.2.0=r35h6115d3f_0 + - r-xfun=0.13=r35h6115d3f_0 + - r-xml=3.99_0.3=r35hcdcec82_0 + - r-xml2=1.3.2=r35h0357c0b_0 + - r-xtable=1.8_4=r35h6115d3f_2 + - r-yaml=2.2.1=r35hcdcec82_0 + - r-zeallot=0.1.0=r35h6115d3f_1001 + - ratelimiter=1.2.0=py37_1000 + - readline=8.0=hf8c457e_0 + - requests=2.23.0=pyh8c360ce_2 + - rna-seqc=2.3.5=h0d5fbf8_0 + - rpy2=3.1.0=py37r35hc1659b7_3 + - rsa=4.0=py_0 + - rsem=1.3.3=pl526ha52163a_0 + - rseqc=3.0.1=py37h516909a_1 + - s3transfer=0.3.3=py37hc8dfbb8_1 + - salmon=1.2.1=hf69c8f4_0 + - samtools=1.9=h10a08f8_12 + - setuptools=46.1.3=py37hc8dfbb8_0 + - simplegeneric=0.8.1=py_1 + - simplejson=3.17.0=py37h8f50634_1 + - six=1.14.0=py_1 + - smmap=3.0.4=pyh9f0ad1d_0 + - snakemake=5.14.0=0 + - snakemake-minimal=5.14.0=py_1 + - spectra=0.0.11=py_1 + - sqlite=3.30.1=hcee41ef_0 + - star=2.7.3a=0 + - subread=2.0.0=hed695b0_0 + - tbb=2020.1=hc9558a2_0 + - tk=8.6.10=hed695b0_0 + - tktable=2.10=h555a92e_3 + - toposort=1.5=py_3 + - tornado=6.0.4=py37h8f50634_1 + - tpmcalculator=0.0.4=h7376a40_0 + - traitlets=4.3.3=py37hc8dfbb8_1 + - trimadap=r9=0 + - tzlocal=2.1=pyh9f0ad1d_0 + - ucsc-bigwigsummary=357=1 + - urllib3=1.25.9=py_0 + - wcwidth=0.2.5=pyh9f0ad1d_0 + - wget=1.20.1=h22169c7_0 + - wheel=0.34.2=py_1 + - wrapt=1.12.1=py37h8f50634_1 + - xmlrunner=1.7.7=py_0 + - 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=h84519dc_1000 + - xorg-libx11=1.6.9=h516909a_0 + - xorg-libxau=1.0.9=h14c3975_0 + - xorg-libxdmcp=1.1.3=h516909a_0 + - xorg-libxext=1.3.4=h516909a_0 + - xorg-libxfixes=5.0.3=h516909a_1004 + - xorg-libxi=1.7.10=h516909a_0 + - xorg-libxpm=3.5.13=h516909a_0 + - xorg-libxrender=0.9.10=h516909a_1002 + - xorg-libxt=1.1.5=h516909a_1003 + - 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_0 + - yaml=0.2.4=h516909a_0 + - yarl=1.3.0=py37h516909a_1000 + - zipp=3.1.0=py_0 + - zlib=1.2.11=h516909a_1006 + - zstd=1.4.4=h6597ccf_3 From 66de3262eea9ff9c2fc9dde14c87e8fb628de957 Mon Sep 17 00:00:00 2001 From: milekm Date: Fri, 1 Apr 2022 12:43:42 +0200 Subject: [PATCH 02/27] updated README.md --- README.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a43c9a3..0359902 100644 --- a/README.md +++ b/README.md @@ -52,17 +52,28 @@ git clone git@cubi-gitlab.bihealth.org:CUBI/Pipelines/sea-snap.git ``` all required tools and packages can be installed via conda. -Download and install them into a new environment called `sea_snap`: + +Currently there are two separate conda environments, one for the mapping+sc +pipeline and one for the DE pipeline + +Download and install them into new environments called `sea_snap_mapping_sc` +and `sea_snap_de`: ``` -conda env create -f conda_env.yaml +conda env create -f conda_env_mapping_sc.yaml +conda env create -f conda_env_de.yaml ``` -The file `conda_env.yaml` is located in the main directory of the git repository. +The files `conda_env_mapping_sc.yaml` and `conda_env_de.yaml` are located in the main directory of the git repository. Each time before using SeA-SnaP, activate the environment with: ``` -conda activate sea_snap +conda activate sea_snap_mapping_sc +``` + +or +``` +conda activate sea_snap_de ``` ### Running the pipeline From 60340cd57f8f818c697e8f37a4e055f9a5ce6c3a Mon Sep 17 00:00:00 2001 From: Miha Milek <48878612+mmilek@users.noreply.github.com> Date: Tue, 31 May 2022 11:08:03 +0200 Subject: [PATCH 03/27] update cluster config for cluster profiler sometimes cluster profiler runs out of memory --- cluster_config.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cluster_config.json b/cluster_config.json index 4683c04..3587213 100644 --- a/cluster_config.json +++ b/cluster_config.json @@ -122,6 +122,13 @@ "h_vmem": "20000", "h_rt": "40:00:00", "pe": "8" + }, + + "cluster_profiler": + { "h_vmem": "20000", + "h_rt": "10:00:00", + "pe": "1" } + } From fe0b4756da93371964ccb1b7b7b5c7d238b01418 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Mon, 20 Jun 2022 18:44:50 +0200 Subject: [PATCH 04/27] fixed bug related to setting tmod_pca: false --- DE_pipeline.snake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/DE_pipeline.snake b/DE_pipeline.snake index 91802d0..07f51f8 100644 --- a/DE_pipeline.snake +++ b/DE_pipeline.snake @@ -67,8 +67,11 @@ def get_inputs_all(): inputs.append(pph.file_path(step = "annotation", extension = "rds", contrast="all")) inputs.append(pph.file_path(step = "export_raw_counts", extension = "xlsx", contrast = "all")) inputs.append(pph.expand_path(step = "cluster_profiler", extension = "rds", if_set = dict(cluster_profiler=dict(run=True)) )) - inputs.append(pph.file_path(step = "tmod_dbs", extension = "rds", contrast="all")) - inputs.append(pph.file_path(step = "tmod_pca", extension = "rds", contrast="all", if_set=dict(tmod_pca=True))) + # XXX uncomment the following line to run tmod_pca + + if config["contrasts"]["defaults"]["tmod_pca"]: + inputs.append(pph.file_path(step = "tmod_pca", extension = "rds", contrast="all")) + inputs.append(pph.expand_path(step = "tmod", extension = "rds", if_set = dict(tmod=True))) #time series From b35c00ecafe05ee7a6436146d4bb62fa09d3e563 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Thu, 22 Sep 2022 12:35:06 +0200 Subject: [PATCH 05/27] updated chunk to be compatible with the new tmod objects --- report/Rmd/DE_report/Export_files.Rmd | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/report/Rmd/DE_report/Export_files.Rmd b/report/Rmd/DE_report/Export_files.Rmd index 5bce0f6..3eaeff6 100644 --- a/report/Rmd/DE_report/Export_files.Rmd +++ b/report/Rmd/DE_report/Export_files.Rmd @@ -88,12 +88,19 @@ tmod_mods <- map(tmod_db_ids, ~ { if(length(ids) < 1) { return(NULL) } - db <- tmod_dbs[[.id]]$dbobj - df <- db$MODULES %>% dplyr::filter(ID %in% ids) - genes <- map(df$ID, ~ db$MODULES2GENES[[.]]) + db <- tmod_dbs[[.id]]$dbobj + db <- db[ ids ] mapping <- tmod_map$maps[[ tmod_map$dbs[.id] ]] + + df <- tmod2DataFrame(db) + + # translate the gene IDs to the gene IDs (or, preferably, symbols) of the + # project + genes <- getModuleMembers(df$module_id, mset=db) + genes <- map(genes, ~ names(mapping)[ mapping %in% .x ]) + if("SYMBOL" %in% colnames(annot)) { genes <- map(genes, ~ { sym <- annot$SYMBOL[ match(.x, annot$PrimaryID) ] @@ -101,7 +108,7 @@ tmod_mods <- map(tmod_db_ids, ~ { }) } genes <- map_chr(genes, paste, collapse=",") - df$Genes <- genes + df$feature_id <- genes return(df) }) From efafa783e36a999afddc9347ba282ef8399a8bea Mon Sep 17 00:00:00 2001 From: Benedikt Obermayer Date: Tue, 3 Jan 2023 12:21:20 +0100 Subject: [PATCH 06/27] remove sc; remove drmaa; allow sample-specific indices; update snakemake version --- README.md | 13 +- cluster_config.json | 18 +- ..._mapping_sc.yaml => conda_env_mapping.yaml | 6 +- defaults/sc_config_defaults.yaml | 67 ---- defaults/sc_config_ranges.yaml | 47 --- documentation/run_sc.md | 60 ---- mapping_pipeline.snake | 32 +- sc_config.yaml | 31 -- sc_pipeline.snake | 319 ------------------ sea-snap.py | 35 +- 10 files changed, 49 insertions(+), 579 deletions(-) rename conda_env_mapping_sc.yaml => conda_env_mapping.yaml (99%) delete mode 100644 defaults/sc_config_defaults.yaml delete mode 100644 defaults/sc_config_ranges.yaml delete mode 100644 documentation/run_sc.md delete mode 100644 sc_config.yaml delete mode 100644 sc_pipeline.snake diff --git a/README.md b/README.md index 0359902..d78833f 100644 --- a/README.md +++ b/README.md @@ -48,27 +48,27 @@ Quick-Start After cloning this git repository: ``` -git clone git@cubi-gitlab.bihealth.org:CUBI/Pipelines/sea-snap.git +git clone git@cubi-gitlab.bihealth.org:CUBI/Pipelines/seasnap-pipeline.git ``` all required tools and packages can be installed via conda. -Currently there are two separate conda environments, one for the mapping+sc +Currently there are two separate conda environments, one for the mapping pipeline and one for the DE pipeline -Download and install them into new environments called `sea_snap_mapping_sc` +Download and install them into new environments called `sea_snap_mapping` and `sea_snap_de`: ``` -conda env create -f conda_env_mapping_sc.yaml +conda env create -f conda_env_mapping.yaml conda env create -f conda_env_de.yaml ``` -The files `conda_env_mapping_sc.yaml` and `conda_env_de.yaml` are located in the main directory of the git repository. +The files `conda_env_mapping.yaml` and `conda_env_de.yaml` are located in the main directory of the git repository. Each time before using SeA-SnaP, activate the environment with: ``` -conda activate sea_snap_mapping_sc +conda activate sea_snap_mapping ``` or @@ -103,7 +103,6 @@ The next steps depend on, whether you want to run: - [**`The mapping pipeline`**](documentation/run_mapping.md) - [**`The DE pipeline`**](documentation/run_DE.md) -- [**`The sc pipeline`**](documentation/run_sc.md) The results of an analysis can also be [`exported`](documentation/export.md) to a new folder structure, e.g. to upload them to SODAR. diff --git a/cluster_config.json b/cluster_config.json index 3587213..9cff54c 100644 --- a/cluster_config.json +++ b/cluster_config.json @@ -5,7 +5,7 @@ "run_command_sge": "--drmaa=\" -cwd -V -l h_vmem={cluster.h_vmem}M -l h_rt={cluster.h_rt} -pe smp {cluster.pe} -j yes -o {cluster.output} -e {cluster.errors}\"", - "run_command_slurm": "--drmaa=\" --mem-per-cpu={cluster.h_vmem} -t {cluster.h_rt} -c {cluster.pe} -p medium -o {cluster.output} -e {cluster.errors}\"" + "run_command_slurm": "--drmaa=\" --mem-per-cpu={cluster.h_vmem} -t {cluster.h_rt} -c {cluster.pe} -p medium -o {cluster.output} -e {cluster.output}\"" }, "__default__": @@ -35,7 +35,7 @@ "salmon": { - "h_vmem": "4000", + "h_vmem": "4000", "h_rt": "40:00:00", "pe": "8" }, @@ -110,20 +110,6 @@ "pe": "4" }, - "cellranger_count": - { - "h_vmem": "4000", - "h_rt": "40:00:00", - "pe": "1" - }, - - "velocyto_run": - { - "h_vmem": "20000", - "h_rt": "40:00:00", - "pe": "8" - }, - "cluster_profiler": { "h_vmem": "20000", "h_rt": "10:00:00", diff --git a/conda_env_mapping_sc.yaml b/conda_env_mapping.yaml similarity index 99% rename from conda_env_mapping_sc.yaml rename to conda_env_mapping.yaml index 0214a55..56c8fb9 100644 --- a/conda_env_mapping_sc.yaml +++ b/conda_env_mapping.yaml @@ -1,4 +1,4 @@ -name: sea_snap_mapping_sc +name: sea_snap_mapping channels: - conda-forge - default @@ -456,8 +456,8 @@ dependencies: - simplejson=3.17.0=py37h8f50634_1 - six=1.14.0=py_1 - smmap=3.0.4=pyh9f0ad1d_0 - - snakemake=5.14.0=0 - - snakemake-minimal=5.14.0=py_1 + - snakemake=7.19.1=hdfd78af_0 + - snakemake-minimal=7.19.1=pyhdfd78af_0 - spectra=0.0.11=py_1 - sqlite=3.30.1=hcee41ef_0 - star=2.7.3a=0 diff --git a/defaults/sc_config_defaults.yaml b/defaults/sc_config_defaults.yaml deleted file mode 100644 index 6852f44..0000000 --- a/defaults/sc_config_defaults.yaml +++ /dev/null @@ -1,67 +0,0 @@ -#---------------------------------------- general pipeline parameters -pipeline_param: - # adjust pattern of stored files - out_path_pattern: sc_analysis/{step}/{sample}.{mate}/out/{step}.{sample}.{mate}.{extension} - log_path_pattern: sc_analysis/{step}/{sample}.{mate}/report/{step}.{sample}.{mate}.{extension} - in_path_pattern: ../input/{sample}/{sample}.{mate} - - test_config: true - report_snippets: "" - - feature_ref: "" - cellranger_executable: "cellranger" # default assuming cellranger is in the PATH - - # adjust which results are produced - produce_results: - - cellranger - - velocyto - - input_choice: - velocyto: - - cellranger_count - - cellranger_aggr - -#---------------------------------------- organism annotation -organism_defaults: null - -#---------------------------------------- parameters for rules -rule_options: - cellranger_count: - cmd_opt: "" # "--jobmode sge --maxjobs=100 --jobinterval=1000" - velocyto_run: - cmd_opt: "--samtools-memory 4000 -@ 4" - -#---------------------------------------- parameters for the jupyter notebook -jupyter_notebook: - snippet_parameters: {} - defaults: {} - report_snippets: - - load_matrix.ipynb - - filter_and_normalize.ipynb - - plot_dim_reduction.ipynb - - ranking_and_marker_genes.ipynb - - compute_velocities.ipynb - -#---------------------------------------- configuration for export -export: - blueprint: - file: SODAR_export_blueprint.txt - command: | - imkdir -p $(dirname {dest} ) - irsync -a -K {src} i:{dest} - path_pattern: - - __SODAR__/{sample}/%Y_%m_%d_{files:cellranger} - - __SODAR__/{sample}/%Y_%m_%d_cellranger/{files:cellranger_logs}.tgz - - __SODAR__/{sample}/%Y_%m_%d_{files:velocyto}/velocyto.{sample}.loom - cellranger: - - dir: {step: cellranger_count, mate: all_mates} - suffix: "cellranger_wd/{sample}/outs" - compress: tar - compress_list: [analysis, raw_feature_bc_matrix, filtered_feature_bc_matrix] - cellranger_logs: - - dir: {step: cellranger_count, mate: all_mates} - suffix: "cellranger_wd/{sample}" - compress: tar - exclude: ["{sample}/outs", "{sample}/SC_RNA_COUNTER_CS"] - velocyto: - - files: {step: velocyto_run, extension: loom, mate: all_mates} diff --git a/defaults/sc_config_ranges.yaml b/defaults/sc_config_ranges.yaml deleted file mode 100644 index ee4b67d..0000000 --- a/defaults/sc_config_ranges.yaml +++ /dev/null @@ -1,47 +0,0 @@ -#---------------------------------------- general pipeline parameters -pipeline_param: - out_path_pattern: \S+ - log_path_pattern: \S+ - in_path_pattern: \S+ - - cellranger_executable: \S+ - feature_ref: .* - test_config: {__opt__: [true, false]} - -#---------------------------------------- organism annotation -organism_defaults: - __opt__: [null, \S*] - -#---------------------------------------- parameters for rules -rule_options: - cellranger_count: - cmd_opt: .* - velocyto_run: - cmd_opt: .* - -#---------------------------------------- configuration for export -export: - blueprint: - __opt__: - - null - - file: \S* - command: .+ - path_pattern: [\S+] - __any__: - - __opt__: - - files: - __any_other__: - step: \S+ - extension: \S+ - log: {__opt__: [true, false]} - - dir: - __any_other__: - step: \S+ - log: {__opt__: [true, false]} - __any_other__: - compress: - __opt__: [zip, tar] - - - - diff --git a/documentation/run_sc.md b/documentation/run_sc.md deleted file mode 100644 index 1e10dc9..0000000 --- a/documentation/run_sc.md +++ /dev/null @@ -1,60 +0,0 @@ -[Back](../README.md) to main doc. - ---- - -Run single cell analysis ------------ - -### 1) download files (from SODAR) - -First, make sure you have the following files accessible (or download them from SODAR): - -- fastq files -- ISA-tab files -- feature reference (if some samples used feature barcoding) - -Note: The ISA-tab assay file should contain the columns **Parameter Value[Library name mRNA]** and **Parameter Value[Library name sample tag]**. -`Library name sample tag` is only filled, when feature barcoding was used for a sample. -Samples with and without feature barcodes can be mixed. - -### 2) edit the config file - -After creating a [working directory](../README.md#running-the-pipeline) - -``` -path/to/sea-snap working_dir -``` - -edit the config file: - -``` -vim sc_config.yaml -``` - -Set the **in_path_pattern** to the fastq files and the **transcriptome** as well as **gtf** files for [CellRanger](https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/installation) that are in the reference package. -If the experiment used feature barcoding, set the path to the [**Feature Reference CSV**](https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/feature-bc-analysis). - -### 3) create a sample info file - -This extracts information from the fastq file paths about the samples using the [in_path_pattern](prepare_input.md). - -The ISA-tab assay file can also be used to extract meta-information about the samples. -It should contain columns **Parameter Value[Library name mRNA]** and **Parameter Value[Library name sample tag]**. - -``` -./sea-snap sample_info --from sodar --input --config_files sc_config.yaml -``` - -### 4) run the pipeline - -``` -./sea-snap sc --slurm c -``` - -### 5) create a jupyter notebook from snippets - -(this is under development; feel free to edit and add snippets) - -``` -./sea-snap sc l create_ipynb -``` \ No newline at end of file diff --git a/mapping_pipeline.snake b/mapping_pipeline.snake index 388cf0c..30f8bfd 100644 --- a/mapping_pipeline.snake +++ b/mapping_pipeline.snake @@ -225,8 +225,8 @@ rule fastqc: rule star_index: input: - genome = config["organism"]["files"]["genome"], - gtf = config["organism"]["files"]["gtf"] + genome = lambda wildcards: config["organism"]["files"]["genome"] if wildcards.sample=="all_samples" else config["sample_info"][wildcards.sample]["genome"], + gtf = lambda wildcards: config["organism"]["files"]["gtf"] if wildcards.sample=="all_samples" else config["sample_info"][wildcards.sample]["gtf"] output: index = pph.out_dir_name(step = "star_index")+"/SA" log: @@ -234,6 +234,9 @@ rule star_index: params: options = config["rule_options"]["star_index"]["cmd_opt"] threads: 8 + resources: + mem_mb=32000, + h_rt="24:00:00" run: script = textwrap.dedent(r""" #----- prepare @@ -249,9 +252,29 @@ rule star_index: script_file = pph.log(log.out, snakemake_format(script), step="star_index", extension="sh", **wildcards) shell("bash '{script_file}' &>> '{log.out}'") + +def get_star_index (wildcards): + """get star index or compute one for all or specific samples""" + # if there's a sample-specific star index (precomputed) + if "star_index" in config["sample_info"][wildcards.sample]: + #print("using pre-computed star index for "+wildcards.sample) + return config["sample_info"][wildcards.sample]["star_index"]+"/SA" + # if there's a sample-specific genome and gtf + elif "genome" in config["sample_info"][wildcards.sample] and "gtf" in config["sample_info"][wildcards.sample]: + #print("using newly computed star index for "+wildcards.sample) + return pph.out_dir_name(step = "star_index", fix="!sample", sample = wildcards.sample)+"/SA" + # otherwise + else: + if "star_index" in config["organism"]["files"]: + #print("using pre-computed global star index for "+wildcards.sample) + return config["organism"]["files"]["star_index"]+"/SA" + else: + #print("using newly computed global star index for "+wildcards.sample) + return pph.out_dir_name(step = "star_index", fix="!sample", sample = "all_samples")+"/SA" + rule star: input: - index = pph.out_dir_name(step = "star_index", fix="all")+"/SA", + index = get_star_index, reads1 = lambda wildcards: pph.get_fastq_pairs(wildcards, mate_key="paired_end_extensions", mate=0), reads2 = lambda wildcards: pph.get_fastq_pairs(wildcards, mate_key="paired_end_extensions", mate=1) #identical if unstranded output: @@ -265,6 +288,9 @@ rule star: options = config["rule_options"]["star"]["cmd_opt"], trim = True if config["rule_options"]["star"]["trim"]=="yes" else False threads: 16 + resources: + mem_mb=32000, + h_rt="24:00:00" run: # prepare read input reads = ",".join(input.reads1) diff --git a/sc_config.yaml b/sc_config.yaml deleted file mode 100644 index e73c3c3..0000000 --- a/sc_config.yaml +++ /dev/null @@ -1,31 +0,0 @@ -#--- organism annotation - -organism_defaults: ### FILL HERE ### (e.g. Homo_sapiens.yaml) - -organism: - __options__: [name, genus, taxon, files, star_index, salmon_index, R] - ### OVERWRITE ### organism defaults (e.g. gtf, genome and indices) - files: - cellranger_transcriptome: "" ### FILL HERE ### (the transcriptome to use with CellRanger) - cellranger_gtf: "" ### FILL HERE ### (the gtf to use with CellRanger) - - -#--- general pipeline parameters - -pipeline_param: - __options__: [out_path_pattern, log_path_pattern, in_path_pattern, feature_ref] - - in_path_pattern: ### FILL HERE ### (path pattern where fastq files are stored) - - feature_ref: "" ### FILL HERE ### (if feature barcoding was used) - - -#--- parameters for rules - -rule_options: - __options__: [cellranger_count, velocyto_run] - - -#--- parameters for the jupyter notebook -jupyter_notebook: - __options__: [snippet_parameters, defaults, report_snippets] \ No newline at end of file diff --git a/sc_pipeline.snake b/sc_pipeline.snake deleted file mode 100644 index e08fac7..0000000 --- a/sc_pipeline.snake +++ /dev/null @@ -1,319 +0,0 @@ -## SeA-SnaP single cell pipeline for RNA-seq analysis -## version: 0.1 -## author: J.P.Pett (patrick.pett@bihealth.de) - -import os, sys, yaml, re, textwrap, pandas as pd -import tools.pipeline_tools -from collections import OrderedDict -from time import asctime, localtime, time -from pathlib import Path -from snakemake.utils import report, format as snakemake_format, min_version -from snakemake.logging import logger -from tools.pipeline_tools import MappingPipelinePathHandler, ReportTool - -min_version("3.7") -shell.prefix("set -e pipefail;") -tools.pipeline_tools.warnings.simplefilter("always") -yaml.add_representer(OrderedDict, lambda dumper, data: dumper.represent_dict(dict(data))) - -# source files -SNAKEDIR = Path(workflow.current_basedir) -SNAKEFILE = workflow.snakefile -SCRIPTDIR = str(SNAKEDIR / "external_scripts") - -# assemble config -config_file_name = config["file_name"] if "file_name" in config else "sc_config.yaml" -configfile: str(SNAKEDIR / "defaults" / "sc_config_defaults.yaml") -configfile: config_file_name -configfile: "sample_info.yaml" -if config["organism_defaults"]: - configfile: str(SNAKEDIR / "defaults" / config["organism_defaults"]) - configfile: config_file_name - -# create path handler -conf_ranges = str(SNAKEDIR / "defaults" / "sc_config_ranges.yaml") -test_config = conf_ranges if config["pipeline_param"]["test_config"] else None -pph = MappingPipelinePathHandler(workflow, test_config) - -# link indices -pph.link_index(step="cellranger_count", fix="all", subdir="outdir", add_done=True) - -# exclude symbols '.' and '/' from wildcards -wildcard_constraints: - sample="[^./]+", - mate ="[^./]+" - -onstart: - # draw a dag - dag_file = pph.file_path(step="pipeline_report", extension="rule_execution.png", fix="all") - os.makedirs(os.path.dirname(dag_file), exist_ok=True) - shell("snakemake --quiet --snakefile {} --rulegraph | dot -Tpng > {}".format(SNAKEFILE, dag_file)) - # info about the pipeline run - info_file = pph.file_path(step="pipeline_report", extension="summary.csv", fix="all") - os.makedirs(os.path.dirname(info_file), exist_ok=True) - shell("snakemake --quiet --snakefile {} --summary | sed 's/\t/, /g' > {}".format(SNAKEFILE, info_file)) - # save merged config - config_file = pph.file_path(step="pipeline_report", extension="yaml", fix="all") - with open(config_file, "w") as f: yaml.dump(config, f, default_flow_style=False) - -##-------------------- starting point ---------------------------------------------------------------------- - -def get_inputs_all(): - inputs = [] - - results = config["pipeline_param"]["produce_results"] - if "velocyto" in results: - if config["pipeline_param"]["input_choice"]["velocyto"][0] == "cellranger_aggr": - inputs += [pph.file_path("velocyto_run", "loom", fix="all")] - else: - inputs += pph.expand_path(step="velocyto_run", extension="loom", fix="!sample") - elif "cellranger-aggr" in results: - inputs += [pph.file_path(step="cellranger_aggr", extension="done", fix="all")] - elif "cellranger" in results: - inputs += pph.expand_path(step="cellranger_count", extension="done", fix="!sample") - - return inputs - - -shell("rm -f {}".format(pph.file_path(step="pipeline_report", extension="report.html", fix="all"))) - -rule all: - input: - get_inputs_all() - output: - html = pph.file_path(step="pipeline_report", extension="report.html", fix="all") - run: - loctime = asctime(localtime(time())) - rule_execution = pph.file_path("pipeline_report", "rule_execution.png", fix="all") - summary = pph.file_path("pipeline_report", "summary.csv", fix="all") - version_info = pph.file_path("pipeline_report", "version_info.txt", fix="all") - conda_info = pph.file_path("pipeline_report", "conda_info.txt", fix="all") - dag = rule_execution.split("/")[-1] - shell("conda list > {}".format(version_info)) - shell("conda info > {}".format(conda_info)) - report(""" - =========================== - RNAseq single cell pipeline - =========================== - - **Finished: {loctime}** - - .. image:: {dag} - - File status at pipeline start: - ============================== - - .. csv-table:: - :file: {summary} - - Version info: - ============= - - .. include:: {version_info} - :literal: - - Conda info: - =========== - - .. include:: {conda_info} - :literal: - - """, output.html, graph = rule_execution, table = summary) - -rule export: - input: - get_inputs_all() - run: - pph.export() - -##-------------------- CellRanger ------------------------------------------------------------------------------- - -rule cellranger_count: - """ run cellranger count """ - input: - reads = lambda wildcards: pph.get_fastq_pairs(wildcards, mate="*"), - transcriptome = config["organism"]["files"]["cellranger_transcriptome"] - output: - outdir = directory(pph.out_dir_name(step="cellranger_count")+"/cellranger_wd"), - links = directory(pph.out_dir_name(step="cellranger_count")+"/input_links"), - done = touch(pph.file_path(step="cellranger_count", extension="done")) - log: - out = pph.file_path(step = "cellranger_count", extension="output.log", log=True) - params: - options = config["rule_options"]["cellranger_count"]["cmd_opt"], - feature_ref = config["pipeline_param"]["feature_ref"], - cellranger_exec = config["pipeline_param"]["cellranger_executable"] - run: - # using feature barcodes ? - feature_ref = str(Path(params.feature_ref).resolve()) if params.feature_ref else "" - - # create libraries file - lib_file_content = ["fastqs, sample, library_type"] - prefixes = [p for p, t in config["sample_info"][wildcards.sample]["lib_types"]] - pref_dup = len(prefixes) != len(set(prefixes)) - for lpref, ltype in config["sample_info"][wildcards.sample]["lib_types"]: - for lp in lpref.split(","): - # in some cases the same prefix is annotated in ISA tab for feature and GEX - # in this case use the trick of duplicating links to fastqs and - # adding tag_ to the prefix - if pref_dup and ltype != "Gene Expression": - lib_file_content.append(f"{Path(output.links).resolve()}, tag_{lp}, {ltype}") - else: - lib_file_content.append(f"{Path(output.links).resolve()}, {lp}, {ltype}") - pref_dup = "true" if pref_dup else "false" - lib_file_content = "\n".join(lib_file_content) - - script = textwrap.dedent(r""" - #----- prepare - set -eux - {params.cellranger_exec} --version || true - - #----- collect fastq input links - mkdir {output.links} - ln -sf $(readlink -f {input.reads}) {output.links} - # if names are the same for feature and GEX fastqs, - # duplicate links with different name: - if {pref_dup}; then - for f in {output.links}/*; do - cp -av "$f" "$(dirname $f)/tag_$(basename $f)" - done - fi - - #----- Cellranger counting - mkdir -p {output.outdir}; cd {output.outdir}; ls -lh - #-- write libraries file - cat << 'EOF' > "libraries.csv" - {lib_file_content} - EOF - #-- link feature barcodes if present - feature_ref="{feature_ref}" - if [ "$feature_ref" ]; then - ln -sf $feature_ref "feature_ref.csv" - feature_ref="--feature-ref=feature_ref.csv" - fi - #-- run cellranger count - {params.cellranger_exec} count --id="{wildcards.sample}" --libraries="libraries.csv" $feature_ref --transcriptome={input.transcriptome} {params.options} - cd - - """) - - script_file = pph.log(log.out, snakemake_format(script), step="cellranger_count", extension="sh", **wildcards) - shell("bash '{script_file}' &>> '{log.out}'") - - -rule cellranger_aggr: - input: - pph.expand_path(step="cellranger_count", extension="done", fix="mate") - output: - outdir = directory(pph.out_dir_name(step="cellranger_aggr")+"/cellranger_wd"), - done = touch(pph.file_path(step="cellranger_aggr", extension="done")) - log: - out = pph.file_path(step = "cellranger_aggr", extension="output.log", log=True) - params: - cellranger_exec = config["pipeline_param"]["cellranger_executable"] - run: - aggr_csv_content = ["library_id, molecule_h5"] - for count_results in input: - sample_name = pph.wildcard_values_from(count_results, False)["sample"][0] - mol_info = Path(count_results).parent / "cellranger_wd" / sample_name / "outs" / "molecule_info.h5" - aggr_csv_content.append(f"{sample_name}, {str(mol_info.resolve())}") - aggr_csv_content = "\n".join(aggr_csv_content) - - script = textwrap.dedent(r""" - #----- prepare - set -eux - {params.cellranger_exec} --version || true - - #----- Cellranger counting - mkdir -p {output.outdir}; cd {output.outdir} - #-- write libraries file - cat << 'EOF' > "output_aggr.csv" - {aggr_csv_content} - EOF - #-- run cellranger aggr - {params.cellranger_exec} aggr --id="cellranger_dir" --csv="output_aggr.csv" - cd - - """) - - script_file = pph.log(log.out, snakemake_format(script), step="cellranger_aggr", extension="sh", **wildcards) - shell("bash '{script_file}' &>> '{log.out}'") - -##-------------------- Velocyto ------------------------------------------------------------------------------- - -rule velocyto_run: - """ run velocyto on 10X Chromium samples """ - input: - gtf = config["organism"]["files"]["cellranger_gtf"], - cellranger_done = pph.choose_input( - choice_name = "velocyto", - options = [ - dict(step = "cellranger_aggr", extension = "done"), - dict(step = "cellranger_count", extension = "done") - ] - ) - output: - pph.file_path(step="velocyto_run", extension="loom") - log: - out = pph.file_path(step="velocyto_run", extension="output.log", log=True) - params: - cellranger_outdir = pph.choose_input( - choice_name = "velocyto", - func = lambda **kw: os.path.join(pph.out_dir_name(**kw),"cellranger_wd",kw["sample"],"outs"), - options = [ - dict(step = "cellranger_aggr"), - dict(step = "cellranger_count") - ] - ), - mask = config["organism"]["files"]["velocyto_mask_gtf"], - options = config["rule_options"]["velocyto_run"]["cmd_opt"] - run: - mask = f"-m {params.mask}" if params.mask else "" - - script = textwrap.dedent(r""" - #----- prepare - set -eux - velocyto --version - - #----- run velocyto - #velocyto run10x \ - #{params.cellranger_outdir} \ - #{input.gtf} \ - #{params.options} - velocyto run -b {params.cellranger_outdir}/filtered_feature_bc_matrix/barcodes.tsv.gz {mask} -o $(dirname {output}) {params.options} {params.cellranger_outdir}/possorted_genome_bam.bam {input.gtf} - - #----- move results - mv $(dirname {output})/*.loom {output} - """) - - script_file = pph.log(log.out, snakemake_format(script), step="velocyto_run", extension="sh", **wildcards) - shell("bash '{script_file}' &>> '{log.out}'") - -##-------------------- jupyter nb ------------------------------------------------------------------------------- - -rule create_ipynb: - """ compile a jupyter notebook for second line analysis """ - input: - get_inputs_all() - output: - pph.file_path("create_ipynb", "ipynb", fix="all") - run: - rt = ReportTool(pph, profile="sc_analysis") - report_text = rt.generate_report() - - text_sub = dict(file_tab="", config="") - for tag, num, path in ((tag, num, path) for tag, paths in rt.use_results.items() for num, path in enumerate(paths)): - file_table = pph.file_path("create_ipynb", "tsv", fix="all", path_pattern=path) - config_file = pph.file_path("pipeline_report", "yaml", fix="all", path_pattern=path) - pph.log_generated_files(save_to=file_table, path_pattern=path) - - id_suffix, _ = rt.get_id_suffix(tag, num) - text_sub["file_tab"] += f'file_tab{id_suffix} = pd.read_csv("{file_table}", sep="\\t")\n' - text_sub["config"] += ( - f'with open("{config_file}", "r") as stream:\n' - f'\tconfig{id_suffix} = yaml.safe_load(stream)\n' - ) - - report_text = report_text.replace("{{WORKING_DIRECTORY}}", os.getcwd() + os.sep) - report_text = report_text.replace("{{LOAD_FILE_TABLE}}", text_sub["file_tab"]) - report_text = report_text.replace("{{LOAD_CONFIG_FILE}}", text_sub["config"]) - - with open(output[0], "w") as f: f.write(report_text) \ No newline at end of file diff --git a/sea-snap.py b/sea-snap.py index dc3a496..d21fe45 100755 --- a/sea-snap.py +++ b/sea-snap.py @@ -14,14 +14,13 @@ CONFIGS = dict( DE="DE_config.yaml", mapping="mapping_config.yaml", - sc="sc_config.yaml", ) CLUSTER_CONFIG = "cluster_config.json" CLUSTER_START = dict( sge="export /opt/sge/lib/lx-amd64/libdrmaa.so; qsub -cwd -V -pe smp 1 -l h_vmem=4G -l h_rt=100:00:00 -P control -j y -o pipeline_log.out -e pipeline_log.err run_pipeline.sh", - slurm="unset DRMAA_LIBRARY_PATH; unset DISPLAY; sbatch -c 1 --mem-per-cpu=4G -t 100:00:00 -p medium -o pipeline_log.out -e pipeline_log.err run_pipeline.sh", + slurm="""unset DISPLAY; sbatch -c 1 --mem-per-cpu=4G -t 100:00:00 -p medium -o pipeline_log.out -e pipeline_log.err run_pipeline.sh""", ) @@ -191,16 +190,15 @@ def run_pipeline(snakefile, args): data = json.load(json_file) Path("cluster_log").mkdir(exist_ok=True) run_script = Path("run_pipeline.sh") - s_command = "#!/bin/bash\nsnakemake --snakefile {sfile}".format(sfile = str(SCRIPT_DIR / snakefile)) + s_command = """#!/bin/bash\nexport SBATCH_DEFAULTS=" --output=logs/%x-%j.log"\nsnakemake --snakefile {sfile}""".format(sfile = str(SCRIPT_DIR / snakefile)) if args.snake_options: s_command += " " + " ".join(args.snake_options) s_command += " " + data["__set_run_command__"]["snake_opt"] - s_command += " " + "--cluster-config " + CLUSTER_CONFIG - if args.slurm: - s_command += " " + data["__set_run_command__"]["run_command_slurm"] + if args.sge: + s_command += " --cluster-config " + CLUSTER_CONFIG + data["__set_run_command__"]["run_command_sge"] else: - s_command += " " + data["__set_run_command__"]["run_command_sge"] + s_command += " --profile=cubi-dev" run_script.write_text(s_command) - command = "set -e;" + CLUSTER_START["slurm" if args.slurm else "sge"] + command = "set -e;" + CLUSTER_START["sge" if args.sge else "slurm"] print(command) # run os.system(command) @@ -220,13 +218,6 @@ def run_DE_pipeline(args): run_pipeline("DE_pipeline.snake", args) -def run_sc_pipeline(args): - """ - run single cell pipeline - """ - run_pipeline("sc_pipeline.snake", args) - - ############################## DEFINE PARSER parser = argparse.ArgumentParser(description="run SeA-SnaP pipelines and helpers") @@ -237,7 +228,7 @@ def run_sc_pipeline(args): #--- parser for setup_working_directory parser_working_dir = subparsers.add_parser('working_dir', help="setup a working directory for running the pipeline") parser_working_dir.add_argument('--dirname', '-d', default="results_%Y_%m_%d/", help="name of directory") -parser_working_dir.add_argument('--configs', '-c', nargs='+', default=["mapping", "DE", "sc"], choices=["mapping", "DE", "sc"], help="configs to be imported") +parser_working_dir.add_argument('--configs', '-c', nargs='+', default=["mapping", "DE"], choices=["mapping", "DE"], help="configs to be imported") parser_working_dir.set_defaults(func=setup_working_directory) #--- parser for generate_sample_info @@ -283,29 +274,21 @@ def run_sc_pipeline(args): #--- parser for mapping pipeline parser_mapping = subparsers.add_parser('mapping', help="run mapping pipeline") parser_mapping.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_mapping.add_argument('--slurm', action='store_true', help="run using SLURM; default is SGE; only used in cluster mode") +parser_mapping.add_argument('--sge', action='store_true', help="run using SGE; default is SLURM; only used in cluster mode") parser_mapping.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") parser_mapping.set_defaults(func=run_mapping_pipeline) #--- parser for DE pipeline parser_DE = subparsers.add_parser('DE', help="run DE pipeline") parser_DE.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_DE.add_argument('--slurm', action='store_true', help="run using SLURM; default is SGE; only used in cluster mode") +parser_DE.add_argument('--sge', action='store_true', help="run using SGE; default is SLURM; only used in cluster mode") parser_DE.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") parser_DE.set_defaults(func=run_DE_pipeline) -#--- parser for sc pipeline -parser_DE = subparsers.add_parser('sc', help="run single cell pipeline") -parser_DE.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_DE.add_argument('--slurm', action='store_true', help="run using SLURM; default is SGE; only used in cluster mode") -parser_DE.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") -parser_DE.set_defaults(func=run_sc_pipeline) - #--- parser for cleanup_cluster_log parser_cleanup_log = subparsers.add_parser('cleanup_log', help="delete log files from cluster execution") parser_cleanup_log.set_defaults(func=cleanup_cluster_log) - ############################## PARSE ARGUMENTS if len(sys.argv)==1: From ae2407841dee1a6b7f2b705c35fac08512608d00 Mon Sep 17 00:00:00 2001 From: bobermayer Date: Wed, 4 Jan 2023 13:44:15 +0100 Subject: [PATCH 07/27] update resource requirements --- TODO.md | 7 +- documentation/prepare_input.md | 2 + documentation/quickstart.md | 9 ++- mapping_pipeline.snake | 131 ++++++++++++++++++++++++--------- sea-snap.py | 2 +- 5 files changed, 109 insertions(+), 42 deletions(-) diff --git a/TODO.md b/TODO.md index 55b1835..fca182e 100644 --- a/TODO.md +++ b/TODO.md @@ -2,5 +2,8 @@ The roadmap ahead: 1) merging Eric's branches and the ATAC_seq branch 2) making sure sea-snap runs smoothly with newer versions of snakemake (it -doesn't currently) -3) making the step from drmaa to cluster profiles. +doesn't currently) --> DONE for mapping pipeline if snakemake version = 7.19.1 +3) making the step from drmaa to cluster profiles --> mostly DONE for mapping pipeline +4) optimizing resource requirements in `mapping_pipeline.snake` (check `mem` vs `mem_per_cpu`) and adding them to `DE_pipeline.snake` +5) allowing sample-specific indices for bwa / salmon / kallisto? +6) adapting the `conda_env.yaml` files diff --git a/documentation/prepare_input.md b/documentation/prepare_input.md index 26b58f6..6a1991f 100644 --- a/documentation/prepare_input.md +++ b/documentation/prepare_input.md @@ -98,6 +98,8 @@ Feel free to extend the config file and push it back to gitlab. In this way the For an explanation how to export to SODAR see [`SODAR export`](export.md). +**Note: to use sample-specific STAR indices, add entries `star_index: /path/to/star_index/` (careful: must be compatible with STAR version in the pipeline!) or `genome: /path/to/genome.fa` and `gtf: /path/to/gtf` for auto-creation to the `sample_info.yaml`** + --- [Back](../README.md) to main doc. diff --git a/documentation/quickstart.md b/documentation/quickstart.md index 00996d1..37e9212 100644 --- a/documentation/quickstart.md +++ b/documentation/quickstart.md @@ -73,18 +73,19 @@ * edit other options and parameters to your taste, but basically you ready to go. - 4. Generate the file `samples.info` using the command `sea-snap.py sample_info` + 4. Generate the file `sample_info.yaml` using the command `sea-snap.py sample_info` * If you have a custom extension to your read files, then use the `--add_ext` option. * A common problem is that the `in_path_pattern` defined in the `mapping_config.yaml` file does not match the actual file paths. * After successfully running this step, make sure that the - automatically generated `samples.info` file is correct. + automatically generated `sample_info.yaml` file is correct. 5. Run the pipeline with `./sea-snap mapping l` on a local machine or - `./sea-snap mapping c` on the computing cluster. To run on SLURM nodes, - run `./sea-snap mapping --slurm c`. + `./sea-snap mapping c` on the computing cluster. + + To run using SGE scheduler, run `./sea-snap mapping --sge c` (deprecated; check DRMAA config) 6. So, where is the report? Where is the QC? Just take a look at `mapping/multiqc/all_samples.all_mates/out/multiqc.all_samples.all_mates.qc_report.html`, diff --git a/mapping_pipeline.snake b/mapping_pipeline.snake index 30f8bfd..44cb8d9 100644 --- a/mapping_pipeline.snake +++ b/mapping_pipeline.snake @@ -72,9 +72,9 @@ def get_inputs_all(): # mapping results mapping_choices = config["pipeline_param"]["mapping_results"] if "star-gene_counts" in mapping_choices: - inputs += pph.expand_path("star", "bam", fix="!sample") + inputs += pph.expand_path("star", "bam", fix="!sample") inputs += pph.expand_path("feature_counts", "feature_counts", fix="!sample") - inputs += pph.expand_path("tpm_calculator", "tsv", fix="!sample") + inputs += pph.expand_path("tpm_calculator", "tsv", fix="!sample") if "salmon-transcript_counts" in mapping_choices: inputs += pph.expand_path("salmon", "sf", fix="!sample") if "ciri-circRNA" in mapping_choices: @@ -88,9 +88,9 @@ def get_inputs_all(): if "fastqc" in qc_choices: inputs += pph.expand_path("fastqc", "zip_names.txt") if "star-gene_counts" in mapping_choices: - if "dupradar" in qc_choices: + if "dupradar" in qc_choices: inputs += pph.expand_path("dupradar", "done", fix="!sample") - if "rna_seqc" in qc_choices: + if "rna_seqc" in qc_choices: inputs += pph.expand_path("rna_seqc", "done", fix="!sample") if "preseq_lc_extrap" in qc_choices: inputs += pph.expand_path("preseq_lc_extrap", "future_yield.txt", fix="!sample") @@ -102,7 +102,7 @@ def get_inputs_all(): inputs += pph.expand_path("qualimap_bamqc", "done", fix="!sample") if "infer_experiment" in qc_choices: inputs += pph.expand_path("infer_experiment", "strand_stat.txt", fix="!sample") - if "qc" in qc_choices: + if "qc" in qc_choices: inputs += pph.expand_path("qc", "done", fix="!sample") if "bw_from_bam" in qc_choices: inputs += pph.expand_path("bw_from_bam", "bw", fix="!sample") @@ -129,9 +129,9 @@ rule all: quality_control = "".join(["- {}\n".format(qc) for qc in config["pipeline_param"]["QC_results"]]) loctime = asctime(localtime(time())) rule_execution = pph.file_path("pipeline_report", "rule_execution.png", fix="all") - summary = pph.file_path("pipeline_report", "summary.csv", fix="all") - version_info = pph.file_path("pipeline_report", "version_info.txt", fix="all") - conda_info = pph.file_path("pipeline_report", "conda_info.txt", fix="all") + summary = pph.file_path("pipeline_report", "summary.csv", fix="all") + version_info = pph.file_path("pipeline_report", "version_info.txt", fix="all") + conda_info = pph.file_path("pipeline_report", "conda_info.txt", fix="all") dag = rule_execution.split("/")[-1] shell("conda list > {}".format(version_info)) shell("conda info > {}".format(conda_info)) @@ -198,9 +198,11 @@ rule fastqc: log: out = pph.file_path(step="fastqc", extension="output.log", log=True) params: - outdir = pph.out_dir_name(step="fastqc") - threads: - 2 + outdir = pph.out_dir_name(step="fastqc") + threads: 2 + resources: + mem_mb=4000, + h_rt="24:00:00" run: reads = " ".join(input) @@ -226,7 +228,7 @@ rule fastqc: rule star_index: input: genome = lambda wildcards: config["organism"]["files"]["genome"] if wildcards.sample=="all_samples" else config["sample_info"][wildcards.sample]["genome"], - gtf = lambda wildcards: config["organism"]["files"]["gtf"] if wildcards.sample=="all_samples" else config["sample_info"][wildcards.sample]["gtf"] + gtf = lambda wildcards: config["organism"]["files"]["gtf"] if wildcards.sample=="all_samples" else config["sample_info"][wildcards.sample]["gtf"] output: index = pph.out_dir_name(step = "star_index")+"/SA" log: @@ -234,8 +236,8 @@ rule star_index: params: options = config["rule_options"]["star_index"]["cmd_opt"] threads: 8 - resources: - mem_mb=32000, + resources: + mem_mb=64000, h_rt="24:00:00" run: script = textwrap.dedent(r""" @@ -258,19 +260,19 @@ def get_star_index (wildcards): # if there's a sample-specific star index (precomputed) if "star_index" in config["sample_info"][wildcards.sample]: #print("using pre-computed star index for "+wildcards.sample) - return config["sample_info"][wildcards.sample]["star_index"]+"/SA" + return config["sample_info"][wildcards.sample]["star_index"] + "/SA" # if there's a sample-specific genome and gtf elif "genome" in config["sample_info"][wildcards.sample] and "gtf" in config["sample_info"][wildcards.sample]: #print("using newly computed star index for "+wildcards.sample) - return pph.out_dir_name(step = "star_index", fix="!sample", sample = wildcards.sample)+"/SA" + return pph.out_dir_name(step = "star_index", fix="!sample", sample = wildcards.sample) + "/SA" # otherwise else: - if "star_index" in config["organism"]["files"]: + if "star_index" in config["organism"] and config["organism"]["star_index"] is not None: #print("using pre-computed global star index for "+wildcards.sample) - return config["organism"]["files"]["star_index"]+"/SA" + return config["organism"]["star_index"] + "/SA" else: #print("using newly computed global star index for "+wildcards.sample) - return pph.out_dir_name(step = "star_index", fix="!sample", sample = "all_samples")+"/SA" + return pph.out_dir_name(step = "star_index", fix="all") + "/SA" rule star: input: @@ -278,9 +280,9 @@ rule star: reads1 = lambda wildcards: pph.get_fastq_pairs(wildcards, mate_key="paired_end_extensions", mate=0), reads2 = lambda wildcards: pph.get_fastq_pairs(wildcards, mate_key="paired_end_extensions", mate=1) #identical if unstranded output: - bam = pph.file_path(step="star", extension="bam"), + bam = pph.file_path(step="star", extension="bam"), usrt_bam = temp(pph.file_path(step="star", extension="unsorted.bam")), - gene_counts = pph.file_path(step="star", extension="gene_counts.tab") + gene_counts = pph.file_path(step="star", extension="gene_counts.tab") log: out = pph.file_path(step="star", extension="output.log", log=True) params: @@ -288,8 +290,8 @@ rule star: options = config["rule_options"]["star"]["cmd_opt"], trim = True if config["rule_options"]["star"]["trim"]=="yes" else False threads: 16 - resources: - mem_mb=32000, + resources: + mem_mb=48000, h_rt="24:00:00" run: # prepare read input @@ -365,6 +367,9 @@ rule bw_from_bam: pph.file_path(step="bw_from_bam", extension="bw") log: out = pph.file_path(step="bw_from_bam", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="4:00:00" run: genome_size=config["organism"]["genome_size"] script = textwrap.dedent(r""" @@ -393,6 +398,9 @@ rule macs2: pn=pph.file_path(step="macs2", extension="peaks.narrowPeak") log: out = pph.file_path(step="macs2", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="24:00:00" run: genome_abbr=config["organism"]["abbreviation"] script = textwrap.dedent(r""" @@ -429,6 +437,9 @@ rule tpm_calculator: out = pph.file_path(step="tpm_calculator", extension="output.log", log=True) params: nsrt_bam = pph.file_path(step="tpm_calculator", extension="name_sorted.bam") + resources: + mem_mb=4000, + h_rt="4:00:00" run: script = textwrap.dedent(r""" #----- prepare @@ -459,6 +470,9 @@ rule bwa_index: out = pph.file_path(step="bwa_index", extension="output.log", log=True) params: options = config["rule_options"]["bwa_index"]["cmd_opt"] + resources: + mem_mb=32000, + h_rt="24:00:00" run: db_prefix = os.path.join(output.index, GENOME_FILE_NAME) @@ -494,6 +508,9 @@ rule bwa: trim = True if config["rule_options"]["bwa"]["trim"]=="yes" else False, run_stats = "true" if config["rule_options"]["bwa"]["run_stats"] else "false" threads: 8 + resources: + mem_mb=32000, + h_rt="24:00:00" run: db_prefix = os.path.join(params.index_dir, GENOME_FILE_NAME) @@ -556,6 +573,9 @@ rule ciri: sam = pph.file_path(step="ciri", extension="sam"), options = config["rule_options"]["ciri"]["cmd_opt"] threads: 8 + resources: + mem_mb=32000, + h_rt="24:00:00" run: samtools_threads = threads//2 @@ -586,6 +606,9 @@ rule generate_transcriptome: log: out = pph.file_path(step = "generate_transcriptome", extension="output.log", log=True) threads: 8 + resources: + mem_mb=32000, + h_rt="24:00:00" run: script = textwrap.dedent(r""" #----- prepare @@ -603,13 +626,16 @@ rule generate_transcriptome: rule salmon_index: input: transcriptome = pph.out_dir_name(step = "generate_transcriptome")+"/transcriptome.fa", - genome = config["organism"]["files"]["genome"] + genome = config["organism"]["files"]["genome"] output: index = pph.out_dir_name(step = "salmon_index")+"/pos.bin" log: out = pph.file_path(step = "salmon_index", extension="output.log", log=True) params: options = config["rule_options"]["salmon_index"]["cmd_opt"] + resources: + mem_mb=32000, + h_rt="24:00:00" run: script = textwrap.dedent(r""" #----- prepare @@ -648,6 +674,9 @@ rule salmon: options = config["rule_options"]["salmon"]["cmd_opt"], trim = True if config["rule_options"]["salmon"]["trim"]=="yes" else False threads: 8 + resources: + mem_mb=32000, + h_rt="24:00:00" run: # prepare read input and trimming unpaired = input.reads1 == input.reads2 @@ -690,11 +719,14 @@ rule feature_counts: out = pph.file_path(step="feature_counts", extension="output.log", log=True) params: nsrt_bam = pph.file_path(step="feature_counts", extension="name_sorted.bam"), - options = config["rule_options"]["feature_counts"]["cmd_opt"] + options = config["rule_options"]["feature_counts"]["cmd_opt"] threads: 2 + resources: + mem_mb=32000, + h_rt="24:00:00" run: protocol = {"unstranded":0, "forward":1, "reverse":2}[config["sample_info"][wildcards.sample]["stranded"]] - paired = "-p" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" + paired = "-p" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" script = textwrap.dedent(r""" #----- prepare @@ -725,9 +757,12 @@ rule dupradar: log: out = pph.file_path(step="dupradar", extension="output.log", log=True) threads: 8 + resources: + mem_mb=32000, + h_rt="24:00:00" run: protocol = {"unstranded":0, "forward":1, "reverse":2}[config["sample_info"][wildcards.sample]["stranded"]] - paired = "TRUE" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "FALSE" + paired = "TRUE" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "FALSE" script = textwrap.dedent(r""" #----- prepare @@ -759,6 +794,9 @@ rule infer_experiment: pph.file_path(step="infer_experiment", extension="strand_stat.txt") log: out = pph.file_path(step="infer_experiment", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="24:00:00" run: script = textwrap.dedent(r""" #----- prepare @@ -780,8 +818,11 @@ rule preseq_lc_extrap: pph.file_path(step="preseq_lc_extrap", extension="future_yield.txt") log: out = pph.file_path(step="preseq_lc_extrap", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="24:00:00" run: - paired = "-P -l 10000000" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" + paired = "-P -l 10000000" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" script = textwrap.dedent(r""" #----- prepare @@ -802,8 +843,11 @@ rule preseq_c_curve: pph.file_path(step="preseq_c_curve", extension="complexity.txt") log: out = pph.file_path(step="preseq_c_curve", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="24:00:00" run: - paired = "-P -l 10000000" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" + paired = "-P -l 10000000" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" script = textwrap.dedent(r""" #----- prepare @@ -829,10 +873,11 @@ rule qualimap_rnaseq: log: out = pph.file_path(step="qualimap_rnaseq", extension="output.log", log=True) resources: - mem_mb = 24000 + mem_mb=32000, + h_rt="24:00:00" run: protocol = {"unstranded":"non-strand-specific", "forward":"strand-specific-forward", "reverse":"strand-specific-reverse"}[config["sample_info"][wildcards.sample]["stranded"]] - paired = "-pe" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" + paired = "-pe" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" script = textwrap.dedent(r""" #----- prepare @@ -860,7 +905,8 @@ rule qualimap_bamqc: log: out = pph.file_path(step="qualimap_bamqc", extension="output.log", log=True) resources: - mem_mb = 24000 + mem_mb=32000, + h_rt="24:00:00" run: protocol = {"unstranded":"non-strand-specific", "forward":"strand-specific-forward", "reverse":"strand-specific-reverse"}[config["sample_info"][wildcards.sample]["stranded"]] @@ -891,6 +937,9 @@ rule collapse_annotation: pph.file_path(step="collapse_annotation", extension="genes.gtf") log: out = pph.file_path(step="collapse_annotation", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="24:00:00" run: script = textwrap.dedent(r""" #----- prepare @@ -911,11 +960,14 @@ rule rna_seqc: touch(pph.file_path(step="rna_seqc", extension="done")) log: out = pph.file_path(step="rna_seqc", extension="output.log", log=True) + resources: + mem_mb=32000, + h_rt="24:00:00" params: options = config["rule_options"]["rna_seqc"]["cmd_opt"] run: protocol = {"unstranded":"", "forward":"--stranded=FR", "reverse":"--stranded=RF"}[config["sample_info"][wildcards.sample]["stranded"]] - paired = "" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "--unpaired" + paired = "" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "--unpaired" script = textwrap.dedent(r""" #----- prepare @@ -944,6 +996,9 @@ rule qc: touch(pph.file_path(step="qc", extension="done")) log: out = pph.file_path(step="qc", extension="output.log", log=True) + resources: + mem_mb=4000, + h_rt="4:00:00" run: paired = '' if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else '-e' @@ -968,8 +1023,11 @@ rule multiqc: output: pph.file_path(step="multiqc", extension="qc_report.html") log: - out = pph.file_path(step="multiqc", extension="output.log", log=True), + out = pph.file_path(step="multiqc", extension="output.log", log=True), multiqc_config = pph.file_path(step="multiqc", extension="multiqc_conf.yaml", log=True) + resources: + mem_mb=4000, + h_rt="4:00:00" run: # compile multiqc config multiqc_dict = config["report"]["multiqc"] @@ -1004,6 +1062,9 @@ rule circRNA_report: get_inputs_all() output: pph.file_path("circRNA_report", "Rmd", sample="all_samples", flowcell="all_flowcells", lane="all_lanes", mate="all_mates", library="all_libraries") + resources: + mem_mb=4000, + h_rt="4:00:00" run: rt = ReportTool(pph, profile="circRNA") report_text = rt.generate_report() @@ -1015,7 +1076,7 @@ rule circRNA_report: pph.log_generated_files(save_to=file_table, path_pattern=path) id_suffix, _ = rt.get_id_suffix(tag, num) text_sub["file_tab"] += (f'file_tab{id_suffix} <- data.frame(read.table("{file_table}", sep="\\t", header=TRUE))\n' - f'file_tab{id_suffix}$filename <- as.character(file_tab{id_suffix}$filename)\n') + f'file_tab{id_suffix}$filename <- as.character(file_tab{id_suffix}$filename)\n') text_sub["config"] += f'config{id_suffix} <- yaml.load_file("{config_file}")\n' report_text = report_text.replace("{{WORKING_DIRECTORY}}", os.getcwd() + os.sep) diff --git a/sea-snap.py b/sea-snap.py index d21fe45..c1bb881 100755 --- a/sea-snap.py +++ b/sea-snap.py @@ -190,7 +190,7 @@ def run_pipeline(snakefile, args): data = json.load(json_file) Path("cluster_log").mkdir(exist_ok=True) run_script = Path("run_pipeline.sh") - s_command = """#!/bin/bash\nexport SBATCH_DEFAULTS=" --output=logs/%x-%j.log"\nsnakemake --snakefile {sfile}""".format(sfile = str(SCRIPT_DIR / snakefile)) + s_command = "#!/bin/bash\nsnakemake --snakefile {sfile}".format(sfile = str(SCRIPT_DIR / snakefile)) if args.snake_options: s_command += " " + " ".join(args.snake_options) s_command += " " + data["__set_run_command__"]["snake_opt"] if args.sge: From 11f7cd643a8d703e2f4300bc27861d08baf16fac Mon Sep 17 00:00:00 2001 From: bobermayer Date: Thu, 5 Jan 2023 16:16:52 +0100 Subject: [PATCH 08/27] pin only versions in conda_env_mapping.yaml --- conda_env_mapping.yaml | 530 +++-------------------------------------- sea-snap.py | 4 +- 2 files changed, 34 insertions(+), 500 deletions(-) diff --git a/conda_env_mapping.yaml b/conda_env_mapping.yaml index 56c8fb9..5f7e3f8 100644 --- a/conda_env_mapping.yaml +++ b/conda_env_mapping.yaml @@ -5,501 +5,35 @@ channels: - bioconda - defaults dependencies: - - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=0_gnu - - _r-mutex=1.0.1=anacondar_1 - - aioeasywebdav=2.4.0=py37_1000 - - aiohttp=3.6.2=py37h516909a_0 - - alsa-lib=1.1.5=h516909a_1002 - - appdirs=1.4.3=py_1 - - async-timeout=3.0.1=py_1000 - - attrs=19.3.0=py_0 - - backcall=0.2.0=pyh9f0ad1d_0 - - bamtools=2.5.1=he513fc3_6 - - bcrypt=3.1.7=py37h8f50634_1 - - bedtools=2.29.2=hc088bd4_0 - - binutils_impl_linux-64=2.34=h53a641e_7 - - binutils_linux-64=2.34=hc952b39_18 - - bioconductor-annotate=1.60.1=r351_0 - - bioconductor-annotationdbi=1.44.0=r351_0 - - bioconductor-apeglm=1.4.1=r351hf484d3e_0 - - bioconductor-biobase=2.42.0=r351h14c3975_1 - - bioconductor-biocgenerics=0.28.0=r351_1 - - bioconductor-biocparallel=1.16.6=r351h1c2f66e_0 - - bioconductor-biomart=2.38.0=r351_0 - - bioconductor-biostrings=2.50.2=r351h14c3975_0 - - bioconductor-clusterprofiler=3.10.1=r351_0 - - bioconductor-delayedarray=0.8.0=r351h14c3975_0 - - bioconductor-deseq2=1.22.1=r351hf484d3e_0 - - bioconductor-do.db=2.9=r351_4 - - bioconductor-dose=3.8.0=r351_0 - - bioconductor-dupradar=1.14.0=r351_0 - - bioconductor-ebseq=1.24.0=r351_0 - - bioconductor-enrichplot=1.2.0=r351_0 - - bioconductor-fgsea=1.8.0=r351hf484d3e_0 - - bioconductor-genefilter=1.64.0=r351h1c2f66e_1 - - bioconductor-genelendatabase=1.18.0=r351_0 - - bioconductor-geneplotter=1.60.0=r351_0 - - bioconductor-genomeinfodb=1.18.1=r351_0 - - bioconductor-genomeinfodbdata=1.2.1=r351_0 - - bioconductor-genomicalignments=1.18.1=r351h14c3975_0 - - bioconductor-genomicfeatures=1.34.1=r351_0 - - bioconductor-genomicranges=1.34.0=r351h14c3975_0 - - bioconductor-go.db=3.7.0=r351_0 - - bioconductor-gosemsim=2.8.0=r351hf484d3e_0 - - bioconductor-goseq=1.34.1=r351_0 - - bioconductor-iranges=2.16.0=r351h14c3975_0 - - bioconductor-noiseq=2.26.1=r351_0 - - bioconductor-org.hs.eg.db=3.7.0=r351_0 - - bioconductor-org.mm.eg.db=3.7.0=r351_0 - - bioconductor-qvalue=2.14.1=r351_0 - - bioconductor-rsamtools=1.34.0=r351hf484d3e_0 - - bioconductor-rsubread=1.34.0=r351h14c3975_0 - - bioconductor-rtracklayer=1.42.1=r351h9d9f1b6_1 - - bioconductor-s4vectors=0.20.1=r351h14c3975_0 - - bioconductor-summarizedexperiment=1.12.0=r351_0 - - bioconductor-tximport=1.12.1=r351_1 - - bioconductor-xvector=0.22.0=r351h14c3975_0 - - bioconductor-zlibbioc=1.28.0=r351h14c3975_0 - - biopython=1.76=py37h516909a_0 - - boost-cpp=1.70.0=h8e57a91_2 - - boto3=1.13.6=pyh9f0ad1d_0 - - botocore=1.16.6=pyh9f0ad1d_0 - - brotlipy=0.7.0=py37h8f50634_1000 - - bwidget=1.9.14=0 - - bx-python=0.8.8=py37h5266303_1 - - bzip2=1.0.8=h516909a_2 - - ca-certificates=2021.10.8=ha878542_0 - - cachetools=3.1.1=py_0 - - cairo=1.16.0=hcf35c78_1003 - - certifi=2021.10.8=py37h89c1867_1 - - cffi=1.14.0=py37hd463f26_0 - - chardet=3.0.4=py37hc8dfbb8_1006 - - click=7.1.2=pyh9f0ad1d_0 - - coloredlogs=14.0=py37hc8dfbb8_1 - - colormath=3.0.0=py_2 - - configargparse=1.2.3=pyh9f0ad1d_0 - - crc32c=2.0=py37h516909a_0 - - cryptography=2.9.2=py37hb09aad4_0 - - curl=7.68.0=hf8cf82a_0 - - cycler=0.10.0=py_2 - - datrie=0.8.2=py37h8f50634_0 - - decorator=4.4.2=py_0 - - docutils=0.15.2=py37_0 - - drmaa=0.7.9=py_1000 - - dropbox=9.4.0=py_0 - - expat=2.2.9=he1b5a44_2 - - fastqc=0.11.9=0 - - fftw=3.3.8=nompi_h7f3a6c3_1110 - - filechunkio=1.8=py_2 - - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - - font-ttf-inconsolata=2.001=hab24e00_0 - - font-ttf-source-code-pro=2.030=hab24e00_0 - - font-ttf-ubuntu=0.83=hab24e00_0 - - fontconfig=2.13.1=h86ecdb6_1001 - - fonts-conda-ecosystem=1=0 - - fonts-conda-forge=1=0 - - freetype=2.10.1=he06d7ca_0 - - fribidi=1.0.9=h516909a_0 - - ftputil=3.4=py_0 - - future=0.18.2=py37hc8dfbb8_1 - - gcc_impl_linux-64=7.3.0=habb00fd_1 - - gcc_linux-64=7.3.0=h553295d_18 - - gdk-pixbuf=2.32.2=1 - - gettext=0.19.8.1=hc5be6a0_1002 - - gfortran_impl_linux-64=7.3.0=hdf63c60_1 - - gfortran_linux-64=7.3.0=h553295d_18 - - ghostscript=9.18=1 - - giflib=5.2.1=h516909a_2 - - gitdb=4.0.5=py_0 - - gitpython=3.1.2=py_0 - - glib=2.64.2=h6f030ca_0 - - gmp=6.2.0=he1b5a44_2 - - gobject-introspection=1.58.2=py37h619baee_1004 - - google-api-core=1.17.0=py37hc8dfbb8_0 - - google-auth=1.14.2=pyh9f0ad1d_0 - - google-cloud-core=1.3.0=py_0 - - google-cloud-storage=1.28.1=pyh9f0ad1d_0 - - google-resumable-media=0.5.0=py_1 - - googleapis-common-protos=1.51.0=py37hc8dfbb8_2 - - graphite2=1.3.13=he1b5a44_1001 - - graphviz=2.42.3=h0511662_0 - - gsl=2.5=h294904e_1 - - gxx_impl_linux-64=7.3.0=hdf63c60_1 - - gxx_linux-64=7.3.0=h553295d_18 - - harfbuzz=2.4.0=h9f30f68_3 - - htslib=1.9=ha228f0b_7 - - humanfriendly=8.2=py37hc8dfbb8_0 - - icu=64.2=he1b5a44_1 - - idna=2.9=py_1 - - imagemagick=7.0.10_6=pl526ha9fe49d_0 - - importlib-metadata=1.6.0=py37hc8dfbb8_0 - - importlib_metadata=1.6.0=0 - - ipython=7.16.1=py37h43977f1_0 - - ipython_genutils=0.2.0=py_1 - - jbig=2.1=h516909a_2002 - - jedi=0.17.1=py37hc8dfbb8_0 - - jemalloc=5.2.1=he1b5a44_1 - - jinja2=2.11.2=pyh9f0ad1d_0 - - jmespath=0.9.5=py_0 - - jpeg=9c=h14c3975_1001 - - jsonschema=3.2.0=py37hc8dfbb8_1 - - jupyter_core=4.6.3=py37hc8dfbb8_1 - - kiwisolver=1.2.0=py37h99015e2_0 - - krb5=1.16.4=h2fd8d38_0 - - lcms2=2.9=hbd6801e_1 - - ld_impl_linux-64=2.34=h53a641e_7 - - libblas=3.8.0=11_openblas - - libcblas=3.8.0=11_openblas - - libcroco=0.6.13=h8d621e5_1 - - libcurl=7.68.0=hda55be3_0 - - libdeflate=1.0=h14c3975_1 - - libedit=3.1.20170329=hf8c457e_1001 - - libffi=3.2.1=he1b5a44_1007 - - libgcc=7.2.0=h69d50b8_2 - - libgcc-ng=9.2.0=h24d8f2e_2 - - libgfortran-ng=7.3.0=hdf63c60_5 - - libgomp=9.2.0=h24d8f2e_2 - - libiconv=1.15=h516909a_1006 - - libidn2=2.3.0=h516909a_0 - - liblapack=3.8.0=11_openblas - - libopenblas=0.3.6=h6e990d7_6 - - libpng=1.6.37=hed695b0_1 - - libprotobuf=3.11.4=h8b12597_0 - - librsvg=2.46.4=h33a7fed_0 - - libssh2=1.8.2=h22169c7_2 - - libstdcxx-ng=9.2.0=hdf63c60_2 - - libtiff=4.1.0=hc3755c2_3 - - libtool=2.4.6=h14c3975_1002 - - libunistring=0.9.10=h14c3975_0 - - libuuid=2.32.1=h14c3975_1000 - - libwebp=1.0.2=h56121f0_5 - - libxcb=1.13=h14c3975_1002 - - libxml2=2.9.10=hee79883_0 - - lz4-c=1.9.2=he1b5a44_1 - - lzo=2.10=h14c3975_1000 - - lzstring=1.0.4=py_1001 - - make=4.3=h516909a_0 - - markdown=3.2.1=py_0 - - markupsafe=1.1.1=py37h8f50634_1 - - matplotlib-base=3.1.1=py37h250f245_2 - - multidict=4.7.5=py37h8f50634_1 - - multiqc=1.8=py_2 - - mysql-connector-c=6.1.6=2 - - nbformat=5.0.6=py_0 - - ncurses=6.1=hf484d3e_1002 - - networkx=2.2=py_1 - - numpy=1.18.4=py37h8960a57_0 - - openblas=0.3.6=h6e990d7_6 - - openjdk=11.0.1=h600c080_1018 - - openjpeg=2.3.1=h981e76c_3 - - openssl=1.1.1g=h516909a_0 - - pandas=1.0.3=py37h0da4684_1 - - pango=1.42.4=h7062337_4 - - paramiko=2.7.1=py37_0 - - parso=0.7.0=pyh9f0ad1d_0 - - pcre=8.44=he1b5a44_0 - - perl=5.26.2=h516909a_1006 - - perl-app-cpanminus=1.7044=pl526_1 - - perl-carp=1.38=pl526_3 - - perl-constant=1.33=pl526_1 - - perl-cpan-meta=2.150010=pl526_0 - - perl-cpan-meta-requirements=2.140=pl526_0 - - perl-cpan-meta-yaml=0.018=pl526_0 - - perl-data-dumper=2.173=pl526_0 - - perl-encode=2.88=pl526_1 - - perl-exporter=5.72=pl526_1 - - perl-extutils-cbuilder=0.280230=pl526_1 - - perl-extutils-makemaker=7.36=pl526_1 - - perl-extutils-manifest=1.72=pl526_0 - - perl-extutils-parsexs=3.35=pl526_0 - - perl-file-path=2.16=pl526_0 - - perl-file-temp=0.2304=pl526_2 - - perl-getopt-long=2.50=pl526_1 - - perl-ipc-cmd=1.02=pl526_0 - - perl-json-pp=4.04=pl526_0 - - perl-locale-maketext-simple=0.21=pl526_2 - - perl-module-build=0.4224=pl526_3 - - perl-module-corelist=5.20190524=pl526_0 - - perl-module-load=0.32=pl526_1 - - perl-module-load-conditional=0.68=pl526_2 - - perl-module-metadata=1.000036=pl526_0 - - perl-params-check=0.38=pl526_1 - - perl-parent=0.236=pl526_1 - - perl-perl-ostype=1.010=pl526_1 - - perl-scalar-list-utils=1.52=pl526h516909a_0 - - perl-text-abbrev=1.02=pl526_0 - - perl-text-parsewords=3.30=pl526_0 - - perl-version=0.9924=pl526_0 - - pexpect=4.8.0=py37hc8dfbb8_1 - - picard=2.22.4=0 - - pickleshare=0.7.5=py37hc8dfbb8_1001 - - pip=20.1=pyh9f0ad1d_0 - - pixman=0.38.0=h516909a_1003 - - pkg-config=0.29.2=h516909a_1006 - - preseq=2.0.3=hf53bd2b_3 - - prettytable=0.7.2=py_3 - - prompt-toolkit=3.0.5=py_1 - - protobuf=3.11.4=py37h3340039_1 - - psutil=5.7.0=py37h8f50634_1 - - pthread-stubs=0.4=h14c3975_1001 - - ptyprocess=0.6.0=py_1001 - - pyasn1=0.4.8=py_0 - - pyasn1-modules=0.2.7=py_0 - - pybigwig=0.3.17=py37hc013797_0 - - pycparser=2.20=py_0 - - pygments=2.6.1=py_0 - - pygraphviz=1.3=py37h14c3975_1 - - pynacl=1.3.0=py37h516909a_1001 - - pyopenssl=19.1.0=py_1 - - pyparsing=2.4.7=pyh9f0ad1d_0 - - pyrsistent=0.16.0=py37h8f50634_0 - - pysam=0.15.3=py37hda2845c_1 - - pysftp=0.2.9=py_1 - - pysocks=1.7.1=py37hc8dfbb8_1 - - python=3.7.6=h8356626_5_cpython - - python-dateutil=2.8.1=py_0 - - python-irodsclient=0.8.2=py_0 - - python-lzo=1.12=py37h81344f2_1001 - - python_abi=3.7=1_cp37m - - pytz=2020.1=pyh9f0ad1d_0 - - pyyaml=5.3.1=py37h8f50634_0 - - qualimap=2.2.2d=1 - - r=3.5.1=r35_1003 - - r-acepack=1.4.1=r35h9bbef5b_1004 - - r-ashr=2.2_47=r35h0357c0b_0 - - r-askpass=1.1=r35hcdcec82_1 - - r-assertthat=0.2.1=r35h6115d3f_1 - - r-backports=1.1.6=r35hcdcec82_1 - - r-base=3.5.1=hc461eb7_1012 - - r-base64enc=0.1_3=r35hcdcec82_1003 - - r-bbmle=1.0.23.1=r35h6115d3f_0 - - r-bdsmatrix=1.3_4=r35hcdcec82_0 - - r-bh=1.72.0_3=r35h6115d3f_0 - - r-biasedurn=1.07=r35h0357c0b_1003 - - r-bibtex=0.4.2.2=r35hcdcec82_0 - - r-biocmanager=1.30.10=r35h6115d3f_0 - - r-bit=1.1_15.2=r35hcdcec82_0 - - r-bit64=0.9_7=r35hcdcec82_1001 - - r-bitops=1.0_6=r35hcdcec82_1003 - - r-blob=1.2.0=r35_1 - - r-blockmodeling=0.3.6=r35h9bbef5b_0 - - r-boot=1.3_25=r35h6115d3f_0 - - r-callr=3.4.3=r35h6115d3f_0 - - r-catools=1.17.1.4=r35h0357c0b_0 - - r-checkmate=2.0.0=r35hcdcec82_0 - - r-class=7.3_17=r35hcdcec82_0 - - r-cli=2.0.2=r35h6115d3f_0 - - r-clipr=0.7.0=r35h6115d3f_0 - - r-cluster=2.1.0=r35h9bbef5b_2 - - r-coda=0.19_3=r35h6115d3f_1 - - r-codetools=0.2_16=r35h6115d3f_1001 - - r-colorspace=1.4_1=r35hcdcec82_1 - - r-cowplot=1.0.0=r35h6115d3f_1 - - r-crayon=1.3.4=r35h6115d3f_1002 - - r-curl=4.3=r35hcdcec82_0 - - r-data.table=1.11.6=r351hc070d10_0 - - r-dbi=1.1.0=r35h6115d3f_0 - - r-desc=1.2.0=r35h6115d3f_1002 - - r-digest=0.6.25=r35h0357c0b_1 - - r-doparallel=1.0.15=r35h6115d3f_0 - - r-dorng=1.8.2=r35h6115d3f_0 - - r-dplyr=0.8.5=r35h0357c0b_0 - - r-ellipsis=0.3.0=r35hcdcec82_0 - - r-emdbook=1.3.12=r35h6115d3f_0 - - r-etrunct=0.1=r35_1001 - - r-europepmc=0.3=r35h6115d3f_1001 - - r-evaluate=0.14=r35h6115d3f_1 - - r-fansi=0.4.1=r35hcdcec82_0 - - r-farver=2.0.3=r35h0357c0b_0 - - r-fastmap=1.0.1=r35h0357c0b_0 - - r-fastmatch=1.1_0=r35hcdcec82_1004 - - r-foreach=1.5.0=r35h6115d3f_0 - - r-foreign=0.8_76=r35hcdcec82_0 - - r-formatr=1.7=r35h6115d3f_1 - - r-formula=1.2_3=r35h6115d3f_1002 - - r-futile.logger=1.4.3=r35h6115d3f_1002 - - r-futile.options=1.0.1=r35h6115d3f_1001 - - r-gdata=2.18.0=r35h6115d3f_1002 - - r-getopt=1.20.3=r35_1 - - r-ggforce=0.3.1=r35h0357c0b_0 - - r-ggplot2=3.3.0=r35h6115d3f_0 - - r-ggplotify=0.0.5=r35h6115d3f_0 - - r-ggraph=2.0.2=r35h0357c0b_0 - - r-ggrepel=0.8.2=r35h0357c0b_0 - - r-ggridges=0.5.2=r35h6115d3f_1 - - r-glue=1.4.0=r35hcdcec82_0 - - r-gplots=3.0.3=r35h6115d3f_0 - - r-graphlayouts=0.7.0=r35h0357c0b_0 - - r-gridextra=2.3=r35h6115d3f_1002 - - r-gridgraphics=0.5_0=r35h6115d3f_0 - - r-gtable=0.3.0=r35h6115d3f_2 - - r-gtools=3.8.2=r35hcdcec82_0 - - r-highr=0.8=r35h6115d3f_1 - - r-hmisc=4.4_0=r35h9bbef5b_0 - - r-hms=0.5.3=r35h6115d3f_0 - - r-htmltable=1.13.3=r35h6115d3f_0 - - r-htmltools=0.4.0=r35h0357c0b_0 - - r-htmlwidgets=1.5.1=r35h6115d3f_0 - - r-httpuv=1.5.2=r35h0357c0b_1 - - r-httr=1.4.1=r35h6115d3f_1 - - r-igraph=1.2.5=r35hd626d4e_0 - - r-invgamma=1.1=r35h6115d3f_0 - - r-irlba=2.3.3=r35h7fa42b6_2 - - r-isoband=0.2.1=r35h0357c0b_0 - - r-iterators=1.0.12=r35h6115d3f_0 - - r-jsonlite=1.6.1=r35hcdcec82_0 - - r-kernsmooth=2.23_17=r35hfa343cc_0 - - r-knitr=1.28=r35h6115d3f_0 - - r-labeling=0.3=r35h6115d3f_1002 - - r-lambda.r=1.2.4=r35h6115d3f_0 - - r-later=1.0.0=r35h0357c0b_0 - - r-lattice=0.20_41=r35hcdcec82_1 - - r-latticeextra=0.6_28=r35h6115d3f_1002 - - r-lifecycle=0.2.0=r35h6115d3f_0 - - r-locfit=1.5_9.4=r35hcdcec82_0 - - r-magrittr=1.5=r35h6115d3f_1002 - - r-markdown=1.1=r35hcdcec82_0 - - r-mass=7.3_51.6=r35hcdcec82_1 - - r-matrix=1.2_18=r35h7fa42b6_2 - - r-matrixstats=0.56.0=r35hcdcec82_0 - - r-memoise=1.1.0=r35h6115d3f_1003 - - r-mgcv=1.8_31=r35h7fa42b6_0 - - r-mime=0.9=r35hcdcec82_0 - - r-mixsqp=0.3_17=r35h0357c0b_0 - - r-msigdbr=7.0.1=r35h6115d3f_1 - - r-munsell=0.5.0=r35h6115d3f_1002 - - r-mvtnorm=1.1_0=r35h9bbef5b_0 - - r-nlme=3.1_147=r35h9bbef5b_0 - - r-nnet=7.3_14=r35hcdcec82_0 - - r-numderiv=2016.8_1.1=r35h6115d3f_1 - - r-openssl=1.4.1=r35he5c4762_0 - - r-optparse=1.6.6=r35h6115d3f_0 - - r-pheatmap=1.0.12=r35h6115d3f_1 - - r-pillar=1.4.3=r35h6115d3f_0 - - r-pkgbuild=1.0.7=r35h6115d3f_0 - - r-pkgconfig=2.0.3=r35h6115d3f_0 - - r-pkgload=1.0.2=r35h0357c0b_1001 - - r-pkgmaker=0.31.1=r35h6115d3f_0 - - r-plogr=0.2.0=r35h6115d3f_1002 - - r-plyr=1.8.6=r35h0357c0b_0 - - r-polyclip=1.10_0=r35h0357c0b_1 - - r-praise=1.0.0=r35h6115d3f_1003 - - r-prettyunits=1.1.1=r35h6115d3f_0 - - r-processx=3.4.2=r35hcdcec82_0 - - r-progress=1.2.2=r35h6115d3f_1 - - r-promises=1.1.0=r35h0357c0b_0 - - r-ps=1.3.2=r35hcdcec82_0 - - r-purrr=0.3.4=r35hcdcec82_0 - - r-r6=2.4.1=r35h6115d3f_0 - - r-rcolorbrewer=1.1_2=r35h6115d3f_1002 - - r-rcpp=1.0.4.6=r35h0357c0b_0 - - r-rcpparmadillo=0.9.870.2.0=r35h51c796c_0 - - r-rcppeigen=0.3.3.7.0=r35h0357c0b_0 - - r-rcppnumerical=0.4_0=r35h0357c0b_0 - - r-rcurl=1.98_1.2=r35hcdcec82_0 - - r-readr=1.3.1=r35h0357c0b_1002 - - r-recommended=3.5.1=r35_1003 - - r-registry=0.5_1=r35h6115d3f_1 - - r-reshape2=1.4.4=r35h0357c0b_0 - - r-rlang=0.4.5=r35hcdcec82_2 - - r-rngtools=1.5=r35h6115d3f_0 - - r-rpart=4.1_15=r35hcdcec82_1 - - r-rprojroot=1.3_2=r35h6115d3f_1002 - - r-rsqlite=2.2.0=r35h0357c0b_0 - - r-rstudioapi=0.11=r35h6115d3f_0 - - r-rvcheck=0.1.8=r35h6115d3f_0 - - r-scales=1.1.0=r35h6115d3f_0 - - r-shiny=1.4.0.2=r35h6115d3f_0 - - r-snow=0.4_3=r35h6115d3f_1001 - - r-sourcetools=0.1.7=r35he1b5a44_1001 - - r-spatial=7.3_12=r35hcdcec82_0 - - r-squarem=2020.2=r35h6115d3f_0 - - r-stringi=1.4.6=r35h0e574ca_1 - - r-stringr=1.4.0=r35h6115d3f_1 - - r-survival=3.1_12=r35hcdcec82_0 - - r-sys=3.3=r35hcdcec82_0 - - r-testthat=2.3.2=r35h0357c0b_0 - - r-tibble=3.0.1=r35hcdcec82_0 - - r-tidygraph=1.1.2=r35h0357c0b_1 - - r-tidyr=1.0.2=r35h0357c0b_0 - - r-tidyselect=1.0.0=r35h6115d3f_0 - - r-triebeard=0.3.0=r35he1b5a44_1002 - - r-truncnorm=1.0_8=r35hcdcec82_1001 - - r-tweenr=1.0.1=r35h0357c0b_1001 - - r-upsetr=1.4.0=r35h6115d3f_1 - - r-urltools=1.7.3=r35h0357c0b_1 - - r-utf8=1.1.4=r35hcdcec82_1002 - - r-vctrs=0.2.4=r35hcdcec82_0 - - r-viridis=0.5.1=r35h6115d3f_1003 - - r-viridislite=0.3.0=r35h6115d3f_1002 - - r-withr=2.2.0=r35h6115d3f_0 - - r-xfun=0.13=r35h6115d3f_0 - - r-xml=3.99_0.3=r35hcdcec82_0 - - r-xml2=1.3.2=r35h0357c0b_0 - - r-xtable=1.8_4=r35h6115d3f_2 - - r-yaml=2.2.1=r35hcdcec82_0 - - r-zeallot=0.1.0=r35h6115d3f_1001 - - ratelimiter=1.2.0=py37_1000 - - readline=8.0=hf8c457e_0 - - requests=2.23.0=pyh8c360ce_2 - - rna-seqc=2.3.5=h0d5fbf8_0 - - rpy2=3.1.0=py37r35hc1659b7_3 - - rsa=4.0=py_0 - - rsem=1.3.3=pl526ha52163a_0 - - rseqc=3.0.1=py37h516909a_1 - - s3transfer=0.3.3=py37hc8dfbb8_1 - - salmon=1.2.1=hf69c8f4_0 - - samtools=1.9=h10a08f8_12 - - setuptools=46.1.3=py37hc8dfbb8_0 - - simplegeneric=0.8.1=py_1 - - simplejson=3.17.0=py37h8f50634_1 - - six=1.14.0=py_1 - - smmap=3.0.4=pyh9f0ad1d_0 - - snakemake=7.19.1=hdfd78af_0 - - snakemake-minimal=7.19.1=pyhdfd78af_0 - - spectra=0.0.11=py_1 - - sqlite=3.30.1=hcee41ef_0 - - star=2.7.3a=0 - - subread=2.0.0=hed695b0_0 - - tbb=2020.1=hc9558a2_0 - - tk=8.6.10=hed695b0_0 - - tktable=2.10=h555a92e_3 - - toposort=1.5=py_3 - - tornado=6.0.4=py37h8f50634_1 - - tpmcalculator=0.0.4=h7376a40_0 - - traitlets=4.3.3=py37hc8dfbb8_1 - - trimadap=r9=0 - - tzlocal=2.1=pyh9f0ad1d_0 - - ucsc-bigwigsummary=357=1 - - urllib3=1.25.9=py_0 - - wcwidth=0.2.5=pyh9f0ad1d_0 - - wget=1.20.1=h22169c7_0 - - wheel=0.34.2=py_1 - - wrapt=1.12.1=py37h8f50634_1 - - xmlrunner=1.7.7=py_0 - - 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=h84519dc_1000 - - xorg-libx11=1.6.9=h516909a_0 - - xorg-libxau=1.0.9=h14c3975_0 - - xorg-libxdmcp=1.1.3=h516909a_0 - - xorg-libxext=1.3.4=h516909a_0 - - xorg-libxfixes=5.0.3=h516909a_1004 - - xorg-libxi=1.7.10=h516909a_0 - - xorg-libxpm=3.5.13=h516909a_0 - - xorg-libxrender=0.9.10=h516909a_1002 - - xorg-libxt=1.1.5=h516909a_1003 - - 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_0 - - yaml=0.2.4=h516909a_0 - - yarl=1.3.0=py37h516909a_1000 - - zipp=3.1.0=py_0 - - zlib=1.2.11=h516909a_1006 - - zstd=1.4.4=h6597ccf_3 + - bamtools=2.5.1 + - bedtools=2.29.2 + - biopython=1.76 + - bioconductor-dupradar=1.14.0 + - fastqc=0.11.9 + - gitpython=3.1.2 + - graphviz=2.42.3 + - markdown=3.2.1 + - multiqc=1.8 + - networkx=2.2 + - numpy=1.18.4 + - pandas=1.0.3 + - picard=2.22.4 + - pip=20.1 + - preseq=2.0.3 + - pybigwig=0.3.17 + - pysam=0.15.3 + - python=3.7.6 + - python-irodsclient=0.8.2 + - qualimap=2.2.2d + - readline=8.0 + - rna-seqc=2.3.5 + - rsem=1.3.3 + - rseqc=3.0.1 + - salmon=1.2.1 + - samtools=1.9 + - snakemake=7.19.1 + - star=2.7.3a + - subread=2.0.0 + - tpmcalculator=0.0.4 + - trimadap=r9 + - ucsc-bigwigsummary=357 diff --git a/sea-snap.py b/sea-snap.py index c1bb881..73fdf16 100755 --- a/sea-snap.py +++ b/sea-snap.py @@ -164,7 +164,7 @@ def rmdir(dir_name): item.unlink() dir_path.rmdir() - rmdir("cluster_log") + rmdir("logs") for p in Path(".").glob("temp_snakemake*.sh"): p.unlink() for p in Path(".").glob("run_pipeline.sh"): p.unlink() for p in Path(".").glob("core.*"): p.unlink() @@ -188,7 +188,7 @@ def run_pipeline(snakefile, args): elif args.mode in ["cluster", "c"]: with open(CLUSTER_CONFIG, "r") as json_file: data = json.load(json_file) - Path("cluster_log").mkdir(exist_ok=True) + #Path("cluster_log").mkdir(exist_ok=True) run_script = Path("run_pipeline.sh") s_command = "#!/bin/bash\nsnakemake --snakefile {sfile}".format(sfile = str(SCRIPT_DIR / snakefile)) if args.snake_options: s_command += " " + " ".join(args.snake_options) From 74fba9ddc1b8d269b1ea18a72fbcdbd89e5ee067 Mon Sep 17 00:00:00 2001 From: bobermayer Date: Wed, 1 Feb 2023 11:01:13 +0100 Subject: [PATCH 09/27] remove lib_types from configs --- DE_pipeline.snake | 2 +- conda_env_de.yaml | 652 ++++------------------------------- tools/ISAtab_parse_conf.yaml | 7 - tools/pipeline_tools.py | 9 - 4 files changed, 71 insertions(+), 599 deletions(-) diff --git a/DE_pipeline.snake b/DE_pipeline.snake index 07f51f8..42b4980 100644 --- a/DE_pipeline.snake +++ b/DE_pipeline.snake @@ -64,7 +64,7 @@ def get_inputs_all(): #functional annotation inputs.append(pph.expand_path(step = "goseq", extension = "go.rds", if_set = dict(goseq=True) )) inputs.append(pph.expand_path(step = "goseq", extension = "kegg.rds", if_set = dict(goseq=True) )) - inputs.append(pph.file_path(step = "annotation", extension = "rds", contrast="all")) + #inputs.append(pph.file_path(step = "annotation", extension = "rds", contrast="all")) inputs.append(pph.file_path(step = "export_raw_counts", extension = "xlsx", contrast = "all")) inputs.append(pph.expand_path(step = "cluster_profiler", extension = "rds", if_set = dict(cluster_profiler=dict(run=True)) )) # XXX uncomment the following line to run tmod_pca diff --git a/conda_env_de.yaml b/conda_env_de.yaml index a8f20d5..3ffb240 100644 --- a/conda_env_de.yaml +++ b/conda_env_de.yaml @@ -5,585 +5,73 @@ channels: - bioconda - defaults dependencies: - - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=0_gnu - - _r-mutex=1.0.1=anacondar_1 - - aioeasywebdav=2.4.0=py37_1000 - - aiohttp=3.6.2=py37h516909a_0 - - alsa-lib=1.1.5=h516909a_1002 - - appdirs=1.4.3=py_1 - - async-timeout=3.0.1=py_1000 - - atk-1.0=2.36.0=h3371d22_4 - - attrs=19.3.0=py_0 - - backcall=0.2.0=pyh9f0ad1d_0 - - bamtools=2.5.1=he513fc3_6 - - bcftools=1.3.1=h5bf99c6_7 - - bcrypt=3.1.7=py37h8f50634_1 - - bedtools=2.29.2=hc088bd4_0 - - binutils_impl_linux-64=2.36.1=h193b22a_2 - - binutils_linux-64=2.36=hf3e587d_33 - - bioconductor-annotate=1.72.0=r41hdfd78af_0 - - bioconductor-annotationdbi=1.56.1=r41hdfd78af_0 - - bioconductor-apeglm=1.16.0=r41h619a076_1 - - bioconductor-biobase=2.54.0=r41h5c21468_1 - - 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.3=r41h619a076_0 - - bioconductor-biomart=2.50.0=r41hdfd78af_0 - - bioconductor-biostrings=2.62.0=r41h5c21468_1 - - bioconductor-clusterprofiler=4.2.0=r41hdfd78af_0 - - bioconductor-delayedarray=0.20.0=r41h5c21468_1 - - bioconductor-deseq2=1.34.0=r41h619a076_1 - - bioconductor-do.db=2.9=0 - - bioconductor-dose=3.20.0=r41hdfd78af_0 - - bioconductor-dupradar=1.24.0=r41hdfd78af_0 - - bioconductor-ebseq=1.34.0=r41hdfd78af_0 - - bioconductor-enrichplot=1.14.1=r41hdfd78af_0 - - bioconductor-fgsea=1.20.0=r41h619a076_1 - - bioconductor-genefilter=1.76.0=r41hba52eb8_0 - - bioconductor-genelendatabase=1.30.0=r41hdfd78af_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=r41h5c21468_1 - - bioconductor-genomicfeatures=1.46.1=r41hdfd78af_0 - - bioconductor-genomicranges=1.46.1=r41h5c21468_0 - - bioconductor-ggtree=3.2.0=r41hdfd78af_0 - - bioconductor-go.db=3.14.0=r41hdfd78af_0 - - bioconductor-gosemsim=2.20.0=r41h619a076_1 - - bioconductor-goseq=1.46.0=r41hdfd78af_0 - - bioconductor-iranges=2.28.0=r41h5c21468_1 - - bioconductor-keggrest=1.34.0=r41hdfd78af_0 - - bioconductor-matrixgenerics=1.6.0=r41hdfd78af_0 - - bioconductor-noiseq=2.38.0=r41hdfd78af_0 - - bioconductor-org.hs.eg.db=3.14.0=r41hdfd78af_0 - - bioconductor-org.mm.eg.db=3.14.0=r41hdfd78af_0 - - bioconductor-qvalue=2.26.0=r41hdfd78af_0 - - bioconductor-rhtslib=1.26.0=r41h5c21468_1 - - bioconductor-rsamtools=2.10.0=r41h619a076_1 - - bioconductor-rsubread=2.8.1=r41h5c21468_0 - - bioconductor-rtracklayer=1.54.0=r41hd029910_0 - - bioconductor-s4vectors=0.32.3=r41h5c21468_0 - - bioconductor-summarizedexperiment=1.24.0=r41hdfd78af_0 - - bioconductor-treeio=1.18.0=r41hdfd78af_0 - - bioconductor-tximport=1.22.0=r41hdfd78af_0 - - bioconductor-xvector=0.34.0=r41h5c21468_1 - - bioconductor-zlibbioc=1.40.0=r41h5c21468_1 - - biopython=1.76=py37h516909a_0 - - boost-cpp=1.74.0=h312852a_4 - - boto3=1.13.6=pyh9f0ad1d_0 - - botocore=1.16.6=pyh9f0ad1d_0 - - brotli=1.0.9=h7f98852_6 - - brotli-bin=1.0.9=h7f98852_6 - - brotlipy=0.7.0=py37h8f50634_1000 - - bwidget=1.9.14=0 - - bx-python=0.8.8=py37h5266303_1 - - bzip2=1.0.8=h516909a_2 - - c-ares=1.18.1=h7f98852_0 - - ca-certificates=2021.10.8=ha878542_0 - - cachetools=3.1.1=py_0 - - cairo=1.16.0=h6cf1ce9_1008 - - certifi=2021.10.8=py37h89c1867_1 - - cffi=1.15.0=py37h036bc23_0 - - chardet=3.0.4=py37hc8dfbb8_1006 - - click=7.1.2=pyh9f0ad1d_0 - - colorama=0.4.4=pyh9f0ad1d_0 - - coloredlogs=14.0=py37hc8dfbb8_1 - - colormath=3.0.0=py_2 - - commonmark=0.9.1=py_0 - - configargparse=1.2.3=pyh9f0ad1d_0 - - crc32c=2.0=py37h516909a_0 - - cryptography=36.0.0=py37h9ce1e76_0 - - curl=7.82.0=h2283fc2_0 - - cycler=0.10.0=py_2 - - dataclasses=0.8=pyhc8e2a94_3 - - datrie=0.8.2=py37h8f50634_0 - - decorator=4.4.2=py_0 - - docutils=0.15.2=py37_0 - - drmaa=0.7.9=py_1000 - - dropbox=9.4.0=py_0 - - expat=2.4.7=h27087fc_0 - - fastqc=0.11.9=0 - - fftw=3.3.10=nompi_h77c792f_102 - - filechunkio=1.8=py_2 - - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - - font-ttf-inconsolata=2.001=hab24e00_0 - - font-ttf-source-code-pro=2.030=hab24e00_0 - - font-ttf-ubuntu=0.83=hab24e00_0 - - fontconfig=2.13.96=h8e229c2_2 - - fonts-conda-ecosystem=1=0 - - fonts-conda-forge=1=0 - - fonttools=4.31.2=py37h540881e_0 - - freetype=2.10.4=h0708190_1 - - fribidi=1.0.10=h36c2ea0_0 - - ftputil=3.4=py_0 - - future=0.18.2=py37hc8dfbb8_1 - - g-ir-build-tools=1.72.0=py37hb997759_0 - - g-ir-host-tools=1.72.0=h1def2ed_0 - - gcc_impl_linux-64=9.3.0=h6df7d76_17 - - gcc_linux-64=9.3.0=hf25ea35_33 - - gdk-pixbuf=2.42.8=hff1cb4f_0 - - gettext=0.19.8.1=h73d1719_1008 - - gfortran_impl_linux-64=9.3.0=hc4a2995_19 - - gfortran_linux-64=9.3.0=hdc58fab_33 - - ghostscript=9.18=1 - - giflib=5.2.1=h516909a_2 - - gitdb=4.0.5=py_0 - - gitpython=3.1.2=py_0 - - glib=2.70.2=h780b84a_4 - - glib-tools=2.70.2=h780b84a_4 - - gmp=6.2.1=h58526e2_0 - - gobject-introspection=1.72.0=py37h1b8cbc2_0 - - google-api-core=1.17.0=py37hc8dfbb8_0 - - google-auth=1.14.2=pyh9f0ad1d_0 - - google-cloud-core=1.3.0=py_0 - - google-cloud-storage=1.28.1=pyh9f0ad1d_0 - - google-resumable-media=0.5.0=py_1 - - googleapis-common-protos=1.51.0=py37hc8dfbb8_2 - - graphite2=1.3.13=he1b5a44_1001 - - graphviz=2.50.0=h85b4f2f_1 - - gsl=2.6=he838d99_2 - - gtk2=2.24.33=h539f30e_1 - - gts=0.7.6=h64030ff_2 - - gxx_impl_linux-64=9.3.0=hbdd7822_17 - - gxx_linux-64=9.3.0=h3fbe746_33 - - harfbuzz=3.1.1=h83ec7ef_0 - - htslib=1.3.1=1 - - humanfriendly=8.2=py37hc8dfbb8_0 - - icu=68.2=h9c3ff4c_0 - - idna=2.9=py_1 - - imagemagick=7.1.0_27=pl5321hae5efcc_0 - - importlib-metadata=1.6.0=py37hc8dfbb8_0 - - importlib_metadata=1.6.0=0 - - ipython=7.16.1=py37h43977f1_0 - - ipython_genutils=0.2.0=py_1 - - jbig=2.1=h516909a_2002 - - jedi=0.17.1=py37hc8dfbb8_0 - - jemalloc=5.2.1=he1b5a44_1 - - jinja2=2.11.2=pyh9f0ad1d_0 - - jmespath=0.9.5=py_0 - - jpeg=9e=h7f98852_0 - - jsonschema=3.2.0=py37hc8dfbb8_1 - - jupyter_core=4.6.3=py37hc8dfbb8_1 - - kernel-headers_linux-64=2.6.32=he073ed8_15 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.2.0=py37h99015e2_0 - - krb5=1.19.3=h08a2579_0 - - lcms2=2.9=hbd6801e_1 - - ld_impl_linux-64=2.36.1=hea4e1c9_2 - - lerc=3.0=h9c3ff4c_0 - - libblas=3.9.0=13_linux64_openblas - - libbrotlicommon=1.0.9=h7f98852_6 - - libbrotlidec=1.0.9=h7f98852_6 - - libbrotlienc=1.0.9=h7f98852_6 - - libcblas=3.9.0=13_linux64_openblas - - libcroco=0.6.13=h8d621e5_1 - - libcurl=7.82.0=h2283fc2_0 - - libdeflate=1.10=h7f98852_0 - - libedit=3.1.20191231=he28a2e2_2 - - libev=4.33=h516909a_1 - - libffi=3.4.2=h7f98852_5 - - libgcc=7.2.0=h69d50b8_2 - - libgcc-devel_linux-64=9.3.0=hb95220a_17 - - libgcc-ng=11.2.0=h1d223b6_14 - - libgd=2.3.3=h6ad9fb6_0 - - libgfortran-ng=9.4.0=h69a702a_14 - - libgfortran5=9.4.0=h62347ff_14 - - libgirepository=1.72.0=h26ff761_0 - - libglib=2.70.2=h174f98d_4 - - libgomp=11.2.0=h1d223b6_14 - - libiconv=1.16=h516909a_0 - - libidn2=2.3.0=h516909a_0 - - libjemalloc=5.2.1=h9c3ff4c_6 - - liblapack=3.9.0=13_linux64_openblas - - libnghttp2=1.47.0=he49606f_0 - - libnsl=2.0.0=h7f98852_0 - - libopenblas=0.3.18=pthreads_h8fe5266_0 - - libpng=1.6.37=hed695b0_1 - - libprotobuf=3.11.4=h8b12597_0 - - librsvg=2.52.5=hc3c00ef_1 - - libssh2=1.10.0=ha35d2d1_2 - - libstdcxx-devel_linux-64=9.3.0=hf0c5c8d_17 - - libstdcxx-ng=11.2.0=he4da1e4_14 - - libtiff=4.3.0=h542a066_3 - - libtool=2.4.6=h14c3975_1002 - - libunistring=0.9.10=h14c3975_0 - - libuuid=2.32.1=h14c3975_1000 - - libwebp=1.2.2=h3452ae3_0 - - libwebp-base=1.2.2=h7f98852_1 - - libxcb=1.13=h14c3975_1002 - - libxml2=2.9.12=h72842e0_0 - - libzlib=1.2.11=h166bdaf_1014 - - lz4-c=1.9.3=h9c3ff4c_1 - - lzo=2.10=h14c3975_1000 - - lzstring=1.0.4=py_1001 - - make=4.3=h516909a_0 - - markdown=3.2.1=py_0 - - markupsafe=1.1.1=py37h8f50634_1 - - matplotlib-base=3.5.1=py37h1058ff1_0 - - multidict=4.7.5=py37h8f50634_1 - - multiqc=1.12=pyhdfd78af_0 - - munkres=1.1.4=pyh9f0ad1d_0 - - mysql-connector-c=6.1.6=2 - - nbformat=5.0.6=py_0 - - ncurses=6.3=h9c3ff4c_0 - - networkx=2.7.1=pyhd8ed1ab_0 - - numpy=1.21.5=py37hf2998dd_0 - - olefile=0.46=pyh9f0ad1d_1 - - openblas=0.3.18=pthreads_h4748800_0 - - openjdk=11.0.1=h600c080_1018 - - openjpeg=2.4.0=hb52868f_1 - - openssl=3.0.2=h166bdaf_1 - - packaging=21.3=pyhd8ed1ab_0 - - pandas=1.3.5=py37he8f5f7f_0 - - pango=1.48.10=h54213e6_2 - - paramiko=2.7.1=py37_0 - - parso=0.7.0=pyh9f0ad1d_0 - - pcre=8.45=h9c3ff4c_0 - - pcre2=10.37=h032f7d1_0 - - perl=5.32.1=2_h7f98852_perl5 - - perl-app-cpanminus=1.7045=pl5321hd8ed1ab_0 - - perl-carp=1.50=pl5321hd8ed1ab_0 - - perl-constant=1.33=pl5321hd8ed1ab_0 - - perl-cpan-meta=2.150010=pl5321hdfd78af_1 - - perl-cpan-meta-requirements=2.140=pl5321hdfd78af_1 - - perl-cpan-meta-yaml=0.018=pl5321hdfd78af_1 - - perl-data-dumper=2.183=pl5321hec16e2b_1 - - perl-encode=3.16=pl5321hec16e2b_1 - - perl-exporter=5.74=pl5321hd8ed1ab_0 - - perl-extutils-cbuilder=0.280230=pl5321hdfd78af_2 - - perl-extutils-makemaker=7.64=pl5321hd8ed1ab_0 - - perl-extutils-manifest=1.73=pl5321hdfd78af_0 - - perl-extutils-parsexs=3.44=pl5321hdfd78af_0 - - perl-file-path=2.18=pl5321hd8ed1ab_0 - - perl-file-temp=0.2304=pl5321hd8ed1ab_0 - - perl-getopt-long=2.52=pl5321hdfd78af_0 - - perl-ipc-cmd=1.04=pl5321hdfd78af_0 - - perl-json-pp=4.07=pl5321hdfd78af_0 - - perl-locale-maketext-simple=0.21=pl5321hdfd78af_3 - - perl-module-build=0.4231=pl5321hdfd78af_0 - - perl-module-corelist=5.20220320=pl5321hdfd78af_0 - - perl-module-load=0.34=pl5321hdfd78af_0 - - perl-module-load-conditional=0.68=0 - - perl-module-metadata=1.000037=pl5321hdfd78af_0 - - perl-params-check=0.38=pl5321hdfd78af_2 - - perl-parent=0.238=pl5321hd8ed1ab_0 - - perl-perl-ostype=1.010=pl5321hdfd78af_2 - - perl-scalar-list-utils=1.62=pl5321hec16e2b_0 - - perl-text-abbrev=1.02=pl5321hdfd78af_1 - - perl-text-parsewords=3.30=pl5321hdfd78af_1 - - perl-version=0.9924=pl5321hec16e2b_2 - - pexpect=4.8.0=py37hc8dfbb8_1 - - picard=2.22.4=0 - - pickleshare=0.7.5=py37hc8dfbb8_1001 - - pillow=7.2.0=py37h718be6c_0 - - pip=20.1=pyh9f0ad1d_0 - - pixman=0.40.0=h36c2ea0_0 - - pkg-config=0.29.2=h516909a_1006 - - preseq=2.0.3=hc216eb9_5 - - prettytable=0.7.2=py_3 - - prompt-toolkit=3.0.5=py_1 - - protobuf=3.11.4=py37h3340039_1 - - psutil=5.7.0=py37h8f50634_1 - - pthread-stubs=0.4=h14c3975_1001 - - ptyprocess=0.6.0=py_1001 - - pyasn1=0.4.8=py_0 - - pyasn1-modules=0.2.7=py_0 - - pybigwig=0.3.17=py37hc013797_0 - - pycparser=2.20=py_0 - - pygments=2.6.1=py_0 - - pygraphviz=1.3=py37h14c3975_1 - - pynacl=1.3.0=py37h516909a_1001 - - pyopenssl=19.1.0=py_1 - - pyparsing=2.4.7=pyh9f0ad1d_0 - - pyrsistent=0.16.0=py37h8f50634_0 - - pysam=0.9.1=py37h7a862ea_12 - - pysftp=0.2.9=py_1 - - pysocks=1.7.1=py37hc8dfbb8_1 - - python=3.7.12=hf930737_100_cpython - - python-dateutil=2.8.1=py_0 - - python-irodsclient=0.8.2=py_0 - - python-lzo=1.12=py37h81344f2_1001 - - python_abi=3.7=1_cp37m - - pytz=2020.1=pyh9f0ad1d_0 - - pyyaml=5.3.1=py37h8f50634_0 - - qualimap=2.2.2d=1 - - r=4.1=r41hd8ed1ab_1004 - - r-acepack=1.4.1=r41h859d828_1006 - - r-ape=5.6_2=r41h43535f1_0 - - r-aplot=0.1.2=r41hc72bb7e_0 - - r-ashr=2.2_54=r41h7525677_0 - - r-askpass=1.1=r41hcfec24a_2 - - r-assertthat=0.2.1=r41hc72bb7e_2 - - r-babelgene=21.4=r41hc72bb7e_0 - - r-backports=1.4.1=r41hcfec24a_0 - - r-base=4.1.1=hb67fd72_0 - - r-base64enc=0.1_3=r41hcfec24a_1004 - - r-bbmle=1.0.24=r41hc72bb7e_0 - - r-bdsmatrix=1.3_4=r41hcfec24a_1 - - r-bh=1.78.0_0=r41hc72bb7e_0 - - r-biasedurn=1.07=r41h03ef668_1004 - - r-bibtex=0.4.2.3=r41hcfec24a_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-blockmodeling=1.0.5=r41h859d828_0 - - r-boot=1.3_28=r41hc72bb7e_0 - - r-brio=1.1.3=r41hcfec24a_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-class=7.3_20=r41hcfec24a_0 - - r-cli=3.2.0=r41h03ef668_0 - - r-clipr=0.8.0=r41hc72bb7e_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_3=r41h06615bd_0 - - r-commonmark=1.8.0=r41h06615bd_0 - - r-cowplot=1.1.1=r41hc72bb7e_0 - - r-cpp11=0.4.2=r41hc72bb7e_0 - - r-crayon=1.5.1=r41hc72bb7e_0 - - r-curl=4.3.2=r41hcfec24a_0 - - r-data.table=1.14.2=r41hcfec24a_0 - - r-dbi=1.1.2=r41hc72bb7e_0 - - r-dbplyr=2.1.1=r41hc72bb7e_0 - - r-desc=1.4.1=r41hc72bb7e_0 - - r-diffobj=0.3.5=r41hcfec24a_0 - - r-digest=0.6.29=r41h03ef668_0 - - r-doparallel=1.0.17=r41hc72bb7e_0 - - r-dorng=1.8.2=r41hc72bb7e_1 - - r-downloader=0.4=r41hc72bb7e_1003 - - r-dplyr=1.0.8=r41h7525677_0 - - r-ellipsis=0.3.2=r41hcfec24a_0 - - r-emdbook=1.3.12=r41hc72bb7e_1 - - r-etrunct=0.1=r41hc72bb7e_1003 - - r-europepmc=0.4.1=r41hc72bb7e_0 - - r-evaluate=0.15=r41hc72bb7e_0 - - r-fansi=1.0.3=r41h06615bd_0 - - r-farver=2.1.0=r41h03ef668_0 - - r-fastmap=1.1.0=r41h03ef668_0 - - r-fastmatch=1.1_3=r41hcfec24a_0 - - r-filelock=1.0.2=r41hcfec24a_1002 - - r-fontawesome=0.2.2=r41hc72bb7e_0 - - r-foreach=1.5.2=r41hc72bb7e_0 - - r-foreign=0.8_82=r41hcfec24a_0 - - r-formatr=1.11=r41hc72bb7e_0 - - r-formula=1.2_4=r41hc72bb7e_0 - - r-fs=1.5.2=r41h03ef668_0 - - r-futile.logger=1.4.3=r41hc72bb7e_1003 - - r-futile.options=1.0.1=r41hc72bb7e_1002 - - r-gdata=2.18.0=r41hc72bb7e_1003 - - r-generics=0.1.2=r41hc72bb7e_0 - - r-getopt=1.20.3=r41ha770c72_2 - - r-ggforce=0.3.3=r41h03ef668_0 - - r-ggfun=0.0.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-ggridges=0.5.3=r41hc72bb7e_0 - - r-glue=1.6.2=r41h06615bd_0 - - r-gplots=3.1.1=r41hc72bb7e_0 - - r-graphlayouts=0.8.0=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-highr=0.9=r41hc72bb7e_0 - - r-hmisc=4.6_0=r41h859d828_0 - - r-hms=1.1.1=r41hc72bb7e_0 - - r-htmltable=2.4.0=r41hc72bb7e_0 - - r-htmltools=0.5.2=r41h03ef668_0 - - r-htmlwidgets=1.5.4=r41hc72bb7e_0 - - r-httpuv=1.6.5=r41h03ef668_0 - - r-httr=1.4.2=r41hc72bb7e_0 - - r-igraph=1.2.11=r41he0372cf_0 - - r-invgamma=1.1=r41hc72bb7e_1 - - r-irlba=2.3.5=r41he454529_0 - - r-isoband=0.2.5=r41h03ef668_0 - - r-iterators=1.0.14=r41hc72bb7e_0 - - r-jpeg=0.1_9=r41hcfec24a_0 - - r-jquerylib=0.1.4=r41hc72bb7e_0 - - r-jsonlite=1.8.0=r41h06615bd_0 - - r-kernsmooth=2.23_20=r41h742201e_0 - - r-knitr=1.38=r41hc72bb7e_0 - - r-labeling=0.4.2=r41hc72bb7e_1 - - r-lambda.r=1.2.4=r41hc72bb7e_1 - - r-later=1.2.0=r41h03ef668_0 - - r-lattice=0.20_45=r41hcfec24a_0 - - r-latticeextra=0.6_29=r41hc72bb7e_1 - - r-lazyeval=0.2.2=r41hcfec24a_2 - - r-lifecycle=1.0.1=r41hc72bb7e_0 - - r-locfit=1.5_9.5=r41h06615bd_0 - - r-magrittr=2.0.2=r41hcfec24a_0 - - r-markdown=1.1=r41hcfec24a_1 - - r-mass=7.3_56=r41h06615bd_0 - - r-matrix=1.4_1=r41h0154571_0 - - r-matrixstats=0.61.0=r41hcfec24a_0 - - r-memoise=2.0.1=r41hc72bb7e_0 - - r-mgcv=1.8_39=r41h0154571_0 - - r-mime=0.12=r41hcfec24a_0 - - r-mixsqp=0.3_43=r41h306847c_1 - - r-msigdbr=7.4.1=r41hc72bb7e_0 - - r-munsell=0.5.0=r41hc72bb7e_1004 - - r-mvtnorm=1.1_3=r41h859d828_0 - - r-nlme=3.1_155=r41h859d828_0 - - r-nnet=7.3_17=r41hcfec24a_0 - - r-numderiv=2016.8_1.1=r41hc72bb7e_3 - - r-openssl=2.0.0=r41h1f3e0c5_0 - - r-optparse=1.7.1=r41hc72bb7e_0 - - r-patchwork=1.1.1=r41hc72bb7e_0 - - r-pheatmap=1.0.12=r41hc72bb7e_2 - - r-pillar=1.7.0=r41hc72bb7e_0 - - r-pkgbuild=1.3.1=r41hc72bb7e_0 - - r-pkgconfig=2.0.3=r41hc72bb7e_1 - - r-pkgload=1.2.4=r41h03ef668_0 - - r-pkgmaker=0.32.2=r41hc72bb7e_0 - - r-plogr=0.2.0=r41hc72bb7e_1003 - - r-plyr=1.8.7=r41h7525677_0 - - r-png=0.1_7=r41hcfec24a_1004 - - r-polyclip=1.10_0=r41h03ef668_2 - - r-praise=1.0.0=r41hc72bb7e_1005 - - r-prettyunits=1.1.1=r41hc72bb7e_1 - - r-processx=3.5.3=r41h06615bd_0 - - r-progress=1.2.2=r41hc72bb7e_2 - - r-promises=1.2.0.1=r41h03ef668_0 - - r-ps=1.6.0=r41hcfec24a_0 - - r-purrr=0.3.4=r41hcfec24a_1 - - r-r6=2.5.1=r41hc72bb7e_0 - - r-rappdirs=0.3.3=r41hcfec24a_0 - - r-rcolorbrewer=1.1_2=r41h785f33e_1003 - - r-rcpp=1.0.8.3=r41h7525677_0 - - r-rcpparmadillo=0.10.8.1.0=r41h306847c_0 - - r-rcppeigen=0.3.3.9.1=r41h306847c_0 - - r-rcppnumerical=0.4_0=r41h03ef668_1 - - r-rcurl=1.98_1.6=r41hcfec24a_0 - - r-readr=2.1.2=r41h03ef668_0 - - r-recommended=4.1=r41hd8ed1ab_1004 - - r-registry=0.5_1=r41hc72bb7e_2 - - r-rematch2=2.1.2=r41hc72bb7e_1 - - r-reshape2=1.4.4=r41h03ef668_1 - - r-restfulr=0.0.13=r41h73dbb54_2 - - r-rjson=0.2.21=r41h03ef668_0 - - r-rlang=1.0.2=r41h7525677_0 - - r-rngtools=1.5.2=r41hc72bb7e_0 - - r-rpart=4.1.16=r41hcfec24a_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-sass=0.4.1=r41h7525677_0 - - r-scales=1.1.1=r41hc72bb7e_0 - - r-scatterpie=0.1.6=r41hc72bb7e_0 - - r-shadowtext=0.1.1=r41hc72bb7e_0 - - r-shiny=1.7.1=r41h785f33e_0 - - r-snow=0.4_4=r41hc72bb7e_0 - - r-sourcetools=0.1.7=r41h03ef668_1002 - - r-spatial=7.3_15=r41hcfec24a_0 - - r-squarem=2021.1=r41hc72bb7e_0 - - r-stringi=1.7.6=r41hcabe038_0 - - r-stringr=1.4.0=r41hc72bb7e_2 - - r-survival=3.3_1=r41h06615bd_0 - - r-sys=3.4=r41hcfec24a_0 - - r-testthat=3.1.2=r41h03ef668_0 - - r-tibble=3.1.6=r41hcfec24a_0 - - r-tidygraph=1.2.0=r41h7525677_0 - - r-tidyr=1.2.0=r41h03ef668_0 - - r-tidyselect=1.1.2=r41hc72bb7e_0 - - r-tidytree=0.3.9=r41hc72bb7e_0 - - r-triebeard=0.3.0=r41h9c3ff4c_1003 - - r-truncnorm=1.0_8=r41hcfec24a_1002 - - r-tweenr=1.0.2=r41h03ef668_0 - - r-tzdb=0.2.0=r41h03ef668_0 - - r-upsetr=1.4.0=r41hc72bb7e_2 - - r-urltools=1.7.3=r41h03ef668_2 - - 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.7=r41h03ef668_0 - - r-waldo=0.4.0=r41hc72bb7e_0 - - r-withr=2.5.0=r41hc72bb7e_0 - - r-writexl=1.4.0=r41hcfec24a_0 - - r-xfun=0.30=r41h7525677_0 - - r-xml=3.99_0.9=r41h06615bd_0 - - r-xml2=1.3.3=r41h03ef668_0 - - r-xtable=1.8_4=r41hc72bb7e_3 - - r-yaml=2.3.5=r41h06615bd_0 - - r-yulab.utils=0.0.4=r41hc72bb7e_0 - - r-zeallot=0.1.0=r41hc72bb7e_1003 - - ratelimiter=1.2.0=py37_1000 - - readline=8.1=h46c0cb4_0 - - requests=2.23.0=pyh8c360ce_2 - - rich=12.0.1=pyhd8ed1ab_0 - - rna-seqc=2.3.5=h335d4e2_3 - - rpy2=3.4.5=py37r41hb1e94ed_3 - - rsa=4.0=py_0 - - rsem=1.2.28=0 - - rseqc=3.0.1=py37h516909a_1 - - s3transfer=0.3.3=py37hc8dfbb8_1 - - salmon=1.7.0=h84f40af_0 - - samtools=1.3.1=h41a57b0_9 - - scipy=1.7.3=py37hf2a6cf1_0 - - sed=4.8=he412f7d_0 - - setuptools=46.1.3=py37hc8dfbb8_0 - - simplegeneric=0.8.1=py_1 - - simplejson=3.17.0=py37h8f50634_1 - - six=1.14.0=py_1 - - smmap=3.0.4=pyh9f0ad1d_0 - - snakemake=5.14.0=0 - - snakemake-minimal=5.14.0=py_1 - - spectra=0.0.11=py_1 - - sqlite=3.37.1=h4ff8645_0 - - star=2.7.3a=0 - - subread=2.0.0=hed695b0_0 - - sysroot_linux-64=2.12=he073ed8_15 - - tbb=2020.2=h4bd325d_4 - - tk=8.6.12=h27826a3_0 - - tktable=2.10=h555a92e_3 - - toposort=1.5=py_3 - - tornado=6.0.4=py37h8f50634_1 - - tpmcalculator=0.0.4=h7376a40_0 - - traitlets=4.3.3=py37hc8dfbb8_1 - - trimadap=r9=0 - - typing_extensions=4.1.1=pyha770c72_0 - - tzlocal=2.1=pyh9f0ad1d_0 - - ucsc-bigwigsummary=357=1 - - unicodedata2=14.0.0=py37h5e8e339_0 - - urllib3=1.25.9=py_0 - - wcwidth=0.2.5=pyh9f0ad1d_0 - - wget=1.20.3=ha35d2d1_1 - - wheel=0.34.2=py_1 - - wrapt=1.12.1=py37h8f50634_1 - - xmlrunner=1.7.7=py_0 - - 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=h84519dc_1000 - - xorg-libx11=1.6.9=h516909a_0 - - xorg-libxau=1.0.9=h14c3975_0 - - xorg-libxdmcp=1.1.3=h516909a_0 - - xorg-libxext=1.3.4=h516909a_0 - - xorg-libxfixes=5.0.3=h516909a_1004 - - xorg-libxi=1.7.10=h516909a_0 - - xorg-libxpm=3.5.13=h516909a_0 - - xorg-libxrender=0.9.10=h516909a_1002 - - xorg-libxt=1.1.5=h516909a_1003 - - 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_0 - - yaml=0.2.4=h516909a_0 - - yarl=1.3.0=py37h516909a_1000 - - zipp=3.1.0=py_0 - - zlib=1.2.11=h166bdaf_1014 - - zstd=1.5.2=ha95c52a_0 + - bioconductor-annotate=1.72.0 + - bioconductor-annotationdbi=1.56.1 + - bioconductor-apeglm=1.16.0 + - bioconductor-biobase=2.54.0 + - bioconductor-biocgenerics=0.40.0 + - bioconductor-biomart=2.50.0 + - bioconductor-clusterprofiler=4.2.0 + - bioconductor-deseq2=1.34.0 + - bioconductor-dupradar=1.24.0 + - bioconductor-genomeinfodb=1.30.0 + - bioconductor-genomicranges=1.46.1 + - bioconductor-go.db=3.14.0 + - bioconductor-goseq=1.46.0 + - bioconductor-iranges=2.28.0 + - bioconductor-keggrest=1.34.0 + - bioconductor-org.hs.eg.db=3.14.0 + - bioconductor-org.mm.eg.db=3.14.0 + - bioconductor-qvalue=2.26.0 + - bioconductor-summarizedexperiment=1.24.0 + - bioconductor-tximport=1.22.0 + - cairo=1.16.0 + - r=4.1 + - r-ashr=2.2_54 + - r-base=4.1.1 + - r-biocmanager=1.30.16 + - r-cairo=1.6 + - r-cowplot + - r-curl=4.3.2 + - r-data.table=1.14.2 + - r-dbplyr=2.1.1 + - r-dt=0.26 + - r-ggplot2=3.3.5 + - r-ggraph=2.0.5 + - r-ggrepel=0.9.1 + - r-ggridges=0.5.3 + - r-gplots=3.1.1 + - r-gridextra=2.3 + - r-gtools=3.9.2 + - r-igraph=1.2.11 + - r-knitr=1.38 + - r-magrittr=2.0.2 + - r-markdown=1.1 + - r-matrix=1.4_1 + - r-msigdbr=7.4.1 + - r-nlme=3.1_155 + - r-optparse=1.7.1 + - r-patchwork=1.1.1 + - r-pheatmap=1.0.12 + - r-plotly=4.10.1 + - r-plyr=1.8.7 + - r-purrr=0.3.4 + - r-rcolorbrewer=1.1_2 + - r-readr=2.1.2 + - r-restfulr=0.0.13 + - r-rmarkdown=2.19 + - r-rstudioapi=0.13 + - r-scales=1.1.1 + - r-scatterpie=0.1.6 + - r-shiny=1.7.1 + - r-spatial=7.3_15 + - r-stringi=1.7.6 + - r-stringr=1.4.0 + - r-survival=3.3_1 + - r-testthat=3.1.2 + - r-tibble=3.1.6 + - r-tidyr=1.2.0 + - r-writexl=1.4.0 + - readline=8.1 + - snakemake=7.19.1 + - yaml=0.2.4 diff --git a/tools/ISAtab_parse_conf.yaml b/tools/ISAtab_parse_conf.yaml index a9d3575..f13819a 100644 --- a/tools/ISAtab_parse_conf.yaml +++ b/tools/ISAtab_parse_conf.yaml @@ -29,10 +29,3 @@ instrument: value: ".*illumina.*": "\\g<0>" -lib_types: - columns: - - "Parameter Value\\[Library name mRNA\\]" - - "Parameter Value\\[Library name sample tag\\]" - value: - ".*": {"\\g<0>": "\\col_mode: Parameter Value[Library name mRNA]:Gene Expression,Parameter Value[Library name sample tag]:Antibody Capture"} - add: true \ No newline at end of file diff --git a/tools/pipeline_tools.py b/tools/pipeline_tools.py index c03274a..b96e805 100644 --- a/tools/pipeline_tools.py +++ b/tools/pipeline_tools.py @@ -1445,7 +1445,6 @@ def update_sample_info(self, library_default="unstranded", add=False): if comb.sample not in sample_info: sample_info[comb.sample] = {"stranded": library_default, "read_extension": comb.read_extension} sample_info[comb.sample]["paired_end_extensions"] = [getattr(comb, "mate", "")] - sample_info[comb.sample]["lib_types"] = {comb.lib_type: None} if hasattr(comb, "lib_type") else {} else: if hasattr(comb, "mate"): paired_end_ext = getattr(comb, "mate", "") @@ -1457,14 +1456,6 @@ def update_sample_info(self, library_default="unstranded", add=False): if paired_end_ext not in paired_end_ext_lst: paired_end_ext_lst.append(paired_end_ext) paired_end_ext_lst.sort() - if hasattr(comb, "lib_type"): - lib_types = sample_info[comb.sample]["lib_types"] - if lib_types == {}: - raise ValueError( - "Error compiling sample information: sample {} has names with and without library type information".format( - comb.lib_type)) - if comb.lib_type not in lib_types: - lib_types[comb.lib_type] = None if add: # add missing fields self._add_info_fields(sample_info) From 984e0005de9a44a0f1d5648a69dc620f98f90a20 Mon Sep 17 00:00:00 2001 From: Eric Blanc Date: Fri, 7 Oct 2022 13:37:38 +0200 Subject: [PATCH 10/27] Added profiles for snakemake job submission --- ...r_config.json => cluster_config_drmaa.json | 5 +- cluster_config_sge.json | 125 ++++++++++++++++++ cluster_config_slurm.json | 125 ++++++++++++++++++ sea-snap.py | 31 +++-- 4 files changed, 269 insertions(+), 17 deletions(-) rename cluster_config.json => cluster_config_drmaa.json (86%) create mode 100644 cluster_config_sge.json create mode 100644 cluster_config_slurm.json diff --git a/cluster_config.json b/cluster_config_drmaa.json similarity index 86% rename from cluster_config.json rename to cluster_config_drmaa.json index 3587213..615442a 100644 --- a/cluster_config.json +++ b/cluster_config_drmaa.json @@ -3,9 +3,7 @@ { "snake_opt": "-j 100 -k --restart-times 0 --max-jobs-per-second 5 --rerun-incomplete", - "run_command_sge": "--drmaa=\" -cwd -V -l h_vmem={cluster.h_vmem}M -l h_rt={cluster.h_rt} -pe smp {cluster.pe} -j yes -o {cluster.output} -e {cluster.errors}\"", - - "run_command_slurm": "--drmaa=\" --mem-per-cpu={cluster.h_vmem} -t {cluster.h_rt} -c {cluster.pe} -p medium -o {cluster.output} -e {cluster.errors}\"" + "run_command": "--drmaa=\" --mem-per-cpu={cluster.h_vmem} -t {cluster.h_rt} -c {cluster.pe} -p medium -o {cluster.output} -e {cluster.errors}\"" }, "__default__": @@ -132,3 +130,4 @@ } + diff --git a/cluster_config_sge.json b/cluster_config_sge.json new file mode 100644 index 0000000..bec8fef --- /dev/null +++ b/cluster_config_sge.json @@ -0,0 +1,125 @@ +{ + "__set_run_command__": + { + "snake_opt": "-j 100 -k --restart-times 0 --max-jobs-per-second 5 --rerun-incomplete", + + "run_command": "--drmaa=\" -cwd -V -l mem={cluster.h_vmem}M -l time={cluster.h_rt} -pe smp {cluster.pe} -j yes -o {cluster.output} -e {cluster.errors}\"" + }, + + "__default__": + { + "output": "cluster_log/{rule}.{jobid}.out", + "error": "cluster_log/{rule}.{jobid}.err", + + "h_vmem": "2000M", + "h_rt": "4:00:00", + "pe": "smp 4", + "P":"medium" + }, + + "star": + { + "h_vmem": "20000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "star_index": + { + "h_vmem": "20000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "salmon": + { + "h_vmem": "32000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "salmon_index": + { + "h_vmem": "96000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "generate_transcriptome": + { + "h_vmem": "32000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "feature_counts": + { + "h_vmem": "16000M", + "h_rt": "4:00:00", + "pe": "smp 2" + }, + + "infer_experiment": + { + "h_vmem": "2000M", + "h_rt": "4:00:00", + "pe": "smp 1" + }, + + "qualimap_rnaseq": + { + "h_vmem": "64000M", + "h_rt": "40:00:00", + "pe": "smp 1" + }, + + "qualimap_bamqc": + { + "h_vmem": "64000M", + "h_rt": "40:00:00", + "pe": "smp 1" + }, + + "dupradar": + { + "h_vmem": "4000M", + "h_rt": "40:00:00", + "pe": "smp 1" + }, + + "ciri": + { + "h_vmem": "4000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "bwa": + { + "h_vmem": "4000M", + "h_rt": "40:00:00", + "pe": "smp 8" + }, + + "bwa_index": + { + "h_vmem": "4000M", + "h_rt": "40:00:00", + "pe": "smp 4" + }, + + "cellranger_count": + { + "h_vmem": "4000M", + "h_rt": "40:00:00", + "pe": "smp 1" + }, + + "velocyto_run": + { + "h_vmem": "20000M", + "h_rt": "40:00:00", + "pe": "smp 8" + } +} + diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json new file mode 100644 index 0000000..80823d7 --- /dev/null +++ b/cluster_config_slurm.json @@ -0,0 +1,125 @@ +{ + "__set_run_command__": + { + "snake_opt": "-j 100 -k --restart-times 0 --max-jobs-per-second 5 --rerun-incomplete", + + "run_command": "--profile \"cubi-v1\"" + }, + + "__default__": + { + "output": "cluster_log/{rule}.{jobid}.out", + "error": "cluster_log/{rule}.{jobid}.err", + + "mem": "2000M", + "time": "4:00:00", + "cpus-per-task": 4, + "partition":"medium" + }, + + "star": + { + "mem": "20000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "star_index": + { + "mem": "20000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "salmon": + { + "mem": "32000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "salmon_index": + { + "mem": "96000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "generate_transcriptome": + { + "mem": "32000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "feature_counts": + { + "mem": "16000M", + "time": "4:00:00", + "cpus-per-task": 2 + }, + + "infer_experiment": + { + "mem": "2000M", + "time": "4:00:00", + "cpus-per-task": 1 + }, + + "qualimap_rnaseq": + { + "mem": "64000M", + "time": "40:00:00", + "cpus-per-task": 1 + }, + + "qualimap_bamqc": + { + "mem": "64000M", + "time": "40:00:00", + "cpus-per-task": 1 + }, + + "dupradar": + { + "mem": "4000M", + "time": "40:00:00", + "cpus-per-task": 1 + }, + + "ciri": + { + "mem": "4000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "bwa": + { + "mem": "4000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + + "bwa_index": + { + "mem": "4000M", + "time": "40:00:00", + "cpus-per-task": 4 + }, + + "cellranger_count": + { + "mem": "4000M", + "time": "40:00:00", + "cpus-per-task": 1 + }, + + "velocyto_run": + { + "mem": "20000M", + "time": "40:00:00", + "cpus-per-task": 8 + } +} + diff --git a/sea-snap.py b/sea-snap.py index dc3a496..3114e07 100755 --- a/sea-snap.py +++ b/sea-snap.py @@ -17,11 +17,16 @@ sc="sc_config.yaml", ) -CLUSTER_CONFIG = "cluster_config.json" +CLUSTER_CONFIG = dict( + sge="cluster_config_sge.json", + drmaa="cluster_config_drmaa.json", + slurm="cluster_config_slurm.json", +) CLUSTER_START = dict( sge="export /opt/sge/lib/lx-amd64/libdrmaa.so; qsub -cwd -V -pe smp 1 -l h_vmem=4G -l h_rt=100:00:00 -P control -j y -o pipeline_log.out -e pipeline_log.err run_pipeline.sh", - slurm="unset DRMAA_LIBRARY_PATH; unset DISPLAY; sbatch -c 1 --mem-per-cpu=4G -t 100:00:00 -p medium -o pipeline_log.out -e pipeline_log.err run_pipeline.sh", + drmaa="unset DRMAA_LIBRARY_PATH; unset DISPLAY; sbatch -c 1 --mem-per-cpu=4G -t 100:00:00 -p medium -o pipeline_log.out -e pipeline_log.err run_pipeline.sh", + slurm="unset DISPLAY; sbatch -c 1 --mem-per-cpu=4G -t 100:00:00 -p medium -o pipeline_log.out -e pipeline_log.err run_pipeline.sh", ) @@ -49,8 +54,9 @@ def setup_working_directory(args): for configf in config_files: shutil.copy(str(configf), str(working_dir / configf.name)) - cl_config = SCRIPT_DIR / CLUSTER_CONFIG - shutil.copy(str(cl_config), str(working_dir / cl_config.name)) + # copy cluster config files + for _, cl_config in CLUSTER_CONFIG.items(): + shutil.copy(str(SCRIPT_DIR / cl_config), str(working_dir / cl_config)) # symlink to wrapper (working_dir / "sea-snap").symlink_to(SCRIPT_DIR / "sea-snap.py") @@ -187,20 +193,17 @@ def run_pipeline(snakefile, args): command += " " + " ".join(args.snake_options) # cluster command elif args.mode in ["cluster", "c"]: - with open(CLUSTER_CONFIG, "r") as json_file: + method = args.submit + with open(CLUSTER_CONFIG[method], "r") as json_file: data = json.load(json_file) Path("cluster_log").mkdir(exist_ok=True) run_script = Path("run_pipeline.sh") s_command = "#!/bin/bash\nsnakemake --snakefile {sfile}".format(sfile = str(SCRIPT_DIR / snakefile)) if args.snake_options: s_command += " " + " ".join(args.snake_options) s_command += " " + data["__set_run_command__"]["snake_opt"] - s_command += " " + "--cluster-config " + CLUSTER_CONFIG - if args.slurm: - s_command += " " + data["__set_run_command__"]["run_command_slurm"] - else: - s_command += " " + data["__set_run_command__"]["run_command_sge"] + s_command += " " + "--cluster-config " + CLUSTER_CONFIG[method] + " " + data["__set_run_command__"]["run_command"] + command = "set -e;" + CLUSTER_START[method] run_script.write_text(s_command) - command = "set -e;" + CLUSTER_START["slurm" if args.slurm else "sge"] print(command) # run os.system(command) @@ -283,21 +286,21 @@ def run_sc_pipeline(args): #--- parser for mapping pipeline parser_mapping = subparsers.add_parser('mapping', help="run mapping pipeline") parser_mapping.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_mapping.add_argument('--slurm', action='store_true', help="run using SLURM; default is SGE; only used in cluster mode") +parser_mapping.add_argument("--submit", choices=["sge", "drmaa", "slurm"], default="slurm", help="select jobs submission method") parser_mapping.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") parser_mapping.set_defaults(func=run_mapping_pipeline) #--- parser for DE pipeline parser_DE = subparsers.add_parser('DE', help="run DE pipeline") parser_DE.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_DE.add_argument('--slurm', action='store_true', help="run using SLURM; default is SGE; only used in cluster mode") +parser_DE.add_argument("--submit", choices=["sge", "drmaa", "slurm"], default="slurm", help="select jobs submission method") parser_DE.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") parser_DE.set_defaults(func=run_DE_pipeline) #--- parser for sc pipeline parser_DE = subparsers.add_parser('sc', help="run single cell pipeline") parser_DE.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_DE.add_argument('--slurm', action='store_true', help="run using SLURM; default is SGE; only used in cluster mode") +parser_DE.add_argument("--submit", choices=["sge", "drmaa", "slurm"], default="slurm", help="select jobs submission method") parser_DE.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") parser_DE.set_defaults(func=run_sc_pipeline) From 62abfa86c4fc35cfa4a97b7ea3914cfa87681f28 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 10:31:11 +0100 Subject: [PATCH 11/27] added conda environment from Nicolai's branch --- README.md | 8 +-- conda_env.yaml => conda_env_DE.yaml | 51 ++++++------------- conda_env_de.yaml | 77 ----------------------------- conda_env_mapping.yaml | 55 +++++++++------------ 4 files changed, 42 insertions(+), 149 deletions(-) rename conda_env.yaml => conda_env_DE.yaml (68%) delete mode 100644 conda_env_de.yaml diff --git a/README.md b/README.md index d78833f..3a48427 100644 --- a/README.md +++ b/README.md @@ -61,19 +61,19 @@ and `sea_snap_de`: ``` conda env create -f conda_env_mapping.yaml -conda env create -f conda_env_de.yaml +conda env create -f conda_env_DE.yaml ``` -The files `conda_env_mapping.yaml` and `conda_env_de.yaml` are located in the main directory of the git repository. +The files `conda_env_mapping.yaml` and `conda_env_DE.yaml` are located in the main directory of the git repository. Each time before using SeA-SnaP, activate the environment with: ``` -conda activate sea_snap_mapping +conda activate seasnap-mapping ``` or ``` -conda activate sea_snap_de +conda activate seasnap-de ``` ### Running the pipeline diff --git a/conda_env.yaml b/conda_env_DE.yaml similarity index 68% rename from conda_env.yaml rename to conda_env_DE.yaml index 498f1ab..efa3192 100644 --- a/conda_env.yaml +++ b/conda_env_DE.yaml @@ -1,35 +1,13 @@ -name: sea_snap +name: seasnap-de channels: - - bioconda - conda-forge + - bioconda - defaults dependencies: - - python - - r - - - bamtools - - bedtools - - fastqc - - macs2 - - multiqc - - picard - - preseq - - qualimap - - rna-seqc - - rsa - - rsem - - rseqc - - salmon - - samtools - - sqlite - - star - - subread - - tpmcalculator - - trimadap - - vim - - rpy2 - - - bioconductor-deseq2 + - python>=3.9 + - snakemake=7.19 + - r-base>=4.1 + - bioconductor-deseq2=1.38 - bioconductor-genomicfeatures - bioconductor-annotationdbi - bioconductor-org.hs.eg.db # annotation for human @@ -37,7 +15,6 @@ dependencies: - bioconductor-tximport - bioconductor-goseq - bioconductor-apeglm - - bioconductor-dupradar - bioconductor-biomart - bioconductor-enrichplot - bioconductor-clusterprofiler @@ -48,7 +25,6 @@ dependencies: - bioconductor-rtracklayer - r-blob - r-cairo - - r-cellranger - r-cowplot - r-crayon - r-devtools @@ -57,6 +33,7 @@ dependencies: - r-ggplotify - r-readr - r-readxl + - r-writexl - r-roxygen2 - r-tidyr - r-tidyselect @@ -64,13 +41,17 @@ dependencies: - r-ashr - r-pheatmap - r-shiny - - r-msigdbr + - r-msigdbr>=7.4 - r-dplyr - r-biocmanager - r-xml2 - r-xopen - + - r-tmod>=0.50.11 +# Required for the actual report + - r-dt + - r-purrr + - r-plotly + - r-pander + - bioconductor-vsn + - r-tidyverse - drmaa - - snakemake - - diff --git a/conda_env_de.yaml b/conda_env_de.yaml deleted file mode 100644 index 3ffb240..0000000 --- a/conda_env_de.yaml +++ /dev/null @@ -1,77 +0,0 @@ -name: sea_snap_de -channels: - - conda-forge - - default - - bioconda - - defaults -dependencies: - - bioconductor-annotate=1.72.0 - - bioconductor-annotationdbi=1.56.1 - - bioconductor-apeglm=1.16.0 - - bioconductor-biobase=2.54.0 - - bioconductor-biocgenerics=0.40.0 - - bioconductor-biomart=2.50.0 - - bioconductor-clusterprofiler=4.2.0 - - bioconductor-deseq2=1.34.0 - - bioconductor-dupradar=1.24.0 - - bioconductor-genomeinfodb=1.30.0 - - bioconductor-genomicranges=1.46.1 - - bioconductor-go.db=3.14.0 - - bioconductor-goseq=1.46.0 - - bioconductor-iranges=2.28.0 - - bioconductor-keggrest=1.34.0 - - bioconductor-org.hs.eg.db=3.14.0 - - bioconductor-org.mm.eg.db=3.14.0 - - bioconductor-qvalue=2.26.0 - - bioconductor-summarizedexperiment=1.24.0 - - bioconductor-tximport=1.22.0 - - cairo=1.16.0 - - r=4.1 - - r-ashr=2.2_54 - - r-base=4.1.1 - - r-biocmanager=1.30.16 - - r-cairo=1.6 - - r-cowplot - - r-curl=4.3.2 - - r-data.table=1.14.2 - - r-dbplyr=2.1.1 - - r-dt=0.26 - - r-ggplot2=3.3.5 - - r-ggraph=2.0.5 - - r-ggrepel=0.9.1 - - r-ggridges=0.5.3 - - r-gplots=3.1.1 - - r-gridextra=2.3 - - r-gtools=3.9.2 - - r-igraph=1.2.11 - - r-knitr=1.38 - - r-magrittr=2.0.2 - - r-markdown=1.1 - - r-matrix=1.4_1 - - r-msigdbr=7.4.1 - - r-nlme=3.1_155 - - r-optparse=1.7.1 - - r-patchwork=1.1.1 - - r-pheatmap=1.0.12 - - r-plotly=4.10.1 - - r-plyr=1.8.7 - - r-purrr=0.3.4 - - r-rcolorbrewer=1.1_2 - - r-readr=2.1.2 - - r-restfulr=0.0.13 - - r-rmarkdown=2.19 - - r-rstudioapi=0.13 - - r-scales=1.1.1 - - r-scatterpie=0.1.6 - - r-shiny=1.7.1 - - r-spatial=7.3_15 - - r-stringi=1.7.6 - - r-stringr=1.4.0 - - r-survival=3.3_1 - - r-testthat=3.1.2 - - r-tibble=3.1.6 - - r-tidyr=1.2.0 - - r-writexl=1.4.0 - - readline=8.1 - - snakemake=7.19.1 - - yaml=0.2.4 diff --git a/conda_env_mapping.yaml b/conda_env_mapping.yaml index 5f7e3f8..7a73891 100644 --- a/conda_env_mapping.yaml +++ b/conda_env_mapping.yaml @@ -1,39 +1,28 @@ -name: sea_snap_mapping +name: seasnap-mapping channels: - conda-forge - - default - bioconda - defaults dependencies: - - bamtools=2.5.1 - - bedtools=2.29.2 - - biopython=1.76 - - bioconductor-dupradar=1.14.0 - - fastqc=0.11.9 - - gitpython=3.1.2 - - graphviz=2.42.3 - - markdown=3.2.1 - - multiqc=1.8 - - networkx=2.2 - - numpy=1.18.4 - - pandas=1.0.3 - - picard=2.22.4 - - pip=20.1 - - preseq=2.0.3 - - pybigwig=0.3.17 - - pysam=0.15.3 - - python=3.7.6 - - python-irodsclient=0.8.2 - - qualimap=2.2.2d - - readline=8.0 - - rna-seqc=2.3.5 - - rsem=1.3.3 - - rseqc=3.0.1 - - salmon=1.2.1 - - samtools=1.9 - - snakemake=7.19.1 + - python>=3.9 + - snakemake=7.19 + - bamtools + - bedtools + - fastqc + - macs2 + - multiqc + - picard + - preseq + - qualimap + - rna-seqc + - rsem + - salmon + - samtools=1.16 + - sqlite - star=2.7.3a - - subread=2.0.0 - - tpmcalculator=0.0.4 - - trimadap=r9 - - ucsc-bigwigsummary=357 + - subread=2.0 + - tpmcalculator + - trimadap + - drmaa + - bioconductor-dupradar + - rseqc From 407b9de8fb1d75348f886606c543dbd9792b34c9 Mon Sep 17 00:00:00 2001 From: Benedikt Obermayer Date: Mon, 6 Feb 2023 19:28:40 +0100 Subject: [PATCH 12/27] fix problem in preseq for paired-end data --- mapping_pipeline.snake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mapping_pipeline.snake b/mapping_pipeline.snake index 44cb8d9..16f2075 100644 --- a/mapping_pipeline.snake +++ b/mapping_pipeline.snake @@ -822,7 +822,7 @@ rule preseq_lc_extrap: mem_mb=32000, h_rt="24:00:00" run: - paired = "-P -l 10000000" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" + paired = "-P" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" script = textwrap.dedent(r""" #----- prepare @@ -847,7 +847,7 @@ rule preseq_c_curve: mem_mb=32000, h_rt="24:00:00" run: - paired = "-P -l 10000000" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" + paired = "-P" if len(config["sample_info"][wildcards.sample]["paired_end_extensions"])>1 else "" script = textwrap.dedent(r""" #----- prepare From 41e4ca7a3192a0d5189661ffdca720ce97053e84 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 12:33:43 +0100 Subject: [PATCH 13/27] removed a bit of remaining SC code --- sea-snap.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sea-snap.py b/sea-snap.py index 8c96cff..d73d8a6 100755 --- a/sea-snap.py +++ b/sea-snap.py @@ -289,13 +289,6 @@ def run_DE_pipeline(args): parser_DE.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") parser_DE.set_defaults(func=run_DE_pipeline) -#--- parser for sc pipeline -parser_DE = subparsers.add_parser('sc', help="run single cell pipeline") -parser_DE.add_argument('mode', choices=["local","l","cluster","c"], help="run locally or on cluster?") -parser_DE.add_argument("--submit", choices=["sge", "drmaa", "slurm"], default="slurm", help="select jobs submission method") -parser_DE.add_argument('snake_options', nargs=argparse.REMAINDER, help="pass options to snakemake (...)") -parser_DE.set_defaults(func=run_sc_pipeline) - #--- parser for cleanup_cluster_log parser_cleanup_log = subparsers.add_parser('cleanup_log', help="delete log files from cluster execution") parser_cleanup_log.set_defaults(func=cleanup_cluster_log) From 174e05420096e8a713d8da4cbb286a2faacd06c3 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 12:34:00 +0100 Subject: [PATCH 14/27] fine tuning configuration --- cluster_config_slurm.json | 2 +- conda_env_DE.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json index 80823d7..cbda030 100644 --- a/cluster_config_slurm.json +++ b/cluster_config_slurm.json @@ -26,7 +26,7 @@ "star_index": { - "mem": "20000M", + "mem": "40000M", "time": "40:00:00", "cpus-per-task": 8 }, diff --git a/conda_env_DE.yaml b/conda_env_DE.yaml index efa3192..7a46865 100644 --- a/conda_env_DE.yaml +++ b/conda_env_DE.yaml @@ -38,6 +38,7 @@ dependencies: - r-tidyr - r-tidyselect - r-testthat + - r-remotes - r-ashr - r-pheatmap - r-shiny From d20d606cd6d39b026453627b2f086ecf9f25c547 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 12:34:18 +0100 Subject: [PATCH 15/27] added workaround for installing orthomapper --- README.md | 7 +++++++ install_r_packages.R | 1 + 2 files changed, 8 insertions(+) create mode 100644 install_r_packages.R diff --git a/README.md b/README.md index 3a48427..a154f6d 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,13 @@ or conda activate seasnap-de ``` +Finally, run the following command in the seasnap-de environment: + +``` +conda activate seasnap-de +Rscript install_r_packages.R +``` + ### Running the pipeline **set up a working directory** diff --git a/install_r_packages.R b/install_r_packages.R new file mode 100644 index 0000000..af7270f --- /dev/null +++ b/install_r_packages.R @@ -0,0 +1 @@ +remotes::install_github("bihealth/orthomapper") From a5d8279536f6d51423718ce2a076e2c2d8070357 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 12:59:33 +0100 Subject: [PATCH 16/27] removed tpm calculator from the mapping pipeline --- conda_env_mapping.yaml | 1 - mapping_pipeline.snake | 33 --------------------------------- 2 files changed, 34 deletions(-) diff --git a/conda_env_mapping.yaml b/conda_env_mapping.yaml index 7a73891..2373670 100644 --- a/conda_env_mapping.yaml +++ b/conda_env_mapping.yaml @@ -21,7 +21,6 @@ dependencies: - sqlite - star=2.7.3a - subread=2.0 - - tpmcalculator - trimadap - drmaa - bioconductor-dupradar diff --git a/mapping_pipeline.snake b/mapping_pipeline.snake index 16f2075..d1d3ee8 100644 --- a/mapping_pipeline.snake +++ b/mapping_pipeline.snake @@ -74,7 +74,6 @@ def get_inputs_all(): if "star-gene_counts" in mapping_choices: inputs += pph.expand_path("star", "bam", fix="!sample") inputs += pph.expand_path("feature_counts", "feature_counts", fix="!sample") - inputs += pph.expand_path("tpm_calculator", "tsv", fix="!sample") if "salmon-transcript_counts" in mapping_choices: inputs += pph.expand_path("salmon", "sf", fix="!sample") if "ciri-circRNA" in mapping_choices: @@ -423,38 +422,6 @@ rule macs2: - - - - -rule tpm_calculator: - input: - bam = pph.file_path(step="star", extension="bam"), - gtf = config["organism"]["files"]["gtf"] - output: - pph.file_path(step="tpm_calculator", extension="tsv") - log: - out = pph.file_path(step="tpm_calculator", extension="output.log", log=True) - params: - nsrt_bam = pph.file_path(step="tpm_calculator", extension="name_sorted.bam") - resources: - mem_mb=4000, - h_rt="4:00:00" - run: - script = textwrap.dedent(r""" - #----- prepare - set -eux - TPMCalculator -version || true - - #----- run TPMCalculator - TPMCalculator -g {input.gtf} -b {input.bam} - cut -f1,7 $(basename {input.bam} .bam)_genes.out > {output} - mv $(basename {input.bam} .bam)_genes.* $(dirname {output}) - """) - - script_file = pph.log(log.out, snakemake_format(script), step="tpm_calculator", extension="sh", **wildcards) - shell("bash '{script_file}' &>> '{log.out}'") - ##-------------------- bwa --------------------------------------------------------------------------------- GENOME_FILE_NAME = os.path.basename(config["organism"]["files"]["genome"]) From ee0339d2851e1154c682a38211da40e85a73f6ae Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 15:14:13 +0100 Subject: [PATCH 17/27] added a BUGS file --- BUGS.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 BUGS.md diff --git a/BUGS.md b/BUGS.md new file mode 100644 index 0000000..3a10c2a --- /dev/null +++ b/BUGS.md @@ -0,0 +1,3 @@ + * For some reason, load(tidyverse) does not work correctly in the + environment seasnap-de. However, dplyr and other base tidyverse packages + load without issue. From 813f1a7894089d4400c1d7cf4f4ee68737368be6 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 15:16:00 +0100 Subject: [PATCH 18/27] got rid of an annoying error message --- DE_config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DE_config.yaml b/DE_config.yaml index 7d46f13..cf74af7 100644 --- a/DE_config.yaml +++ b/DE_config.yaml @@ -42,7 +42,7 @@ pipeline_param: mapping: - import_gene_counts - import_sf - - import_feature_counts + - import_featurecounts From 023c8676c3befd8806bde0306832012b1a52fe86 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 7 Feb 2023 16:59:06 +0100 Subject: [PATCH 19/27] identified a cluster profiler problem --- BUGS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BUGS.md b/BUGS.md index 3a10c2a..63df50a 100644 --- a/BUGS.md +++ b/BUGS.md @@ -1,3 +1,6 @@ * For some reason, load(tidyverse) does not work correctly in the environment seasnap-de. However, dplyr and other base tidyverse packages load without issue. + + * cluster profile doesn't work, but only when called from the pipeline. + Running the script interactively works well. From 5a9b30a47e746b4a2eead67443fd098fc7806ad7 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Thu, 9 Feb 2023 15:57:55 +0100 Subject: [PATCH 20/27] fixed the name of the cubi slurm profile --- cluster_config_slurm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json index cbda030..f20cee9 100644 --- a/cluster_config_slurm.json +++ b/cluster_config_slurm.json @@ -3,7 +3,7 @@ { "snake_opt": "-j 100 -k --restart-times 0 --max-jobs-per-second 5 --rerun-incomplete", - "run_command": "--profile \"cubi-v1\"" + "run_command": "--profile \"cubi-dev\"" }, "__default__": From 10a8cd28e01ac7584bd13904fdcdaac98e16ad48 Mon Sep 17 00:00:00 2001 From: January Weiner Date: Mon, 13 Feb 2023 14:06:46 +0100 Subject: [PATCH 21/27] changed default job submission config for the star rule (increased memory) --- cluster_config_slurm.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json index f20cee9..8bef6bf 100644 --- a/cluster_config_slurm.json +++ b/cluster_config_slurm.json @@ -19,15 +19,15 @@ "star": { - "mem": "20000M", - "time": "40:00:00", + "mem": "40000M", + "time": "8:00:00", "cpus-per-task": 8 }, "star_index": { "mem": "40000M", - "time": "40:00:00", + "time": "8:00:00", "cpus-per-task": 8 }, From a30386aadb1a064eb06c439db9fa9a104a01360d Mon Sep 17 00:00:00 2001 From: January Weiner Date: Mon, 13 Feb 2023 16:13:19 +0100 Subject: [PATCH 22/27] added cluster_config rule for cluster_profiler --- cluster_config_slurm.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json index 8bef6bf..b94fd82 100644 --- a/cluster_config_slurm.json +++ b/cluster_config_slurm.json @@ -120,6 +120,15 @@ "mem": "20000M", "time": "40:00:00", "cpus-per-task": 8 + }, + + "cluster_profiler": + { + "mem": "8000M", + "time": "4:00:00", + "cpus-per-task": 8 } + + } From 08ab72b4918fcc70b5aba411d288a79982b7fe65 Mon Sep 17 00:00:00 2001 From: AndranikIvanov Date: Thu, 16 Feb 2023 17:46:35 +0100 Subject: [PATCH 23/27] resource specification for tmod_dbs and preseq rules --- cluster_config_slurm.json | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json index b94fd82..5f9d9e1 100644 --- a/cluster_config_slurm.json +++ b/cluster_config_slurm.json @@ -19,15 +19,15 @@ "star": { - "mem": "40000M", - "time": "8:00:00", + "mem": "60000M", + "time": "40:00:00", "cpus-per-task": 8 }, "star_index": { "mem": "40000M", - "time": "8:00:00", + "time": "40:00:00", "cpus-per-task": 8 }, @@ -121,14 +121,24 @@ "time": "40:00:00", "cpus-per-task": 8 }, - - "cluster_profiler": + "preseq_lc_extrap": { - "mem": "8000M", - "time": "4:00:00", + "mem": "40000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + "preseq_c_curve": + { + "mem": "40000M", + "time": "40:00:00", + "cpus-per-task": 8 + }, + "tmod_dbs": + { + "mem": "16000M", + "time": "40:00:00", "cpus-per-task": 8 } - } From ab65edddda287abf2ab98aa4628fb4670f999cca Mon Sep 17 00:00:00 2001 From: January Weiner Date: Mon, 20 Feb 2023 12:03:28 +0100 Subject: [PATCH 24/27] re-introduced the cluster profiler rule --- cluster_config_slurm.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cluster_config_slurm.json b/cluster_config_slurm.json index 5f9d9e1..49526b8 100644 --- a/cluster_config_slurm.json +++ b/cluster_config_slurm.json @@ -20,14 +20,14 @@ "star": { "mem": "60000M", - "time": "40:00:00", + "time": "8:00:00", "cpus-per-task": 8 }, "star_index": { "mem": "40000M", - "time": "40:00:00", + "time": "8:00:00", "cpus-per-task": 8 }, @@ -136,9 +136,19 @@ "tmod_dbs": { "mem": "16000M", - "time": "40:00:00", + "time": "8:00:00", + "cpus-per-task": 8 + }, + + "cluster_profiler": + { + "mem": "8000M", + "time": "4:00:00", "cpus-per-task": 8 } + } + + From a4bcb12ba2335e610f538ceb0d3154fd3f85da1a Mon Sep 17 00:00:00 2001 From: AndranikIvanov Date: Wed, 22 Feb 2023 16:23:54 +0100 Subject: [PATCH 25/27] added bwa --- conda_env_mapping.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/conda_env_mapping.yaml b/conda_env_mapping.yaml index 2373670..cd9cdb4 100644 --- a/conda_env_mapping.yaml +++ b/conda_env_mapping.yaml @@ -25,3 +25,4 @@ dependencies: - drmaa - bioconductor-dupradar - rseqc + - bwa From c3d5180b056596eb03f83f57b088430765fe160b Mon Sep 17 00:00:00 2001 From: January Weiner Date: Tue, 28 Feb 2023 15:15:06 +0100 Subject: [PATCH 26/27] changed tidyverse dependence to dplr/purrr dependence for tmod functions --- external_scripts/tmod_functions.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/external_scripts/tmod_functions.R b/external_scripts/tmod_functions.R index 3fd6f83..cb2220a 100644 --- a/external_scripts/tmod_functions.R +++ b/external_scripts/tmod_functions.R @@ -4,7 +4,8 @@ library(glue) #' Volcano plots with ggplot ggvolcano <- function(lfc, pvals, symbol=NULL, xlim=NULL, ylim=NULL, pval.thr=.05, lfc.thr=1) { - require(tidyverse) + require(dplyr) + require(purrr) require(ggplot2) p.t <- pval.thr @@ -52,7 +53,8 @@ tmod_filter_format_res <- function(res, pval.thr=.05, AUC.thr=.65) { if(is.null(res)) { return(res) } - require(tidyverse) + require(dplyr) + require(purrr) require(DT) res <- res %>% From 8a65d78bc870dcb2b50138e9ec06671e544ad76f Mon Sep 17 00:00:00 2001 From: Miha Milek <48878612+mmilek@users.noreply.github.com> Date: Fri, 24 Mar 2023 10:42:51 +0100 Subject: [PATCH 27/27] add picard memory assignment in star rule --- mapping_pipeline.snake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapping_pipeline.snake b/mapping_pipeline.snake index d1d3ee8..121a109 100644 --- a/mapping_pipeline.snake +++ b/mapping_pipeline.snake @@ -341,7 +341,7 @@ rule star: mv {params.outdir}/Aligned.out.bam {output.usrt_bam} #----- mark duplicates - picard MarkDuplicates I={output.bam} O={params.outdir}/{wildcards.sample}.mdup.bam M={params.outdir}/{wildcards.sample}.metrics.out TMP_DIR={params.outdir} + picard -Xmx48G MarkDuplicates I={output.bam} O={params.outdir}/{wildcards.sample}.mdup.bam M={params.outdir}/{wildcards.sample}.metrics.out TMP_DIR={params.outdir} mv {params.outdir}/{wildcards.sample}.mdup.bam {output.bam} #----- generate BAM index (.bai)