diff --git a/GEMmaker/Dockerfile b/GEMmaker/Dockerfile deleted file mode 100644 index 0c0312f..0000000 --- a/GEMmaker/Dockerfile +++ /dev/null @@ -1,104 +0,0 @@ -FROM ubuntu:xenial -MAINTAINER Cole McKnight - -# -# Install package dependencies -# -RUN apt-get update \ - && apt-get install -y default-jre git lbzip2 libbz2-dev libfuse2 liblzma-dev liblua5.2-dev lua5.2 lua-filesystem-dev lua-posix-dev python3 python3-pip tcl unzip vim wget zlib1g-dev \ - && pip3 install matplotlib multiqc numpy pandas xmltodict - -# -# Install other bioinformatics tools as Lmod modules -# -WORKDIR /opt - -# -# Install the Lmod module system -# -RUN wget -q https://github.com/TACC/Lmod/archive/7.8.4.tar.gz \ - && tar -xf 7.8.4.tar.gz \ - && cd Lmod-7.8.4 \ - && ./configure -q --prefix=/usr/local \ - && make -s install \ - && ln -s /usr/local/lmod/lmod/init/profile /etc/profile.d/z00_lmod.sh \ - && ln -s /usr/local/lmod/lmod/init/cshrc /etc/profile.d/z00_lmod.csh \ - && mkdir -p /usr/local/modulefiles/Linux \ - && echo "source /etc/profile.d/z00_lmod.sh" >> ~/.bashrc \ - && rm -f 7.8.4.tar.gz - -# -# Install sratoolkit -# -RUN wget -q https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2/sratoolkit.2.8.2-ubuntu64.tar.gz \ - && tar -xf sratoolkit.2.8.2-ubuntu64.tar.gz \ - && mv sratoolkit.2.8.2-ubuntu64 /usr/local/sratoolkit.2.8.2 \ - && rm -f sratoolkit.2.8.2-ubuntu64.tar.gz - -# -# Install trimmomatic -# -RUN wget -q http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.38.zip \ - && unzip -q Trimmomatic-0.38.zip \ - && mv Trimmomatic-0.38 /usr/local \ - && rm -f Trimmomatic-0.38.zip - -# -# Install hisat2 -# -RUN wget -q ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-Linux_x86_64.zip \ - && unzip -q hisat2-2.1.0-Linux_x86_64.zip \ - && mv hisat2-2.1.0 /usr/local \ - && rm -f hisat2-2.1.0-Linux_x86_64.zip - -# -# Install samtools -# -RUN wget -q https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2 \ - && tar -xf samtools-1.9.tar.bz2 \ - && cd samtools-1.9 \ - && ./configure -q --prefix=/usr/local/samtools-1.9 --without-curses \ - && make -s install \ - && rm -f samtools-1.9.tar.bz2 - -# -# Install stringtie -# -RUN wget -q http://ccb.jhu.edu/software/stringtie/dl/stringtie-1.3.4d.Linux_x86_64.tar.gz \ - && tar -xf stringtie-1.3.4d.Linux_x86_64.tar.gz \ - && mv stringtie-1.3.4d.Linux_x86_64 /usr/local/stringtie-1.3.4d \ - && rm -f stringtie-1.3.4d.Linux_x86_64.tar.gz - -# -# Install fastqc -# -RUN wget -q https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.7.zip \ - && unzip -q fastqc_v0.11.7.zip \ - && chmod +x FastQC/fastqc \ - && mv FastQC /usr/local/FastQC-0.11.7 \ - && rm -f fastqc_v0.11.7.zip - -# -# Install modulefiles for all of the bioinformatics tools -# -ADD modulefiles/. /usr/local/modulefiles/Linux - -# -# Install nextflow -# -RUN wget -q -O - https://get.nextflow.io | bash \ - && chmod +x nextflow \ - && mv nextflow /usr/local/bin - -# -# Install irods-icommands -# -RUN wget -q ftp://ftp.renci.org/pub/irods/releases/4.1.11/ubuntu14/irods-icommands-4.1.11-ubuntu14-x86_64.deb \ - && dpkg -i irods-icommands-4.1.11-ubuntu14-x86_64.deb \ - && rm -f irods-icommands-4.1.11-ubuntu14-x86_64.deb - -# -# Install GEMmaker -# -WORKDIR /root -RUN git clone https://github.com/SystemsGenetics/GEMmaker.git diff --git a/GEMmaker/modulefiles/fastQC/0.11.7.lua b/GEMmaker/modulefiles/fastQC/0.11.7.lua deleted file mode 100644 index fcb1b6e..0000000 --- a/GEMmaker/modulefiles/fastQC/0.11.7.lua +++ /dev/null @@ -1,11 +0,0 @@ --- -*- lua -*- -whatis("Modern high throughput sequencers can generate hundreds of millions of sequences in a single run. Before analysing this sequence to draw biological conclusions you should always perform some simple quality control checks to ensure that the raw data looks good and there are no problems or biases in your data which may affect how you can usefully use it. Most sequencers will generate a QC report as part of their analysis pipeline, but this is usually only focused on identifying problems which were generated by the sequencer itself. FastQC aims to provide a QC report which can spot problems which originate either in the sequencer or in the starting library material. FastQC can be run in one of two modes. It can either run as a stand alone interactive application for the immediate analysis of small numbers of FastQ files, or it can be run in a non-interactive mode where it would be suitable for integrating into a larger analysis pipeline for the systematic processing of large numbers of files.") - -prepend_path("PATH", "/usr/local/FastQC-0.11.7/") - - ---[[ -Build: - # unzip, that's all ---]] - diff --git a/GEMmaker/modulefiles/hisat2/2.1.0.lua b/GEMmaker/modulefiles/hisat2/2.1.0.lua deleted file mode 100644 index ee8dca0..0000000 --- a/GEMmaker/modulefiles/hisat2/2.1.0.lua +++ /dev/null @@ -1,11 +0,0 @@ --- -*- lua -*- -whatis("HISAT2 is a fast and sensitive alignment program for mapping next-generation sequencing reads (both DNA and RNA) to a population of human genomes (as well as against a single reference genome). Based on an extension of BWT for graphs [Sirén et al. 2014], we designed and implemented a graph FM index (GFM), an original approach and its first implementation to the best of our knowledge. In addition to using one global GFM index that represents a population of human genomes, HISAT2 uses a large set of small GFM indexes that collectively cover the whole genome (each index representing a genomic region of 56 Kbp, with 55,000 indexes needed to cover the human population). These small indexes (called local indexes), combined with several alignment strategies, enable rapid and accurate alignment of sequencing reads. This new indexing scheme is called a Hierarchical Graph FM index (HGFM).") - -prepend_path("PATH", "/usr/local/hisat2-2.1.0") - - ---[[ -Build: - # unzip, that's all ---]] - diff --git a/GEMmaker/modulefiles/python3/3.6.5.lua b/GEMmaker/modulefiles/python3/3.6.5.lua deleted file mode 100644 index 1178e55..0000000 --- a/GEMmaker/modulefiles/python3/3.6.5.lua +++ /dev/null @@ -1,19 +0,0 @@ --- -*- lua -*- -whatis("Description: Python is a widely used general-purpose, high-level programming language. This is the first program installed by JohnHadish on Kamiak, so be aware of this when using.") - -prepend_path("PATH", "/usr/local/Python-3.6.5/bin") -prepend_path("LD_LIBRARY_PATH", "/usr/local/Python-3.6.5/lib") -prepend_path("CPATH", "/usr/local/Python-3.6.5/include") -prepend_path("MANPATH", "/usr/local/Python-3.6.5/man") - - ---[[ -Compiled with: gcc 6.1.0 -Build: - $ ./configure --prefix=/usr/local/Python-3.6.5 - $ make -j20 - $ make install - # wget https://bootstrap.pypa.io/get-pip.py - # python get-pip.py --prefix=/usr/local/python-3.6.5 ---]] - diff --git a/GEMmaker/modulefiles/samtools/1.9.lua b/GEMmaker/modulefiles/samtools/1.9.lua deleted file mode 100644 index 3277d2f..0000000 --- a/GEMmaker/modulefiles/samtools/1.9.lua +++ /dev/null @@ -1,13 +0,0 @@ --- -*- lua -*- -whatis("Samtools is a suite of programs for interacting with high-throughput sequencing data") - -prepend_path("PATH", "/usr/local/samtools-1.9/bin") - - ---[[ -Build: - # unzip - # ./configure ./configure --prefix=/usr/local/samtools-1.9 --without-curses - # make install ---]] - diff --git a/GEMmaker/modulefiles/sratoolkit/2.8.2.lua b/GEMmaker/modulefiles/sratoolkit/2.8.2.lua deleted file mode 100644 index 5daaa0d..0000000 --- a/GEMmaker/modulefiles/sratoolkit/2.8.2.lua +++ /dev/null @@ -1,11 +0,0 @@ --- -*- lua -*- -whatis("The NCBI SRA Toolkit enables reading of sequencing files from the SRA database and writing files into the .sra format ") - -prepend_path("PATH", "/usr/local/sratoolkit.2.8.2/bin") - - ---[[ -Build: - # unzip, that's all ---]] - diff --git a/GEMmaker/modulefiles/stringtie/1.3.4d.lua b/GEMmaker/modulefiles/stringtie/1.3.4d.lua deleted file mode 100644 index b8784ea..0000000 --- a/GEMmaker/modulefiles/stringtie/1.3.4d.lua +++ /dev/null @@ -1,10 +0,0 @@ --- -*- lua -*- -whatis("StringTie is a fast and highly efficient assembler of RNA-Seq alignments into potential transcripts. It uses a novel network flow algorithm as well as an optional de novo assembly step to assemble and quantitate full-length transcripts representing multiple splice variants for each gene locus. Its input can include not only the alignments of raw reads used by other transcript assemblers, but also alignments longer sequences that have been assembled from those reads.In order to identify differentially expressed genes between experiments, StringTie's output can be processed by specialized software like Ballgown, Cuffdiff or other programs (DESeq2, edgeR, etc.). ") - -prepend_path("PATH", "/usr/local/stringtie-1.3.4d") - - ---[[ -Build: - # unzip, that's all ---]] diff --git a/GEMmaker/modulefiles/trimmomatic/0.38.lua b/GEMmaker/modulefiles/trimmomatic/0.38.lua deleted file mode 100644 index 5b19caf..0000000 --- a/GEMmaker/modulefiles/trimmomatic/0.38.lua +++ /dev/null @@ -1,13 +0,0 @@ --- -*- lua -*- -whatis("A flexible read trimming tool for Illumina NGS data") - -prepend_path("PATH", "/usr/local/Trimmomatic-0.38/") -prepend_path("CLASSPATH", "/usr/local/Trimmomatic-0.38/trimmomatic-0.38.jar") -prepend_path("ILLUMINACLIP_PATH", "/usr/local/Trimmomatic-0.38/adapters") - - ---[[ -Build: - # unzip, that's all ---]] - diff --git a/KINC/Dockerfile b/KINC/Dockerfile deleted file mode 100644 index 27e552a..0000000 --- a/KINC/Dockerfile +++ /dev/null @@ -1,56 +0,0 @@ -FROM nvidia/cuda:9.0-devel -MAINTAINER Ben Shealy - -# install package dependencies -RUN apt-get update -qq \ - && apt-get install -qq -y wget xz-utils \ - && apt-get install -qq -y build-essential python gperf bison flex pkg-config libgl1-mesa-dev \ - && apt-get install -qq -y clinfo git libgsl-dev liblapacke-dev libopenblas-dev libopenmpi-dev ocl-icd-opencl-dev - -# add NVIDIA platform to OpenCL -RUN mkdir -p /etc/OpenCL/vendors \ - && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd - -# install Qt -RUN cd /opt \ - && wget -q http://download.qt.io/official_releases/qt/5.11/5.11.1/single/qt-everywhere-src-5.11.1.tar.xz \ - && tar -xf qt-everywhere-src-5.11.1.tar.xz \ - && rm qt-everywhere-src-5.11.1.tar.xz \ - && mkdir qt \ - && cd qt \ - && ../qt-everywhere-src-5.11.1/configure -prefix . -opensource -confirm-license \ - && make -s -j $(nproc) \ - && make -s -j $(nproc) install \ - && rm -rf ../qt-everywhere-src-5.11.1 - -ENV QTDIR "/opt/qt" -ENV PATH "$QTDIR/bin:$PATH" - -# install ACE -RUN cd /opt \ - && git clone https://github.com/SystemsGenetics/ACE.git \ - && cd ACE/build \ - && git checkout v3.0.2 \ - && qmake ../src/ACE.pro PREFIX=/opt/ace \ - && make -s -j $(nproc) \ - && make -s qmake_all \ - && make -s install - -ENV ACEDIR "/opt/ace" -ENV PATH "$ACEDIR/bin:$PATH" -ENV CPLUS_INCLUDE_PATH "$ACEDIR/include:$CPLUS_INCLUDE_PATH" -ENV LIBRARY_PATH "$ACEDIR/lib:$LIBRARY_PATH" -ENV LD_LIBRARY_PATH "$ACEDIR/lib:$LD_LIBRARY_PATH" - -# install KINC -RUN cd /opt \ - && git clone https://github.com/SystemsGenetics/KINC.git \ - && cd KINC/build \ - && git checkout v3.2.2 \ - && qmake ../src/KINC.pro PREFIX=/opt/kinc \ - && make -s -j $(nproc) \ - && make -s qmake_all \ - && make -s install - -ENV KINCDIR "/opt/kinc" -ENV PATH "$KINCDIR/bin:$PATH" diff --git a/KINC/main.nf b/KINC/main.nf deleted file mode 100644 index db32647..0000000 --- a/KINC/main.nf +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/env nextflow - - - -/** - * The import_emx process converts a plain-text expression matrix into - * a KINC data object. - */ -process import_emx { - publishDir params.output_dir - - output: - file("*.emx") into EMX_FILE - - when: params.run_import_emx == true - - script: - """ - EMX_FILE="\$(basename ${params.dataset} .txt).emx" - - kinc settings set logging off || echo - - kinc run import-emx \ - --input ${params.dataset} \ - --output \$EMX_FILE - """ -} - - - -/** - * The similarity process performs a single chunk of KINC similarity. - */ -process similarity { - tag { index } - - input: - file(emx_file) from EMX_FILE - val(index) from Channel.from( 0 .. params.chunks-1 ) - - output: - set val(emx_file.name), file("*.abd") into SIMILARITY_CHUNKS - - when: params.run_similarity == true - - script: - """ - kinc settings set opencl 0:0 || echo - kinc settings set threads 4 || echo - kinc settings set logging off || echo - - kinc chunkrun ${index} ${params.chunks} similarity \ - --input ${emx_file} \ - --clusmethod ${params.clus_method} \ - --corrmethod ${params.corr_method} - """ -} - - - -/** - * Merge output chunks from similarity into a list. - */ -GROUPED_CHUNKS = SIMILARITY_CHUNKS.groupTuple() - - - -/** - * The merge process takes the output chunks from similarity - * and merges them into the final output files. - */ -process merge { - publishDir params.output_dir - - input: - file(emx_file) from EMX_FILE - set val(emx_name), file(chunks) from GROUPED_CHUNKS - - output: - file("*.ccm") into CCM_FILE - file("*.cmx") into CMX_FILE - - script: - """ - CCM_FILE="\$(basename ${params.dataset} .txt).ccm" - CMX_FILE="\$(basename ${params.dataset} .txt).cmx" - - kinc settings set logging off || echo - - kinc merge ${params.chunks} similarity \ - --input ${emx_file} \ - --ccm \$CCM_FILE \ - --cmx \$CMX_FILE - """ -} - - - -/** - * Copy CMX file into all processes that use it. - */ -CMX_FILE.into { CMX_FILE_THRESHOLD; CMX_FILE_EXTRACT } - - - -/** - * The threshold process takes the correlation matrix from similarity - * and attempts to find a suitable correlation threshold. - */ -process threshold { - publishDir params.output_dir - - input: - file(cmx_file) from CMX_FILE_THRESHOLD - - output: - file("*-threshold.log") into THRESHOLD_LOG - - when: params.run_threshold == true - - script: - """ - LOG_FILE="\$(basename ${params.dataset} .txt)-threshold.log" - - kinc settings set logging off || echo - - kinc run rmt \ - --input ${cmx_file} \ - --log \$LOG_FILE - """ -} - - - -/** - * The extract process takes the correlation matrix from similarity - * and attempts to find a suitable correlation threshold. - */ -process extract { - publishDir params.output_dir - - input: - file(emx_file) from EMX_FILE - file(ccm_file) from CCM_FILE - file(cmx_file) from CMX_FILE_EXTRACT - file(log_file) from THRESHOLD_LOG - - output: - file("*-net.txt") - - when: params.run_extract == true - - script: - """ - NET_FILE="\$(basename ${params.dataset} .txt)-net.txt" - THRESHOLD=\$(tail -n 1 ${log_file}) - - kinc settings set logging off || echo - - kinc run extract \ - --emx ${emx_file} \ - --ccm ${ccm_file} \ - --cmx ${cmx_file} \ - --output \$NET_FILE \ - --mincorr \$THRESHOLD - """ -} diff --git a/KINC/nextflow.config b/KINC/nextflow.config deleted file mode 100644 index e239421..0000000 --- a/KINC/nextflow.config +++ /dev/null @@ -1,84 +0,0 @@ -manifest { - mainScript = "main.nf" - defaultBranch = "master" - nextflowVersion = ">=0.32.0" -} - -params { - input_dir = "${PWD}/data" - dataset = "${PWD}/data/Yeast.txt" - chunks = 10 - clus_method = "none" - corr_method = "pearson" - output_dir = "${PWD}/output" - - run_import_emx = true - run_similarity = true - run_threshold = true - run_extract = true - - execution { - queue_size = 100 - threads = 1 - max_retries = 0 - error_strategy = "terminate" - } -} - - - -report { - file = "${params.output_dir}/report.html" -} - - - -timeline { - file = "${params.output_dir}/timeline.html" -} - - - -trace { - fields = "task_id,hash,native_id,process,tag,name,status,exit,module,container,cpus,time,disk,memory,attempt,submit,start,complete,duration,realtime,queue,%cpu,%mem,rss,vmem,peak_rss,peak_vmem,rchar,wchar,syscr,syscw,read_bytes,write_bytes" - file = "${params.output_dir}/trace.txt" - raw = true -} - - - -docker { - sudo = true - runOptions = "--runtime=nvidia --mount type=bind,src=${params.input_dir},dst=${params.input_dir},readonly --mount type=bind,src=${params.output_dir},dst=${params.output_dir}" -} - - - -process { - container = "bentsherman/kinc:latest" - errorStrategy = { "${task.attempt}" <= "${params.execution.max_retries}" ? "retry" : "${params.execution.error_strategy}" } - maxRetries = "${params.execution.max_retries}" - // maxErrors = 1000 -} - - - -profiles { - - standard { - process.executor = "local" - executor.cpus = 1 - executor.memory = "8 GB" - } - - pbs { - process { - executor = "pbs" - time = "8h" - clusterOptions = "-l select=1:mem=2gb:ncpus=2:ngpus=2:gpu_model=p100" - } - executor { - queueSize = "${params.execution.queue_size}" - } - } -} diff --git a/README.md b/README.md index 0ee3624..47f751b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # kube-runner -This repository provides a tool for running bioinformatics workflows as jobs on a Kubernetes cluster. This repository also contains Docker resources for several applications: +This repository provides a tool for running bioinformatics workflows as jobs on a Kubernetes cluster. This repository also contains some examples for several applications: - [GEMmaker](https://github.com/SystemsGenetics/GEMmaker) - [gene-oracle](https://github.com/ctargon/gene-oracle) @@ -16,13 +16,12 @@ You need Docker to build and push Docker images, and [nvidia-docker](https://git Build a Docker image: ```bash -cd -sudo docker build -t -f . +sudo docker build -t ``` Run a Docker container (locally): ```bash -sudo docker run [--runtime=nvidia] --rm -it +sudo docker run [--runtime=nvidia] --rm -it ``` List the Docker images on your machine: diff --git a/gene-oracle/Dockerfile b/gene-oracle/Dockerfile deleted file mode 100644 index 59dd810..0000000 --- a/gene-oracle/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM tensorflow/tensorflow:latest-gpu -MAINTAINER Cole McKnight Colin Targonski - -# install package dependencies -RUN apt-get update -qq \ - && apt-get install -qq -y git python-pip python-tk vim \ - && pip install argparse halo matplotlib msgpack numpy scikit-learn scipy \ - && pip install update - -# install gene-oracle -WORKDIR /root -RUN git clone https://github.com/feltus/gene-oracle diff --git a/gene-oracle/main.nf b/gene-oracle/main.nf deleted file mode 100644 index 32c596d..0000000 --- a/gene-oracle/main.nf +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env nextflow - - - -/** - * The split process splits the input subset list into chunks. - */ -process split { - input: - val(infile) from params.subset_list - - output: - file("*") into SUBSET_CHUNKS mode flatten - - when: - params.subset == true - - script: - """ - split -d -n l/${params.chunks} $infile "" - """ -} - - - -/** - * The subsets process performs experiments from a single chunk of a subset list. - */ -process subset { - tag { chunk.name } - - input: - file(chunk) from SUBSET_CHUNKS - - output: - set val("subset"), file("*.log") into SUBSET_LOGS - - script: - """ - source activate gene-oracle - - cd ${HOME}/workspace/gene-oracle - - python scripts/classify.py \ - --dataset ${params.dataset} \ - --gene_list ${params.gene_list} \ - --sample_json ${params.sample_json} \ - --config ${params.config} \ - --out_file \$OLDPWD/subset.${chunk.name}.log \ - --subset_list \$OLDPWD/${chunk.name} \ - --verbose - """ -} - - - -/** - * The random process performs a single chunk of random experiments. - */ -process random { - tag { index } - - input: - val(index) from Channel.from( 0 .. params.chunks-1 ) - - output: - set val("random"), file("*.log") into RANDOM_LOGS - - when: - params.random == true - - script: - """ - IDX=\$(printf %02d $index) - let "MIN = $params.random_min + ($params.random_max - $params.random_min + 1) * $index / $params.chunks" - let "MAX = $params.random_min + ($params.random_max - $params.random_min + 1) * ($index + 1) / $params.chunks - 1" - - source activate gene-oracle - - cd ${HOME}/workspace/gene-oracle - - python scripts/classify.py \ - --dataset ${params.dataset} \ - --gene_list ${params.gene_list} \ - --sample_json ${params.sample_json} \ - --config ${params.config} \ - --out_file \$OLDPWD/random.\$IDX.log \ - --random_test \ - --range_random_genes \$MIN \$MAX \ - --rand_iters ${params.random_iters} \ - --verbose - """ -} - - - -/** - * Group output chunks by prefix so that they can be merged. - */ -MERGE_CHUNKS = Channel.empty() - .concat(SUBSET_LOGS, RANDOM_LOGS) - .groupTuple() - - - -/** - * The merge process takes the output chunks from previous processes - * and merges their outputs into a single file. - */ -process merge { - publishDir params.output_dir - tag { prefix } - - input: - set val(prefix), file(chunks) from MERGE_CHUNKS - - output: - file("${prefix}.log") - - script: - """ - cat ${chunks} > ${prefix}.log - """ -} diff --git a/gene-oracle/nextflow.config b/gene-oracle/nextflow.config deleted file mode 100644 index 504f349..0000000 --- a/gene-oracle/nextflow.config +++ /dev/null @@ -1,90 +0,0 @@ -manifest { - mainScript = "main.nf" - defaultBranch = "master" - nextflowVersion = ">=0.32.0" -} - -params { - input_dir = "${PWD}/data" - dataset = "${PWD}/data/gtex/gtex_gct_data_float_v7.npy" - gene_list = "${PWD}/data/gtex/gtex_gene_list_v7.npy" - sample_json = "${PWD}/data/gtex/gtex_tissue_count_v7.json" - config = "models/net_config.json" - - subset = true - subset_list = "${PWD}/data/subsets/hallmark_experiments.txt" - - random = true - random_min = 1 - random_max = 10 - random_iters = 1 - - chunks = 10 - - output_dir = "${PWD}/output" - - execution { - queue_size = 100 - threads = 1 - max_retries = 0 - error_strategy = "terminate" - } -} - - - -report { - file = "${params.output_dir}/report.html" -} - - - -timeline { - file = "${params.output_dir}/timeline.html" -} - - - -trace { - fields = "task_id,hash,native_id,process,tag,name,status,exit,module,container,cpus,time,disk,memory,attempt,submit,start,complete,duration,realtime,queue,%cpu,%mem,rss,vmem,peak_rss,peak_vmem,rchar,wchar,syscr,syscw,read_bytes,write_bytes" - file = "${params.output_dir}/trace.txt" - raw = true -} - - - -docker { - sudo = true - runOptions = "--runtime=nvidia --mount type=bind,src=${params.input_dir},dst=${params.input_dir},readonly --mount type=bind,src=${params.output_dir},dst=${params.output_dir}" -} - - - -process { - container = "bentsherman/gene-oracle:latest" - errorStrategy = { "${task.attempt}" <= "${params.execution.max_retries}" ? "retry" : "${params.execution.error_strategy}" } - maxRetries = "${params.execution.max_retries}" - // maxErrors = 1000 -} - - - -profiles { - - standard { - process.executor = "local" - executor.cpus = 1 - executor.memory = "8 GB" - } - - pbs { - process { - executor = "pbs" - time = "8h" - clusterOptions = "-l select=1:mem=2gb:ncpus=2:ngpus=2:gpu_model=p100" - } - executor { - queueSize = "${params.execution.queue_size}" - } - } -}