<commit_before><!DOCTYPE html>
<!--
  ~ Copyright (c) 2013-2018, Centre for Genomic Regulation (CRG).
  ~ Copyright (c) 2013-2018, <NAME> and the respective authors.
  ~
  ~   This file is part of 'Nextflow'.
  ~
  ~   Nextflow is free software: you can redistribute it and/or modify
  ~   it under the terms of the GNU General Public License as published by
  ~   the Free Software Foundation, either version 3 of the License, or
  ~   (at your option) any later version.
  ~
  ~   Nextflow is distributed in the hope that it will be useful,
  ~   but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  ~   GNU General Public License for more details.
  ~
  ~   You should have received a copy of the GNU General Public License
  ~   along with Nextflow.  If not, see <http://www.gnu.org/licenses/>.
  -->
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="Nextflow workflow report for run id [${workflow.runName}]">
  <meta name="author" content="<NAME>, <NAME>">
  <link rel="icon" type="image/png" href="https://www.nextflow.io/img/favicon.png" />

  <title>[${workflow.runName}] Nextflow Workflow Report</title>

  <style type="text/css">
  ${ assets_css.join("\n\n\n\n") }

  /* Nextflow Report Custom CSS */
  body {
    padding-top: 56px;
  }
  .navbar-brand img {
    width: 20px;
    height: 20px;
    margin: 0 10px 5px 0;
  }
  pre {
    margin-bottom: 0;
  }
  pre.nfcommand {
    white-space: pre-wrap;
    border: 1px solid #ccc;
    padding: 10px 15px;
    border-radius: 5px;
    background-color: #F0F2F4;
    font-size: 0.8rem;
  }
  table td {
    max-width: 200px;
    overflow-x: auto;
  }
  .script_block.short {
    max-height: 30px;
    overflow-y: hidden;
    cursor: pointer;
  }
  footer {
    background-color: #ededed;
    margin: 50px 0 0;
    padding: 20px 0;
    border-top: 1px solid #cccccc;
    color: #999999;
    font-size: 0.8rem;
  }
  footer a {
    color: #999999;
    text-decoration: underline;
  }
  #tasks_table_filter>.btn-group {
    vertical-align: top;
    margin-right: 1rem;
    height: calc(1.8125rem + 3px);
  }
  #tasks_table_filter .buttons-colvisGroup {
    padding: 0.2rem 0.75rem;
  }
  #tasks_table_filter .dt-buttons::before {
    content: "Filter: ";
    padding: 0.2rem 0.5rem;
    font-size: 1.1rem;
  }
  </style>

</head>
<body>
  <nav id="nf-report-navbar" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <a class="navbar-brand" href="#">
      <img src="data:image/png;base64,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">
      Nextflow Report
    </a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item"><a class="nav-link" href="#">Summary</a></li>
        <li class="nav-item"><a class="nav-link" href="#resources">Resources</a></li>
        <li class="nav-item"><a class="nav-link" href="#tasks">Tasks</a></li>
      </ul>
      <span class="navbar-text">
        [${workflow.runName}]
      </span>
    </div>
  </nav>

  <div class="jumbotron mb-0">
    <div class="container">

      <h1 class="display-3">Nextflow workflow report</h1>
      <h2 class="text-muted mb-4"><samp>[${workflow.runName}]</samp> ${workflow.resume ? '<em>(resumed run)</em>' : ''}</h2>

      <% if (workflow.success){
          out << """
          <div class="alert alert-success mb-4">
              Workflow execution completed successfully!
          </div>
          """
      } else {
          out << """
          <div class="alert alert-danger mb-4">
              <h4>Workflow execution completed unsuccessfully!</h4>
              <p>The exit status of the task that caused the workflow execution to fail was: <code>${workflow.exitStatus}</code>.</p>
              <p>The full error message was:</p>
              <pre>${workflow.errorReport}</pre>
          </div>
          """
      }
      %>

      <dl>
        <dt>Run times</dt>
        <dd>
          <span id="workflow_start">${workflow.start}</span> - <span id="workflow_complete">${workflow.complete}</span>
          (<span id="completed_fromnow"></span>duration: <strong>${workflow.duration}</strong>)
        </dd>

        <dt>Nextflow command</dt>
        <dd><pre class="nfcommand"><code>${workflow.commandLine}</code></pre></dd>
      </dl>

      <dl class="row small">
        <dt class="col-sm-3">CPU-Hours</dt>
        <dd class="col-sm-9"><samp>${workflow.stats.getComputeTimeString()}</samp></dd>

        <dt class="col-sm-3">Launch directory</dt>
        <dd class="col-sm-9"><samp>${workflow.launchDir}</samp></dd>

        <dt class="col-sm-3">Work directory</dt>
        <dd class="col-sm-9"><samp>${workflow.workDir.toUriString()}</samp></dd>

        <dt class="col-sm-3">Project directory</dt>
        <dd class="col-sm-9"><samp>${workflow.projectDir}</samp></dd>

        <% if (workflow.scriptName) {
          out << """
          <dt class="col-sm-3">Script name</dt>
          <dd class="col-sm-9"><samp>${workflow.scriptName}</samp></dd>
          """
        } %>

        <% if (workflow.scriptId) {
          out << """
          <dt class="col-sm-3">Script ID</dt>
          <dd class="col-sm-9"><code>${workflow.scriptId}</code></dd>
          """
        } %>

        <% if (workflow.repository) {
          out << """
          <dt class="col-sm-3">Workflow repository</dt>
          <dd class="col-sm-9"><code>${workflow.repository}</code>, revision <code>${workflow.revision}</code> (commit hash <code>${workflow.commitId}</code>)</dd>
          """
        } %>

        <dt class="col-sm-3">Workflow profile</dt>
        <dd class="col-sm-9">${workflow.profile}</dd>

        <% if (workflow.container) {
        out << """
        <dt class="col-sm-3">Workflow container</dt>
        <dd class="col-sm-9"><samp>${workflow.container}</samp></dd>

        <dt class="col-sm-3">Container engine</dt>
        <dd class="col-sm-9"><samp>${workflow.containerEngine?:'-'}</samp></dd>
        """
        } %>

        <dt class="col-sm-3">Nextflow version</dt>
        <dd class="col-sm-9">version ${workflow.nextflow.version}, build ${workflow.nextflow.build} (${workflow.nextflow.timestamp})</dd>

        <dt class="col-sm-3">Session ID</dt>
        <dd class="col-sm-9"><code>${workflow.sessionId}</code></dd>

      </dl>
    </div>
  </div>

  <div class="container">
    <h2 id="resources" style="padding-top: 80px;">Resource Usage</h2>
    <p>These plots give an overview of the distribution of resource usage for each process.</p>

    <h4>CPU Usage</h4>
    <ul class="nav nav-tabs" id="cpuplot_tabs" role="tablist"><commit_msg>Workflow report should warn if some task executions were ignored #534<commit_after><!DOCTYPE html>
