kkonganti@101: process TABLE_SUMMARY { kkonganti@101: tag "$table_sum_on" kkonganti@101: label 'process_low' kkonganti@101: kkonganti@101: // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container kkonganti@101: module (params.enable_module ? "${params.swmodulepath}${params.fs}python${params.fs}3.8.1" : null) kkonganti@101: conda (params.enable_conda ? "conda-forge::python=3.9 conda-forge::pyyaml conda-forge::coreutils" : null) kkonganti@101: container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? kkonganti@101: 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : kkonganti@101: 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" kkonganti@101: kkonganti@101: input: kkonganti@101: tuple val(table_sum_on), path(tables) kkonganti@101: kkonganti@101: output: kkonganti@101: tuple val(table_sum_on), path("*.tblsum.txt"), emit: tblsummed kkonganti@101: path "*_mqc.yml" , emit: mqc_yml kkonganti@101: path "versions.yml" , emit: versions kkonganti@101: kkonganti@101: when: kkonganti@101: task.ext.when == null || task.ext.when || tables kkonganti@101: kkonganti@101: script: kkonganti@101: def args = task.ext.args ?: '' kkonganti@101: def onthese = tables.collect().join('\\n') kkonganti@101: """ kkonganti@101: filenum="1" kkonganti@101: header="" kkonganti@101: kkonganti@101: echo -e "$onthese" | while read -r file; do kkonganti@101: kkonganti@101: if [ "\${filenum}" == "1" ]; then kkonganti@101: header=\$( head -n1 "\${file}" ) kkonganti@101: echo -e "\${header}" > ${table_sum_on}.tblsum.txt kkonganti@101: fi kkonganti@101: kkonganti@101: tail -n+2 "\${file}" >> ${table_sum_on}.tblsum.txt kkonganti@101: kkonganti@101: filenum=\$((filenum+1)) kkonganti@101: done kkonganti@101: kkonganti@101: create_mqc_data_table.py $table_sum_on ${workflow.manifest.name} kkonganti@101: kkonganti@101: cat <<-END_VERSIONS > versions.yml kkonganti@101: "${task.process}": kkonganti@101: bash: \$( bash --version 2>&1 | sed '1!d; s/^.*version //; s/ (.*\$//' ) kkonganti@101: python: \$( python --version | sed 's/Python //g' ) kkonganti@101: END_VERSIONS kkonganti@101: kkonganti@101: headver="" kkonganti@101: tailver="" kkonganti@101: kkonganti@101: if [ "${workflow.containerEngine}" != "null" ]; then kkonganti@101: headver=\$( head --help 2>&1 | sed -e '1!d; s/ (.*\$//' ) kkonganti@101: tailver="\$headver" kkonganti@101: else kkonganti@101: headver=\$( head --version 2>&1 | sed '1!d; s/^.*(GNU coreutils//; s/) //;' ) kkonganti@101: tailver=\$( tail --version 2>&1 | sed '1!d; s/^.*(GNU coreutils//; s/) //;' ) kkonganti@101: fi kkonganti@101: kkonganti@101: cat <<-END_VERSIONS >> versions.yml kkonganti@101: head: \$headver kkonganti@101: tail: \$tailver kkonganti@101: END_VERSIONS kkonganti@101: """ kkonganti@101: }