From ae799bc0c2e5aeaa9e7e3500f06ad07ab55c31b8 Mon Sep 17 00:00:00 2001
From: Dominik Brilhaus <brilhaus@nfdi4plants.org>
Date: Fri, 28 Mar 2025 10:13:56 +0100
Subject: [PATCH] add workflow plots

---
 runs/deseq2/run.svg                | 101 ++++++++++++++++++
 runs/fastqc/run.svg                |  65 ++++++++++++
 runs/isaSampleToRawDataSeq/run.svg | 101 ++++++++++++++++++
 runs/kallisto/run.svg              | 125 ++++++++++++++++++++++
 runs/shiny/run.svg                 |  48 +++++++++
 runs/sleuth/run.svg                | 113 ++++++++++++++++++++
 workflows/deseq2/workflow.svg      | 125 ++++++++++++++++++++++
 workflows/fastqc/workflow.svg      |  83 +++++++++++++++
 workflows/kallisto/workflow.svg    | 161 +++++++++++++++++++++++++++++
 workflows/sleuth/workflow.svg      | 149 ++++++++++++++++++++++++++
 10 files changed, 1071 insertions(+)
 create mode 100644 runs/deseq2/run.svg
 create mode 100644 runs/fastqc/run.svg
 create mode 100644 runs/isaSampleToRawDataSeq/run.svg
 create mode 100644 runs/kallisto/run.svg
 create mode 100644 runs/shiny/run.svg
 create mode 100644 runs/sleuth/run.svg
 create mode 100644 workflows/deseq2/workflow.svg
 create mode 100644 workflows/fastqc/workflow.svg
 create mode 100644 workflows/kallisto/workflow.svg
 create mode 100644 workflows/sleuth/workflow.svg