<!--
  ~ Copyright (c) 2013-2018, Centre for Genomic Regulation (CRG).
  ~ Copyright (c) 2013-2018, <NAME> and the respective authors.
  ~
  ~   This file is part of 'Nextflow'.
  ~
  ~   Nextflow is free software: you can redistribute it and/or modify
  ~   it under the terms of the GNU General Public License as published by
  ~   the Free Software Foundation, either version 3 of the License, or
  ~   (at your option) any later version.
  ~
  ~   Nextflow is distributed in the hope that it will be useful,
  ~   but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  ~   GNU General Public License for more details.
  ~
  ~   You should have received a copy of the GNU General Public License
  ~   along with Nextflow.  If not, see <http://www.gnu.org/licenses/>.
  -->
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="Nextflow workflow report for run id [${workflow.runName}]">
  <meta name="author" content="<NAME>, <NAME>">
  <link rel="icon" type="image/png" href="https://www.nextflow.io/img/favicon.png" />

  <title>[${workflow.runName}] Nextflow Workflow Report</title>

  <style type="text/css">
  ${ assets_css.join("\n\n\n\n") }

  /* Nextflow Report Custom CSS */
  body {
    padding-top: 56px;
  }
  .navbar-brand img {
    width: 20px;
    height: 20px;
    margin: 0 10px 5px 0;
  }
  pre {
    margin-bottom: 0;
  }
  pre.nfcommand {
    white-space: pre-wrap;
    border: 1px solid #ccc;
    padding: 10px 15px;
    border-radius: 5px;
    background-color: #F0F2F4;
    font-size: 0.8rem;
  }
  table td {
    max-width: 200px;
    overflow-x: auto;
  }
  .script_block.short {
    max-height: 30px;
    overflow-y: hidden;
    cursor: pointer;
  }
  footer {
    background-color: #ededed;
    margin: 50px 0 0;
    padding: 20px 0;
    border-top: 1px solid #cccccc;
    color: #999999;
    font-size: 0.8rem;
  }
  footer a {
    color: #999999;
    text-decoration: underline;
  }
  #tasks_table_filter>.btn-group {
    vertical-align: top;
    margin-right: 1rem;
    height: calc(1.8125rem + 3px);
  }
  #tasks_table_filter .buttons-colvisGroup {
    padding: 0.2rem 0.75rem;
  }
  #tasks_table_filter .dt-buttons::before {
    content: "Filter: ";
    padding: 0.2rem 0.5rem;
    font-size: 1.1rem;
  }
  </style>

