File Info

Filename
.command.run
Full Path
s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300/.command.run
Size
39.4 KB
Attempt
#!/bin/bash
### ---
### name: 'NFCORE_SAREK:SAREK:MULTIQC'
### container: '292967571998.dkr.ecr.us-west-2.amazonaws.com/sarek/multiqc:1.33'
### outputs:
### - '*multiqc_report.html'
### - '*_data'
### - '*_plots'
### - 'versions.yml'
### ...
set -e
set -u
NXF_DEBUG=${NXF_DEBUG:=0}; [[ $NXF_DEBUG > 1 ]] && set -x
NXF_ENTRY=${1:-nxf_main}

nxf_tree() {
    local pid=$1

    declare -a ALL_CHILDREN
    while read P PP;do
        ALL_CHILDREN[$PP]+=" $P"
    done < <(ps -e -o pid= -o ppid=)

    pstat() {
        local x_pid=$1
        local STATUS=$(2> /dev/null < /proc/$1/status grep -E 'Vm|ctxt')

        if [ $? = 0 ]; then
        local  x_vsz=$(echo "$STATUS" | grep VmSize | awk '{print $2}' || echo -n '0')
        local  x_rss=$(echo "$STATUS" | grep VmRSS | awk '{print $2}' || echo -n '0')
        local x_peak=$(echo "$STATUS" | grep -E 'VmPeak|VmHWM' | sed 's/^.*:\s*//' | sed 's/[\sa-zA-Z]*$//' | tr '\n' ' ' || echo -n '0 0')
        local x_pmem=$(awk -v rss=$x_rss -v mem_tot=$mem_tot 'BEGIN {printf "%.0f", rss/mem_tot*100*10}' || echo -n '0')
        local vol_ctxt=$(echo "$STATUS" | grep '\bvoluntary_ctxt_switches' | awk '{print $2}' || echo -n '0')
        local inv_ctxt=$(echo "$STATUS" | grep '\bnonvoluntary_ctxt_switches' | awk '{print $2}' || echo -n '0')
        cpu_stat[x_pid]="$x_pid $x_pmem $x_vsz $x_rss $x_peak $vol_ctxt $inv_ctxt"
        fi
    }

    pwalk() {
        pstat $1
        for i in ${ALL_CHILDREN[$1]:=}; do pwalk $i; done
    }

    pwalk $1
}

nxf_stat() {
    cpu_stat=()
    nxf_tree $1

    declare -a sum=(0 0 0 0 0 0 0 0)
    local pid
    local i
    for pid in "${!cpu_stat[@]}"; do
        local row=(${cpu_stat[pid]})
        [ $NXF_DEBUG = 1 ] && echo "++ stat mem=${row[*]}"
        for i in "${!row[@]}"; do
        if [ $i != 0 ]; then
            sum[i]=$((sum[i]+row[i]))
        fi
        done
    done

    [ $NXF_DEBUG = 1 ] && echo -e "++ stat SUM=${sum[*]}"

    for i in {1..7}; do
        if [ ${sum[i]} -lt ${cpu_peak[i]} ]; then
            sum[i]=${cpu_peak[i]}
        else
            cpu_peak[i]=${sum[i]}
        fi
    done

    [ $NXF_DEBUG = 1 ] && echo -e "++ stat PEAK=${sum[*]}\n"
    nxf_stat_ret=(${sum[*]})
}

nxf_mem_watch() {
    set -o pipefail
    local pid=$1
    local trace_file=.command.trace
    local count=0;
    declare -a cpu_stat=(0 0 0 0 0 0 0 0)
    declare -a cpu_peak=(0 0 0 0 0 0 0 0)
    local mem_tot=$(< /proc/meminfo grep MemTotal | awk '{print $2}')
    local timeout
    local DONE
    local STOP=''

    [ $NXF_DEBUG = 1 ] && nxf_sleep 0.2 && ps fx

    while true; do
        nxf_stat $pid
        if [ $count -lt 10 ]; then timeout=1;
        elif [ $count -lt 120 ]; then timeout=5;
        else timeout=30;
        fi
        read -t $timeout -r DONE || true
        [[ $DONE ]] && break
        if [ ! -e /proc/$pid ]; then
            [ ! $STOP ] && STOP=$(nxf_date)
            [ $(($(nxf_date)-STOP)) -gt 10000 ] && break
        fi
        count=$((count+1))
    done

    printf "%s\n" \
        "%mem=${nxf_stat_ret[1]}" \
        "vmem=${nxf_stat_ret[2]}" \
        "rss=${nxf_stat_ret[3]}" \
        "peak_vmem=${nxf_stat_ret[4]}" \
        "peak_rss=${nxf_stat_ret[5]}" \
        "vol_ctxt=${nxf_stat_ret[6]}" \
        "inv_ctxt=${nxf_stat_ret[7]}" >> "$trace_file" || >&2 echo "Error: Failed to append to file: $trace_file"
}