diff --git a/runs/deseq2/run.svg b/runs/deseq2/run.svg
new file mode 100644
index 0000000..6e83131
--- /dev/null
+++ b/runs/deseq2/run.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="655pt" height="251pt"
+ viewBox="0.00 0.00 655.00 251.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 247)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-247 651,-247 651,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-157.5 8,-235 639,-235 639,-157.5 8,-157.5"/>
+<text text-anchor="middle" x="584.5" y="-164.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="277,-8 277,-85.5 395,-85.5 395,-8 277,-8"/>
+<text text-anchor="middle" x="336" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- resultsoutdir -->
+<g id="node1" class="node">
+<title>resultsoutdir</title>
+<polygon fill="#94ddf4" stroke="black" points="547.25,-190.5 547.25,-226.5 630.75,-226.5 630.75,-190.5 547.25,-190.5"/>
+<text text-anchor="middle" x="589" y="-203.45" font-family="Times,serif" font-size="14.00">resultsoutdir</text>
+</g>
+<!-- deseq2 -->
+<g id="node6" class="node">
+<title>deseq2</title>
+<ellipse fill="none" stroke="black" cx="336" cy="-131.5" rx="36.51" ry="18"/>
+<text text-anchor="middle" x="336" y="-126.45" font-family="Times,serif" font-size="14.00">deseq2</text>
+</g>
+<!-- resultsoutdir&#45;&gt;deseq2 -->
+<g id="edge1" class="edge">
+<title>resultsoutdir&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M576.63,-190.16C567.57,-178.88 554.23,-164.93 539,-157.5 512.5,-144.57 434.96,-137.9 383.75,-134.8"/>
+<polygon fill="black" stroke="black" points="383.99,-131.31 373.81,-134.23 383.59,-138.3 383.99,-131.31"/>
+</g>
+<!-- inKallistoResults -->
+<g id="node2" class="node">
+<title>inKallistoResults</title>
+<polygon fill="#94ddf4" stroke="black" points="420.5,-190.5 420.5,-226.5 529.5,-226.5 529.5,-190.5 420.5,-190.5"/>
+<text text-anchor="middle" x="475" y="-203.45" font-family="Times,serif" font-size="14.00">inKallistoResults</text>
+</g>
+<!-- inKallistoResults&#45;&gt;deseq2 -->
+<g id="edge2" class="edge">
+<title>inKallistoResults&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M456.67,-190.07C444.71,-179.46 428.35,-166.31 412,-157.5 401.73,-151.96 390.02,-147.37 378.91,-143.69"/>
+<polygon fill="black" stroke="black" points="380.12,-140.41 369.53,-140.78 378.04,-147.09 380.12,-140.41"/>
+</g>
+<!-- inMetadataFactorList -->
+<g id="node3" class="node">
+<title>inMetadataFactorList</title>
+<polygon fill="#94ddf4" stroke="black" points="269.5,-190.5 269.5,-226.5 402.5,-226.5 402.5,-190.5 269.5,-190.5"/>
+<text text-anchor="middle" x="336" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataFactorList</text>
+</g>
+<!-- inMetadataFactorList&#45;&gt;deseq2 -->
+<g id="edge3" class="edge">
+<title>inMetadataFactorList&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M336,-190.1C336,-181.49 336,-170.87 336,-161.1"/>
+<polygon fill="black" stroke="black" points="339.5,-161.31 336,-151.31 332.5,-161.31 339.5,-161.31"/>
+</g>
+<!-- inMetadataFile -->
+<g id="node4" class="node">
+<title>inMetadataFile</title>
+<polygon fill="#94ddf4" stroke="black" points="152.75,-190.5 152.75,-226.5 251.25,-226.5 251.25,-190.5 152.75,-190.5"/>
+<text text-anchor="middle" x="202" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataFile</text>
+</g>
+<!-- inMetadataFile&#45;&gt;deseq2 -->
+<g id="edge4" class="edge">
+<title>inMetadataFile&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M218.99,-190.03C230.12,-179.41 245.44,-166.25 261,-157.5 270.86,-151.96 282.13,-147.39 292.9,-143.75"/>
+<polygon fill="black" stroke="black" points="293.93,-147.1 302.41,-140.74 291.82,-140.42 293.93,-147.1"/>
+</g>
+<!-- inMetadataSample -->
+<g id="node5" class="node">
+<title>inMetadataSample</title>
+<polygon fill="#94ddf4" stroke="black" points="15.62,-190.5 15.62,-226.5 134.38,-226.5 134.38,-190.5 15.62,-190.5"/>
+<text text-anchor="middle" x="75" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataSample</text>
+</g>
+<!-- inMetadataSample&#45;&gt;deseq2 -->
+<g id="edge5" class="edge">
+<title>inMetadataSample&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M93.37,-190.23C106.46,-178.98 125.03,-165.04 144,-157.5 190.63,-138.97 248.16,-133.55 288.02,-132.25"/>
+<polygon fill="black" stroke="black" points="287.86,-135.76 297.77,-132.01 287.69,-128.76 287.86,-135.76"/>
+</g>
+<!-- output -->
+<g id="node7" class="node">
+<title>output</title>
+<polygon fill="#94ddf4" stroke="black" points="309,-41 309,-77 363,-77 363,-41 309,-41"/>
+<text text-anchor="middle" x="335.75" y="-53.95" font-family="Times,serif" font-size="14.00">output</text>
+</g>
+<!-- deseq2&#45;&gt;output -->
+<g id="edge6" class="edge">
+<title>deseq2&#45;&gt;output</title>
+<path fill="none" stroke="black" d="M336,-113.07C336,-105.73 336,-96.99 336,-88.74"/>
+<polygon fill="black" stroke="black" points="339.5,-88.74 336,-78.74 332.5,-88.74 339.5,-88.74"/>
+</g>
+</g>
+</svg>
diff --git a/runs/fastqc/run.svg b/runs/fastqc/run.svg
new file mode 100644
index 0000000..55c03b4
--- /dev/null
+++ b/runs/fastqc/run.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="193pt" height="251pt"
+ viewBox="0.00 0.00 193.00 251.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 247)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-247 189,-247 189,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="15,-157.5 15,-235 177,-235 177,-157.5 15,-157.5"/>
+<text text-anchor="middle" x="122.5" y="-164.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-8 8,-85.5 126,-85.5 126,-8 8,-8"/>
+<text text-anchor="middle" x="67" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- fastq -->
+<g id="node1" class="node">
+<title>fastq</title>
+<polygon fill="#94ddf4" stroke="black" points="115,-190.5 115,-226.5 169,-226.5 169,-190.5 115,-190.5"/>
+<text text-anchor="middle" x="141.62" y="-203.45" font-family="Times,serif" font-size="14.00">fastq</text>
+</g>
+<!-- fastqc -->
+<g id="node3" class="node">
+<title>fastqc</title>
+<ellipse fill="none" stroke="black" cx="67" cy="-131.5" rx="32.93" ry="18"/>
+<text text-anchor="middle" x="67" y="-126.45" font-family="Times,serif" font-size="14.00">fastqc</text>
+</g>
+<!-- fastq&#45;&gt;fastqc -->
+<g id="edge1" class="edge">
+<title>fastq&#45;&gt;fastqc</title>
+<path fill="none" stroke="black" d="M131.76,-190.04C125.22,-179.81 116.09,-167.06 106,-157.5 103.78,-155.39 101.35,-153.36 98.84,-151.43"/>
+<polygon fill="black" stroke="black" points="100.96,-148.64 90.76,-145.77 96.94,-154.37 100.96,-148.64"/>
+</g>
+<!-- finaloutdir -->
+<g id="node2" class="node">
+<title>finaloutdir</title>
+<polygon fill="#94ddf4" stroke="black" points="23.5,-190.5 23.5,-226.5 96.5,-226.5 96.5,-190.5 23.5,-190.5"/>
+<text text-anchor="middle" x="60" y="-203.45" font-family="Times,serif" font-size="14.00">finaloutdir</text>
+</g>
+<!-- finaloutdir&#45;&gt;fastqc -->
+<g id="edge2" class="edge">
+<title>finaloutdir&#45;&gt;fastqc</title>
+<path fill="none" stroke="black" d="M61.62,-190.1C62.43,-181.49 63.42,-170.87 64.33,-161.1"/>
+<polygon fill="black" stroke="black" points="67.8,-161.59 65.24,-151.31 60.83,-160.94 67.8,-161.59"/>
+</g>
+<!-- fastqc_outdir -->
+<g id="node4" class="node">
+<title>fastqc_outdir</title>
+<polygon fill="#94ddf4" stroke="black" points="23.38,-41 23.38,-77 110.62,-77 110.62,-41 23.38,-41"/>
+<text text-anchor="middle" x="67" y="-53.95" font-family="Times,serif" font-size="14.00">fastqc_outdir</text>
+</g>
+<!-- fastqc&#45;&gt;fastqc_outdir -->
+<g id="edge3" class="edge">
+<title>fastqc&#45;&gt;fastqc_outdir</title>
+<path fill="none" stroke="black" d="M67,-113.07C67,-105.73 67,-96.99 67,-88.74"/>
+<polygon fill="black" stroke="black" points="70.5,-88.74 67,-78.74 63.5,-88.74 70.5,-88.74"/>
+</g>
+</g>
+</svg>
diff --git a/runs/isaSampleToRawDataSeq/run.svg b/runs/isaSampleToRawDataSeq/run.svg
new file mode 100644
index 0000000..86ceb3d
--- /dev/null
+++ b/runs/isaSampleToRawDataSeq/run.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="408pt" height="251pt"
+ viewBox="0.00 0.00 408.00 251.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 247)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-247 404,-247 404,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-157.5 8,-235 392,-235 392,-157.5 8,-157.5"/>
+<text text-anchor="middle" x="337.5" y="-164.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="88,-8 88,-85.5 314,-85.5 314,-8 88,-8"/>
+<text text-anchor="middle" x="255" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- arcPath -->
+<g id="node1" class="node">
+<title>arcPath</title>
+<polygon fill="#94ddf4" stroke="black" points="327.75,-190.5 327.75,-226.5 384.25,-226.5 384.25,-190.5 327.75,-190.5"/>
+<text text-anchor="middle" x="356" y="-203.45" font-family="Times,serif" font-size="14.00">arcPath</text>
+</g>
+<!-- isaSampleToRawDataSeq -->
+<g id="node5" class="node">
+<title>isaSampleToRawDataSeq</title>
+<ellipse fill="none" stroke="black" cx="202" cy="-131.5" rx="107.65" ry="18"/>
+<text text-anchor="middle" x="202" y="-126.45" font-family="Times,serif" font-size="14.00">isaSampleToRawDataSeq</text>
+</g>
+<!-- arcPath&#45;&gt;isaSampleToRawDataSeq -->
+<g id="edge1" class="edge">
+<title>arcPath&#45;&gt;isaSampleToRawDataSeq</title>
+<path fill="none" stroke="black" d="M347.37,-190.08C341.02,-179.07 331.35,-165.45 319,-157.5 312.35,-153.22 305.1,-149.66 297.56,-146.7"/>
+<polygon fill="black" stroke="black" points="298.77,-143.42 288.17,-143.4 296.45,-150.02 298.77,-143.42"/>
+</g>
+<!-- assayName -->
+<g id="node2" class="node">
+<title>assayName</title>
+<polygon fill="#94ddf4" stroke="black" points="231.88,-190.5 231.88,-226.5 310.12,-226.5 310.12,-190.5 231.88,-190.5"/>
+<text text-anchor="middle" x="271" y="-203.45" font-family="Times,serif" font-size="14.00">assayName</text>
+</g>
+<!-- assayName&#45;&gt;isaSampleToRawDataSeq -->
+<g id="edge2" class="edge">
+<title>assayName&#45;&gt;isaSampleToRawDataSeq</title>
+<path fill="none" stroke="black" d="M255,-190.1C246.23,-180.57 235.19,-168.58 225.46,-158"/>
+<polygon fill="black" stroke="black" points="228.05,-155.65 218.7,-150.66 222.9,-160.39 228.05,-155.65"/>
+</g>
+<!-- outName -->
+<g id="node3" class="node">
+<title>outName</title>
+<polygon fill="#94ddf4" stroke="black" points="147.88,-190.5 147.88,-226.5 214.12,-226.5 214.12,-190.5 147.88,-190.5"/>
+<text text-anchor="middle" x="181" y="-203.45" font-family="Times,serif" font-size="14.00">outName</text>
+</g>
+<!-- outName&#45;&gt;isaSampleToRawDataSeq -->
+<g id="edge3" class="edge">
+<title>outName&#45;&gt;isaSampleToRawDataSeq</title>
+<path fill="none" stroke="black" d="M185.87,-190.1C188.31,-181.4 191.32,-170.63 194.08,-160.78"/>
+<polygon fill="black" stroke="black" points="197.42,-161.83 196.75,-151.26 190.68,-159.94 197.42,-161.83"/>
+</g>
+<!-- startingNodeNum -->
+<g id="node4" class="node">
+<title>startingNodeNum</title>
+<polygon fill="#94ddf4" stroke="black" points="16.25,-190.5 16.25,-226.5 129.75,-226.5 129.75,-190.5 16.25,-190.5"/>
+<text text-anchor="middle" x="73" y="-203.45" font-family="Times,serif" font-size="14.00">startingNodeNum</text>
+</g>
+<!-- startingNodeNum&#45;&gt;isaSampleToRawDataSeq -->
+<g id="edge4" class="edge">
+<title>startingNodeNum&#45;&gt;isaSampleToRawDataSeq</title>
+<path fill="none" stroke="black" d="M92.82,-190.23C105.44,-179.82 122.47,-166.81 139,-157.5 141.65,-156.01 144.4,-154.56 147.22,-153.17"/>
+<polygon fill="black" stroke="black" points="148.6,-156.39 156.2,-149 145.66,-150.04 148.6,-156.39"/>
+</g>
+<!-- sampleseqCsv -->
+<g id="node6" class="node">
+<title>sampleseqCsv</title>
+<polygon fill="#94ddf4" stroke="black" points="212,-41 212,-77 306,-77 306,-41 212,-41"/>
+<text text-anchor="middle" x="259" y="-53.95" font-family="Times,serif" font-size="14.00">sampleseqCsv</text>
+</g>
+<!-- isaSampleToRawDataSeq&#45;&gt;sampleseqCsv -->
+<g id="edge5" class="edge">
+<title>isaSampleToRawDataSeq&#45;&gt;sampleseqCsv</title>
+<path fill="none" stroke="black" d="M215.8,-113.43C222.42,-105.24 230.5,-95.25 237.88,-86.13"/>
+<polygon fill="black" stroke="black" points="240.42,-88.55 243.98,-78.58 234.97,-84.15 240.42,-88.55"/>
+</g>
+<!-- sampleseqXlsx -->
+<g id="node7" class="node">
+<title>sampleseqXlsx</title>
+<polygon fill="#94ddf4" stroke="black" points="95.75,-41 95.75,-77 194.25,-77 194.25,-41 95.75,-41"/>
+<text text-anchor="middle" x="145" y="-53.95" font-family="Times,serif" font-size="14.00">sampleseqXlsx</text>
+</g>
+<!-- isaSampleToRawDataSeq&#45;&gt;sampleseqXlsx -->
+<g id="edge6" class="edge">
+<title>isaSampleToRawDataSeq&#45;&gt;sampleseqXlsx</title>
+<path fill="none" stroke="black" d="M188.2,-113.43C181.58,-105.24 173.5,-95.25 166.12,-86.13"/>
+<polygon fill="black" stroke="black" points="169.03,-84.15 160.02,-78.58 163.58,-88.55 169.03,-84.15"/>
+</g>
+</g>
+</svg>
diff --git a/runs/kallisto/run.svg b/runs/kallisto/run.svg
new file mode 100644
index 0000000..b351c2a
--- /dev/null
+++ b/runs/kallisto/run.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="802pt" height="251pt"
+ viewBox="0.00 0.00 802.00 251.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 247)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-247 798,-247 798,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-157.5 8,-235 786,-235 786,-157.5 8,-157.5"/>
+<text text-anchor="middle" x="731.5" y="-164.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="309,-8 309,-85.5 427,-85.5 427,-8 309,-8"/>
+<text text-anchor="middle" x="368" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- BootstrapSamples -->
+<g id="node1" class="node">
+<title>BootstrapSamples</title>
+<polygon fill="#94ddf4" stroke="black" points="662.5,-190.5 662.5,-226.5 777.5,-226.5 777.5,-190.5 662.5,-190.5"/>
+<text text-anchor="middle" x="720" y="-203.45" font-family="Times,serif" font-size="14.00">BootstrapSamples</text>
+</g>
+<!-- kallisto -->
+<g id="node8" class="node">
+<title>kallisto</title>
+<ellipse fill="none" stroke="black" cx="368" cy="-131.5" rx="38.04" ry="18"/>
+<text text-anchor="middle" x="368" y="-126.45" font-family="Times,serif" font-size="14.00">kallisto</text>
+</g>
+<!-- BootstrapSamples&#45;&gt;kallisto -->
+<g id="edge1" class="edge">
+<title>BootstrapSamples&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M702.62,-190.22C689.98,-178.81 671.85,-164.69 653,-157.5 611.24,-141.57 487.33,-135.68 417.42,-133.59"/>
+<polygon fill="black" stroke="black" points="417.88,-130.1 407.78,-133.32 417.68,-137.1 417.88,-130.1"/>
+</g>
+<!-- FragmentLength -->
+<g id="node2" class="node">
+<title>FragmentLength</title>
+<polygon fill="#94ddf4" stroke="black" points="537.62,-190.5 537.62,-226.5 644.38,-226.5 644.38,-190.5 537.62,-190.5"/>
+<text text-anchor="middle" x="591" y="-203.45" font-family="Times,serif" font-size="14.00">FragmentLength</text>
+</g>
+<!-- FragmentLength&#45;&gt;kallisto -->
+<g id="edge2" class="edge">
+<title>FragmentLength&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M574.5,-190.1C562.86,-178.94 546.33,-165.16 529,-157.5 493.71,-141.89 450.31,-135.82 417.47,-133.55"/>
+<polygon fill="black" stroke="black" points="418.02,-130.08 407.84,-132.99 417.61,-137.07 418.02,-130.08"/>
+</g>
+<!-- IndexInput -->
+<g id="node3" class="node">
+<title>IndexInput</title>
+<polygon fill="#94ddf4" stroke="black" points="444.38,-190.5 444.38,-226.5 519.62,-226.5 519.62,-190.5 444.38,-190.5"/>
+<text text-anchor="middle" x="482" y="-203.45" font-family="Times,serif" font-size="14.00">IndexInput</text>
+</g>
+<!-- IndexInput&#45;&gt;kallisto -->
+<g id="edge3" class="edge">
+<title>IndexInput&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M469.57,-190.25C461.12,-179.58 449.14,-166.29 436,-157.5 428.5,-152.48 419.87,-148.32 411.32,-144.91"/>
+<polygon fill="black" stroke="black" points="412.66,-141.68 402.06,-141.53 410.25,-148.25 412.66,-141.68"/>
+</g>
+<!-- StandardDeviation -->
+<g id="node4" class="node">
+<title>StandardDeviation</title>
+<polygon fill="#94ddf4" stroke="black" points="309.38,-190.5 309.38,-226.5 426.62,-226.5 426.62,-190.5 309.38,-190.5"/>
+<text text-anchor="middle" x="368" y="-203.45" font-family="Times,serif" font-size="14.00">StandardDeviation</text>
+</g>
+<!-- StandardDeviation&#45;&gt;kallisto -->
+<g id="edge4" class="edge">
+<title>StandardDeviation&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M368,-190.1C368,-181.49 368,-170.87 368,-161.1"/>
+<polygon fill="black" stroke="black" points="371.5,-161.31 368,-151.31 364.5,-161.31 371.5,-161.31"/>
+</g>
+<!-- isSingle -->
+<g id="node5" class="node">
+<title>isSingle</title>
+<polygon fill="#94ddf4" stroke="black" points="232.25,-190.5 232.25,-226.5 291.75,-226.5 291.75,-190.5 232.25,-190.5"/>
+<text text-anchor="middle" x="262" y="-203.45" font-family="Times,serif" font-size="14.00">isSingle</text>
+</g>
+<!-- isSingle&#45;&gt;kallisto -->
+<g id="edge5" class="edge">
+<title>isSingle&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M271.66,-190.17C278.39,-179.48 288.25,-166.19 300,-157.5 307.18,-152.19 315.61,-147.9 324.05,-144.48"/>
+<polygon fill="black" stroke="black" points="325.03,-147.84 333.22,-141.11 322.62,-141.27 325.03,-147.84"/>
+</g>
+<!-- resultsFolder -->
+<g id="node6" class="node">
+<title>resultsFolder</title>
+<polygon fill="#94ddf4" stroke="black" points="127.75,-190.5 127.75,-226.5 214.25,-226.5 214.25,-190.5 127.75,-190.5"/>
+<text text-anchor="middle" x="171" y="-203.45" font-family="Times,serif" font-size="14.00">resultsFolder</text>
+</g>
+<!-- resultsFolder&#45;&gt;kallisto -->
+<g id="edge6" class="edge">
+<title>resultsFolder&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M184.13,-190.4C193.67,-179.22 207.58,-165.3 223,-157.5 252.58,-142.54 289.43,-136.32 318.58,-133.83"/>
+<polygon fill="black" stroke="black" points="318.52,-137.34 328.24,-133.13 318.01,-130.36 318.52,-137.34"/>
+</g>
+<!-- sampleRecord -->
+<g id="node7" class="node">
+<title>sampleRecord</title>
+<polygon fill="#94ddf4" stroke="black" points="16,-190.5 16,-226.5 110,-226.5 110,-190.5 16,-190.5"/>
+<text text-anchor="middle" x="63" y="-203.45" font-family="Times,serif" font-size="14.00">sampleRecord</text>
+</g>
+<!-- sampleRecord&#45;&gt;kallisto -->
+<g id="edge7" class="edge">
+<title>sampleRecord&#45;&gt;kallisto</title>
+<path fill="none" stroke="black" d="M77.23,-190.04C87.55,-178.71 102.54,-164.74 119,-157.5 153.65,-142.26 256.51,-136.18 318.66,-133.86"/>
+<polygon fill="black" stroke="black" points="318.76,-137.35 328.63,-133.5 318.51,-130.36 318.76,-137.35"/>
+</g>
+<!-- kallistoOutDir -->
+<g id="node9" class="node">
+<title>kallistoOutDir</title>
+<polygon fill="#94ddf4" stroke="black" points="321,-41 321,-77 415,-77 415,-41 321,-41"/>
+<text text-anchor="middle" x="368" y="-53.95" font-family="Times,serif" font-size="14.00">kallistoOutDir</text>
+</g>
+<!-- kallisto&#45;&gt;kallistoOutDir -->
+<g id="edge8" class="edge">
+<title>kallisto&#45;&gt;kallistoOutDir</title>
+<path fill="none" stroke="black" d="M368,-113.07C368,-105.73 368,-96.99 368,-88.74"/>
+<polygon fill="black" stroke="black" points="371.5,-88.74 368,-78.74 364.5,-88.74 371.5,-88.74"/>
+</g>
+</g>
+</svg>
diff --git a/runs/shiny/run.svg b/runs/shiny/run.svg
new file mode 100644
index 0000000..ee08455
--- /dev/null
+++ b/runs/shiny/run.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="223pt" height="138pt"
+ viewBox="0.00 0.00 223.00 137.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 133.5)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-133.5 219,-133.5 219,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-44 8,-121.5 207,-121.5 207,-44 8,-44"/>
+<text text-anchor="middle" x="152.5" y="-51.2" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<!-- exp_factor -->
+<g id="node1" class="node">
+<title>exp_factor</title>
+<polygon fill="#94ddf4" stroke="black" points="125.12,-77 125.12,-113 198.88,-113 198.88,-77 125.12,-77"/>
+<text text-anchor="middle" x="162" y="-89.95" font-family="Times,serif" font-size="14.00">exp_factor</text>
+</g>
+<!-- run_shiny -->
+<g id="node3" class="node">
+<title>run_shiny</title>
+<ellipse fill="none" stroke="black" cx="112" cy="-18" rx="47.77" ry="18"/>
+<text text-anchor="middle" x="112" y="-12.95" font-family="Times,serif" font-size="14.00">run_shiny</text>
+</g>
+<!-- exp_factor&#45;&gt;run_shiny -->
+<g id="edge1" class="edge">
+<title>exp_factor&#45;&gt;run_shiny</title>
+<path fill="none" stroke="black" d="M150.4,-76.6C144.19,-67.29 136.42,-55.63 129.49,-45.24"/>
+<polygon fill="black" stroke="black" points="132.49,-43.42 124.03,-37.04 126.66,-47.31 132.49,-43.42"/>
+</g>
+<!-- in_kallisto_df -->
+<g id="node2" class="node">
+<title>in_kallisto_df</title>
+<polygon fill="#94ddf4" stroke="black" points="16.5,-77 16.5,-113 107.5,-113 107.5,-77 16.5,-77"/>
+<text text-anchor="middle" x="62" y="-89.95" font-family="Times,serif" font-size="14.00">in_kallisto_df</text>
+</g>
+<!-- in_kallisto_df&#45;&gt;run_shiny -->
+<g id="edge2" class="edge">
+<title>in_kallisto_df&#45;&gt;run_shiny</title>
+<path fill="none" stroke="black" d="M73.6,-76.6C79.81,-67.29 87.58,-55.63 94.51,-45.24"/>
+<polygon fill="black" stroke="black" points="97.34,-47.31 99.97,-37.04 91.51,-43.42 97.34,-47.31"/>
+</g>
+</g>
+</svg>
diff --git a/runs/sleuth/run.svg b/runs/sleuth/run.svg
new file mode 100644
index 0000000..c1a6eda
--- /dev/null
+++ b/runs/sleuth/run.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="796pt" height="251pt"
+ viewBox="0.00 0.00 796.00 251.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 247)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-247 792,-247 792,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-157.5 8,-235 780,-235 780,-157.5 8,-157.5"/>
+<text text-anchor="middle" x="725.5" y="-164.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="350,-8 350,-85.5 468,-85.5 468,-8 350,-8"/>
+<text text-anchor="middle" x="409" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- resultsoutdir -->
+<g id="node1" class="node">
+<title>resultsoutdir</title>
+<polygon fill="#94ddf4" stroke="black" points="688.25,-190.5 688.25,-226.5 771.75,-226.5 771.75,-190.5 688.25,-190.5"/>
+<text text-anchor="middle" x="730" y="-203.45" font-family="Times,serif" font-size="14.00">resultsoutdir</text>
+</g>
+<!-- sleuth -->
+<g id="node7" class="node">
+<title>sleuth</title>
+<ellipse fill="none" stroke="black" cx="409" cy="-131.5" rx="32.93" ry="18"/>
+<text text-anchor="middle" x="409" y="-126.45" font-family="Times,serif" font-size="14.00">sleuth</text>
+</g>
+<!-- resultsoutdir&#45;&gt;sleuth -->
+<g id="edge1" class="edge">
+<title>resultsoutdir&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M717.7,-190.01C708.67,-178.66 695.34,-164.7 680,-157.5 640.96,-139.18 519.81,-134.28 453.49,-132.97"/>
+<polygon fill="black" stroke="black" points="453.74,-129.47 443.68,-132.8 453.62,-136.47 453.74,-129.47"/>
+</g>
+<!-- inKallistoResults -->
+<g id="node2" class="node">
+<title>inKallistoResults</title>
+<polygon fill="#94ddf4" stroke="black" points="561.5,-190.5 561.5,-226.5 670.5,-226.5 670.5,-190.5 561.5,-190.5"/>
+<text text-anchor="middle" x="616" y="-203.45" font-family="Times,serif" font-size="14.00">inKallistoResults</text>
+</g>
+<!-- inKallistoResults&#45;&gt;sleuth -->
+<g id="edge2" class="edge">
+<title>inKallistoResults&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M598.81,-190.22C586.74,-179.11 569.65,-165.34 552,-157.5 520.83,-143.65 482.64,-137.46 453.58,-134.69"/>
+<polygon fill="black" stroke="black" points="453.89,-131.21 443.63,-133.86 453.3,-138.18 453.89,-131.21"/>
+</g>
+<!-- inMetadataDataCol -->
+<g id="node3" class="node">
+<title>inMetadataDataCol</title>
+<polygon fill="#94ddf4" stroke="black" points="420.75,-190.5 420.75,-226.5 543.25,-226.5 543.25,-190.5 420.75,-190.5"/>
+<text text-anchor="middle" x="482" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataDataCol</text>
+</g>
+<!-- inMetadataDataCol&#45;&gt;sleuth -->
+<g id="edge3" class="edge">
+<title>inMetadataDataCol&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M465.07,-190.1C455.13,-179.9 442.45,-166.87 431.66,-155.79"/>
+<polygon fill="black" stroke="black" points="434.4,-153.58 424.92,-148.85 429.38,-158.46 434.4,-153.58"/>
+</g>
+<!-- inMetadataFactorList -->
+<g id="node4" class="node">
+<title>inMetadataFactorList</title>
+<polygon fill="#94ddf4" stroke="black" points="269.5,-190.5 269.5,-226.5 402.5,-226.5 402.5,-190.5 269.5,-190.5"/>
+<text text-anchor="middle" x="336" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataFactorList</text>
+</g>
+<!-- inMetadataFactorList&#45;&gt;sleuth -->
+<g id="edge4" class="edge">
+<title>inMetadataFactorList&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M352.93,-190.1C362.87,-179.9 375.55,-166.87 386.34,-155.79"/>
+<polygon fill="black" stroke="black" points="388.62,-158.46 393.08,-148.85 383.6,-153.58 388.62,-158.46"/>
+</g>
+<!-- inMetadataFile -->
+<g id="node5" class="node">
+<title>inMetadataFile</title>
+<polygon fill="#94ddf4" stroke="black" points="152.75,-190.5 152.75,-226.5 251.25,-226.5 251.25,-190.5 152.75,-190.5"/>
+<text text-anchor="middle" x="202" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataFile</text>
+</g>
+<!-- inMetadataFile&#45;&gt;sleuth -->
+<g id="edge5" class="edge">
+<title>inMetadataFile&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M217.34,-190.4C228.37,-179.23 244.2,-165.31 261,-157.5 293.69,-142.3 334.26,-136.23 364.66,-133.86"/>
+<polygon fill="black" stroke="black" points="364.51,-137.38 374.26,-133.22 364.05,-130.39 364.51,-137.38"/>
+</g>
+<!-- inMetadataSample -->
+<g id="node6" class="node">
+<title>inMetadataSample</title>
+<polygon fill="#94ddf4" stroke="black" points="15.62,-190.5 15.62,-226.5 134.38,-226.5 134.38,-190.5 15.62,-190.5"/>
+<text text-anchor="middle" x="75" y="-203.45" font-family="Times,serif" font-size="14.00">inMetadataSample</text>
+</g>
+<!-- inMetadataSample&#45;&gt;sleuth -->
+<g id="edge6" class="edge">
+<title>inMetadataSample&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M93.29,-190.01C106.34,-178.67 124.9,-164.7 144,-157.5 183.18,-142.73 299.68,-136.34 364.4,-133.87"/>
+<polygon fill="black" stroke="black" points="364.48,-137.37 374.34,-133.51 364.22,-130.38 364.48,-137.37"/>
+</g>
+<!-- outdir -->
+<g id="node8" class="node">
+<title>outdir</title>
+<polygon fill="#94ddf4" stroke="black" points="382,-41 382,-77 436,-77 436,-41 382,-41"/>
+<text text-anchor="middle" x="408.62" y="-53.95" font-family="Times,serif" font-size="14.00">outdir</text>
+</g>
+<!-- sleuth&#45;&gt;outdir -->
+<g id="edge7" class="edge">
+<title>sleuth&#45;&gt;outdir</title>
+<path fill="none" stroke="black" d="M409,-113.07C409,-105.73 409,-96.99 409,-88.74"/>
+<polygon fill="black" stroke="black" points="412.5,-88.74 409,-78.74 405.5,-88.74 412.5,-88.74"/>
+</g>
+</g>
+</svg>
diff --git a/workflows/deseq2/workflow.svg b/workflows/deseq2/workflow.svg
new file mode 100644
index 0000000..7913712
--- /dev/null
+++ b/workflows/deseq2/workflow.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="645pt" height="325pt"
+ viewBox="0.00 0.00 645.00 325.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 321)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-321 641,-321 641,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-231.5 8,-309 629,-309 629,-231.5 8,-231.5"/>
+<text text-anchor="middle" x="574.5" y="-238.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="232,-8 232,-85.5 350,-85.5 350,-8 232,-8"/>
+<text text-anchor="middle" x="291" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- deseq2 -->
+<g id="node1" class="node">
+<title>deseq2</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="264,-187 264,-223 318,-223 318,-187 264,-187"/>
+<text text-anchor="middle" x="290.75" y="-199.95" font-family="Times,serif" font-size="14.00">deseq2</text>
+</g>
+<!-- collectFiles -->
+<g id="node2" class="node">
+<title>collectFiles</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="251.12,-114 251.12,-150 330.88,-150 330.88,-114 251.12,-114"/>
+<text text-anchor="middle" x="291" y="-126.95" font-family="Times,serif" font-size="14.00">Gather files</text>
+</g>
+<!-- deseq2&#45;&gt;collectFiles -->
+<g id="edge1" class="edge">
+<title>deseq2&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M279.24,-186.81C277.64,-179.14 277.14,-169.89 277.75,-161.24"/>
+<polygon fill="black" stroke="black" points="281.2,-161.91 279.07,-151.53 274.26,-160.97 281.2,-161.91"/>
+</g>
+<!-- deseq2&#45;&gt;collectFiles -->
+<g id="edge2" class="edge">
+<title>deseq2&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M291,-186.81C291,-179.23 291,-170.1 291,-161.54"/>
+<polygon fill="black" stroke="black" points="294.5,-161.54 291,-151.54 287.5,-161.54 294.5,-161.54"/>
+</g>
+<!-- deseq2&#45;&gt;collectFiles -->
+<g id="edge3" class="edge">
+<title>deseq2&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M302.76,-186.81C304.36,-179.14 304.86,-169.89 304.25,-161.24"/>
+<polygon fill="black" stroke="black" points="307.74,-160.97 302.93,-151.53 300.8,-161.91 307.74,-160.97"/>
+</g>
+<!-- deseq2_outdir -->
+<g id="node8" class="node">
+<title>deseq2_outdir</title>
+<polygon fill="#94ddf4" stroke="black" points="244.75,-41 244.75,-77 337.25,-77 337.25,-41 244.75,-41"/>
+<text text-anchor="middle" x="291" y="-53.95" font-family="Times,serif" font-size="14.00">deseq2_outdir</text>
+</g>
+<!-- collectFiles&#45;&gt;deseq2_outdir -->
+<g id="edge9" class="edge">
+<title>collectFiles&#45;&gt;deseq2_outdir</title>
+<path fill="none" stroke="black" d="M291,-113.81C291,-106.23 291,-97.1 291,-88.54"/>
+<polygon fill="black" stroke="black" points="294.5,-88.54 291,-78.54 287.5,-88.54 294.5,-88.54"/>
+</g>
+<!-- finaloutdir -->
+<g id="node3" class="node">
+<title>finaloutdir</title>
+<polygon fill="#94ddf4" stroke="black" points="16.5,-264.5 16.5,-300.5 89.5,-300.5 89.5,-264.5 16.5,-264.5"/>
+<text text-anchor="middle" x="53" y="-277.45" font-family="Times,serif" font-size="14.00">finaloutdir</text>
+</g>
+<!-- finaloutdir&#45;&gt;collectFiles -->
+<g id="edge4" class="edge">
+<title>finaloutdir&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M66.2,-264.31C74.77,-253.93 86.61,-240.93 99,-231.5 142.92,-198.07 199.88,-170.5 240.33,-153.11"/>
+<polygon fill="black" stroke="black" points="241.52,-156.41 249.36,-149.28 238.79,-149.96 241.52,-156.41"/>
+</g>
+<!-- inKallistoResults -->
+<g id="node4" class="node">
+<title>inKallistoResults</title>
+<polygon fill="#94ddf4" stroke="black" points="375.5,-264.5 375.5,-300.5 484.5,-300.5 484.5,-264.5 375.5,-264.5"/>
+<text text-anchor="middle" x="430" y="-277.45" font-family="Times,serif" font-size="14.00">inKallistoResults</text>
+</g>
+<!-- inKallistoResults&#45;&gt;deseq2 -->
+<g id="edge5" class="edge">
+<title>inKallistoResults&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M411.65,-264.1C399.69,-253.51 383.32,-240.36 367,-231.5 355.29,-225.15 341.72,-219.98 329.31,-216"/>
+<polygon fill="black" stroke="black" points="330.36,-212.66 319.77,-213.12 328.33,-219.36 330.36,-212.66"/>
+</g>
+<!-- inMetadataFactorList -->
+<g id="node5" class="node">
+<title>inMetadataFactorList</title>
+<polygon fill="#94ddf4" stroke="black" points="224.5,-264.5 224.5,-300.5 357.5,-300.5 357.5,-264.5 224.5,-264.5"/>
+<text text-anchor="middle" x="291" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataFactorList</text>
+</g>
+<!-- inMetadataFactorList&#45;&gt;deseq2 -->
+<g id="edge6" class="edge">
+<title>inMetadataFactorList&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M291,-264.37C291,-255.55 291,-244.57 291,-234.51"/>
+<polygon fill="black" stroke="black" points="294.5,-234.84 291,-224.84 287.5,-234.84 294.5,-234.84"/>
+</g>
+<!-- inMetadataFile -->
+<g id="node6" class="node">
+<title>inMetadataFile</title>
+<polygon fill="#94ddf4" stroke="black" points="107.75,-264.5 107.75,-300.5 206.25,-300.5 206.25,-264.5 107.75,-264.5"/>
+<text text-anchor="middle" x="157" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataFile</text>
+</g>
+<!-- inMetadataFile&#45;&gt;deseq2 -->
+<g id="edge7" class="edge">
+<title>inMetadataFile&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M174.01,-264.06C185.14,-253.45 200.46,-240.3 216,-231.5 227.36,-225.06 240.61,-219.9 252.78,-215.94"/>
+<polygon fill="black" stroke="black" points="253.59,-219.35 262.13,-213.09 251.54,-212.66 253.59,-219.35"/>
+</g>
+<!-- inMetadataSample -->
+<g id="node7" class="node">
+<title>inMetadataSample</title>
+<polygon fill="#94ddf4" stroke="black" points="502.62,-264.5 502.62,-300.5 621.38,-300.5 621.38,-264.5 502.62,-264.5"/>
+<text text-anchor="middle" x="562" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataSample</text>
+</g>
+<!-- inMetadataSample&#45;&gt;deseq2 -->
+<g id="edge8" class="edge">
+<title>inMetadataSample&#45;&gt;deseq2</title>
+<path fill="none" stroke="black" d="M543.95,-264.2C531.08,-252.94 512.78,-238.99 494,-231.5 439.83,-209.9 371.65,-205.51 329.71,-205.15"/>
+<polygon fill="black" stroke="black" points="329.86,-201.65 319.86,-205.15 329.86,-208.65 329.86,-201.65"/>
+</g>
+</g>
+</svg>
diff --git a/workflows/fastqc/workflow.svg b/workflows/fastqc/workflow.svg
new file mode 100644
index 0000000..4204252
--- /dev/null
+++ b/workflows/fastqc/workflow.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="353pt" height="325pt"
+ viewBox="0.00 0.00 352.62 325.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 321)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-321 348.62,-321 348.62,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-231.5 8,-309 170,-309 170,-231.5 8,-231.5"/>
+<text text-anchor="middle" x="115.5" y="-238.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="128,-8 128,-85.5 246,-85.5 246,-8 128,-8"/>
+<text text-anchor="middle" x="187" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- fastqc -->
+<g id="node1" class="node">
+<title>fastqc</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="29.38,-187 29.38,-223 344.62,-223 344.62,-187 29.38,-187"/>
+<text text-anchor="middle" x="187" y="-199.95" font-family="Times,serif" font-size="14.00">FastQC &#45; A high throughput sequence QC analysis tool</text>
+</g>
+<!-- collectFiles -->
+<g id="node2" class="node">
+<title>collectFiles</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="147.12,-114 147.12,-150 226.88,-150 226.88,-114 147.12,-114"/>
+<text text-anchor="middle" x="187" y="-126.95" font-family="Times,serif" font-size="14.00">Gather files</text>
+</g>
+<!-- fastqc&#45;&gt;collectFiles -->
+<g id="edge1" class="edge">
+<title>fastqc&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M181.12,-186.81C180.32,-179.14 180.07,-169.89 180.38,-161.24"/>
+<polygon fill="black" stroke="black" points="183.85,-161.75 181.04,-151.54 176.87,-161.28 183.85,-161.75"/>
+</g>
+<!-- fastqc&#45;&gt;collectFiles -->
+<g id="edge2" class="edge">
+<title>fastqc&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M192.88,-186.81C193.68,-179.14 193.93,-169.89 193.62,-161.24"/>
+<polygon fill="black" stroke="black" points="197.13,-161.28 192.96,-151.54 190.15,-161.75 197.13,-161.28"/>
+</g>
+<!-- fastqc_outdir -->
+<g id="node5" class="node">
+<title>fastqc_outdir</title>
+<polygon fill="#94ddf4" stroke="black" points="143.38,-41 143.38,-77 230.62,-77 230.62,-41 143.38,-41"/>
+<text text-anchor="middle" x="187" y="-53.95" font-family="Times,serif" font-size="14.00">fastqc_outdir</text>
+</g>
+<!-- collectFiles&#45;&gt;fastqc_outdir -->
+<g id="edge5" class="edge">
+<title>collectFiles&#45;&gt;fastqc_outdir</title>
+<path fill="none" stroke="black" d="M187,-113.81C187,-106.23 187,-97.1 187,-88.54"/>
+<polygon fill="black" stroke="black" points="190.5,-88.54 187,-78.54 183.5,-88.54 190.5,-88.54"/>
+</g>
+<!-- finaloutdir -->
+<g id="node3" class="node">
+<title>finaloutdir</title>
+<polygon fill="#94ddf4" stroke="black" points="16.5,-264.5 16.5,-300.5 89.5,-300.5 89.5,-264.5 16.5,-264.5"/>
+<text text-anchor="middle" x="53" y="-277.45" font-family="Times,serif" font-size="14.00">finaloutdir</text>
+</g>
+<!-- finaloutdir&#45;&gt;collectFiles -->
+<g id="edge3" class="edge">
+<title>finaloutdir&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M38.13,-264.3C22.56,-244.1 2.61,-210.34 20,-186.5 46.22,-150.57 96.89,-138.23 135.57,-134.25"/>
+<polygon fill="black" stroke="black" points="135.47,-137.77 145.14,-133.43 134.87,-130.8 135.47,-137.77"/>
+</g>
+<!-- fastq -->
+<g id="node4" class="node">
+<title>fastq</title>
+<polygon fill="#94ddf4" stroke="black" points="108,-264.5 108,-300.5 162,-300.5 162,-264.5 108,-264.5"/>
+<text text-anchor="middle" x="134.62" y="-277.45" font-family="Times,serif" font-size="14.00">fastq</text>
+</g>
+<!-- fastq&#45;&gt;fastqc -->
+<g id="edge4" class="edge">
+<title>fastq&#45;&gt;fastqc</title>
+<path fill="none" stroke="black" d="M146.8,-264.37C153.27,-254.97 161.43,-243.12 168.71,-232.56"/>
+<polygon fill="black" stroke="black" points="171.42,-234.79 174.21,-224.57 165.65,-230.82 171.42,-234.79"/>
+</g>
+</g>
+</svg>
diff --git a/workflows/kallisto/workflow.svg b/workflows/kallisto/workflow.svg
new file mode 100644
index 0000000..cba2955
--- /dev/null
+++ b/workflows/kallisto/workflow.svg
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="802pt" height="398pt"
+ viewBox="0.00 0.00 802.00 398.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 394)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-394 798,-394 798,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-304.5 8,-382 786,-382 786,-304.5 8,-304.5"/>
+<text text-anchor="middle" x="731.5" y="-311.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="221,-8 221,-85.5 339,-85.5 339,-8 221,-8"/>
+<text text-anchor="middle" x="280" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- quant -->
+<g id="node1" class="node">
+<title>quant</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="460.75,-187 460.75,-223 553.25,-223 553.25,-187 460.75,-187"/>
+<text text-anchor="middle" x="507" y="-199.95" font-family="Times,serif" font-size="14.00">Kallisto quant</text>
+</g>
+<!-- collectResults -->
+<g id="node2" class="node">
+<title>collectResults</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="223.25,-114 223.25,-150 336.75,-150 336.75,-114 223.25,-114"/>
+<text text-anchor="middle" x="280" y="-126.95" font-family="Times,serif" font-size="14.00">Gather directories</text>
+</g>
+<!-- quant&#45;&gt;collectResults -->
+<g id="edge1" class="edge">
+<title>quant&#45;&gt;collectResults</title>
+<path fill="none" stroke="black" d="M460.52,-189.46C427.58,-179.16 382.91,-165.19 346.25,-153.72"/>
+<polygon fill="black" stroke="black" points="347.68,-150.5 337.09,-150.86 345.59,-157.18 347.68,-150.5"/>
+</g>
+<!-- kallistoOutDir -->
+<g id="node11" class="node">
+<title>kallistoOutDir</title>
+<polygon fill="#94ddf4" stroke="black" points="233,-41 233,-77 327,-77 327,-41 233,-41"/>
+<text text-anchor="middle" x="280" y="-53.95" font-family="Times,serif" font-size="14.00">kallistoOutDir</text>
+</g>
+<!-- collectResults&#45;&gt;kallistoOutDir -->
+<g id="edge12" class="edge">
+<title>collectResults&#45;&gt;kallistoOutDir</title>
+<path fill="none" stroke="black" d="M280,-113.81C280,-106.23 280,-97.1 280,-88.54"/>
+<polygon fill="black" stroke="black" points="283.5,-88.54 280,-78.54 276.5,-88.54 283.5,-88.54"/>
+</g>
+<!-- index -->
+<g id="node3" class="node">
+<title>index</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="111.75,-260 111.75,-296 204.25,-296 204.25,-260 111.75,-260"/>
+<text text-anchor="middle" x="158" y="-272.95" font-family="Times,serif" font-size="14.00">Kallisto index</text>
+</g>
+<!-- index&#45;&gt;quant -->
+<g id="edge2" class="edge">
+<title>index&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M204.71,-267.5C267.96,-254.63 380.8,-231.67 449.28,-217.74"/>
+<polygon fill="black" stroke="black" points="449.71,-221.23 458.81,-215.8 448.31,-214.37 449.71,-221.23"/>
+</g>
+<!-- resultsFolder -->
+<g id="node4" class="node">
+<title>resultsFolder</title>
+<polygon fill="#94ddf4" stroke="black" points="15.75,-337.5 15.75,-373.5 102.25,-373.5 102.25,-337.5 15.75,-337.5"/>
+<text text-anchor="middle" x="59" y="-350.45" font-family="Times,serif" font-size="14.00">resultsFolder</text>
+</g>
+<!-- resultsFolder&#45;&gt;collectResults -->
+<g id="edge3" class="edge">
+<title>resultsFolder&#45;&gt;collectResults</title>
+<path fill="none" stroke="black" d="M64,-337.24C70.5,-316.98 83.4,-283.15 103,-259.5 140.06,-214.78 196.45,-178.15 235.59,-156.02"/>
+<polygon fill="black" stroke="black" points="237.27,-159.09 244.32,-151.17 233.87,-152.97 237.27,-159.09"/>
+</g>
+<!-- IndexInput -->
+<g id="node5" class="node">
+<title>IndexInput</title>
+<polygon fill="#94ddf4" stroke="black" points="120.38,-337.5 120.38,-373.5 195.62,-373.5 195.62,-337.5 120.38,-337.5"/>
+<text text-anchor="middle" x="158" y="-350.45" font-family="Times,serif" font-size="14.00">IndexInput</text>
+</g>
+<!-- IndexInput&#45;&gt;index -->
+<g id="edge4" class="edge">
+<title>IndexInput&#45;&gt;index</title>
+<path fill="none" stroke="black" d="M152.24,-337.37C151.3,-328.55 151.03,-317.57 151.43,-307.51"/>
+<polygon fill="black" stroke="black" points="154.9,-308.06 152.11,-297.84 147.92,-307.57 154.9,-308.06"/>
+</g>
+<!-- IndexInput&#45;&gt;index -->
+<g id="edge5" class="edge">
+<title>IndexInput&#45;&gt;index</title>
+<path fill="none" stroke="black" d="M163.76,-337.37C164.7,-328.55 164.97,-317.57 164.57,-307.51"/>
+<polygon fill="black" stroke="black" points="168.08,-307.57 163.89,-297.84 161.1,-308.06 168.08,-307.57"/>
+</g>
+<!-- BootstrapSamples -->
+<g id="node6" class="node">
+<title>BootstrapSamples</title>
+<polygon fill="#94ddf4" stroke="black" points="213.5,-337.5 213.5,-373.5 328.5,-373.5 328.5,-337.5 213.5,-337.5"/>
+<text text-anchor="middle" x="271" y="-350.45" font-family="Times,serif" font-size="14.00">BootstrapSamples</text>
+</g>
+<!-- BootstrapSamples&#45;&gt;quant -->
+<g id="edge6" class="edge">
+<title>BootstrapSamples&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M292.88,-337.19C305.76,-327.25 322.51,-314.75 338,-304.5 380.02,-276.7 430.09,-248.04 464.78,-228.86"/>
+<polygon fill="black" stroke="black" points="466.18,-232.08 473.25,-224.19 462.8,-225.95 466.18,-232.08"/>
+</g>
+<!-- FragmentLength -->
+<g id="node7" class="node">
+<title>FragmentLength</title>
+<polygon fill="#94ddf4" stroke="black" points="346.62,-337.5 346.62,-373.5 453.38,-373.5 453.38,-337.5 346.62,-337.5"/>
+<text text-anchor="middle" x="400" y="-350.45" font-family="Times,serif" font-size="14.00">FragmentLength</text>
+</g>
+<!-- FragmentLength&#45;&gt;quant -->
+<g id="edge7" class="edge">
+<title>FragmentLength&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M412.48,-337.17C431.09,-311.35 466.23,-262.58 488.03,-232.33"/>
+<polygon fill="black" stroke="black" points="490.7,-234.6 493.71,-224.44 485.03,-230.51 490.7,-234.6"/>
+</g>
+<!-- StandardDeviation -->
+<g id="node8" class="node">
+<title>StandardDeviation</title>
+<polygon fill="#94ddf4" stroke="black" points="471.38,-337.5 471.38,-373.5 588.62,-373.5 588.62,-337.5 471.38,-337.5"/>
+<text text-anchor="middle" x="530" y="-350.45" font-family="Times,serif" font-size="14.00">StandardDeviation</text>
+</g>
+<!-- StandardDeviation&#45;&gt;quant -->
+<g id="edge8" class="edge">
+<title>StandardDeviation&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M527.32,-337.17C523.4,-311.91 516.09,-264.68 511.39,-234.32"/>
+<polygon fill="black" stroke="black" points="514.89,-234.06 509.9,-224.71 507.97,-235.13 514.89,-234.06"/>
+</g>
+<!-- isSingle -->
+<g id="node9" class="node">
+<title>isSingle</title>
+<polygon fill="#94ddf4" stroke="black" points="606.25,-337.5 606.25,-373.5 665.75,-373.5 665.75,-337.5 606.25,-337.5"/>
+<text text-anchor="middle" x="636" y="-350.45" font-family="Times,serif" font-size="14.00">isSingle</text>
+</g>
+<!-- isSingle&#45;&gt;quant -->
+<g id="edge9" class="edge">
+<title>isSingle&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M626.87,-337.32C620.24,-326.4 610.28,-312.81 598,-304.5 586.93,-297.01 579.88,-304.26 569,-296.5 546.66,-280.56 529.82,-253.89 519.38,-233.62"/>
+<polygon fill="black" stroke="black" points="522.58,-232.21 515.03,-224.77 516.3,-235.29 522.58,-232.21"/>
+</g>
+<!-- sampleRecord -->
+<g id="node10" class="node">
+<title>sampleRecord</title>
+<polygon fill="#94ddf4" stroke="black" points="684,-337.5 684,-373.5 778,-373.5 778,-337.5 684,-337.5"/>
+<text text-anchor="middle" x="731" y="-350.45" font-family="Times,serif" font-size="14.00">sampleRecord</text>
+</g>
+<!-- sampleRecord&#45;&gt;quant -->
+<g id="edge10" class="edge">
+<title>sampleRecord&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M705.51,-337.1C693.7,-327.02 679.59,-314.4 666,-304.5 626.13,-275.45 577.13,-247.52 544.03,-228.87"/>
+<polygon fill="black" stroke="black" points="546.05,-225.98 535.62,-224.13 542.61,-232.08 546.05,-225.98"/>
+</g>
+<!-- sampleRecord&#45;&gt;quant -->
+<g id="edge11" class="edge">
+<title>sampleRecord&#45;&gt;quant</title>
+<path fill="none" stroke="black" d="M721.43,-337.34C711.92,-327.21 697.7,-314.48 684,-304.5 643.78,-275.2 594.29,-247.04 557.76,-228.39"/>
+<polygon fill="black" stroke="black" points="559.68,-225.43 549.17,-224.07 556.53,-231.69 559.68,-225.43"/>
+</g>
+</g>
+</svg>
diff --git a/workflows/sleuth/workflow.svg b/workflows/sleuth/workflow.svg
new file mode 100644
index 0000000..f60c4fc
--- /dev/null
+++ b/workflows/sleuth/workflow.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="786pt" height="325pt"
+ viewBox="0.00 0.00 786.00 325.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 321)">
+<title>G</title>
+<polygon fill="#eeeeee" stroke="none" points="-4,4 -4,-321 782,-321 782,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_inputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="8,-231.5 8,-309 770,-309 770,-231.5 8,-231.5"/>
+<text text-anchor="middle" x="715.5" y="-238.7" font-family="Times,serif" font-size="14.00">Workflow Inputs</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_outputs</title>
+<polygon fill="#eeeeee" stroke="black" stroke-dasharray="5,2" points="305,-8 305,-85.5 423,-85.5 423,-8 305,-8"/>
+<text text-anchor="middle" x="364" y="-15.2" font-family="Times,serif" font-size="14.00">Workflow Outputs</text>
+</g>
+<!-- sleuth -->
+<g id="node1" class="node">
+<title>sleuth</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="337,-187 337,-223 391,-223 391,-187 337,-187"/>
+<text text-anchor="middle" x="363.62" y="-199.95" font-family="Times,serif" font-size="14.00">sleuth</text>
+</g>
+<!-- collectFiles -->
+<g id="node2" class="node">
+<title>collectFiles</title>
+<polygon fill="lightgoldenrodyellow" stroke="black" points="324.12,-114 324.12,-150 403.88,-150 403.88,-114 324.12,-114"/>
+<text text-anchor="middle" x="364" y="-126.95" font-family="Times,serif" font-size="14.00">Gather files</text>
+</g>
+<!-- sleuth&#45;&gt;collectFiles -->
+<g id="edge1" class="edge">
+<title>sleuth&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M340.49,-186.81C337.24,-179.05 336.26,-169.68 337.55,-160.95"/>
+<polygon fill="black" stroke="black" points="340.88,-162.06 340.15,-151.49 334.13,-160.2 340.88,-162.06"/>
+</g>
+<!-- sleuth&#45;&gt;collectFiles -->
+<g id="edge2" class="edge">
+<title>sleuth&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M352.24,-186.81C350.64,-179.14 350.14,-169.89 350.75,-161.24"/>
+<polygon fill="black" stroke="black" points="354.2,-161.91 352.07,-151.53 347.26,-160.97 354.2,-161.91"/>
+</g>
+<!-- sleuth&#45;&gt;collectFiles -->
+<g id="edge3" class="edge">
+<title>sleuth&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M364,-186.81C364,-179.23 364,-170.1 364,-161.54"/>
+<polygon fill="black" stroke="black" points="367.5,-161.54 364,-151.54 360.5,-161.54 367.5,-161.54"/>
+</g>
+<!-- sleuth&#45;&gt;collectFiles -->
+<g id="edge4" class="edge">
+<title>sleuth&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M375.76,-186.81C377.36,-179.14 377.86,-169.89 377.25,-161.24"/>
+<polygon fill="black" stroke="black" points="380.74,-160.97 375.93,-151.53 373.8,-161.91 380.74,-160.97"/>
+</g>
+<!-- sleuth&#45;&gt;collectFiles -->
+<g id="edge5" class="edge">
+<title>sleuth&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M387.51,-186.81C390.76,-179.05 391.74,-169.68 390.45,-160.95"/>
+<polygon fill="black" stroke="black" points="393.87,-160.2 387.85,-151.49 387.12,-162.06 393.87,-160.2"/>
+</g>
+<!-- sleuth_outdir -->
+<g id="node9" class="node">
+<title>sleuth_outdir</title>
+<polygon fill="#94ddf4" stroke="black" points="320.38,-41 320.38,-77 407.62,-77 407.62,-41 320.38,-41"/>
+<text text-anchor="middle" x="364" y="-53.95" font-family="Times,serif" font-size="14.00">sleuth_outdir</text>
+</g>
+<!-- collectFiles&#45;&gt;sleuth_outdir -->
+<g id="edge12" class="edge">
+<title>collectFiles&#45;&gt;sleuth_outdir</title>
+<path fill="none" stroke="black" d="M364,-113.81C364,-106.23 364,-97.1 364,-88.54"/>
+<polygon fill="black" stroke="black" points="367.5,-88.54 364,-78.54 360.5,-88.54 367.5,-88.54"/>
+</g>
+<!-- finaloutdir -->
+<g id="node3" class="node">
+<title>finaloutdir</title>
+<polygon fill="#94ddf4" stroke="black" points="16.5,-264.5 16.5,-300.5 89.5,-300.5 89.5,-264.5 16.5,-264.5"/>
+<text text-anchor="middle" x="53" y="-277.45" font-family="Times,serif" font-size="14.00">finaloutdir</text>
+</g>
+<!-- finaloutdir&#45;&gt;collectFiles -->
+<g id="edge6" class="edge">
+<title>finaloutdir&#45;&gt;collectFiles</title>
+<path fill="none" stroke="black" d="M65.44,-264.26C73.89,-253.6 85.88,-240.31 99,-231.5 166.28,-186.31 257.02,-158.44 312.96,-144.34"/>
+<polygon fill="black" stroke="black" points="313.67,-147.77 322.54,-141.98 311.99,-140.98 313.67,-147.77"/>
+</g>
+<!-- inKallistoResults -->
+<g id="node4" class="node">
+<title>inKallistoResults</title>
+<polygon fill="#94ddf4" stroke="black" points="516.5,-264.5 516.5,-300.5 625.5,-300.5 625.5,-264.5 516.5,-264.5"/>
+<text text-anchor="middle" x="571" y="-277.45" font-family="Times,serif" font-size="14.00">inKallistoResults</text>
+</g>
+<!-- inKallistoResults&#45;&gt;sleuth -->
+<g id="edge7" class="edge">
+<title>inKallistoResults&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M553.8,-264.24C541.73,-253.14 524.64,-239.37 507,-231.5 473.66,-216.62 432.29,-210.41 402.64,-207.83"/>
+<polygon fill="black" stroke="black" points="403.24,-204.37 393.01,-207.1 402.71,-211.35 403.24,-204.37"/>
+</g>
+<!-- inMetadataDataCol -->
+<g id="node5" class="node">
+<title>inMetadataDataCol</title>
+<polygon fill="#94ddf4" stroke="black" points="375.75,-264.5 375.75,-300.5 498.25,-300.5 498.25,-264.5 375.75,-264.5"/>
+<text text-anchor="middle" x="437" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataDataCol</text>
+</g>
+<!-- inMetadataDataCol&#45;&gt;sleuth -->
+<g id="edge8" class="edge">
+<title>inMetadataDataCol&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M420.44,-264.37C411.07,-254.69 399.19,-242.4 388.75,-231.59"/>
+<polygon fill="black" stroke="black" points="391.27,-229.17 381.8,-224.41 386.24,-234.04 391.27,-229.17"/>
+</g>
+<!-- inMetadataFactorList -->
+<g id="node6" class="node">
+<title>inMetadataFactorList</title>
+<polygon fill="#94ddf4" stroke="black" points="224.5,-264.5 224.5,-300.5 357.5,-300.5 357.5,-264.5 224.5,-264.5"/>
+<text text-anchor="middle" x="291" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataFactorList</text>
+</g>
+<!-- inMetadataFactorList&#45;&gt;sleuth -->
+<g id="edge9" class="edge">
+<title>inMetadataFactorList&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M307.56,-264.37C316.93,-254.69 328.81,-242.4 339.25,-231.59"/>
+<polygon fill="black" stroke="black" points="341.76,-234.04 346.2,-224.41 336.73,-229.17 341.76,-234.04"/>
+</g>
+<!-- inMetadataFile -->
+<g id="node7" class="node">
+<title>inMetadataFile</title>
+<polygon fill="#94ddf4" stroke="black" points="107.75,-264.5 107.75,-300.5 206.25,-300.5 206.25,-264.5 107.75,-264.5"/>
+<text text-anchor="middle" x="157" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataFile</text>
+</g>
+<!-- inMetadataFile&#45;&gt;sleuth -->
+<g id="edge10" class="edge">
+<title>inMetadataFile&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M172.35,-264.42C183.38,-253.26 199.21,-239.34 216,-231.5 250.77,-215.26 294.49,-209.27 325.37,-207.1"/>
+<polygon fill="black" stroke="black" points="325.24,-210.62 335.02,-206.54 324.83,-203.63 325.24,-210.62"/>
+</g>
+<!-- inMetadataSample -->
+<g id="node8" class="node">
+<title>inMetadataSample</title>
+<polygon fill="#94ddf4" stroke="black" points="643.62,-264.5 643.62,-300.5 762.38,-300.5 762.38,-264.5 643.62,-264.5"/>
+<text text-anchor="middle" x="703" y="-277.45" font-family="Times,serif" font-size="14.00">inMetadataSample</text>
+</g>
+<!-- inMetadataSample&#45;&gt;sleuth -->
+<g id="edge11" class="edge">
+<title>inMetadataSample&#45;&gt;sleuth</title>
+<path fill="none" stroke="black" d="M685.02,-264.01C672.18,-252.66 653.9,-238.7 635,-231.5 593.53,-215.7 467.05,-209.36 402.61,-207.1"/>
+<polygon fill="black" stroke="black" points="402.96,-203.61 392.85,-206.78 402.73,-210.61 402.96,-203.61"/>
+</g>
+</g>
+</svg>
-- 
GitLab