</head>
<body>
  <nav id="nf-report-navbar" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <a class="navbar-brand" href="#">
      <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQA<KEY>>
      Nextflow Report
    </a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item"><a class="nav-link" href="#">Summary</a></li>
        <li class="nav-item"><a class="nav-link" href="#resources">Resources</a></li>
        <li class="nav-item"><a class="nav-link" href="#tasks">Tasks</a></li>
      </ul>
      <span class="navbar-text">
        [${workflow.runName}]
      </span>
    </div>
  </nav>

  <div class="jumbotron mb-0">
    <div class="container">

      <h1 class="display-3">Nextflow workflow report</h1>
      <h2 class="text-muted mb-4"><samp>[${workflow.runName}]</samp> ${workflow.resume ? '<em>(resumed run)</em>' : ''}</h2>

      <% if (workflow.success && workflow.stats.ignoredCount ){ %>
          <div class="alert alert-warning mb-4">
              Workflow execution completed successfully. One or more tasks reported an error condition.
          </div>
      <% } else if (workflow.success ) { %>
          <div class="alert alert-success mb-4">
              Workflow execution completed successfully!
          </div>
      <% } else { %>
          <div class="alert alert-danger mb-4">
              <h4>Workflow execution completed unsuccessfully!</h4>
              <p>The exit status of the task that caused the workflow execution to fail was: <code>${workflow.exitStatus}</code>.</p>
              <p>The full error message was:</p>
              <pre>${workflow.errorReport}</pre>
          </div>
      <% } %>

      <dl>
        <dt>Run times</dt>
        <dd>
          <span id="workflow_start">${workflow.start}</span> - <span id="workflow_complete">${workflow.complete}</span>
          (<span id="completed_fromnow"></span>duration: <strong>${workflow.duration}</strong>)
        </dd>

        <dt>Nextflow command</dt>
        <dd><pre class="nfcommand"><code>${workflow.commandLine}</code></pre></dd>
      </dl>

      <dl class="row small">
        <dt class="col-sm-3">Launch directory</dt>
        <dd class="col-sm-9"><samp>${workflow.launchDir}</samp></dd>

        <dt class="col-sm-3">Work directory</dt>
        <dd class="col-sm-9"><samp>${workflow.workDir.toUriString()}</samp></dd>

        <dt class="col-sm-3">Project directory</dt>
        <dd class="col-sm-9"><samp>${workflow.projectDir}</samp></dd>

        <% if (workflow.scriptName) { %>
          <dt class="col-sm-3">Script name</dt>
          <dd class="col-sm-9"><samp>${workflow.scriptName}</samp></dd>
        <% } %>

        <% if (workflow.scriptId) { %>
          <dt class="col-sm-3">Script ID</dt>
          <dd class="col-sm-9"><code>${workflow.scriptId}</code></dd>
        <% } %>

        <% if (workflow.repository) { %>
          <dt class="col-sm-3">Workflow repository</dt>
          <dd class="col-sm-9"><code>${workflow.repository}</code>, revision <code>${workflow.revision}</code> (commit hash <code>${workflow.commitId}</code>)</dd>
        <% } %>

        <dt class="col-sm-3">Workflow profile</dt>
        <dd class="col-sm-9">${workflow.profile}</dd>

        <% if (workflow.container) { %>
        <dt class="col-sm-3">Workflow container</dt>
        <dd class="col-sm-9"><samp>${workflow.container}</samp></dd>

        <dt class="col-sm-3">Container engine</dt>
        <dd class="col-sm-9"><samp>${workflow.containerEngine?:'-'}</samp></dd>
        <% } %>

        <dt class="col-sm-3">Nextflow version</dt>
        <dd class="col-sm-9">version ${workflow.nextflow.version}, build ${workflow.nextflow.build} (${workflow.nextflow.timestamp})</dd>

        <dt class="col-sm-3">Session ID</dt>
        <dd class="col-sm-9"><code>${workflow.sessionId}</code></dd>

        <dt class="col-sm-3">Tasks stats</dt>
        <dd class="col-sm-9">
          <samp>succeed: ${workflow.stats.succeedCount}; </samp>
          <samp>cached: ${workflow.stats.cachedCount}; </samp>
          <samp>failed: ${workflow.stats.failedCount}; </samp>
          <samp>ignored: ${workflow.stats.ignoredCount} </samp>
        </dd>

        <dt class="col-sm-3">CPU-Hours</dt>
        <dd class="col-sm-9"><samp>${workflow.stats.getComputeTimeString()}</samp></dd>

      </dl>
    </div>
  </div>

  <div class="container">
    <h2 id="resources" style="padding-top: 80px;">Resource Usage</h2>
    <p>These plots give an overview of the distribution of resource usage for each process.</p>

    <h4>CPU Usage</h4>
    <ul class="nav nav-tabs" id="cpuplot_tabs" role="tablist">
{'fraction_non_alphanumeric': 0.1561611374407583, 'fraction_numerical': 0.03518957345971564, 'mean_word_length': 3.3721833721833723, 'pattern_counts': {'":': 0, '<': 399, '<?xml version=': 0, '>': 389, 'https://': 2, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3014491', 'n_tokens_mistral': 7022, 'n_tokens_neox': 6549, 'n_words': 1036}