nxf_write_trace() {
    printf "%s\n" \
        "nextflow.trace/v2" \
        "realtime=$wall_time" \
        "%cpu=$ucpu" \
        "cpu_model=$cpu_model" \
        "rchar=${io_stat1[0]}" \
        "wchar=${io_stat1[1]}" \
        "syscr=${io_stat1[2]}" \
        "syscw=${io_stat1[3]}" \
        "read_bytes=${io_stat1[4]}" \
        "write_bytes=${io_stat1[5]}" >| "$trace_file" || >&2 echo "Error: Failed to write to file: $trace_file"
}

nxf_trace_mac() {
    local start_millis=$(nxf_date)

    /bin/bash -Ceuo pipefail .command.sh

    local end_millis=$(nxf_date)
    local wall_time=$((end_millis-start_millis))
    local ucpu=''
    local cpu_model=''
    local io_stat1=('' '' '' '' '' '')
    nxf_write_trace
}

nxf_fd() {
    local FD=11
    while [ -e /proc/$$/fd/$FD ]; do FD=$((FD+1)); done
    echo $FD
}

nxf_trace_linux() {
    local pid=$$
    command -v ps &>/dev/null || { >&2 echo "Command 'ps' required by nextflow to collect task metrics cannot be found"; exit 1; }
    local num_cpus=$(< /proc/cpuinfo grep '^processor' -c)
    local cpu_model=$(< /proc/cpuinfo grep '^model name' | head -n 1 | awk 'BEGIN{FS="\t: "} { print $2 }')
    local tot_time0=$(grep '^cpu ' /proc/stat | awk '{sum=$2+$3+$4+$5+$6+$7+$8+$9; printf "%.0f",sum}')
    local cpu_time0=$(2> /dev/null < /proc/$pid/stat awk '{printf "%.0f", ($16+$17)*10 }' || echo -n 'X')
    local io_stat0=($(2> /dev/null < /proc/$pid/io sed 's/^.*:\s*//' | head -n 6 | tr '\n' ' ' || echo -n '0 0 0 0 0 0'))
    local start_millis=$(nxf_date)
    trap 'kill $mem_proc' ERR
    
    /bin/bash -Ceuo pipefail .command.sh &
    local task=$!

    mem_fd=$(nxf_fd)
    eval "exec $mem_fd> >(nxf_mem_watch $task)"
    local mem_proc=$!

    wait $task

    local end_millis=$(nxf_date)
    local tot_time1=$(grep '^cpu ' /proc/stat | awk '{sum=$2+$3+$4+$5+$6+$7+$8+$9; printf "%.0f",sum}')
    local cpu_time1=$(2> /dev/null < /proc/$pid/stat awk '{printf "%.0f", ($16+$17)*10 }' || echo -n 'X')
    local ucpu=$(awk -v p1=$cpu_time1 -v p0=$cpu_time0 -v t1=$tot_time1 -v t0=$tot_time0 -v n=$num_cpus 'BEGIN { pct=(p1-p0)/(t1-t0)*100*n; printf("%.0f", pct>0 ? pct : 0) }' )

    local io_stat1=($(2> /dev/null < /proc/$pid/io sed 's/^.*:\s*//' | head -n 6 | tr '\n' ' ' || echo -n '0 0 0 0 0 0'))
    local i
    for i in {0..5}; do
        io_stat1[i]=$((io_stat1[i]-io_stat0[i]))
    done

    local wall_time=$((end_millis-start_millis))
    [ $NXF_DEBUG = 1 ] && echo "+++ STATS %CPU=$ucpu TIME=$wall_time I/O=${io_stat1[*]}"

    printf "%s\n" \
        "nextflow.trace/v2" \
        "realtime=$wall_time" \
        "%cpu=$ucpu" \
        "cpu_model=$cpu_model" \
        "rchar=${io_stat1[0]}" \
        "wchar=${io_stat1[1]}" \
        "syscr=${io_stat1[2]}" \
        "syscw=${io_stat1[3]}" \
        "read_bytes=${io_stat1[4]}" \
        "write_bytes=${io_stat1[5]}" >| "$trace_file" || >&2 echo "Error: Failed to write to file: $trace_file"

    [ -e /proc/$mem_proc ] && eval "echo 'DONE' >&$mem_fd" || true
    wait $mem_proc 2>/dev/null || true
    while [ -e /proc/$mem_proc ]; do nxf_sleep 0.1; done
}

nxf_trace() {
    local trace_file=.command.trace
    touch $trace_file
    if [[ $(uname) = Darwin ]]; then
        nxf_trace_mac
    else
        nxf_trace_linux
    fi
}
# bash helper functions
nxf_cp_retry() {
    local max_attempts=1
    local timeout=10
    local attempt=0
    local exitCode=0
    while (( $attempt < $max_attempts ))
    do
      if "$@"
        then
          return 0
      else
        exitCode=$?
      fi
      if [[ $exitCode == 0 ]]
      then
        break
      fi
      nxf_sleep $timeout
      attempt=$(( attempt + 1 ))
      timeout=$(( timeout * 2 ))
    done
}

nxf_parallel() {
    IFS=$'\n'
    local cmd=("$@")
    local cpus=$(nproc 2>/dev/null || < /proc/cpuinfo grep '^process' -c)
    local max=$(if (( cpus>4 )); then echo 4; else echo $cpus; fi)
    local i=0
    local pid=()
    (
    set +u
    while ((i<${#cmd[@]})); do
        local copy=()
        for x in "${pid[@]}"; do
          # if the process exist, keep in the 'copy' array, otherwise wait on it to capture the exit code
          # see https://github.com/nextflow-io/nextflow/pull/4050
          [[ -e /proc/$x ]] && copy+=($x) || wait $x
        done
        pid=("${copy[@]}")

        if ((${#pid[@]}>=$max)); then
          nxf_sleep 0.2
        else
          eval "${cmd[$i]}" &
          pid+=($!)
          ((i+=1))
        fi
    done
    for p in "${pid[@]}"; do
        wait $p
    done
    )
    unset IFS
}

# aws helper for s5cmd
nxf_s3_upload() {
    local name=$1
    local s3path=$2
    if [[ "$name" == - ]]; then
      local tmp=$(nxf_mktemp)
      cp /dev/stdin $tmp/$name
      /opt/s5cmd/bin/s5cmd --log error cp --storage-class STANDARD $tmp/$name "$s3path"
    elif [[ -d "$name" ]]; then
      /opt/s5cmd/bin/s5cmd --log error cp --storage-class STANDARD "$name/" "$s3path/$name/"
    else
      /opt/s5cmd/bin/s5cmd --log error cp --storage-class STANDARD "$name" "$s3path/$name"
    fi
}

nxf_s3_download() {
    local source=$1
    local target=$2
    echo "  Downloading: $source"
    local file_name=$(basename $1)
    local is_dir=$(/opt/s5cmd/bin/s5cmd ls $source | grep -F "DIR  ${file_name}/" -c)
    if [[ $is_dir == 1 ]]; then
        /opt/s5cmd/bin/s5cmd --log error cp "$source/*" "$target"
    else
        /opt/s5cmd/bin/s5cmd --log error cp "$source" "$target"
    fi
}

nxf_sleep() {
  sleep $1 2>/dev/null || sleep 1;
}

nxf_date() {
    local ts=$(date +%s%3N);
    if [[ ${#ts} == 10 ]]; then echo ${ts}000
    elif [[ $ts == *%3N ]]; then echo ${ts/\%3N/000}
    elif [[ $ts == *3N ]]; then echo ${ts/3N/000}
    elif [[ ${#ts} == 13 ]]; then echo $ts
    else echo "Unexpected timestamp value: $ts"; exit 1
    fi
}

nxf_env() {
    echo '============= task environment ============='
    env | sort | sed "s/\(.*\)AWS\(.*\)=\(.\{6\}\).*/\1AWS\2=\3xxxxxxxxxxxxx/"
    echo '============= task output =================='
}

nxf_kill() {
    declare -a children
    while read P PP;do
        children[$PP]+=" $P"
    done < <(ps -e -o pid= -o ppid=)

    kill_all() {
        [[ $1 != $$ ]] && kill $1 2>/dev/null || true
        for i in ${children[$1]:=}; do kill_all $i; done
    }

    kill_all $1
}

nxf_mktemp() {
    local base=${1:-/tmp}
    mkdir -p "$base"
    if [[ $(uname) = Darwin ]]; then mktemp -d $base/nxf.XXXXXXXXXX
    else TMPDIR="$base" mktemp -d -t nxf.XXXXXXXXXX
    fi
}

nxf_fs_copy() {
  local source=$1
  local target=$2
  local basedir=$(dirname $1)
  mkdir -p $target/$basedir
  cp -fRL $source $target/$basedir
}

nxf_fs_move() {
  local source=$1
  local target=$2
  local basedir=$(dirname $1)
  mkdir -p $target/$basedir
  mv -f $source $target/$basedir
}

nxf_fs_rsync() {
  rsync -rRl $1 $2
}

nxf_fs_rclone() {
  rclone copyto $1 $2/$1
}

nxf_fs_fcp() {
  fcp $1 $2/$1
}

on_exit() {
    local last_err=$?
    local exit_status=${nxf_main_ret:=0}
    [[ ${exit_status} -eq 0 && ${nxf_unstage_ret:=0} -ne 0 ]] && exit_status=${nxf_unstage_ret:=0}
    [[ ${exit_status} -eq 0 && ${last_err} -ne 0 ]] && exit_status=${last_err}
    printf -- $exit_status | nxf_s3_upload - s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300/.exitcode || true
    set +u
    rm -rf $NXF_SCRATCH || true
    exit $exit_status
}

on_term() {
    set +e
    [[ "$pid" ]] && nxf_kill $pid
}

nxf_launch() {
    /bin/bash -Ceuo pipefail .command.run nxf_trace
}

nxf_stage() {
    true
    # stage input files
    downloads=(true)
    rm -f 54/HCC1395_BL.TsTv.count
    rm -f 4/Sig_18_Blood.stats
    rm -f 10/Sig_18_Blood.mosdepth.global.dist.txt
    rm -f 11/HCC1395_BL.mosdepth.region.dist.txt
    rm -f 81/custom_Sig_18_tumor_normal.strelka.somatic_indels.TsTv.qual
    rm -f 6/HCC1395_tumor.stats
    rm -f 41/Sig_18_Blood.bcftools_stats.txt
    rm -f 8/Sig_18_tissue.mosdepth.global.dist.txt
    rm -f 65/Sig_18_Blood.FILTER.summary
    rm -f 74/custom_Sig_18_tumor_normal.manta.somatic_sv.TsTv.qual
    rm -f 80/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.TsTv.qual
    rm -f 89/Sig_18_Blood.deconflicted_germline_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 71/Sig_18_Blood.deconflicted_germline.FILTER.summary
    rm -f 2/workflow_summary_mqc.yaml
    rm -f 57/custom_Sig_18_tumor_normal.strelka.somatic_indels.TsTv.count
    rm -f 76/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.TsTv.qual
    rm -f 34/custom_Sig_18_tumor_normal.strelka.somatic_snvs_custom.ann_snpEff.csv
    rm -f 52/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.TsTv.count
    rm -f 73/custom_Sig_18_tumor_normal.manta.diploid_sv.TsTv.qual
    rm -f 5/HCC1395_BL.stats
    rm -f 23/custom_Sig_18_tumor_normal.manta.somatic_sv_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 43/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.bcftools_stats.txt
    rm -f 39/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.bcftools_stats.txt
    rm -f 21/Sig_18_Blood_custom.ann_snpEff.csv
    rm -f 85/variant_qc.json
    rm -f 28/HCC1395_BL_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 58/custom_Sig_18_tumor_normal.strelka.somatic_snvs.TsTv.count
    rm -f 9/Sig_18_Blood.mosdepth.region.dist.txt
    rm -f 60/HCC1395_BL.deconflicted_germline.TsTv.count
    rm -f 3/Sig_18_tissue.stats
    rm -f 84/HCC1395_BL.deconflicted_germline.TsTv.qual
    rm -f 25/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 40/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.bcftools_stats.txt
    rm -f 90/HCC1395_BL.deconflicted_germline_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 17/custom_Sig_18_tumor_normal.manta.somatic_sv_custom.ann_snpEff.csv
    rm -f 53/Sig_18_Blood.TsTv.count
    rm -f 79/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.TsTv.qual
    rm -f 47/Sig_18_Blood.deconflicted_germline.bcftools_stats.txt
    rm -f 83/Sig_18_Blood.deconflicted_germline.TsTv.qual
    rm -f 87/Sig_18_Blood.deconflicted_germline_custom.ann_snpEff.csv
    rm -f 68/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.FILTER.summary
    rm -f 75/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.TsTv.qual
    rm -f 62/custom_Sig_18_tumor_normal.manta.somatic_sv.FILTER.summary
    rm -f 18/custom_Sig_18_tumor_normal.manta.diploid_sv_custom.ann_snpEff.csv
    rm -f 36/custom_Sig_18_tumor_normal.strelka.somatic_snvs_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 1/methods_description_mqc.yaml
    rm -f .command.run
    rm -f 16/Sig_18_tissue_vs_Sig_18_Blood.conpair.contamination.txt
    rm -f 67/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.FILTER.summary
    rm -f 26/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 70/custom_Sig_18_tumor_normal.strelka.somatic_snvs.FILTER.summary
    rm -f 86/variant_qc.csv
    rm -f 22/HCC1395_BL_custom.ann_snpEff.csv
    rm -f 37/custom_Sig_18_tumor_normal.manta.somatic_sv.bcftools_stats.txt
    rm -f 48/HCC1395_BL.deconflicted_germline.bcftools_stats.txt
    rm -f 49/custom_Sig_18_tumor_normal.manta.somatic_sv.TsTv.count
    rm -f 82/custom_Sig_18_tumor_normal.strelka.somatic_snvs.TsTv.qual
    rm -f 7/Sig_18_tissue.mosdepth.region.dist.txt
    rm -f 12/HCC1395_BL.mosdepth.global.dist.txt
    rm -f 33/custom_Sig_18_tumor_normal.strelka.somatic_indels_custom.ann_snpEff.csv
    rm -f 59/Sig_18_Blood.deconflicted_germline.TsTv.count
    rm -f 38/custom_Sig_18_tumor_normal.manta.diploid_sv.bcftools_stats.txt
    rm -f .command.sh
    rm -f 35/custom_Sig_18_tumor_normal.strelka.somatic_indels_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 50/custom_Sig_18_tumor_normal.manta.diploid_sv.TsTv.count
    rm -f 64/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.FILTER.summary
    rm -f 42/HCC1395_BL.bcftools_stats.txt
    rm -f 88/HCC1395_BL.deconflicted_germline_custom.ann_snpEff.csv
    rm -f 69/custom_Sig_18_tumor_normal.strelka.somatic_indels.FILTER.summary
    rm -f 19/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv_custom.ann_snpEff.csv
    rm -f 55/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.TsTv.count
    rm -f 13/HCC1395_tumor.mosdepth.region.dist.txt
    rm -f 29/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs_custom.ann_snpEff.csv
    rm -f 45/custom_Sig_18_tumor_normal.strelka.somatic_indels.bcftools_stats.txt
    rm -f 14/HCC1395_tumor.mosdepth.global.dist.txt
    rm -f 63/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.FILTER.summary
    rm -f 31/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 61/custom_Sig_18_tumor_normal.manta.diploid_sv.FILTER.summary
    rm -f 51/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.TsTv.count
    rm -f 27/Sig_18_Blood_custom.ann_snpEff_VEP.ann.summary.html
    rm -f multiqc_config.yml
    rm -f 20/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv_custom.ann_snpEff.csv
    rm -f 15/HCC1395_tumor_vs_HCC1395_BL.conpair.contamination.txt
    rm -f 72/HCC1395_BL.deconflicted_germline.FILTER.summary
    rm -f 77/Sig_18_Blood.TsTv.qual
    rm -f 91/nf_core_sarek_software_mqc_versions.yml
    rm -f 46/custom_Sig_18_tumor_normal.strelka.somatic_snvs.bcftools_stats.txt
    rm -f 56/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.TsTv.count
    rm -f 30/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels_custom.ann_snpEff.csv
    rm -f 24/custom_Sig_18_tumor_normal.manta.diploid_sv_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 32/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels_custom.ann_snpEff_VEP.ann.summary.html
    rm -f 66/HCC1395_BL.FILTER.summary
    rm -f 78/HCC1395_BL.TsTv.qual
    rm -f 44/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.bcftools_stats.txt
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/0a/18e99a1be623ce1767644b9e7d4e23/HCC1395_BL.TsTv.count 54/HCC1395_BL.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/3d/6561590a1a4ae0acc4b8fe120d0865/Sig_18_Blood.stats 4/Sig_18_Blood.stats")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/82/ef556635cfabb55003e7e128d96e16/Sig_18_Blood.mosdepth.global.dist.txt 10/Sig_18_Blood.mosdepth.global.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/ea/99a8f59a170719ce35ea54ce1122a2/HCC1395_BL.mosdepth.region.dist.txt 11/HCC1395_BL.mosdepth.region.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/f0/4896a221e2ccbd7792862e636738b8/custom_Sig_18_tumor_normal.strelka.somatic_indels.TsTv.qual 81/custom_Sig_18_tumor_normal.strelka.somatic_indels.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/21/a00104c435edb83aed2e224f8b539e/HCC1395_tumor.stats 6/HCC1395_tumor.stats")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/e4/790ee74c351b8ef50d0c8c1a3b4508/Sig_18_Blood.bcftools_stats.txt 41/Sig_18_Blood.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/5a/dbfce516f006a5d9292f311a18f2ba/Sig_18_tissue.mosdepth.global.dist.txt 8/Sig_18_tissue.mosdepth.global.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/da/3c1ee2f78ad16e872d3984d2e2a8f5/Sig_18_Blood.FILTER.summary 65/Sig_18_Blood.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8e/4da6c58d2d665d38eed0aee0af4bfc/custom_Sig_18_tumor_normal.manta.somatic_sv.TsTv.qual 74/custom_Sig_18_tumor_normal.manta.somatic_sv.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/95/089071bea702f69476de73d2da1299/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.TsTv.qual 80/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8f/d89916853f53b8b70da05b25872e30/Sig_18_Blood.deconflicted_germline_custom.ann_snpEff_VEP.ann.summary.html 89/Sig_18_Blood.deconflicted_germline_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/32/e8dc79e6f8dce470fe715c170bd6f4/Sig_18_Blood.deconflicted_germline.FILTER.summary 71/Sig_18_Blood.deconflicted_germline.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/tmp/e4/ce338f80f36c887d6250e8884344ae/workflow_summary_mqc.yaml 2/workflow_summary_mqc.yaml")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/35/57ae98b92f6ec6187eb6673a7e27b6/custom_Sig_18_tumor_normal.strelka.somatic_indels.TsTv.count 57/custom_Sig_18_tumor_normal.strelka.somatic_indels.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b8/f105d8cae3e86a0cb39dd7b9079a38/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.TsTv.qual 76/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/30/f5b7f0f7da9e730ed7dc1dc53b8347/custom_Sig_18_tumor_normal.strelka.somatic_snvs_custom.ann_snpEff.csv 34/custom_Sig_18_tumor_normal.strelka.somatic_snvs_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/d3/818ab2414edd73c0afa13175aae0d8/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.TsTv.count 52/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/07/a0ae88cdc258d53789913fccf3efd8/custom_Sig_18_tumor_normal.manta.diploid_sv.TsTv.qual 73/custom_Sig_18_tumor_normal.manta.diploid_sv.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/5d/16cb4c798bd5b908222fc9ecd59df6/HCC1395_BL.stats 5/HCC1395_BL.stats")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/68/b2f93ab4b4da9bf19c37beb0bd7fbc/custom_Sig_18_tumor_normal.manta.somatic_sv_custom.ann_snpEff_VEP.ann.summary.html 23/custom_Sig_18_tumor_normal.manta.somatic_sv_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b4/a79a42778c19fc661d37f0e78020b6/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.bcftools_stats.txt 43/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/1e/eb0b6704f9b9e7263f926241fe8c0d/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.bcftools_stats.txt 39/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8f/ae7e4c0dc402c2563301afc3c96f26/Sig_18_Blood_custom.ann_snpEff.csv 21/Sig_18_Blood_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/ea/16c5d963d3504a1b6f6d751bf3d371/variant_qc.json 85/variant_qc.json")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/c1/1b714acbd3deb1c12bb790c5f52f04/HCC1395_BL_custom.ann_snpEff_VEP.ann.summary.html 28/HCC1395_BL_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/7e/202956c18bc741bc3b142a55185eeb/custom_Sig_18_tumor_normal.strelka.somatic_snvs.TsTv.count 58/custom_Sig_18_tumor_normal.strelka.somatic_snvs.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/82/ef556635cfabb55003e7e128d96e16/Sig_18_Blood.mosdepth.region.dist.txt 9/Sig_18_Blood.mosdepth.region.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/09/a497e243770dd7dd960401079ce1e7/HCC1395_BL.deconflicted_germline.TsTv.count 60/HCC1395_BL.deconflicted_germline.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/48/24087b5e8148bf770413f8b7801c7f/Sig_18_tissue.stats 3/Sig_18_tissue.stats")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/a8/0bc4496bfcd8a2d0fa6b5c409b9158/HCC1395_BL.deconflicted_germline.TsTv.qual 84/HCC1395_BL.deconflicted_germline.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/a8/08b6ec675f7fe0c84acc9ae8458542/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv_custom.ann_snpEff_VEP.ann.summary.html 25/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/d9/10a7511b6894940a509b6c5c3e81f3/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.bcftools_stats.txt 40/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/be/dfd78915d5fc16f76b75fec4d0d600/HCC1395_BL.deconflicted_germline_custom.ann_snpEff_VEP.ann.summary.html 90/HCC1395_BL.deconflicted_germline_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/4d/e2c637532683780213651e25c65f11/custom_Sig_18_tumor_normal.manta.somatic_sv_custom.ann_snpEff.csv 17/custom_Sig_18_tumor_normal.manta.somatic_sv_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/4c/5cc14b843aeb5ece09f93afb7af022/Sig_18_Blood.TsTv.count 53/Sig_18_Blood.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/38/452995f79ed4a46284ddaba93068d9/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.TsTv.qual 79/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8b/26ef79d3cb1d0e89ace379b84587a5/Sig_18_Blood.deconflicted_germline.bcftools_stats.txt 47/Sig_18_Blood.deconflicted_germline.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/25/120cac225795b97b282988190e7920/Sig_18_Blood.deconflicted_germline.TsTv.qual 83/Sig_18_Blood.deconflicted_germline.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/e6/b80b63e53edb745e4ed9b7a01b7ac2/Sig_18_Blood.deconflicted_germline_custom.ann_snpEff.csv 87/Sig_18_Blood.deconflicted_germline_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fd/ff3e9bdc117e01ba3edff883771898/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.FILTER.summary 68/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/86/1e31aeeae5c7a8312d88899a66e9bd/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.TsTv.qual 75/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/6a/b489e302e23d6c35491c03e3fbb2de/custom_Sig_18_tumor_normal.manta.somatic_sv.FILTER.summary 62/custom_Sig_18_tumor_normal.manta.somatic_sv.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8f/b8a156109ba4eeae8634e0ee625128/custom_Sig_18_tumor_normal.manta.diploid_sv_custom.ann_snpEff.csv 18/custom_Sig_18_tumor_normal.manta.diploid_sv_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/7e/60d5669f7748781b8be9ce7ea6b9bd/custom_Sig_18_tumor_normal.strelka.somatic_snvs_custom.ann_snpEff_VEP.ann.summary.html 36/custom_Sig_18_tumor_normal.strelka.somatic_snvs_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/tmp/11/42b2f8ebd110aac75eb876a55b8c46/methods_description_mqc.yaml 1/methods_description_mqc.yaml")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300/.command.run .command.run")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/47/4871fb298b779d647ef3012db89ec6/Sig_18_tissue_vs_Sig_18_Blood.conpair.contamination.txt 16/Sig_18_tissue_vs_Sig_18_Blood.conpair.contamination.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/05/039cfc3207d29a2947016789c41ab3/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.FILTER.summary 67/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/64/f92a32afbbbc4d851cc3c5b1c6b544/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv_custom.ann_snpEff_VEP.ann.summary.html 26/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/a4/bbebe43081da624132b9c77175c0cd/custom_Sig_18_tumor_normal.strelka.somatic_snvs.FILTER.summary 70/custom_Sig_18_tumor_normal.strelka.somatic_snvs.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/51/0fe7a63526ebbfb76de04c7be0273a/variant_qc.csv 86/variant_qc.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/50/2462f5e706fa059a01a9da362fadfb/HCC1395_BL_custom.ann_snpEff.csv 22/HCC1395_BL_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/4a/9c6442cbb58c733f9d76dad3273dbc/custom_Sig_18_tumor_normal.manta.somatic_sv.bcftools_stats.txt 37/custom_Sig_18_tumor_normal.manta.somatic_sv.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/f9/652987422b525bae6bcc89f42a53f8/HCC1395_BL.deconflicted_germline.bcftools_stats.txt 48/HCC1395_BL.deconflicted_germline.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/83/f080c928d4109082b6031dd518b3b8/custom_Sig_18_tumor_normal.manta.somatic_sv.TsTv.count 49/custom_Sig_18_tumor_normal.manta.somatic_sv.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/dc/9f63b8e53b8a9724142dd69a771ad1/custom_Sig_18_tumor_normal.strelka.somatic_snvs.TsTv.qual 82/custom_Sig_18_tumor_normal.strelka.somatic_snvs.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/5a/dbfce516f006a5d9292f311a18f2ba/Sig_18_tissue.mosdepth.region.dist.txt 7/Sig_18_tissue.mosdepth.region.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/ea/99a8f59a170719ce35ea54ce1122a2/HCC1395_BL.mosdepth.global.dist.txt 12/HCC1395_BL.mosdepth.global.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/40/026652b2750720ee328cfd1e3b1dbf/custom_Sig_18_tumor_normal.strelka.somatic_indels_custom.ann_snpEff.csv 33/custom_Sig_18_tumor_normal.strelka.somatic_indels_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/ee/4aa4a6a951c7e5a618b32b519527fa/Sig_18_Blood.deconflicted_germline.TsTv.count 59/Sig_18_Blood.deconflicted_germline.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/43/79bb11703c880c12c14f8ea3de6eca/custom_Sig_18_tumor_normal.manta.diploid_sv.bcftools_stats.txt 38/custom_Sig_18_tumor_normal.manta.diploid_sv.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300/.command.sh .command.sh")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/55/8d6ee48dda7968775f7d0e7bfbb1da/custom_Sig_18_tumor_normal.strelka.somatic_indels_custom.ann_snpEff_VEP.ann.summary.html 35/custom_Sig_18_tumor_normal.strelka.somatic_indels_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8f/9d2ebdc09ea454344befffb2060a44/custom_Sig_18_tumor_normal.manta.diploid_sv.TsTv.count 50/custom_Sig_18_tumor_normal.manta.diploid_sv.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/20/b4de810a6f18f26000ab5879536e9a/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.FILTER.summary 64/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/74/c451220e63e672dbfe7d19f3e5ebda/HCC1395_BL.bcftools_stats.txt 42/HCC1395_BL.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/73/a31acc98ef376107c98daed45e77db/HCC1395_BL.deconflicted_germline_custom.ann_snpEff.csv 88/HCC1395_BL.deconflicted_germline_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8c/26b91dd6e78eb906aa1caebb67592a/custom_Sig_18_tumor_normal.strelka.somatic_indels.FILTER.summary 69/custom_Sig_18_tumor_normal.strelka.somatic_indels.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/f7/c1699626b50c157f277dabc2f8f639/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv_custom.ann_snpEff.csv 19/HCC1395_tumor_vs_HCC1395_BL.manta.diploid_sv_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b8/4c1b6b591a290179b48fc1ac4724f1/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.TsTv.count 55/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b0/0afa6caa24e87f82df13515d184af1/HCC1395_tumor.mosdepth.region.dist.txt 13/HCC1395_tumor.mosdepth.region.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8e/432a0a78baccf0daa4917a914229be/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs_custom.ann_snpEff.csv 29/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/8b/62b211d7a00ca1835990508483246f/custom_Sig_18_tumor_normal.strelka.somatic_indels.bcftools_stats.txt 45/custom_Sig_18_tumor_normal.strelka.somatic_indels.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b0/0afa6caa24e87f82df13515d184af1/HCC1395_tumor.mosdepth.global.dist.txt 14/HCC1395_tumor.mosdepth.global.dist.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/39/5ae205eaa2b88f8562c24ea1a74ed1/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.FILTER.summary 63/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b3/491ef6c5c51094e59d20c1774e845d/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs_custom.ann_snpEff_VEP.ann.summary.html 31/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/36/73a92fb4eca6ed410eeef2751f5ace/custom_Sig_18_tumor_normal.manta.diploid_sv.FILTER.summary 61/custom_Sig_18_tumor_normal.manta.diploid_sv.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/b5/9deae44ce86f6f0547a0abd0b6c3e6/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.TsTv.count 51/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/5c/fc6486a9dedc22b30e424fd5f85c52/Sig_18_Blood_custom.ann_snpEff_VEP.ann.summary.html 27/Sig_18_Blood_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/stage-194ccfaa-d4ea-4fc4-af48-deb22f87deb9/ca/34dea26ea5ff6e39cebeba951a8b3d/multiqc_config.yml multiqc_config.yml")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/36/a9415812f743bb625bc07e6464dc33/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv_custom.ann_snpEff.csv 20/HCC1395_tumor_vs_HCC1395_BL.manta.somatic_sv_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/84/401b3d6bf67198e539149454137a44/HCC1395_tumor_vs_HCC1395_BL.conpair.contamination.txt 15/HCC1395_tumor_vs_HCC1395_BL.conpair.contamination.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/ce/982711cb76505f0186e322ea5d350c/HCC1395_BL.deconflicted_germline.FILTER.summary 72/HCC1395_BL.deconflicted_germline.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/86/052d657ee6e0a6cf167592bd87ab50/Sig_18_Blood.TsTv.qual 77/Sig_18_Blood.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-s3-gitlab-results/sarek/build2795358/regression-run/63486558/pipeline_info/nf_core_sarek_software_mqc_versions.yml 91/nf_core_sarek_software_mqc_versions.yml")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/3f/2db506627b730e68c0d1efd157990c/custom_Sig_18_tumor_normal.strelka.somatic_snvs.bcftools_stats.txt 46/custom_Sig_18_tumor_normal.strelka.somatic_snvs.bcftools_stats.txt")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/4a/d2274f2c415ede32cc0168335994ca/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.TsTv.count 56/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.TsTv.count")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/cd/dc4c1964637351e68d73e6eb3cedb1/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels_custom.ann_snpEff.csv 30/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels_custom.ann_snpEff.csv")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/ba/b9902a4a5d42b02602d0c80f3d0940/custom_Sig_18_tumor_normal.manta.diploid_sv_custom.ann_snpEff_VEP.ann.summary.html 24/custom_Sig_18_tumor_normal.manta.diploid_sv_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/7f/7f65e6bd9562b5d01fb8f4c9946679/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels_custom.ann_snpEff_VEP.ann.summary.html 32/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_indels_custom.ann_snpEff_VEP.ann.summary.html")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/31/8a3a99f58eec87e86afe393d443fe0/HCC1395_BL.FILTER.summary 66/HCC1395_BL.FILTER.summary")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/a6/205b6d048fbeba4a708e35bc52617f/HCC1395_BL.TsTv.qual 78/HCC1395_BL.TsTv.qual")
    downloads+=("nxf_s3_download s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/f5/9133ba710b70be66a46311393abc6c/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.bcftools_stats.txt 44/HCC1395_tumor_vs_HCC1395_BL.strelka.somatic_snvs.bcftools_stats.txt")
    nxf_parallel "${downloads[@]}"
    echo "==> STAGING COMPLETE (94 inputs)"
    echo ""
}

nxf_unstage_outputs() {
    true
    uploads=()
    IFS=$'\n'
    for name in $(eval "ls -1d *multiqc_report.html *_data *_plots versions.yml" | sort | uniq); do
        uploads+=("nxf_s3_upload '$name' s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300")
    done
    unset IFS
    nxf_parallel "${uploads[@]}"
}

nxf_unstage_controls() {
    true
    nxf_s3_upload .command.out s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300 || true
    nxf_s3_upload .command.err s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300 || true
    nxf_s3_upload .command.trace s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300 || true
}

nxf_unstage() {
    if [[ ${nxf_main_ret:=0} == 0 ]]; then
        (set -e -o pipefail; (nxf_unstage_outputs | tee -a .command.out) 3>&1 1>&2 2>&3 | tee -a .command.err)
        nxf_unstage_ret=$?
    fi
    nxf_unstage_controls
}

nxf_main() {
    trap on_exit EXIT
    trap on_term TERM INT USR2
    trap '' USR1

    [[ "${NXF_CHDIR:-}" ]] && cd "$NXF_CHDIR"
    NXF_SCRATCH="$(set +u; nxf_mktemp /tmp)"
    [[ $NXF_DEBUG > 0 ]] && nxf_env
    echo start | nxf_s3_upload - s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/fe/eea7cffad6ad43857ee9a84a319300/.command.begin
    set +u
    set -u
    /opt/s5cmd/bin/s5cmd --log error cp "s3://natera-rnd-pltf-dev-nextflow-scratch-01/work/tmp/73/e7b1d0727a481c85bfc9abce2f6332/bin/*" $NXF_SCRATCH/nextflow-bin/
    chmod +x $NXF_SCRATCH/nextflow-bin/* || true
    export PATH=$NXF_SCRATCH/nextflow-bin:$PATH
    export PYTHONNOUSERSITE="1"
    export R_PROFILE_USER="/.Rprofile"
    export R_ENVIRON_USER="/.Renviron"
    export JULIA_DEPOT_PATH="/usr/local/share/julia"
    [[ $NXF_SCRATCH ]] && cd $NXF_SCRATCH
    export NXF_TASK_WORKDIR="$PWD"
    nxf_stage

    set +e
    (set -o pipefail; (nxf_launch | tee .command.out) 3>&1 1>&2 2>&3 | tee .command.err) &
    pid=$!
    wait $pid || nxf_main_ret=$?
    nxf_unstage
}

$NXF_ENTRY