From bb1f9b8f7d098afaa778b1795315e99df3d9758e Mon Sep 17 00:00:00 2001 From: BIOPZ-Iborra de Toledo Paula <paula.iborradetoledo@unibas.ch> Date: Fri, 21 Feb 2020 19:48:02 +0100 Subject: [PATCH] Add rule that combines TPM values from Salmon - Remove files with non-deterministic output from `tests/test_integration_workflow/expected_output.files` - Update MD5 sums in `tests/test_integration_workflow/expected_output.md5` - Update new workflow DAG and rule graph images --- Snakefile | 79 ++- images/dag_test_workflow.svg | 340 ++++++++++ images/workflow_dag.svg | 346 ++++++++++ .../expected_output.files | 11 +- .../expected_output.md5 | 21 +- workflow/rules/paired_end.snakefile.smk | 589 +++++++++--------- workflow/rules/single_end.snakefile.smk | 489 ++++++++------- 7 files changed, 1311 insertions(+), 564 deletions(-) create mode 100644 images/workflow_dag.svg diff --git a/Snakefile b/Snakefile index aa8c347..a73c547 100644 --- a/Snakefile +++ b/Snakefile @@ -102,6 +102,9 @@ rule finish: for i in list(samples_table.index.values) ] ), + salmon_merge_genes = os.path.join(config["output_dir"], "summary_salmon", "quantmerge", "genes_tpm.tsv"), + salmon_merge_tr = os.path.join(config["output_dir"], "summary_salmon", "quantmerge", "tr_tpm.tsv"), + rule create_index_star: @@ -184,7 +187,7 @@ rule create_index_salmon: params: kmerLen = "{kmer}", singularity: - "docker://zavolab/salmon:0.11.0" + "docker://zavolab/salmon:1.1.0-slim" log: os.path.join( config['log_dir'], @@ -306,3 +309,77 @@ rule calculate_TIN_scores: -n 100 \ 1> {output.TIN_score} \ 2> {log}" + + +rule salmon_quantmerge_genes_tpm: + ''' Merge gene quantifications into a single file. ''' + input: + salmon_in = expand(os.path.join( + config["output_dir"], + "{seqmode}", + "{sample}", + "salmon_quant", + "quant.genes.sf"), + zip, + sample= list(samples_table.index.values), + seqmode= list(samples_table["seqmode"])), + output: + salmon_out = os.path.join(config["output_dir"], "summary_salmon", "quantmerge", "genes_tpm.tsv") + params: + salmon_dir = expand(os.path.join( + config["output_dir"], + "{seqmode}", + "{sample}", + "salmon_quant"), + zip, + sample= list(samples_table.index.values), + seqmode= list(samples_table["seqmode"])), + sample_name_list = expand("{sample}", sample= list(samples_table.index.values)) + log: + os.path.join(config["log_dir"], "salmon_quantmerge_genes_tpm.log") + threads: 1 + singularity: + "docker://zavolab/salmon:1.1.0-slim" + shell: + "(salmon quantmerge \ + --quants {params.salmon_dir} \ + --genes \ + --names {params.sample_name_list} \ + --column tpm \ + --output {output.salmon_out}) &> {log}" + +rule salmon_quantmerge_tr_tpm: + ''' Merge gene quantifications into a single file. ''' + input: + salmon_in = expand(os.path.join( + config["output_dir"], + "{seqmode}", + "{sample}", + "salmon_quant", + "quant.sf"), + zip, + sample= list(samples_table.index.values), + seqmode= list(samples_table["seqmode"])), + output: + salmon_out = os.path.join(config["output_dir"], "summary_salmon", "quantmerge", "tr_tpm.tsv") + params: + salmon_dir = expand(os.path.join( + config["output_dir"], + "{seqmode}", + "{sample}", + "salmon_quant"), + zip, + sample= list(samples_table.index.values), + seqmode= list(samples_table["seqmode"])), + sample_name_list = expand("{sample}", sample= list(samples_table.index.values)) + log: + os.path.join(config["log_dir"], "salmon_quantmerge_tr_tpm.log") + threads: 1 + singularity: + "docker://zavolab/salmon:1.1.0-slim" + shell: + "(salmon quantmerge \ + --quants {params.salmon_dir} \ + --names {params.sample_name_list} \ + --column tpm \ + --output {output.salmon_out}) &> {log}" diff --git a/images/dag_test_workflow.svg b/images/dag_test_workflow.svg index 9f9e7ad..4059234 100644 --- a/images/dag_test_workflow.svg +++ b/images/dag_test_workflow.svg @@ -1,6 +1,21 @@ <?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"> +<<<<<<< HEAD +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: snakemake_dag Pages: 1 --> +<svg width="1626pt" height="414pt" + viewBox="0.00 0.00 1626.00 414.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 410)"> +<title>snakemake_dag</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-410 1622,-410 1622,4 -4,4"/> +<!-- 0 --> +<g id="node1" class="node"> +<title>0</title> +<path fill="none" stroke="#56b1d8" stroke-width="2" d="M853,-36C853,-36 823,-36 823,-36 817,-36 811,-30 811,-24 811,-24 811,-12 811,-12 811,-6 817,0 823,0 823,0 853,0 853,0 859,0 865,-6 865,-12 865,-12 865,-24 865,-24 865,-30 859,-36 853,-36"/> +<text text-anchor="middle" x="838" y="-15.5" font-family="sans" font-size="10.00" fill="#000000">finish</text> +======= <!-- Generated by graphviz version 2.42.3 (20191010.1750) --> <!-- Title: snakemake_dag Pages: 1 --> @@ -14,104 +29,236 @@ <title>0</title> <path fill="none" stroke="#56d873" stroke-width="2" d="M780.5,-36C780.5,-36 750.5,-36 750.5,-36 744.5,-36 738.5,-30 738.5,-24 738.5,-24 738.5,-12 738.5,-12 738.5,-6 744.5,0 750.5,0 750.5,0 780.5,0 780.5,0 786.5,0 792.5,-6 792.5,-12 792.5,-12 792.5,-24 792.5,-24 792.5,-30 786.5,-36 780.5,-36"/> <text text-anchor="middle" x="765.5" y="-15.5" font-family="sans" font-size="10.00">finish</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 1 --> <g id="node2" class="node"> <title>1</title> +<<<<<<< HEAD +<path fill="none" stroke="#b6d856" stroke-width="2" d="M280,-108C280,-108 12,-108 12,-108 6,-108 0,-102 0,-96 0,-96 0,-84 0,-84 0,-78 6,-72 12,-72 12,-72 280,-72 280,-72 286,-72 292,-78 292,-84 292,-84 292,-96 292,-96 292,-102 286,-108 280,-108"/> +<text text-anchor="middle" x="146" y="-93" font-family="sans" font-size="10.00" fill="#000000">pe_fastqc</text> +<text text-anchor="middle" x="146" y="-82" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_paired_synthetic_10_reads_paired</text> +======= <path fill="none" stroke="#5673d8" stroke-width="2" d="M313,-108C313,-108 12,-108 12,-108 6,-108 0,-102 0,-96 0,-96 0,-84 0,-84 0,-78 6,-72 12,-72 12,-72 313,-72 313,-72 319,-72 325,-78 325,-84 325,-84 325,-96 325,-96 325,-102 319,-108 313,-108"/> <text text-anchor="middle" x="162.5" y="-93" font-family="sans" font-size="10.00">pe_fastqc</text> <text text-anchor="middle" x="162.5" y="-82" font-family="sans" font-size="10.00">sample: synthetic_10_reads_paired_synthetic_10_reads_paired</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 1->0 --> <g id="edge1" class="edge"> <title>1->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M292.0256,-72.9788C295.0432,-72.6476 298.0374,-72.321 301,-72 488.5678,-51.6794 713.2844,-29.9183 800.6774,-21.5536"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="801.2618,-25.0138 810.8833,-20.578 800.5956,-18.0456 801.2618,-25.0138"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M309.24,-71.97C447.86,-55.87 646.37,-32.83 728.13,-23.34"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="728.89,-26.77 738.42,-22.14 728.09,-19.82 728.89,-26.77"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 2 --> <g id="node3" class="node"> <title>2</title> +<<<<<<< HEAD +<path fill="none" stroke="#566bd8" stroke-width="2" d="M602,-108C602,-108 322,-108 322,-108 316,-108 310,-102 310,-96 310,-96 310,-84 310,-84 310,-78 316,-72 322,-72 322,-72 602,-72 602,-72 608,-72 614,-78 614,-84 614,-84 614,-96 614,-96 614,-102 608,-108 602,-108"/> +<text text-anchor="middle" x="462" y="-93" font-family="sans" font-size="10.00" fill="#000000">fastqc</text> +<text text-anchor="middle" x="462" y="-82" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_mate_1_synthetic_10_reads_mate_1</text> +======= <path fill="none" stroke="#d86e56" stroke-width="2" d="M668,-108C668,-108 355,-108 355,-108 349,-108 343,-102 343,-96 343,-96 343,-84 343,-84 343,-78 349,-72 355,-72 355,-72 668,-72 668,-72 674,-72 680,-78 680,-84 680,-84 680,-96 680,-96 680,-102 674,-108 668,-108"/> <text text-anchor="middle" x="511.5" y="-93" font-family="sans" font-size="10.00">fastqc</text> <text text-anchor="middle" x="511.5" y="-82" font-family="sans" font-size="10.00">sample: synthetic_10_reads_mate_1_synthetic_10_reads_mate_1</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 2->0 --> <g id="edge2" class="edge"> <title>2->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M556.3953,-71.9243C635.649,-56.7481 744.6992,-35.8661 801.0125,-25.0827"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="801.7314,-28.5087 810.8946,-23.1904 800.4148,-21.6336 801.7314,-28.5087"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M573.31,-71.97C621.91,-58.57 687.98,-40.36 728.63,-29.16"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="729.68,-32.5 738.39,-26.47 727.82,-25.75 729.68,-32.5"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 3 --> <g id="node4" class="node"> <title>3</title> +<<<<<<< HEAD +<path fill="none" stroke="#88d856" stroke-width="2" d="M817.5,-180C817.5,-180 714.5,-180 714.5,-180 708.5,-180 702.5,-174 702.5,-168 702.5,-168 702.5,-156 702.5,-156 702.5,-150 708.5,-144 714.5,-144 714.5,-144 817.5,-144 817.5,-144 823.5,-144 829.5,-150 829.5,-156 829.5,-156 829.5,-168 829.5,-168 829.5,-174 823.5,-180 817.5,-180"/> +<text text-anchor="middle" x="766" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">pe_quantification_salmon</text> +======= <path fill="none" stroke="#d8bc56" stroke-width="2" d="M556.5,-252C556.5,-252 438.5,-252 438.5,-252 432.5,-252 426.5,-246 426.5,-240 426.5,-240 426.5,-228 426.5,-228 426.5,-222 432.5,-216 438.5,-216 438.5,-216 556.5,-216 556.5,-216 562.5,-216 568.5,-222 568.5,-228 568.5,-228 568.5,-240 568.5,-240 568.5,-246 562.5,-252 556.5,-252"/> <text text-anchor="middle" x="497.5" y="-231.5" font-family="sans" font-size="10.00">pe_quantification_salmon</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 3->0 --> <g id="edge3" class="edge"> <title>3->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M732.4003,-143.8076C719.4596,-134.8793 706.092,-122.8246 699,-108 692.0952,-93.5666 689.9641,-85.2042 699,-72 710.8942,-54.619 763.8165,-37.5188 800.8108,-27.3633"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="802.0247,-30.6614 810.7754,-24.6886 800.2099,-23.9007 802.0247,-30.6614"/> +</g> +<!-- 9 --> +<g id="node10" class="node"> +<title>9</title> +<path fill="none" stroke="#ced856" stroke-width="2" d="M966,-108C966,-108 854,-108 854,-108 848,-108 842,-102 842,-96 842,-96 842,-84 842,-84 842,-78 848,-72 854,-72 854,-72 966,-72 966,-72 972,-72 978,-78 978,-84 978,-84 978,-96 978,-96 978,-102 972,-108 966,-108"/> +<text text-anchor="middle" x="910" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">salmon_quantmerge_genes</text> +</g> +<!-- 3->9 --> +<g id="edge23" class="edge"> +<title>3->9</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M802.3373,-143.8314C821.3396,-134.3302 844.7758,-122.6121 864.9252,-112.5374"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="866.545,-115.6407 873.924,-108.038 863.4145,-109.3797 866.545,-115.6407"/> +</g> +<!-- 10 --> +<g id="node11" class="node"> +<title>10</title> +<path fill="none" stroke="#d86e56" stroke-width="2" d="M812,-108C812,-108 720,-108 720,-108 714,-108 708,-102 708,-96 708,-96 708,-84 708,-84 708,-78 714,-72 720,-72 720,-72 812,-72 812,-72 818,-72 824,-78 824,-84 824,-84 824,-96 824,-96 824,-102 818,-108 812,-108"/> +<text text-anchor="middle" x="766" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">salmon_quantmerge_tr</text> +</g> +<!-- 3->10 --> +<g id="edge25" class="edge"> +<title>3->10</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M766,-143.8314C766,-136.131 766,-126.9743 766,-118.4166"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="769.5001,-118.4132 766,-108.4133 762.5001,-118.4133 769.5001,-118.4132"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M529.12,-215.95C568.61,-193.87 637.19,-152.87 688.5,-108 710.51,-88.76 731.97,-63.22 746.62,-44.44"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="749.53,-46.39 752.85,-36.33 743.98,-42.13 749.53,-46.39"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 4 --> <g id="node5" class="node"> <title>4</title> +<<<<<<< HEAD +<path fill="none" stroke="#569ad8" stroke-width="2" d="M953.5,-180C953.5,-180 866.5,-180 866.5,-180 860.5,-180 854.5,-174 854.5,-168 854.5,-168 854.5,-156 854.5,-156 854.5,-150 860.5,-144 866.5,-144 866.5,-144 953.5,-144 953.5,-144 959.5,-144 965.5,-150 965.5,-156 965.5,-156 965.5,-168 965.5,-168 965.5,-174 959.5,-180 953.5,-180"/> +<text text-anchor="middle" x="910" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">quantification_salmon</text> +======= <path fill="none" stroke="#d8a456" stroke-width="2" d="M700,-252C700,-252 599,-252 599,-252 593,-252 587,-246 587,-240 587,-240 587,-228 587,-228 587,-222 593,-216 599,-216 599,-216 700,-216 700,-216 706,-216 712,-222 712,-228 712,-228 712,-240 712,-240 712,-246 706,-252 700,-252"/> <text text-anchor="middle" x="649.5" y="-231.5" font-family="sans" font-size="10.00">quantification_salmon</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 4->0 --> <g id="edge4" class="edge"> <title>4->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M950.1027,-143.9226C964.4399,-135.2521 979.0139,-123.3548 987,-108 994.3828,-93.8051 996.1862,-85.1001 987,-72 973.8484,-53.245 914.7722,-36.043 875.0749,-26.3079"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="875.7321,-22.8663 865.1917,-23.9392 874.1005,-29.6735 875.7321,-22.8663"/> +</g> +<!-- 4->9 --> +<g id="edge24" class="edge"> +<title>4->9</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M910,-143.8314C910,-136.131 910,-126.9743 910,-118.4166"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="913.5001,-118.4132 910,-108.4133 906.5001,-118.4133 913.5001,-118.4132"/> +</g> +<!-- 4->10 --> +<g id="edge26" class="edge"> +<title>4->10</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M873.6627,-143.8314C854.6604,-134.3302 831.2242,-122.6121 811.0748,-112.5374"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="812.5855,-109.3797 802.076,-108.038 809.455,-115.6407 812.5855,-109.3797"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M682.26,-215.99C696.54,-207.05 712.3,-194.85 722.5,-180 750.73,-138.9 760.44,-80.17 763.77,-46.17"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="767.27,-46.32 764.64,-36.06 760.3,-45.72 767.27,-46.32"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 5 --> <g id="node6" class="node"> <title>5</title> +<<<<<<< HEAD +<path fill="none" stroke="#9fd856" stroke-width="2" d="M713,-254.5C713,-254.5 571,-254.5 571,-254.5 565,-254.5 559,-248.5 559,-242.5 559,-242.5 559,-230.5 559,-230.5 559,-224.5 565,-218.5 571,-218.5 571,-218.5 713,-218.5 713,-218.5 719,-218.5 725,-224.5 725,-230.5 725,-230.5 725,-242.5 725,-242.5 725,-248.5 719,-254.5 713,-254.5"/> +<text text-anchor="middle" x="642" y="-234" font-family="sans" font-size="10.00" fill="#000000">pe_genome_quantification_kallisto</text> +======= <path fill="none" stroke="#d85656" stroke-width="2" d="M905,-252C905,-252 742,-252 742,-252 736,-252 730,-246 730,-240 730,-240 730,-228 730,-228 730,-222 736,-216 742,-216 742,-216 905,-216 905,-216 911,-216 917,-222 917,-228 917,-228 917,-240 917,-240 917,-246 911,-252 905,-252"/> <text text-anchor="middle" x="823.5" y="-231.5" font-family="sans" font-size="10.00">pe_genome_quantification_kallisto</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 5->0 --> <g id="edge5" class="edge"> <title>5->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M642.0581,-218.355C643.1484,-185.0077 650.1999,-113.5905 689,-72 718.2563,-40.6397 767.1257,-27.449 800.8774,-21.9281"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="801.4514,-25.3813 810.8283,-20.4493 800.4224,-18.4573 801.4514,-25.3813"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M818.57,-215.83C815.61,-205.47 811.8,-191.99 808.5,-180 795.61,-133.13 781.12,-78.44 772.68,-46.38"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="775.99,-45.2 770.06,-36.41 769.22,-46.98 775.99,-45.2"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 6 --> <g id="node7" class="node"> <title>6</title> +<<<<<<< HEAD +<path fill="none" stroke="#5682d8" stroke-width="2" d="M1107,-254.5C1107,-254.5 981,-254.5 981,-254.5 975,-254.5 969,-248.5 969,-242.5 969,-242.5 969,-230.5 969,-230.5 969,-224.5 975,-218.5 981,-218.5 981,-218.5 1107,-218.5 1107,-218.5 1113,-218.5 1119,-224.5 1119,-230.5 1119,-230.5 1119,-242.5 1119,-242.5 1119,-248.5 1113,-254.5 1107,-254.5"/> +<text text-anchor="middle" x="1044" y="-234" font-family="sans" font-size="10.00" fill="#000000">genome_quantification_kallisto</text> +======= <path fill="none" stroke="#56d8d8" stroke-width="2" d="M1093.5,-252C1093.5,-252 947.5,-252 947.5,-252 941.5,-252 935.5,-246 935.5,-240 935.5,-240 935.5,-228 935.5,-228 935.5,-222 941.5,-216 947.5,-216 947.5,-216 1093.5,-216 1093.5,-216 1099.5,-216 1105.5,-222 1105.5,-228 1105.5,-228 1105.5,-240 1105.5,-240 1105.5,-246 1099.5,-252 1093.5,-252"/> <text text-anchor="middle" x="1020.5" y="-231.5" font-family="sans" font-size="10.00">genome_quantification_kallisto</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 6->0 --> <g id="edge6" class="edge"> <title>6->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1044.9479,-218.2962C1045.6618,-184.852 1042.2588,-113.2817 1004,-72 986.4067,-53.0166 918.3915,-35.3258 875.0709,-25.6536"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="875.684,-22.205 865.1668,-23.4854 874.187,-29.0431 875.684,-22.205"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M938.16,-215.95C898.46,-206.3 856.28,-193.49 841.5,-180 803.34,-145.17 821.8,-118.11 798.5,-72 793.86,-62.81 788.11,-53.14 782.73,-44.62"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="785.67,-42.72 777.31,-36.21 779.79,-46.51 785.67,-42.72"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 7 --> <g id="node8" class="node"> <title>7</title> +<<<<<<< HEAD +<path fill="none" stroke="#56d882" stroke-width="2" d="M1211,-108C1211,-108 1123,-108 1123,-108 1117,-108 1111,-102 1111,-96 1111,-96 1111,-84 1111,-84 1111,-78 1117,-72 1123,-72 1123,-72 1211,-72 1211,-72 1217,-72 1223,-78 1223,-84 1223,-84 1223,-96 1223,-96 1223,-102 1217,-108 1211,-108"/> +<text text-anchor="middle" x="1167" y="-93" font-family="sans" font-size="10.00" fill="#000000">calculate_TIN_scores</text> +<text text-anchor="middle" x="1167" y="-82" font-family="sans" font-size="10.00" fill="#000000">seqmode: paired_end</text> +======= <path fill="none" stroke="#56d8c1" stroke-width="2" d="M1006.5,-108C1006.5,-108 908.5,-108 908.5,-108 902.5,-108 896.5,-102 896.5,-96 896.5,-96 896.5,-84 896.5,-84 896.5,-78 902.5,-72 908.5,-72 908.5,-72 1006.5,-72 1006.5,-72 1012.5,-72 1018.5,-78 1018.5,-84 1018.5,-84 1018.5,-96 1018.5,-96 1018.5,-102 1012.5,-108 1006.5,-108"/> <text text-anchor="middle" x="957.5" y="-93" font-family="sans" font-size="10.00">calculate_TIN_scores</text> <text text-anchor="middle" x="957.5" y="-82" font-family="sans" font-size="10.00">seqmode: paired_end</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 7->0 --> <g id="edge7" class="edge"> <title>7->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1110.8167,-77.7046C1043.6075,-62.9962 932.9733,-38.7844 875.4162,-26.1884"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="875.8263,-22.6953 865.3092,-23.9765 874.3297,-29.5335 875.8263,-22.6953"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M910.53,-71.88C877.17,-59.71 833.02,-43.62 802.23,-32.39"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="803.32,-29.06 792.73,-28.93 800.93,-35.64 803.32,-29.06"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 8 --> <g id="node9" class="node"> <title>8</title> +<<<<<<< HEAD +<path fill="none" stroke="#56d882" stroke-width="2" d="M1397,-108C1397,-108 1309,-108 1309,-108 1303,-108 1297,-102 1297,-96 1297,-96 1297,-84 1297,-84 1297,-78 1303,-72 1309,-72 1309,-72 1397,-72 1397,-72 1403,-72 1409,-78 1409,-84 1409,-84 1409,-96 1409,-96 1409,-102 1403,-108 1397,-108"/> +<text text-anchor="middle" x="1353" y="-93" font-family="sans" font-size="10.00" fill="#000000">calculate_TIN_scores</text> +<text text-anchor="middle" x="1353" y="-82" font-family="sans" font-size="10.00" fill="#000000">seqmode: single_end</text> +======= <path fill="none" stroke="#56d8c1" stroke-width="2" d="M1210.5,-108C1210.5,-108 1114.5,-108 1114.5,-108 1108.5,-108 1102.5,-102 1102.5,-96 1102.5,-96 1102.5,-84 1102.5,-84 1102.5,-78 1108.5,-72 1114.5,-72 1114.5,-72 1210.5,-72 1210.5,-72 1216.5,-72 1222.5,-78 1222.5,-84 1222.5,-84 1222.5,-96 1222.5,-96 1222.5,-102 1216.5,-108 1210.5,-108"/> <text text-anchor="middle" x="1162.5" y="-93" font-family="sans" font-size="10.00">calculate_TIN_scores</text> <text text-anchor="middle" x="1162.5" y="-82" font-family="sans" font-size="10.00">seqmode: single_end</text> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 8->0 --> <g id="edge8" class="edge"> <title>8->0</title> +<<<<<<< HEAD +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1296.9948,-81.5319C1276.5482,-78.4764 1253.2348,-75.0345 1232,-72 1101.0037,-53.2802 945.3116,-32.3227 875.3277,-22.9708"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="875.6176,-19.4786 865.2424,-21.6242 874.6912,-26.417 875.6176,-19.4786"/> +</g> +<!-- 9->0 --> +<g id="edge9" class="edge"> +<title>9->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M891.8314,-71.8314C883.2848,-63.2848 872.9443,-52.9443 863.6198,-43.6198"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="865.9592,-41.0095 856.4133,-36.4133 861.0095,-45.9592 865.9592,-41.0095"/> +</g> +<!-- 10->0 --> +<g id="edge10" class="edge"> +<title>10->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M784.1686,-71.8314C792.7152,-63.2848 803.0557,-52.9443 812.3802,-43.6198"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="814.9905,-45.9592 819.5867,-36.4133 810.0408,-41.0095 814.9905,-45.9592"/> +======= <path fill="none" stroke="grey" stroke-width="2" d="M1102.2,-78.37C1019.06,-63.71 871.68,-37.72 802.86,-25.59"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="803.35,-22.12 792.9,-23.83 802.14,-29.01 803.35,-22.12"/> </g> @@ -164,10 +311,39 @@ <title>10->4</title> <path fill="none" stroke="grey" stroke-width="2" d="M545.93,-287.88C564.79,-278.25 587.57,-266.62 606.95,-256.72"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="608.56,-259.83 615.88,-252.17 605.38,-253.6 608.56,-259.83"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 11 --> <g id="node12" class="node"> <title>11</title> +<<<<<<< HEAD +<path fill="none" stroke="#d8cb56" stroke-width="2" d="M831,-331.5C831,-331.5 719,-331.5 719,-331.5 713,-331.5 707,-325.5 707,-319.5 707,-319.5 707,-307.5 707,-307.5 707,-301.5 713,-295.5 719,-295.5 719,-295.5 831,-295.5 831,-295.5 837,-295.5 843,-301.5 843,-307.5 843,-307.5 843,-319.5 843,-319.5 843,-325.5 837,-331.5 831,-331.5"/> +<text text-anchor="middle" x="775" y="-311" font-family="sans" font-size="10.00" fill="#000000">pe_remove_polya_cutadapt</text> +</g> +<!-- 11->3 --> +<g id="edge11" class="edge"> +<title>11->3</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M773.9144,-295.2256C772.367,-269.1777 769.5129,-221.1339 767.6881,-190.4171"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="771.1764,-190.1141 767.0895,-180.3393 764.1887,-190.5292 771.1764,-190.1141"/> +</g> +<!-- 11->5 --> +<g id="edge15" class="edge"> +<title>11->5</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M743.8174,-295.4469C725.4409,-284.8079 701.9954,-271.2342 682.2359,-259.7945"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="683.856,-256.6882 673.4481,-254.7068 680.3487,-262.7462 683.856,-256.6882"/> +</g> +<!-- 20 --> +<g id="node21" class="node"> +<title>20</title> +<path fill="none" stroke="#d89c56" stroke-width="2" d="M1238.5,-254.5C1238.5,-254.5 1149.5,-254.5 1149.5,-254.5 1143.5,-254.5 1137.5,-248.5 1137.5,-242.5 1137.5,-242.5 1137.5,-230.5 1137.5,-230.5 1137.5,-224.5 1143.5,-218.5 1149.5,-218.5 1149.5,-218.5 1238.5,-218.5 1238.5,-218.5 1244.5,-218.5 1250.5,-224.5 1250.5,-230.5 1250.5,-230.5 1250.5,-242.5 1250.5,-242.5 1250.5,-248.5 1244.5,-254.5 1238.5,-254.5"/> +<text text-anchor="middle" x="1194" y="-234" font-family="sans" font-size="10.00" fill="#000000">pe_map_genome_star</text> +</g> +<!-- 11->20 --> +<g id="edge32" class="edge"> +<title>11->20</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M843.2317,-305.51C912.5812,-296.7283 1023.1571,-280.9101 1127.8347,-256.8674"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1128.6726,-260.266 1137.6197,-254.5916 1127.0867,-253.448 1128.6726,-260.266"/> +======= <path fill="none" stroke="#bed856" stroke-width="2" d="M1080.5,-326.5C1080.5,-326.5 970.5,-326.5 970.5,-326.5 964.5,-326.5 958.5,-320.5 958.5,-314.5 958.5,-314.5 958.5,-302.5 958.5,-302.5 958.5,-296.5 964.5,-290.5 970.5,-290.5 970.5,-290.5 1080.5,-290.5 1080.5,-290.5 1086.5,-290.5 1092.5,-296.5 1092.5,-302.5 1092.5,-302.5 1092.5,-314.5 1092.5,-314.5 1092.5,-320.5 1086.5,-326.5 1080.5,-326.5"/> <text text-anchor="middle" x="1025.5" y="-306" font-family="sans" font-size="10.00">remove_polya_cutadapt</text> </g> @@ -194,10 +370,29 @@ <title>11->19</title> <path fill="none" stroke="grey" stroke-width="2" d="M1092.69,-292.13C1136.95,-281.86 1196.4,-267.78 1257.02,-252.34"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="1257.94,-255.72 1266.76,-249.85 1256.21,-248.94 1257.94,-255.72"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 12 --> <g id="node13" class="node"> <title>12</title> +<<<<<<< HEAD +<path fill="none" stroke="#d88556" stroke-width="2" d="M900.5,-257C900.5,-257 799.5,-257 799.5,-257 793.5,-257 787.5,-251 787.5,-245 787.5,-245 787.5,-228 787.5,-228 787.5,-222 793.5,-216 799.5,-216 799.5,-216 900.5,-216 900.5,-216 906.5,-216 912.5,-222 912.5,-228 912.5,-228 912.5,-245 912.5,-245 912.5,-251 906.5,-257 900.5,-257"/> +<text text-anchor="middle" x="850" y="-245" font-family="sans" font-size="10.00" fill="#000000">create_index_salmon</text> +<text text-anchor="middle" x="850" y="-234" font-family="sans" font-size="10.00" fill="#000000">kmer: 31</text> +<text text-anchor="middle" x="850" y="-223" font-family="sans" font-size="10.00" fill="#000000">organism: homo_sapiens</text> +</g> +<!-- 12->3 --> +<g id="edge12" class="edge"> +<title>12->3</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M826.6013,-215.7476C816.5434,-206.8272 804.7021,-196.3251 794.1676,-186.982"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="796.2217,-184.1255 786.4178,-180.1087 791.5769,-189.3626 796.2217,-184.1255"/> +</g> +<!-- 12->4 --> +<g id="edge14" class="edge"> +<title>12->4</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M866.7133,-215.7476C873.6158,-207.177 881.6942,-197.1463 888.9908,-188.0864"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="891.8693,-190.0923 895.4158,-180.1087 886.4175,-185.7016 891.8693,-190.0923"/> +======= <path fill="none" stroke="#d6d856" stroke-width="2" d="M923,-326.5C923,-326.5 808,-326.5 808,-326.5 802,-326.5 796,-320.5 796,-314.5 796,-314.5 796,-302.5 796,-302.5 796,-296.5 802,-290.5 808,-290.5 808,-290.5 923,-290.5 923,-290.5 929,-290.5 935,-296.5 935,-302.5 935,-302.5 935,-314.5 935,-314.5 935,-320.5 929,-326.5 923,-326.5"/> <text text-anchor="middle" x="865.5" y="-311.5" font-family="sans" font-size="10.00">create_index_kallisto</text> <text text-anchor="middle" x="865.5" y="-300.5" font-family="sans" font-size="10.00">organism: homo_sapiens</text> @@ -213,10 +408,39 @@ <title>12->6</title> <path fill="none" stroke="grey" stroke-width="2" d="M902.23,-290.32C923.95,-280.16 951.64,-267.21 974.76,-256.39"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="976.46,-259.47 984.03,-252.06 973.49,-253.12 976.46,-259.47"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 13 --> <g id="node14" class="node"> <title>13</title> +<<<<<<< HEAD +<path fill="none" stroke="#56d86b" stroke-width="2" d="M1096,-331.5C1096,-331.5 1000,-331.5 1000,-331.5 994,-331.5 988,-325.5 988,-319.5 988,-319.5 988,-307.5 988,-307.5 988,-301.5 994,-295.5 1000,-295.5 1000,-295.5 1096,-295.5 1096,-295.5 1102,-295.5 1108,-301.5 1108,-307.5 1108,-307.5 1108,-319.5 1108,-319.5 1108,-325.5 1102,-331.5 1096,-331.5"/> +<text text-anchor="middle" x="1048" y="-311" font-family="sans" font-size="10.00" fill="#000000">remove_polya_cutadapt</text> +</g> +<!-- 13->4 --> +<g id="edge13" class="edge"> +<title>13->4</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1011.0415,-295.4627C993.9738,-285.8012 974.3586,-272.6543 960,-257 941.9194,-237.2879 928.397,-209.8206 920.0045,-189.4885"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="923.2393,-188.151 916.2991,-180.1457 916.7323,-190.7317 923.2393,-188.151"/> +</g> +<!-- 13->6 --> +<g id="edge17" class="edge"> +<title>13->6</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1047.0521,-295.2521C1046.5788,-286.1422 1045.9957,-274.9174 1045.4664,-264.7282"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1048.9553,-264.4219 1044.9411,-254.6169 1041.9647,-264.7851 1048.9553,-264.4219"/> +</g> +<!-- 21 --> +<g id="node22" class="node"> +<title>21</title> +<path fill="none" stroke="#56d8c9" stroke-width="2" d="M1353.5,-254.5C1353.5,-254.5 1280.5,-254.5 1280.5,-254.5 1274.5,-254.5 1268.5,-248.5 1268.5,-242.5 1268.5,-242.5 1268.5,-230.5 1268.5,-230.5 1268.5,-224.5 1274.5,-218.5 1280.5,-218.5 1280.5,-218.5 1353.5,-218.5 1353.5,-218.5 1359.5,-218.5 1365.5,-224.5 1365.5,-230.5 1365.5,-230.5 1365.5,-242.5 1365.5,-242.5 1365.5,-248.5 1359.5,-254.5 1353.5,-254.5"/> +<text text-anchor="middle" x="1317" y="-234" font-family="sans" font-size="10.00" fill="#000000">map_genome_star</text> +</g> +<!-- 13->21 --> +<g id="edge34" class="edge"> +<title>13->21</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1108.243,-298.8927C1148.5556,-288.7854 1202.9425,-274.5127 1258.6038,-257.3403"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1259.7659,-260.6443 1268.2744,-254.3311 1257.686,-253.9604 1259.7659,-260.6443"/> +======= <path fill="none" stroke="#70d856" stroke-width="2" d="M1052,-180C1052,-180 863,-180 863,-180 857,-180 851,-174 851,-168 851,-168 851,-156 851,-156 851,-150 857,-144 863,-144 863,-144 1052,-144 1052,-144 1058,-144 1064,-150 1064,-156 1064,-156 1064,-168 1064,-168 1064,-174 1058,-180 1052,-180"/> <text text-anchor="middle" x="957.5" y="-159.5" font-family="sans" font-size="10.00">pe_index_genomic_alignment_samtools</text> </g> @@ -225,10 +449,28 @@ <title>13->7</title> <path fill="none" stroke="grey" stroke-width="2" d="M957.5,-143.7C957.5,-135.98 957.5,-126.71 957.5,-118.11"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="961,-118.1 957.5,-108.1 954,-118.1 961,-118.1"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 14 --> <g id="node15" class="node"> <title>14</title> +<<<<<<< HEAD +<path fill="none" stroke="#59d856" stroke-width="2" d="M676.5,-331.5C676.5,-331.5 575.5,-331.5 575.5,-331.5 569.5,-331.5 563.5,-325.5 563.5,-319.5 563.5,-319.5 563.5,-307.5 563.5,-307.5 563.5,-301.5 569.5,-295.5 575.5,-295.5 575.5,-295.5 676.5,-295.5 676.5,-295.5 682.5,-295.5 688.5,-301.5 688.5,-307.5 688.5,-307.5 688.5,-319.5 688.5,-319.5 688.5,-325.5 682.5,-331.5 676.5,-331.5"/> +<text text-anchor="middle" x="626" y="-316.5" font-family="sans" font-size="10.00" fill="#000000">create_index_kallisto</text> +<text text-anchor="middle" x="626" y="-305.5" font-family="sans" font-size="10.00" fill="#000000">organism: homo_sapiens</text> +</g> +<!-- 14->5 --> +<g id="edge16" class="edge"> +<title>14->5</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M629.7918,-295.2521C631.6847,-286.1422 634.0172,-274.9174 636.1344,-264.7282"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="639.6277,-265.1199 638.2354,-254.6169 632.7741,-263.6957 639.6277,-265.1199"/> +</g> +<!-- 14->6 --> +<g id="edge18" class="edge"> +<title>14->6</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M687.5424,-295.4609C691.0701,-294.5881 694.5742,-293.7602 698,-293 796.4385,-271.156 822.5021,-273.3546 922,-257 933.9567,-255.0347 946.5687,-252.9399 958.9664,-250.8683"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="959.5615,-254.3174 968.8465,-249.2147 958.4059,-247.4135 959.5615,-254.3174"/> +======= <path fill="none" stroke="#56c1d8" stroke-width="2" d="M1230.5,-180C1230.5,-180 1094.5,-180 1094.5,-180 1088.5,-180 1082.5,-174 1082.5,-168 1082.5,-168 1082.5,-156 1082.5,-156 1082.5,-150 1088.5,-144 1094.5,-144 1094.5,-144 1230.5,-144 1230.5,-144 1236.5,-144 1242.5,-150 1242.5,-156 1242.5,-156 1242.5,-168 1242.5,-168 1242.5,-174 1236.5,-180 1230.5,-180"/> <text text-anchor="middle" x="1162.5" y="-159.5" font-family="sans" font-size="10.00">extract_transcripts_as_bed12</text> </g> @@ -243,10 +485,21 @@ <title>14->8</title> <path fill="none" stroke="grey" stroke-width="2" d="M1162.5,-143.7C1162.5,-135.98 1162.5,-126.71 1162.5,-118.11"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="1166,-118.1 1162.5,-108.1 1159,-118.1 1166,-118.1"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 15 --> <g id="node16" class="node"> <title>15</title> +<<<<<<< HEAD +<path fill="none" stroke="#d8b456" stroke-width="2" d="M1250,-180C1250,-180 1084,-180 1084,-180 1078,-180 1072,-174 1072,-168 1072,-168 1072,-156 1072,-156 1072,-150 1078,-144 1084,-144 1084,-144 1250,-144 1250,-144 1256,-144 1262,-150 1262,-156 1262,-156 1262,-168 1262,-168 1262,-174 1256,-180 1250,-180"/> +<text text-anchor="middle" x="1167" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">pe_index_genomic_alignment_samtools</text> +</g> +<!-- 15->7 --> +<g id="edge19" class="edge"> +<title>15->7</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1167,-143.8314C1167,-136.131 1167,-126.9743 1167,-118.4166"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1170.5001,-118.4132 1167,-108.4133 1163.5001,-118.4133 1170.5001,-118.4132"/> +======= <path fill="none" stroke="#56a2d8" stroke-width="2" d="M1444.5,-180C1444.5,-180 1272.5,-180 1272.5,-180 1266.5,-180 1260.5,-174 1260.5,-168 1260.5,-168 1260.5,-156 1260.5,-156 1260.5,-150 1266.5,-144 1272.5,-144 1272.5,-144 1444.5,-144 1444.5,-144 1450.5,-144 1456.5,-150 1456.5,-156 1456.5,-156 1456.5,-168 1456.5,-168 1456.5,-174 1450.5,-180 1444.5,-180"/> <text text-anchor="middle" x="1358.5" y="-159.5" font-family="sans" font-size="10.00">index_genomic_alignment_samtools</text> </g> @@ -255,10 +508,27 @@ <title>15->8</title> <path fill="none" stroke="grey" stroke-width="2" d="M1310.8,-143.97C1283.42,-134.19 1248.84,-121.84 1219.97,-111.52"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="1221,-108.18 1210.41,-108.11 1218.65,-114.77 1221,-108.18"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 16 --> <g id="node17" class="node"> <title>16</title> +<<<<<<< HEAD +<path fill="none" stroke="#56c9d8" stroke-width="2" d="M1413.5,-180C1413.5,-180 1292.5,-180 1292.5,-180 1286.5,-180 1280.5,-174 1280.5,-168 1280.5,-168 1280.5,-156 1280.5,-156 1280.5,-150 1286.5,-144 1292.5,-144 1292.5,-144 1413.5,-144 1413.5,-144 1419.5,-144 1425.5,-150 1425.5,-156 1425.5,-156 1425.5,-168 1425.5,-168 1425.5,-174 1419.5,-180 1413.5,-180"/> +<text text-anchor="middle" x="1353" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">extract_transcripts_as_bed12</text> +</g> +<!-- 16->7 --> +<g id="edge20" class="edge"> +<title>16->7</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1306.0643,-143.8314C1280.8563,-134.0734 1249.6074,-121.977 1223.1209,-111.7242"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1224.1873,-108.384 1213.5981,-108.038 1221.6603,-114.912 1224.1873,-108.384"/> +</g> +<!-- 16->8 --> +<g id="edge22" class="edge"> +<title>16->8</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1353,-143.8314C1353,-136.131 1353,-126.9743 1353,-118.4166"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1356.5001,-118.4132 1353,-108.4133 1349.5001,-118.4133 1356.5001,-118.4132"/> +======= <path fill="none" stroke="#568ad8" stroke-width="2" d="M835,-401C835,-401 534,-401 534,-401 528,-401 522,-395 522,-389 522,-389 522,-377 522,-377 522,-371 528,-365 534,-365 534,-365 835,-365 835,-365 841,-365 847,-371 847,-377 847,-377 847,-389 847,-389 847,-395 841,-401 835,-401"/> <text text-anchor="middle" x="684.5" y="-386" font-family="sans" font-size="10.00">pe_remove_adapters_cutadapt</text> <text text-anchor="middle" x="684.5" y="-375" font-family="sans" font-size="10.00">sample: synthetic_10_reads_paired_synthetic_10_reads_paired</text> @@ -268,10 +538,79 @@ <title>16->9</title> <path fill="none" stroke="grey" stroke-width="2" d="M686.16,-364.82C686.97,-356.42 687.96,-346.12 688.88,-336.69"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="692.38,-336.85 689.85,-326.56 685.41,-336.18 692.38,-336.85"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> <!-- 17 --> <g id="node18" class="node"> <title>17</title> +<<<<<<< HEAD +<path fill="none" stroke="#56d8b1" stroke-width="2" d="M1606,-180C1606,-180 1456,-180 1456,-180 1450,-180 1444,-174 1444,-168 1444,-168 1444,-156 1444,-156 1444,-150 1450,-144 1456,-144 1456,-144 1606,-144 1606,-144 1612,-144 1618,-150 1618,-156 1618,-156 1618,-168 1618,-168 1618,-174 1612,-180 1606,-180"/> +<text text-anchor="middle" x="1531" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">index_genomic_alignment_samtools</text> +</g> +<!-- 17->8 --> +<g id="edge21" class="edge"> +<title>17->8</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1486.0831,-143.8314C1462.065,-134.1162 1432.3166,-122.0831 1407.0408,-111.8592"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1408.1767,-108.5432 1397.5939,-108.038 1405.5518,-115.0325 1408.1767,-108.5432"/> +</g> +<!-- 18 --> +<g id="node19" class="node"> +<title>18</title> +<path fill="none" stroke="#70d856" stroke-width="2" d="M887,-406C887,-406 619,-406 619,-406 613,-406 607,-400 607,-394 607,-394 607,-382 607,-382 607,-376 613,-370 619,-370 619,-370 887,-370 887,-370 893,-370 899,-376 899,-382 899,-382 899,-394 899,-394 899,-400 893,-406 887,-406"/> +<text text-anchor="middle" x="753" y="-391" font-family="sans" font-size="10.00" fill="#000000">pe_remove_adapters_cutadapt</text> +<text text-anchor="middle" x="753" y="-380" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_paired_synthetic_10_reads_paired</text> +</g> +<!-- 18->11 --> +<g id="edge27" class="edge"> +<title>18->11</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M758.3256,-369.9656C760.8471,-361.427 763.9163,-351.0333 766.731,-341.502"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="770.1717,-342.2084 769.6472,-331.6265 763.4583,-340.2258 770.1717,-342.2084"/> +</g> +<!-- 19 --> +<g id="node20" class="node"> +<title>19</title> +<path fill="none" stroke="#d85656" stroke-width="2" d="M1209,-406C1209,-406 929,-406 929,-406 923,-406 917,-400 917,-394 917,-394 917,-382 917,-382 917,-376 923,-370 929,-370 929,-370 1209,-370 1209,-370 1215,-370 1221,-376 1221,-382 1221,-382 1221,-394 1221,-394 1221,-400 1215,-406 1209,-406"/> +<text text-anchor="middle" x="1069" y="-391" font-family="sans" font-size="10.00" fill="#000000">remove_adapters_cutadapt</text> +<text text-anchor="middle" x="1069" y="-380" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_mate_1_synthetic_10_reads_mate_1</text> +</g> +<!-- 19->13 --> +<g id="edge28" class="edge"> +<title>19->13</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1063.9165,-369.9656C1061.5096,-361.427 1058.5798,-351.0333 1055.8932,-341.502"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1059.1914,-340.3018 1053.1095,-331.6265 1052.4539,-342.201 1059.1914,-340.3018"/> +</g> +<!-- 20->15 --> +<g id="edge29" class="edge"> +<title>20->15</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1187.4641,-218.4656C1184.3366,-209.8361 1180.5224,-199.3119 1177.0382,-189.6981"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1180.2673,-188.3356 1173.5693,-180.1265 1173.6861,-190.7207 1180.2673,-188.3356"/> +</g> +<!-- 21->17 --> +<g id="edge30" class="edge"> +<title>21->17</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1365.5599,-219.5948C1396.4256,-208.8495 1436.6502,-194.8461 1469.7072,-183.3379"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1470.9779,-186.6017 1479.2712,-180.0084 1468.6764,-179.9908 1470.9779,-186.6017"/> +</g> +<!-- 22 --> +<g id="node23" class="node"> +<title>22</title> +<path fill="none" stroke="#56d89a" stroke-width="2" d="M1305.5,-334C1305.5,-334 1204.5,-334 1204.5,-334 1198.5,-334 1192.5,-328 1192.5,-322 1192.5,-322 1192.5,-305 1192.5,-305 1192.5,-299 1198.5,-293 1204.5,-293 1204.5,-293 1305.5,-293 1305.5,-293 1311.5,-293 1317.5,-299 1317.5,-305 1317.5,-305 1317.5,-322 1317.5,-322 1317.5,-328 1311.5,-334 1305.5,-334"/> +<text text-anchor="middle" x="1255" y="-322" font-family="sans" font-size="10.00" fill="#000000">create_index_star</text> +<text text-anchor="middle" x="1255" y="-311" font-family="sans" font-size="10.00" fill="#000000">index_size: 75</text> +<text text-anchor="middle" x="1255" y="-300" font-family="sans" font-size="10.00" fill="#000000">organism: homo_sapiens</text> +</g> +<!-- 22->20 --> +<g id="edge31" class="edge"> +<title>22->20</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1238.6531,-292.8654C1231.2641,-283.5383 1222.4511,-272.4136 1214.6144,-262.5214"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1217.2669,-260.2333 1208.3138,-254.5683 1211.7801,-264.5801 1217.2669,-260.2333"/> +</g> +<!-- 22->21 --> +<g id="edge33" class="edge"> +<title>22->21</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1271.6149,-292.8654C1279.125,-283.5383 1288.0825,-272.4136 1296.0477,-262.5214"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1298.906,-264.5523 1302.4515,-254.5683 1293.4538,-260.1621 1298.906,-264.5523"/> +======= <path fill="none" stroke="#a7d856" stroke-width="2" d="M1190,-401C1190,-401 877,-401 877,-401 871,-401 865,-395 865,-389 865,-389 865,-377 865,-377 865,-371 871,-365 877,-365 877,-365 1190,-365 1190,-365 1196,-365 1202,-371 1202,-377 1202,-377 1202,-389 1202,-389 1202,-395 1196,-401 1190,-401"/> <text text-anchor="middle" x="1033.5" y="-386" font-family="sans" font-size="10.00">remove_adapters_cutadapt</text> <text text-anchor="middle" x="1033.5" y="-375" font-family="sans" font-size="10.00">sample: synthetic_10_reads_mate_1_synthetic_10_reads_mate_1</text> @@ -313,6 +652,7 @@ <title>20->19</title> <path fill="none" stroke="grey" stroke-width="2" d="M1271.81,-287.69C1279.8,-279.04 1289.25,-268.81 1297.7,-259.68"/> <polygon fill="grey" stroke="grey" stroke-width="2" points="1300.28,-262.04 1304.49,-252.32 1295.14,-257.29 1300.28,-262.04"/> +>>>>>>> 641f2cbb4025df946ad340a805cb788434b3ba68 </g> </g> </svg> diff --git a/images/workflow_dag.svg b/images/workflow_dag.svg new file mode 100644 index 0000000..aed6714 --- /dev/null +++ b/images/workflow_dag.svg @@ -0,0 +1,346 @@ +<?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 2.40.1 (20161225.0304) + --> +<!-- Title: snakemake_dag Pages: 1 --> +<svg width="1510pt" height="337pt" + viewBox="0.00 0.00 1510.02 337.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 333)"> +<title>snakemake_dag</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-333 1506.0203,-333 1506.0203,4 -4,4"/> +<!-- 0 --> +<g id="node1" class="node"> +<title>0</title> +<path fill="none" stroke="#9fd856" stroke-width="2" d="M991,-36C991,-36 961,-36 961,-36 955,-36 949,-30 949,-24 949,-24 949,-12 949,-12 949,-6 955,0 961,0 961,0 991,0 991,0 997,0 1003,-6 1003,-12 1003,-12 1003,-24 1003,-24 1003,-30 997,-36 991,-36"/> +<text text-anchor="middle" x="976" y="-15.5" font-family="sans" font-size="10.00" fill="#000000">finish</text> +</g> +<!-- 1 --> +<g id="node2" class="node"> +<title>1</title> +<path fill="none" stroke="#56b1d8" stroke-width="2" d="M158,-108C158,-108 12,-108 12,-108 6,-108 0,-102 0,-96 0,-96 0,-84 0,-84 0,-78 6,-72 12,-72 12,-72 158,-72 158,-72 164,-72 170,-78 170,-84 170,-84 170,-96 170,-96 170,-102 164,-108 158,-108"/> +<text text-anchor="middle" x="85" y="-93" font-family="sans" font-size="10.00" fill="#000000">pe_fastqc</text> +<text text-anchor="middle" x="85" y="-82" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_paired</text> +</g> +<!-- 1->0 --> +<g id="edge1" class="edge"> +<title>1->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M170.2331,-73.2105C173.1873,-72.778 176.1162,-72.3724 179,-72 469.8071,-34.4465 823.8993,-22.0899 938.3813,-18.9256"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="938.8,-22.4157 948.702,-18.6475 938.6114,-15.4182 938.8,-22.4157"/> +</g> +<!-- 2 --> +<g id="node3" class="node"> +<title>2</title> +<path fill="none" stroke="#d85656" stroke-width="2" d="M352,-108C352,-108 200,-108 200,-108 194,-108 188,-102 188,-96 188,-96 188,-84 188,-84 188,-78 194,-72 200,-72 200,-72 352,-72 352,-72 358,-72 364,-78 364,-84 364,-84 364,-96 364,-96 364,-102 358,-108 352,-108"/> +<text text-anchor="middle" x="276" y="-93" font-family="sans" font-size="10.00" fill="#000000">fastqc</text> +<text text-anchor="middle" x="276" y="-82" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_mate_1</text> +</g> +<!-- 2->0 --> +<g id="edge2" class="edge"> +<title>2->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M364.2307,-73.2628C367.186,-72.8186 370.1153,-72.3959 373,-72 586.0653,-42.757 843.7556,-25.763 938.6211,-20.119"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="939.0748,-23.5984 948.8519,-19.517 938.6636,-16.6105 939.0748,-23.5984"/> +</g> +<!-- 3 --> +<g id="node4" class="node"> +<title>3</title> +<path fill="none" stroke="#56d86b" stroke-width="2" d="M560,-108C560,-108 394,-108 394,-108 388,-108 382,-102 382,-96 382,-96 382,-84 382,-84 382,-78 388,-72 394,-72 394,-72 560,-72 560,-72 566,-72 572,-78 572,-84 572,-84 572,-96 572,-96 572,-102 566,-108 560,-108"/> +<text text-anchor="middle" x="477" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">pe_index_genomic_alignment_samtools</text> +</g> +<!-- 3->0 --> +<g id="edge3" class="edge"> +<title>3->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M572.1926,-73.3851C575.1613,-72.9115 578.1027,-72.4486 581,-72 712.0945,-51.7009 868.2982,-31.5289 938.5332,-22.6716"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="939.17,-26.1191 948.655,-21.3985 938.2964,-19.1739 939.17,-26.1191"/> +</g> +<!-- 4 --> +<g id="node5" class="node"> +<title>4</title> +<path fill="none" stroke="#b6d856" stroke-width="2" d="M752,-108C752,-108 602,-108 602,-108 596,-108 590,-102 590,-96 590,-96 590,-84 590,-84 590,-78 596,-72 602,-72 602,-72 752,-72 752,-72 758,-72 764,-78 764,-84 764,-84 764,-96 764,-96 764,-102 758,-108 752,-108"/> +<text text-anchor="middle" x="677" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">index_genomic_alignment_samtools</text> +</g> +<!-- 4->0 --> +<g id="edge4" class="edge"> +<title>4->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M752.0644,-71.9243C811.5694,-57.5953 892.1971,-38.18 938.7061,-26.9805"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="939.7465,-30.3301 948.6492,-24.5861 938.1077,-23.5246 939.7465,-30.3301"/> +</g> +<!-- 5 --> +<g id="node6" class="node"> +<title>5</title> +<path fill="none" stroke="#70d856" stroke-width="2" d="M963.5,-180C963.5,-180 860.5,-180 860.5,-180 854.5,-180 848.5,-174 848.5,-168 848.5,-168 848.5,-156 848.5,-156 848.5,-150 854.5,-144 860.5,-144 860.5,-144 963.5,-144 963.5,-144 969.5,-144 975.5,-150 975.5,-156 975.5,-156 975.5,-168 975.5,-168 975.5,-174 969.5,-180 963.5,-180"/> +<text text-anchor="middle" x="912" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">pe_quantification_salmon</text> +</g> +<!-- 5->0 --> +<g id="edge5" class="edge"> +<title>5->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M853.6599,-143.8856C836.9498,-135.6937 820.6591,-124.1172 811,-108 802.7751,-94.2759 801.6092,-84.9543 811,-72 826.1492,-51.1023 894.8804,-33.9967 938.718,-24.9629"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="939.6268,-28.3503 948.7408,-22.9481 938.2471,-21.4876 939.6268,-28.3503"/> +</g> +<!-- 9 --> +<g id="node10" class="node"> +<title>9</title> +<path fill="none" stroke="#d86e56" stroke-width="2" d="M960,-108C960,-108 832,-108 832,-108 826,-108 820,-102 820,-96 820,-96 820,-84 820,-84 820,-78 826,-72 832,-72 832,-72 960,-72 960,-72 966,-72 972,-78 972,-84 972,-84 972,-96 972,-96 972,-102 966,-108 960,-108"/> +<text text-anchor="middle" x="896" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">pe_salmon_quantmerge_genes</text> +</g> +<!-- 5->9 --> +<g id="edge23" class="edge"> +<title>5->9</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M907.9625,-143.8314C906.2513,-136.131 904.2165,-126.9743 902.3148,-118.4166"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="905.6779,-117.4159 900.0918,-108.4133 898.8446,-118.9344 905.6779,-117.4159"/> +</g> +<!-- 11 --> +<g id="node12" class="node"> +<title>11</title> +<path fill="none" stroke="#56d8c9" stroke-width="2" d="M1109.5,-108C1109.5,-108 1002.5,-108 1002.5,-108 996.5,-108 990.5,-102 990.5,-96 990.5,-96 990.5,-84 990.5,-84 990.5,-78 996.5,-72 1002.5,-72 1002.5,-72 1109.5,-72 1109.5,-72 1115.5,-72 1121.5,-78 1121.5,-84 1121.5,-84 1121.5,-96 1121.5,-96 1121.5,-102 1115.5,-108 1109.5,-108"/> +<text text-anchor="middle" x="1056" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">pe_salmon_quantmerge_tr</text> +</g> +<!-- 5->11 --> +<g id="edge25" class="edge"> +<title>5->11</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M948.3373,-143.8314C967.3396,-134.3302 990.7758,-122.6121 1010.9252,-112.5374"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1012.545,-115.6407 1019.924,-108.038 1009.4145,-109.3797 1012.545,-115.6407"/> +</g> +<!-- 6 --> +<g id="node7" class="node"> +<title>6</title> +<path fill="none" stroke="#56d882" stroke-width="2" d="M1310.5,-180C1310.5,-180 1223.5,-180 1223.5,-180 1217.5,-180 1211.5,-174 1211.5,-168 1211.5,-168 1211.5,-156 1211.5,-156 1211.5,-150 1217.5,-144 1223.5,-144 1223.5,-144 1310.5,-144 1310.5,-144 1316.5,-144 1322.5,-150 1322.5,-156 1322.5,-156 1322.5,-168 1322.5,-168 1322.5,-174 1316.5,-180 1310.5,-180"/> +<text text-anchor="middle" x="1267" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">quantification_salmon</text> +</g> +<!-- 6->0 --> +<g id="edge6" class="edge"> +<title>6->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1247.3898,-143.7542C1224.9107,-123.6927 1186.2216,-91.6982 1148,-72 1104.0675,-49.3586 1048.8886,-34.1028 1013.054,-25.7361"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1013.564,-22.2628 1003.0369,-23.4593 1012.0125,-29.0887 1013.564,-22.2628"/> +</g> +<!-- 10 --> +<g id="node11" class="node"> +<title>10</title> +<path fill="none" stroke="#56c9d8" stroke-width="2" d="M1340,-108C1340,-108 1228,-108 1228,-108 1222,-108 1216,-102 1216,-96 1216,-96 1216,-84 1216,-84 1216,-78 1222,-72 1228,-72 1228,-72 1340,-72 1340,-72 1346,-72 1352,-78 1352,-84 1352,-84 1352,-96 1352,-96 1352,-102 1346,-108 1340,-108"/> +<text text-anchor="middle" x="1284" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">salmon_quantmerge_genes</text> +</g> +<!-- 6->10 --> +<g id="edge24" class="edge"> +<title>6->10</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1271.2898,-143.8314C1273.108,-136.131 1275.2699,-126.9743 1277.2905,-118.4166"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1280.7608,-118.95 1279.6524,-108.4133 1273.9481,-117.3414 1280.7608,-118.95"/> +</g> +<!-- 12 --> +<g id="node13" class="node"> +<title>12</title> +<path fill="none" stroke="#569ad8" stroke-width="2" d="M1474,-108C1474,-108 1382,-108 1382,-108 1376,-108 1370,-102 1370,-96 1370,-96 1370,-84 1370,-84 1370,-78 1376,-72 1382,-72 1382,-72 1474,-72 1474,-72 1480,-72 1486,-78 1486,-84 1486,-84 1486,-96 1486,-96 1486,-102 1480,-108 1474,-108"/> +<text text-anchor="middle" x="1428" y="-87.5" font-family="sans" font-size="10.00" fill="#000000">salmon_quantmerge_tr</text> +</g> +<!-- 6->12 --> +<g id="edge26" class="edge"> +<title>6->12</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1307.6271,-143.8314C1329.1599,-134.2018 1355.7849,-122.295 1378.5152,-112.1299"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1379.9652,-115.3155 1387.665,-108.038 1377.1074,-108.9254 1379.9652,-115.3155"/> +</g> +<!-- 7 --> +<g id="node8" class="node"> +<title>7</title> +<path fill="none" stroke="#d88556" stroke-width="2" d="M1181,-180C1181,-180 1039,-180 1039,-180 1033,-180 1027,-174 1027,-168 1027,-168 1027,-156 1027,-156 1027,-150 1033,-144 1039,-144 1039,-144 1181,-144 1181,-144 1187,-144 1193,-150 1193,-156 1193,-156 1193,-168 1193,-168 1193,-174 1187,-180 1181,-180"/> +<text text-anchor="middle" x="1110" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">pe_genome_quantification_kallisto</text> +</g> +<!-- 7->0 --> +<g id="edge7" class="edge"> +<title>7->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1122.0924,-143.7945C1133.3363,-124.353 1146.2414,-93.4497 1131,-72 1117.1153,-52.4595 1054.535,-35.2799 1013.2611,-25.7978"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1013.7931,-22.3302 1003.2694,-23.5561 1012.2607,-29.1604 1013.7931,-22.3302"/> +</g> +<!-- 8 --> +<g id="node9" class="node"> +<title>8</title> +<path fill="none" stroke="#88d856" stroke-width="2" d="M1479,-180C1479,-180 1353,-180 1353,-180 1347,-180 1341,-174 1341,-168 1341,-168 1341,-156 1341,-156 1341,-150 1347,-144 1353,-144 1353,-144 1479,-144 1479,-144 1485,-144 1491,-150 1491,-156 1491,-156 1491,-168 1491,-168 1491,-174 1485,-180 1479,-180"/> +<text text-anchor="middle" x="1416" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">genome_quantification_kallisto</text> +</g> +<!-- 8->0 --> +<g id="edge8" class="edge"> +<title>8->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1457.534,-143.9032C1472.1053,-135.2837 1486.8583,-123.4273 1495,-108 1502.4678,-93.8497 1505.7123,-83.8847 1495,-72 1462.8307,-36.3099 1127.5307,-22.6878 1013.6242,-19.0686"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1013.4133,-15.5605 1003.3097,-18.7492 1013.1966,-22.5572 1013.4133,-15.5605"/> +</g> +<!-- 9->0 --> +<g id="edge9" class="edge"> +<title>9->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M916.1874,-71.8314C925.8514,-63.1337 937.5796,-52.5783 948.0816,-43.1265"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="950.7275,-45.454 955.8191,-36.1628 946.0447,-40.251 950.7275,-45.454"/> +</g> +<!-- 10->0 --> +<g id="edge10" class="edge"> +<title>10->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1215.6448,-74.0209C1153.1373,-59.4087 1063.0275,-38.3441 1013.0065,-26.6509"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1013.7953,-23.241 1003.2611,-24.3727 1012.2019,-30.0572 1013.7953,-23.241"/> +</g> +<!-- 11->0 --> +<g id="edge11" class="edge"> +<title>11->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1035.8126,-71.8314C1026.1486,-63.1337 1014.4204,-52.5783 1003.9184,-43.1265"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1005.9553,-40.251 996.1809,-36.1628 1001.2725,-45.454 1005.9553,-40.251"/> +</g> +<!-- 12->0 --> +<g id="edge12" class="edge"> +<title>12->0</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1369.9993,-73.9492C1366.9638,-73.2561 1363.9505,-72.6009 1361,-72 1234.5556,-46.2493 1082.2442,-28.843 1013.2245,-21.6797"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1013.5735,-18.1972 1003.2684,-20.6577 1012.8587,-25.1606 1013.5735,-18.1972"/> +</g> +<!-- 13 --> +<g id="node14" class="node"> +<title>13</title> +<path fill="none" stroke="#d8cb56" stroke-width="2" d="M694.5,-180C694.5,-180 605.5,-180 605.5,-180 599.5,-180 593.5,-174 593.5,-168 593.5,-168 593.5,-156 593.5,-156 593.5,-150 599.5,-144 605.5,-144 605.5,-144 694.5,-144 694.5,-144 700.5,-144 706.5,-150 706.5,-156 706.5,-156 706.5,-168 706.5,-168 706.5,-174 700.5,-180 694.5,-180"/> +<text text-anchor="middle" x="650" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">pe_map_genome_star</text> +</g> +<!-- 13->3 --> +<g id="edge13" class="edge"> +<title>13->3</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M606.3448,-143.8314C583.1042,-134.159 554.3432,-122.1891 529.8477,-111.9944"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="530.9185,-108.6491 520.3413,-108.038 528.2288,-115.1117 530.9185,-108.6491"/> +</g> +<!-- 14 --> +<g id="node15" class="node"> +<title>14</title> +<path fill="none" stroke="#56d8b1" stroke-width="2" d="M809.5,-180C809.5,-180 736.5,-180 736.5,-180 730.5,-180 724.5,-174 724.5,-168 724.5,-168 724.5,-156 724.5,-156 724.5,-150 730.5,-144 736.5,-144 736.5,-144 809.5,-144 809.5,-144 815.5,-144 821.5,-150 821.5,-156 821.5,-156 821.5,-168 821.5,-168 821.5,-174 815.5,-180 809.5,-180"/> +<text text-anchor="middle" x="773" y="-159.5" font-family="sans" font-size="10.00" fill="#000000">map_genome_star</text> +</g> +<!-- 14->4 --> +<g id="edge14" class="edge"> +<title>14->4</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M748.7751,-143.8314C736.8372,-134.8779 722.2744,-123.9558 709.394,-114.2955"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="711.3171,-111.3629 701.2171,-108.1628 707.1171,-116.9629 711.3171,-111.3629"/> +</g> +<!-- 15 --> +<g id="node16" class="node"> +<title>15</title> +<path fill="none" stroke="#ced856" stroke-width="2" d="M968,-254.5C968,-254.5 856,-254.5 856,-254.5 850,-254.5 844,-248.5 844,-242.5 844,-242.5 844,-230.5 844,-230.5 844,-224.5 850,-218.5 856,-218.5 856,-218.5 968,-218.5 968,-218.5 974,-218.5 980,-224.5 980,-230.5 980,-230.5 980,-242.5 980,-242.5 980,-248.5 974,-254.5 968,-254.5"/> +<text text-anchor="middle" x="912" y="-234" font-family="sans" font-size="10.00" fill="#000000">pe_remove_polya_cutadapt</text> +</g> +<!-- 15->5 --> +<g id="edge15" class="edge"> +<title>15->5</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M912,-218.4656C912,-210.0178 912,-199.7542 912,-190.3064"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="915.5001,-190.1265 912,-180.1265 908.5001,-190.1265 915.5001,-190.1265"/> +</g> +<!-- 15->7 --> +<g id="edge19" class="edge"> +<title>15->7</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M959.9303,-218.4656C987.6935,-208.0194 1022.8356,-194.7967 1052.1325,-183.7734"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1053.698,-186.924 1061.8248,-180.1265 1051.2329,-180.3724 1053.698,-186.924"/> +</g> +<!-- 15->13 --> +<g id="edge28" class="edge"> +<title>15->13</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M848.5771,-218.4656C808.5632,-207.0876 756.9657,-192.4158 716.3957,-180.8797"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="717.174,-177.4623 706.598,-178.0937 715.2594,-184.1954 717.174,-177.4623"/> +</g> +<!-- 16 --> +<g id="node17" class="node"> +<title>16</title> +<path fill="none" stroke="#d89c56" stroke-width="2" d="M1144.5,-257C1144.5,-257 1043.5,-257 1043.5,-257 1037.5,-257 1031.5,-251 1031.5,-245 1031.5,-245 1031.5,-228 1031.5,-228 1031.5,-222 1037.5,-216 1043.5,-216 1043.5,-216 1144.5,-216 1144.5,-216 1150.5,-216 1156.5,-222 1156.5,-228 1156.5,-228 1156.5,-245 1156.5,-245 1156.5,-251 1150.5,-257 1144.5,-257"/> +<text text-anchor="middle" x="1094" y="-245" font-family="sans" font-size="10.00" fill="#000000">create_index_salmon</text> +<text text-anchor="middle" x="1094" y="-234" font-family="sans" font-size="10.00" fill="#000000">kmer: 31</text> +<text text-anchor="middle" x="1094" y="-223" font-family="sans" font-size="10.00" fill="#000000">organism: homo_sapiens</text> +</g> +<!-- 16->5 --> +<g id="edge16" class="edge"> +<title>16->5</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1043.7859,-215.9453C1019.5425,-206.0215 990.4296,-194.1044 965.7399,-183.9979"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="966.7439,-180.6271 956.1633,-180.0778 964.092,-187.1053 966.7439,-180.6271"/> +</g> +<!-- 16->6 --> +<g id="edge18" class="edge"> +<title>16->6</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1141.731,-215.9453C1164.6735,-206.0654 1192.204,-194.2099 1215.6058,-184.1322"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1217.2204,-187.2477 1225.0206,-180.0778 1214.4517,-180.8185 1217.2204,-187.2477"/> +</g> +<!-- 17 --> +<g id="node18" class="node"> +<title>17</title> +<path fill="none" stroke="#59d856" stroke-width="2" d="M1315,-254.5C1315,-254.5 1219,-254.5 1219,-254.5 1213,-254.5 1207,-248.5 1207,-242.5 1207,-242.5 1207,-230.5 1207,-230.5 1207,-224.5 1213,-218.5 1219,-218.5 1219,-218.5 1315,-218.5 1315,-218.5 1321,-218.5 1327,-224.5 1327,-230.5 1327,-230.5 1327,-242.5 1327,-242.5 1327,-248.5 1321,-254.5 1315,-254.5"/> +<text text-anchor="middle" x="1267" y="-234" font-family="sans" font-size="10.00" fill="#000000">remove_polya_cutadapt</text> +</g> +<!-- 17->6 --> +<g id="edge17" class="edge"> +<title>17->6</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1267,-218.4656C1267,-210.0178 1267,-199.7542 1267,-190.3064"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1270.5001,-190.1265 1267,-180.1265 1263.5001,-190.1265 1270.5001,-190.1265"/> +</g> +<!-- 17->8 --> +<g id="edge21" class="edge"> +<title>17->8</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1303.0687,-218.4656C1323.4162,-208.2919 1349.0306,-195.4847 1370.7191,-184.6405"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1372.368,-187.7292 1379.747,-180.1265 1369.2374,-181.4682 1372.368,-187.7292"/> +</g> +<!-- 17->14 --> +<g id="edge30" class="edge"> +<title>17->14</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1206.7501,-223.4738C1193.065,-220.7709 1178.5647,-218.1079 1165,-216 1020.9591,-193.6169 982.198,-207.2604 839,-180 836.6374,-179.5502 834.2356,-179.059 831.8155,-178.5356"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="832.349,-175.0668 821.818,-176.2274 830.7743,-181.8874 832.349,-175.0668"/> +</g> +<!-- 18 --> +<g id="node19" class="node"> +<title>18</title> +<path fill="none" stroke="#5682d8" stroke-width="2" d="M1462.5,-254.5C1462.5,-254.5 1361.5,-254.5 1361.5,-254.5 1355.5,-254.5 1349.5,-248.5 1349.5,-242.5 1349.5,-242.5 1349.5,-230.5 1349.5,-230.5 1349.5,-224.5 1355.5,-218.5 1361.5,-218.5 1361.5,-218.5 1462.5,-218.5 1462.5,-218.5 1468.5,-218.5 1474.5,-224.5 1474.5,-230.5 1474.5,-230.5 1474.5,-242.5 1474.5,-242.5 1474.5,-248.5 1468.5,-254.5 1462.5,-254.5"/> +<text text-anchor="middle" x="1412" y="-239.5" font-family="sans" font-size="10.00" fill="#000000">create_index_kallisto</text> +<text text-anchor="middle" x="1412" y="-228.5" font-family="sans" font-size="10.00" fill="#000000">organism: homo_sapiens</text> +</g> +<!-- 18->7 --> +<g id="edge20" class="edge"> +<title>18->7</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1349.4126,-219.4641C1344.8775,-218.2769 1340.3707,-217.1114 1336,-216 1290.4851,-204.4264 1239.6293,-192.2119 1197.7028,-182.3327"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1198.3344,-178.8858 1187.7987,-180.0033 1196.7317,-185.6999 1198.3344,-178.8858"/> +</g> +<!-- 18->8 --> +<g id="edge22" class="edge"> +<title>18->8</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1412.9683,-218.4656C1413.4219,-210.0178 1413.9729,-199.7542 1414.4802,-190.3064"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1417.9855,-190.2998 1415.0268,-180.1265 1410.9956,-189.9244 1417.9855,-190.2998"/> +</g> +<!-- 19 --> +<g id="node20" class="node"> +<title>19</title> +<path fill="none" stroke="#d8b456" stroke-width="2" d="M757.5,-257C757.5,-257 656.5,-257 656.5,-257 650.5,-257 644.5,-251 644.5,-245 644.5,-245 644.5,-228 644.5,-228 644.5,-222 650.5,-216 656.5,-216 656.5,-216 757.5,-216 757.5,-216 763.5,-216 769.5,-222 769.5,-228 769.5,-228 769.5,-245 769.5,-245 769.5,-251 763.5,-257 757.5,-257"/> +<text text-anchor="middle" x="707" y="-245" font-family="sans" font-size="10.00" fill="#000000">create_index_star</text> +<text text-anchor="middle" x="707" y="-234" font-family="sans" font-size="10.00" fill="#000000">index_size: 76</text> +<text text-anchor="middle" x="707" y="-223" font-family="sans" font-size="10.00" fill="#000000">organism: homo_sapiens</text> +</g> +<!-- 19->13 --> +<g id="edge27" class="edge"> +<title>19->13</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M691.1223,-215.7476C684.565,-207.177 676.8905,-197.1463 669.9587,-188.0864"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="672.7112,-185.924 663.855,-180.1087 667.1517,-190.1775 672.7112,-185.924"/> +</g> +<!-- 19->14 --> +<g id="edge29" class="edge"> +<title>19->14</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M725.3847,-215.7476C733.0549,-207.0896 742.0451,-196.9415 750.1354,-187.8093"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="752.9461,-189.9148 756.9574,-180.1087 747.7064,-185.2729 752.9461,-189.9148"/> +</g> +<!-- 20 --> +<g id="node21" class="node"> +<title>20</title> +<path fill="none" stroke="#56d89a" stroke-width="2" d="M985,-329C985,-329 839,-329 839,-329 833,-329 827,-323 827,-317 827,-317 827,-305 827,-305 827,-299 833,-293 839,-293 839,-293 985,-293 985,-293 991,-293 997,-299 997,-305 997,-305 997,-317 997,-317 997,-323 991,-329 985,-329"/> +<text text-anchor="middle" x="912" y="-314" font-family="sans" font-size="10.00" fill="#000000">pe_remove_adapters_cutadapt</text> +<text text-anchor="middle" x="912" y="-303" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_paired</text> +</g> +<!-- 20->15 --> +<g id="edge31" class="edge"> +<title>20->15</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M912,-292.9656C912,-284.5178 912,-274.2542 912,-264.8064"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="915.5001,-264.6265 912,-254.6265 908.5001,-264.6265 915.5001,-264.6265"/> +</g> +<!-- 21 --> +<g id="node22" class="node"> +<title>21</title> +<path fill="none" stroke="#566bd8" stroke-width="2" d="M1343,-329C1343,-329 1191,-329 1191,-329 1185,-329 1179,-323 1179,-317 1179,-317 1179,-305 1179,-305 1179,-299 1185,-293 1191,-293 1191,-293 1343,-293 1343,-293 1349,-293 1355,-299 1355,-305 1355,-305 1355,-317 1355,-317 1355,-323 1349,-329 1343,-329"/> +<text text-anchor="middle" x="1267" y="-314" font-family="sans" font-size="10.00" fill="#000000">remove_adapters_cutadapt</text> +<text text-anchor="middle" x="1267" y="-303" font-family="sans" font-size="10.00" fill="#000000">sample: synthetic_10_reads_mate_1</text> +</g> +<!-- 21->17 --> +<g id="edge32" class="edge"> +<title>21->17</title> +<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M1267,-292.9656C1267,-284.5178 1267,-274.2542 1267,-264.8064"/> +<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="1270.5001,-264.6265 1267,-254.6265 1263.5001,-264.6265 1270.5001,-264.6265"/> +</g> +</g> +</svg> diff --git a/tests/test_integration_workflow/expected_output.files b/tests/test_integration_workflow/expected_output.files index a60f623..1e17510 100644 --- a/tests/test_integration_workflow/expected_output.files +++ b/tests/test_integration_workflow/expected_output.files @@ -1,12 +1,7 @@ results/kallisto_indexes/homo_sapiens/kallisto.idx -results/salmon_indexes/homo_sapiens/31/salmon.idx/duplicate_clusters.tsv -results/salmon_indexes/homo_sapiens/31/salmon.idx/hash.bin -results/salmon_indexes/homo_sapiens/31/salmon.idx/header.json -results/salmon_indexes/homo_sapiens/31/salmon.idx/refInfo.json -results/salmon_indexes/homo_sapiens/31/salmon.idx/rsd.bin -results/salmon_indexes/homo_sapiens/31/salmon.idx/sa.bin -results/salmon_indexes/homo_sapiens/31/salmon.idx/txpInfo.bin results/salmon_indexes/homo_sapiens/31/salmon.idx/versionInfo.json +results/salmon_indexes/homo_sapiens/31/salmon.idx/duplicate_clusters.tsv +results/salmon_indexes/homo_sapiens/31/salmon.idx/info.json results/star_indexes/homo_sapiens/75/STAR_index/chrLength.txt results/star_indexes/homo_sapiens/75/STAR_index/chrNameLength.txt results/star_indexes/homo_sapiens/75/STAR_index/chrName.txt @@ -78,8 +73,6 @@ results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/quant_kal results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/quant_kallisto/pseudoalignments.bam results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/quant_kallisto/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1.kallisto.pseudo.sam results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/lib_format_counts.json -results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/quant.genes.sf -results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/quant.sf results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/ambig_info.tsv results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/expected_bias results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/observed_bias diff --git a/tests/test_integration_workflow/expected_output.md5 b/tests/test_integration_workflow/expected_output.md5 index 01c8966..07abc1e 100644 --- a/tests/test_integration_workflow/expected_output.md5 +++ b/tests/test_integration_workflow/expected_output.md5 @@ -1,12 +1,7 @@ cbaebdb67aee4784b64aff7fec9fda42 results/kallisto_indexes/homo_sapiens/kallisto.idx -15f17d12eb9b908605bd6dbb1e9ea5c5 results/salmon_indexes/homo_sapiens/31/salmon.idx/duplicate_clusters.tsv -5dd9a2314563aa72fc0498ff173c578a results/salmon_indexes/homo_sapiens/31/salmon.idx/hash.bin -45588b6e8acf09e507f2aa5883e411d5 results/salmon_indexes/homo_sapiens/31/salmon.idx/header.json -c13cbadc90309dcede958d26c1f7c747 results/salmon_indexes/homo_sapiens/31/salmon.idx/refInfo.json -5dec8cab99b7cccd6a341cf85eb5b978 results/salmon_indexes/homo_sapiens/31/salmon.idx/rsd.bin -2a5dddf1ff309c1287f0b88f1631c0f3 results/salmon_indexes/homo_sapiens/31/salmon.idx/sa.bin -cd72748424a7d75dc8b2bdc342eb04b5 results/salmon_indexes/homo_sapiens/31/salmon.idx/txpInfo.bin -3d2de5424aae670242a9ca02c0f4c48c results/salmon_indexes/homo_sapiens/31/salmon.idx/versionInfo.json +0ac1afd9a4f380afd70be75b21814c64 results/salmon_indexes/homo_sapiens/31/salmon.idx/versionInfo.json +51b5292e3a874119c0e1aa566e95d70c results/salmon_indexes/homo_sapiens/31/salmon.idx/duplicate_clusters.tsv +4c1ab7841bbd1a1e8e3b15e7750ecc38 results/salmon_indexes/homo_sapiens/31/salmon.idx/info.json dee7cdc194d5d0617552b7a3b5ad8dfb results/star_indexes/homo_sapiens/75/STAR_index/chrLength.txt 8e2e96e2d6b7f29940ad5de40662b7cb results/star_indexes/homo_sapiens/75/STAR_index/chrNameLength.txt d0826904b8afa45352906ad9591f2bfb results/star_indexes/homo_sapiens/75/STAR_index/chrName.txt @@ -53,8 +48,8 @@ b28aac49f537b8cba364b6422458ad28 results/paired_end/synthetic_10_reads_paired_s 5e07e870d516a91647808bd84068d829 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/quant_kallisto/abundance.tsv 6180a904511292b0f173794ae98af991 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/quant_kallisto/pseudoalignments.bam d41d8cd98f00b204e9800998ecf8427e results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/quant_kallisto/synthetic_10_reads_paired_synthetic_10_reads_paired.kallisto.pseudo.sam -2987d73b246aacce29f64110e36fdeea results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/lib_format_counts.json -8b03c43b8241d50bce5ac642564779e1 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/aux_info/ambig_info.tsv +c77480e0235761f2d7f80dbceb2e2806 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/lib_format_counts.json +989d6ee63b728fced9ec0249735ab83d results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/aux_info/ambig_info.tsv 3407f87245d0003e0ffbfdf6d8c04f20 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/aux_info/expected_bias 92bcd0592d22a6a58d0360fc76103e56 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/aux_info/observed_bias 92bcd0592d22a6a58d0360fc76103e56 results/paired_end/synthetic_10_reads_paired_synthetic_10_reads_paired/salmon_quant/aux_info/observed_bias_3p @@ -77,10 +72,8 @@ b28aac49f537b8cba364b6422458ad28 results/single_end/synthetic_10_reads_mate_1_s 50a9b89a9f1da2c438cb0041b64faa0e results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/quant_kallisto/abundance.tsv 3a727fbf59b74a85e1738b0eb3404a73 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/quant_kallisto/pseudoalignments.bam d41d8cd98f00b204e9800998ecf8427e results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/quant_kallisto/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1.kallisto.pseudo.sam -efe791920c3109d3bfd3dfd3dd6f1cbd results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/lib_format_counts.json -644256e10c1cfff4fd67b5e7be60742a results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/quant.genes.sf -50ef8217ce367740e40dd040d6907573 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/quant.sf -8b03c43b8241d50bce5ac642564779e1 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/ambig_info.tsv +e72f5d798c99272f8c0166dc77247db1 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/lib_format_counts.json +989d6ee63b728fced9ec0249735ab83d results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/ambig_info.tsv 3407f87245d0003e0ffbfdf6d8c04f20 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/expected_bias 92bcd0592d22a6a58d0360fc76103e56 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/observed_bias 92bcd0592d22a6a58d0360fc76103e56 results/single_end/synthetic_10_reads_mate_1_synthetic_10_reads_mate_1/salmon_quant/aux_info/observed_bias_3p diff --git a/workflow/rules/paired_end.snakefile.smk b/workflow/rules/paired_end.snakefile.smk index 1d1f7c0..da8ed99 100644 --- a/workflow/rules/paired_end.snakefile.smk +++ b/workflow/rules/paired_end.snakefile.smk @@ -1,286 +1,285 @@ rule pe_fastqc: - '''A quality control tool for high throughput sequence data''' + '''A quality control tool for high throughput sequence data''' - input: - reads1 = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"], - reads2 = lambda wildcards: samples_table.loc[wildcards.sample, "fq2"] - output: - outdir1 = directory(os.path.join(config["output_dir"],"paired_end", "{sample}", "mate1_fastqc")), - outdir2 = directory(os.path.join(config["output_dir"],"paired_end", "{sample}", "mate2_fastqc")) - threads: - 2 - singularity: - "docker://zavolab/fastqc:0.11.8" - log: - os.path.join(config["log_dir"],"paired_end", "{sample}", "fastqc.log") - shell: - "(mkdir -p {output.outdir1}; \ - mkdir -p {output.outdir2}; \ - fastqc --outdir {output.outdir1} {input.reads1} & \ - fastqc --outdir {output.outdir2} {input.reads2}) &> {log}" + input: + reads1 = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"], + reads2 = lambda wildcards: samples_table.loc[wildcards.sample, "fq2"] + output: + outdir1 = directory(os.path.join(config["output_dir"],"paired_end", "{sample}", "mate1_fastqc")), + outdir2 = directory(os.path.join(config["output_dir"],"paired_end", "{sample}", "mate2_fastqc")) + threads: + 2 + singularity: + "docker://zavolab/fastqc:0.11.8" + log: + os.path.join(config["log_dir"],"paired_end", "{sample}", "fastqc.log") + shell: + "(mkdir -p {output.outdir1}; \ + mkdir -p {output.outdir2}; \ + fastqc --outdir {output.outdir1} {input.reads1} & \ + fastqc --outdir {output.outdir2} {input.reads2}) &> {log}" rule pe_remove_adapters_cutadapt: - '''Remove adapters''' - input: - reads1 = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"], - reads2 = lambda wildcards: samples_table.loc[wildcards.sample, "fq2"] - output: - reads1 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_adapters_mate1.fastq.gz"), + '''Remove adapters''' + input: + reads1 = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"], + reads2 = lambda wildcards: samples_table.loc[wildcards.sample, "fq2"] + output: + reads1 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_adapters_mate1.fastq.gz"), - reads2 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_adapters_mate2.fastq.gz") - params: - adapter_3_mate1 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq1_3p'], - adapter_5_mate1 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq1_5p'], - adapter_3_mate2 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq2_3p'], - adapter_5_mate2 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq2_5p'] - singularity: - "docker://zavolab/cutadapt:1.16" - threads: 8 - log: - os.path.join( config["log_dir"], "paired_end", "{sample}", "remove_adapters_cutadapt.log") - shell: - "(cutadapt \ - -e 0.1 \ - -j {threads} \ - --pair-filter=both \ - -m 10 \ - -n 3 \ - -a {params.adapter_3_mate1} \ - -g {params.adapter_5_mate1} \ - -A {params.adapter_3_mate2} \ - -G {params.adapter_5_mate2} \ - -o {output.reads1} \ - -p {output.reads2} \ - {input.reads1} \ - {input.reads2}) &> {log}" + reads2 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_adapters_mate2.fastq.gz") + params: + adapter_3_mate1 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq1_3p'], + adapter_5_mate1 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq1_5p'], + adapter_3_mate2 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq2_3p'], + adapter_5_mate2 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq2_5p'] + singularity: + "docker://zavolab/cutadapt:1.16" + threads: 8 + log: + os.path.join( config["log_dir"], "paired_end", "{sample}", "remove_adapters_cutadapt.log") + shell: + "(cutadapt \ + -e 0.1 \ + -j {threads} \ + --pair-filter=both \ + -m 10 \ + -n 3 \ + -a {params.adapter_3_mate1} \ + -g {params.adapter_5_mate1} \ + -A {params.adapter_3_mate2} \ + -G {params.adapter_5_mate2} \ + -o {output.reads1} \ + -p {output.reads2} \ + {input.reads1} \ + {input.reads2}) &> {log}" rule pe_remove_polya_cutadapt: - '''Remove polyA tails''' - input: - reads1 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_adapters_mate1.fastq.gz"), - reads2 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_adapters_mate2.fastq.gz") - output: - reads1 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate1.fastq.gz"), - reads2 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate2.fastq.gz") - params: - polya_3_mate1 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq1_polya'], - polya_3_mate2 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq2_polya'], - singularity: - "docker://zavolab/cutadapt:1.16" - threads: 8 - log: - os.path.join( config["log_dir"], "paired_end", "{sample}", "remove_polya_cutadapt.log") - shell: - '(cutadapt \ - --match-read-wildcards \ - -j {threads} \ - --pair-filter=both \ - -m 10 \ - -n 2 \ - -e 0.1 \ - -q 6 \ - -m 10 \ - -a {params.polya_3_mate1} \ - -A {params.polya_3_mate2} \ - -o {output.reads1} \ - -p {output.reads2} \ - {input.reads1} \ - {input.reads2}) &> {log}' + '''Remove polyA tails''' + input: + reads1 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_adapters_mate1.fastq.gz"), + reads2 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_adapters_mate2.fastq.gz") + output: + reads1 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate1.fastq.gz"), + reads2 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate2.fastq.gz") + params: + polya_3_mate1 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq1_polya'], + polya_3_mate2 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq2_polya'], + singularity: + "docker://zavolab/cutadapt:1.16" + threads: 8 + log: + os.path.join( config["log_dir"], "paired_end", "{sample}", "remove_polya_cutadapt.log") + shell: + '(cutadapt \ + --match-read-wildcards \ + -j {threads} \ + --pair-filter=both \ + -m 10 \ + -n 2 \ + -e 0.1 \ + -q 6 \ + -m 10 \ + -a {params.polya_3_mate1} \ + -A {params.polya_3_mate2} \ + -o {output.reads1} \ + -p {output.reads2} \ + {input.reads1} \ + {input.reads2}) &> {log}' rule pe_map_genome_star: - '''Map to genome using STAR''' - input: - index = lambda wildcards: - os.path.join( - config["star_indexes"], - str(samples_table.loc[wildcards.sample, "organism"]), - str(samples_table.loc[wildcards.sample, "index_size"]), - "STAR_index", - "chrNameLength.txt"), - reads1 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate1.fastq.gz"), - reads2 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate2.fastq.gz") - output: - bam = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "map_genome", - "{sample}_Aligned.sortedByCoord.out.bam"), - logfile = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "map_genome", - "{sample}_Log.final.out") - params: - sample_id = "{sample}", - index = lambda wildcards: - os.path.join( - config["star_indexes"], - str(samples_table.loc[wildcards.sample, "organism"]), - str(samples_table.loc[wildcards.sample, "index_size"]), - "STAR_index"), - outFileNamePrefix = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "map_genome", - "{sample}_"), - multimappers = lambda wildcards: - str(samples_table.loc[wildcards.sample, "multimappers"]), - soft_clip = lambda wildcards: - samples_table.loc[wildcards.sample, "soft_clip"], - pass_mode = lambda wildcards: - samples_table.loc[wildcards.sample, "pass_mode"] + '''Map to genome using STAR''' + input: + index = lambda wildcards: + os.path.join( + config["star_indexes"], + str(samples_table.loc[wildcards.sample, "organism"]), + str(samples_table.loc[wildcards.sample, "index_size"]), + "STAR_index", + "chrNameLength.txt"), + reads1 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate1.fastq.gz"), + reads2 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate2.fastq.gz") + output: + bam = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "map_genome", + "{sample}_Aligned.sortedByCoord.out.bam"), + logfile = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "map_genome", + "{sample}_Log.final.out") + params: + sample_id = "{sample}", + index = lambda wildcards: + os.path.join( + config["star_indexes"], + str(samples_table.loc[wildcards.sample, "organism"]), + str(samples_table.loc[wildcards.sample, "index_size"]), + "STAR_index"), + outFileNamePrefix = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "map_genome", + "{sample}_"), + multimappers = lambda wildcards: + str(samples_table.loc[wildcards.sample, "multimappers"]), + soft_clip = lambda wildcards: + samples_table.loc[wildcards.sample, "soft_clip"], + pass_mode = lambda wildcards: + samples_table.loc[wildcards.sample, "pass_mode"] - singularity: - "docker://zavolab/star:2.6.0a" + singularity: + "docker://zavolab/star:2.6.0a" - threads: 12 + threads: 12 - log: - os.path.join( config["log_dir"], "paired_end", "{sample}", "map_genome_star.log") + log: + os.path.join( config["log_dir"], "paired_end", "{sample}", "map_genome_star.log") - shell: - "(STAR \ - --runMode alignReads \ - --twopassMode {params.pass_mode} \ - --runThreadN {threads} \ - --genomeDir {params.index} \ - --readFilesIn {input.reads1} {input.reads2} \ - --readFilesCommand zcat \ - --outSAMunmapped None \ - --outFilterMultimapNmax {params.multimappers} \ - --outFilterMultimapScoreRange 1 \ - --outFileNamePrefix {params.outFileNamePrefix} \ - --outSAMattributes All \ - --outStd BAM_SortedByCoordinate \ - --outSAMtype BAM SortedByCoordinate \ - --outFilterMismatchNoverLmax 0.04 \ - --outFilterScoreMinOverLread 0.3 \ - --outFilterMatchNminOverLread 0.3 \ - --outFilterType BySJout \ - --outReadsUnmapped None \ - --outSAMattrRGline ID:rnaseq_pipeline SM:{params.sample_id} \ - --alignEndsType {params.soft_clip} > {output.bam};) &> {log}" + shell: + "(STAR \ + --runMode alignReads \ + --twopassMode {params.pass_mode} \ + --runThreadN {threads} \ + --genomeDir {params.index} \ + --readFilesIn {input.reads1} {input.reads2} \ + --readFilesCommand zcat \ + --outSAMunmapped None \ + --outFilterMultimapNmax {params.multimappers} \ + --outFilterMultimapScoreRange 1 \ + --outFileNamePrefix {params.outFileNamePrefix} \ + --outSAMattributes All \ + --outStd BAM_SortedByCoordinate \ + --outSAMtype BAM SortedByCoordinate \ + --outFilterMismatchNoverLmax 0.04 \ + --outFilterScoreMinOverLread 0.3 \ + --outFilterMatchNminOverLread 0.3 \ + --outFilterType BySJout \ + --outReadsUnmapped None \ + --outSAMattrRGline ID:rnaseq_pipeline SM:{params.sample_id} \ + --alignEndsType {params.soft_clip} > {output.bam};) &> {log}" rule pe_index_genomic_alignment_samtools: '''Index the genomic alignment''' input: bam = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "map_genome", - "{sample}_Aligned.sortedByCoord.out.bam"), + config["output_dir"], + "paired_end", + "{sample}", + "map_genome", + "{sample}_Aligned.sortedByCoord.out.bam"), output: bai = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "map_genome", - "{sample}_Aligned.sortedByCoord.out.bam.bai"), + config["output_dir"], + "paired_end", + "{sample}", + "map_genome", + "{sample}_Aligned.sortedByCoord.out.bam.bai"), singularity: "docker://zavolab/samtools:1.8" log: - os.path.join( config["log_dir"], "paired_end", "{sample}", "index_genomic_alignment_samtools.log") - + os.path.join( config["log_dir"], "paired_end", "{sample}", "index_genomic_alignment_samtools.log") shell: "(samtools index {input.bam} {output.bai};) &> {log}" rule pe_quantification_salmon: - '''Quantification at transcript and gene level using Salmon''' - input: - reads1 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate1.fastq.gz"), - reads2 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate2.fastq.gz"), - gtf = lambda wildcards: - samples_table.loc[wildcards.sample, 'gtf_filtered'], - index = lambda wildcards: - os.path.join( - config["salmon_indexes"], - str(samples_table.loc[wildcards.sample, "organism"]), - str(samples_table.loc[wildcards.sample, "kmer"]), - "salmon.idx") - output: - gn_estimates = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "salmon_quant", - "quant.genes.sf"), - tr_estimates = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "salmon_quant", - "quant.sf") - params: - output_dir = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "salmon_quant"), - libType = lambda wildcards: - samples_table.loc[wildcards.sample, 'libtype'] - log: - os.path.join(config["log_dir"], "paired_end", "{sample}", "genome_quantification_salmon.log") - threads: 6 - singularity: - "docker://zavolab/salmon:0.11.0" - shell: - "(salmon quant \ + '''Quantification at transcript and gene level using Salmon''' + input: + reads1 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate1.fastq.gz"), + reads2 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate2.fastq.gz"), + gtf = lambda wildcards: + samples_table.loc[wildcards.sample, 'gtf_filtered'], + index = lambda wildcards: + os.path.join( + config["salmon_indexes"], + str(samples_table.loc[wildcards.sample, "organism"]), + str(samples_table.loc[wildcards.sample, "kmer"]), + "salmon.idx") + output: + gn_estimates = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "salmon_quant", + "quant.genes.sf"), + tr_estimates = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "salmon_quant", + "quant.sf") + params: + output_dir = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "salmon_quant"), + libType = lambda wildcards: + samples_table.loc[wildcards.sample, 'libtype'] + log: + os.path.join(config["log_dir"], "paired_end", "{sample}", "genome_quantification_salmon.log") + threads: 6 + singularity: + "docker://zavolab/salmon:1.1.0-slim" + shell: + "(salmon quant \ --libType {params.libType} \ --seqBias \ --validateMappings \ @@ -294,48 +293,48 @@ rule pe_quantification_salmon: rule pe_genome_quantification_kallisto: - '''Quantification at transcript and gene level using Kallisto''' - input: - reads1 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate1.fastq.gz"), - reads2 = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "{sample}.remove_polya_mate2.fastq.gz"), - index = lambda wildcards: - os.path.join( - config["kallisto_indexes"], - samples_table.loc[wildcards.sample, 'organism'], - "kallisto.idx") - output: - pseudoalignment = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "quant_kallisto", - "{sample}.kallisto.pseudo.sam") - params: - output_dir = os.path.join( - config["output_dir"], - "paired_end", - "{sample}", - "quant_kallisto"), - directionality = lambda wildcards: - samples_table.loc[wildcards.sample, "kallisto_directionality"] - singularity: - "docker://zavolab/kallisto:0.46.1" - threads: 8 - log: - os.path.join(config["log_dir"], "paired_end", "{sample}", "genome_quantification_kallisto.log") - shell: - "(kallisto quant \ - -i {input.index} \ - -o {params.output_dir} \ - --pseudobam \ - {params.directionality} \ - {input.reads1} {input.reads2} > {output.pseudoalignment}) &> {log}" - + '''Quantification at transcript and gene level using Kallisto''' + input: + reads1 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate1.fastq.gz"), + reads2 = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "{sample}.remove_polya_mate2.fastq.gz"), + index = lambda wildcards: + os.path.join( + config["kallisto_indexes"], + samples_table.loc[wildcards.sample, 'organism'], + "kallisto.idx") + output: + pseudoalignment = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "quant_kallisto", + "{sample}.kallisto.pseudo.sam") + params: + output_dir = os.path.join( + config["output_dir"], + "paired_end", + "{sample}", + "quant_kallisto"), + directionality = lambda wildcards: + samples_table.loc[wildcards.sample, "kallisto_directionality"] + singularity: + "docker://zavolab/kallisto:0.46.1" + threads: 8 + log: + os.path.join(config["log_dir"], "paired_end", "{sample}", "genome_quantification_kallisto.log") + shell: + "(kallisto quant \ + -i {input.index} \ + -o {params.output_dir} \ + --pseudobam \ + {params.directionality} \ + {input.reads1} {input.reads2} > {output.pseudoalignment}) &> {log}" + diff --git a/workflow/rules/single_end.snakefile.smk b/workflow/rules/single_end.snakefile.smk index 08d4d22..3b365d8 100644 --- a/workflow/rules/single_end.snakefile.smk +++ b/workflow/rules/single_end.snakefile.smk @@ -1,267 +1,266 @@ import os rule fastqc: - ''' A quality control tool for high throughput sequence data. ''' - input: - reads = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"], - output: - outdir = directory(os.path.join(config["output_dir"], "single_end", "{sample}", "mate1_fastqc")) - params: - seqmode= lambda wildcards: samples_table.loc[wildcards.sample, "seqmode"] - singularity: - "docker://zavolab/fastqc:0.11.8" - log: - os.path.join(config["log_dir"], "single_end", "{sample}", "fastqc.log") - shell: - "(mkdir -p {output.outdir}; \ - fastqc \ - --outdir {output.outdir} \ - {input.reads}) &> {log}" + ''' A quality control tool for high throughput sequence data. ''' + input: + reads = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"], + output: + outdir = directory(os.path.join(config["output_dir"], "single_end", "{sample}", "mate1_fastqc")) + params: + seqmode= lambda wildcards: samples_table.loc[wildcards.sample, "seqmode"] + singularity: + "docker://zavolab/fastqc:0.11.8" + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "fastqc.log") + shell: + "(mkdir -p {output.outdir}; \ + fastqc \ + --outdir {output.outdir} \ + {input.reads}) &> {log}" rule remove_adapters_cutadapt: - ''' Remove adapters ''' - input: - reads = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"] - output: - reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_adapters_mate1.fastq.gz") - params: - adapters_3 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq1_3p'], - adapters_5 = lambda wildcards: - samples_table.loc[wildcards.sample, 'fq1_5p'] + ''' Remove adapters ''' + input: + reads = lambda wildcards: samples_table.loc[wildcards.sample, "fq1"] + output: + reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_adapters_mate1.fastq.gz") + params: + adapters_3 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq1_3p'], + adapters_5 = lambda wildcards: + samples_table.loc[wildcards.sample, 'fq1_5p'] - singularity: - "docker://zavolab/cutadapt:1.16" - threads: 8 - log: - os.path.join(config["log_dir"], "single_end", "{sample}", "remove_adapters_cutadapt.log") - shell: - "(cutadapt \ - -e 0.1 \ - -O 1 \ - -j {threads} \ - -m 10 \ - -n 3 \ - -a {params.adapters_3} \ - -g {params.adapters_5} \ - -o {output.reads} \ - {input.reads}) &> {log}" + singularity: + "docker://zavolab/cutadapt:1.16" + threads: 8 + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "remove_adapters_cutadapt.log") + shell: + "(cutadapt \ + -e 0.1 \ + -O 1 \ + -j {threads} \ + -m 10 \ + -n 3 \ + -a {params.adapters_3} \ + -g {params.adapters_5} \ + -o {output.reads} \ + {input.reads}) &> {log}" rule remove_polya_cutadapt: - ''' Remove ployA tails''' - input: - reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_adapters_mate1.fastq.gz") - output: - reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_polya_mate1.fastq.gz") - params: - polya_3 = lambda wildcards: - samples_table.loc[wildcards.sample, "fq1_polya"] - singularity: - "docker://zavolab/cutadapt:1.16" - threads: 8 - log: - os.path.join(config["log_dir"], "single_end", "{sample}", "remove_polya_cutadapt.log") - shell: - "(cutadapt \ - --match-read-wildcards \ - -j {threads} \ - -n 2 \ - -e 0.1 \ - -O 1 \ - -q 6 \ - -m 10 \ - -a {params.polya_3} \ - -o {output.reads} \ - {input.reads}) &> {log}" + ''' Remove ployA tails''' + input: + reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_adapters_mate1.fastq.gz") + output: + reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_polya_mate1.fastq.gz") + params: + polya_3 = lambda wildcards: + samples_table.loc[wildcards.sample, "fq1_polya"] + singularity: + "docker://zavolab/cutadapt:1.16" + threads: 8 + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "remove_polya_cutadapt.log") + shell: + "(cutadapt \ + --match-read-wildcards \ + -j {threads} \ + -n 2 \ + -e 0.1 \ + -O 1 \ + -q 6 \ + -m 10 \ + -a {params.polya_3} \ + -o {output.reads} \ + {input.reads}) &> {log}" rule map_genome_star: - ''' Map to genome using STAR. ''' - input: - index = lambda wildcards: - os.path.join( - config["star_indexes"], - str(samples_table.loc[wildcards.sample, "organism"]), - str(samples_table.loc[wildcards.sample, "index_size"]), - "STAR_index","chrNameLength.txt"), - reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_polya_mate1.fastq.gz") - output: - bam = os.path.join(config["output_dir"], "single_end", - "{sample}", - "map_genome", - "{sample}_Aligned.sortedByCoord.out.bam"), - logfile = os.path.join(config["output_dir"], "single_end", - "{sample}", - "map_genome", - "{sample}_Log.final.out") - params: - sample_id = "{sample}", - index = lambda wildcards: - os.path.join( - config["star_indexes"], - str(samples_table.loc[wildcards.sample, "organism"]), - str(samples_table.loc[wildcards.sample, "index_size"]), - "STAR_index"), - outFileNamePrefix = os.path.join( - config["output_dir"], - "single_end", - "{sample}", "map_genome", "{sample}_"), - multimappers = lambda wildcards: - samples_table.loc[wildcards.sample, "multimappers"], - soft_clip = lambda wildcards: - samples_table.loc[wildcards.sample, "soft_clip"], - pass_mode = lambda wildcards: - samples_table.loc[wildcards.sample, "pass_mode"], - singularity: - "docker://zavolab/star:2.6.0a" - threads: 12 - log: - os.path.join(config["log_dir"], "single_end", "{sample}", "map_genome_star.log") - shell: - "(STAR \ - --runMode alignReads \ - -- twopassMode {params.pass_mode} \ - --runThreadN {threads} \ - --genomeDir {params.index} \ - --readFilesIn {input.reads} \ - --readFilesCommand zcat \ - --outSAMunmapped None \ - --outFilterMultimapNmax {params.multimappers} \ - --outFilterMultimapScoreRange 1 \ - --outFileNamePrefix {params.outFileNamePrefix} \ - --outSAMattributes All \ - --outStd BAM_SortedByCoordinate \ - --outSAMtype BAM SortedByCoordinate \ - --outFilterMismatchNoverLmax 0.04 \ - --outFilterScoreMinOverLread 0.3 \ - --outFilterMatchNminOverLread 0.3 \ - --outFilterType BySJout \ - --outReadsUnmapped None \ - --outSAMattrRGline ID:rcrunch SM:{params.sample_id} \ - --alignEndsType {params.soft_clip} > {output.bam};) &> {log}" + ''' Map to genome using STAR. ''' + input: + index = lambda wildcards: + os.path.join( + config["star_indexes"], + str(samples_table.loc[wildcards.sample, "organism"]), + str(samples_table.loc[wildcards.sample, "index_size"]), + "STAR_index","chrNameLength.txt"), + reads = os.path.join(config["output_dir"], "single_end", "{sample}", "{sample}.remove_polya_mate1.fastq.gz") + output: + bam = os.path.join(config["output_dir"], "single_end", + "{sample}", + "map_genome", + "{sample}_Aligned.sortedByCoord.out.bam"), + logfile = os.path.join(config["output_dir"], "single_end", + "{sample}", + "map_genome", + "{sample}_Log.final.out") + params: + sample_id = "{sample}", + index = lambda wildcards: + os.path.join( + config["star_indexes"], + str(samples_table.loc[wildcards.sample, "organism"]), + str(samples_table.loc[wildcards.sample, "index_size"]), + "STAR_index"), + outFileNamePrefix = os.path.join( + config["output_dir"], + "single_end", + "{sample}", "map_genome", "{sample}_"), + multimappers = lambda wildcards: + samples_table.loc[wildcards.sample, "multimappers"], + soft_clip = lambda wildcards: + samples_table.loc[wildcards.sample, "soft_clip"], + pass_mode = lambda wildcards: + samples_table.loc[wildcards.sample, "pass_mode"], + singularity: + "docker://zavolab/star:2.6.0a" + threads: 12 + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "map_genome_star.log") + shell: + "(STAR \ + --runMode alignReads \ + -- twopassMode {params.pass_mode} \ + --runThreadN {threads} \ + --genomeDir {params.index} \ + --readFilesIn {input.reads} \ + --readFilesCommand zcat \ + --outSAMunmapped None \ + --outFilterMultimapNmax {params.multimappers} \ + --outFilterMultimapScoreRange 1 \ + --outFileNamePrefix {params.outFileNamePrefix} \ + --outSAMattributes All \ + --outStd BAM_SortedByCoordinate \ + --outSAMtype BAM SortedByCoordinate \ + --outFilterMismatchNoverLmax 0.04 \ + --outFilterScoreMinOverLread 0.3 \ + --outFilterMatchNminOverLread 0.3 \ + --outFilterType BySJout \ + --outReadsUnmapped None \ + --outSAMattrRGline ID:rcrunch SM:{params.sample_id} \ + --alignEndsType {params.soft_clip} > {output.bam};) &> {log}" rule index_genomic_alignment_samtools: - '''Index genome bamfile using samtools.''' - input: - bam = os.path.join(config["output_dir"], - "single_end", - "{sample}", - "map_genome", - "{sample}_Aligned.sortedByCoord.out.bam") - output: - bai = os.path.join(config["output_dir"], - "single_end", - "{sample}", - "map_genome", - "{sample}_Aligned.sortedByCoord.out.bam.bai") - singularity: - "docker://zavolab/samtools:1.8" - threads: 1 - log: - os.path.join(config["log_dir"], "single_end", "{sample}", "index_genomic_alignment_samtools.log") - shell: - "(samtools index {input.bam} {output.bai};) &> {log}" + '''Index genome bamfile using samtools.''' + input: + bam = os.path.join(config["output_dir"], + "single_end", + "{sample}", + "map_genome", + "{sample}_Aligned.sortedByCoord.out.bam") + output: + bai = os.path.join(config["output_dir"], + "single_end", + "{sample}", + "map_genome", + "{sample}_Aligned.sortedByCoord.out.bam.bai") + singularity: + "docker://zavolab/samtools:1.8" + threads: 1 + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "index_genomic_alignment_samtools.log") + shell: + "(samtools index {input.bam} {output.bai};) &> {log}" rule quantification_salmon: - ''' Quantification at transcript and gene level using Salmon. ''' - input: - reads = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "{sample}.remove_polya_mate1.fastq.gz"), - index = lambda wildcards: - os.path.join( - config["salmon_indexes"], - str(samples_table.loc[wildcards.sample, "organism"]), - str(samples_table.loc[wildcards.sample, "kmer"]), - "salmon.idx"), - gtf = lambda wildcards: samples_table.loc[wildcards.sample, "gtf_filtered"] - output: - gn_estimates = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "salmon_quant", - "quant.genes.sf"), - tr_estimates = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "salmon_quant", - "quant.sf") - params: - output_dir = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "salmon_quant"), - libType = lambda wildcards: - samples_table.loc[wildcards.sample, "libtype"] - log: - os.path.join(config["log_dir"], "single_end", "{sample}", "quantification_salmon.log") - threads: 12 - singularity: - "docker://zavolab/salmon:0.11.0" - shell: - "(salmon quant \ - --libType {params.libType} \ - --seqBias \ - --validateMappings \ - --threads {threads} \ - --writeUnmappedNames \ - --index {input.index} \ - --geneMap {input.gtf} \ - --unmatedReads {input.reads} \ - -o {params.output_dir}) &> {log}" + ''' Quantification at transcript and gene level using Salmon. ''' + input: + reads = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "{sample}.remove_polya_mate1.fastq.gz"), + index = lambda wildcards: + os.path.join( + config["salmon_indexes"], + str(samples_table.loc[wildcards.sample, "organism"]), + str(samples_table.loc[wildcards.sample, "kmer"]), + "salmon.idx"), + gtf = lambda wildcards: samples_table.loc[wildcards.sample, "gtf_filtered"] + output: + gn_estimates = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "salmon_quant", + "quant.genes.sf"), + tr_estimates = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "salmon_quant", + "quant.sf") + params: + output_dir = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "salmon_quant"), + libType = lambda wildcards: + samples_table.loc[wildcards.sample, "libtype"] + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "quantification_salmon.log") + threads: 12 + singularity: + "docker://zavolab/salmon:1.1.0-slim" + shell: + "(salmon quant \ + --libType {params.libType} \ + --seqBias \ + --validateMappings \ + --threads {threads} \ + --writeUnmappedNames \ + --index {input.index} \ + --geneMap {input.gtf} \ + --unmatedReads {input.reads} \ + -o {params.output_dir}) &> {log}" rule genome_quantification_kallisto: - ''' Quantification at transcript and gene level using Kallisto. ''' - input: - reads = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "{sample}.remove_polya_mate1.fastq.gz"), - index = lambda wildcards: - os.path.join( - config["kallisto_indexes"], - samples_table.loc[wildcards.sample, "organism"], - "kallisto.idx") - output: - pseudoalignment = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "quant_kallisto", - "{sample}.kallisto.pseudo.sam") - params: - output_dir = os.path.join( - config["output_dir"], - "single_end", - "{sample}", - "quant_kallisto"), - fraglen = lambda wildcards: samples_table.loc[wildcards.sample, 'mean'], - fragsd = lambda wildcards: samples_table.loc[wildcards.sample, 'sd'], - directionality = lambda wildcards: samples_table.loc[wildcards.sample, 'kallisto_directionality'] - threads: 8 - log: - os.path.join(config["log_dir"],"kallisto_align_{sample}.log") - singularity: - "docker://zavolab/kallisto:0.46.1" - shell: - "(kallisto quant \ - -i {input.index} \ - -o {params.output_dir} \ - --single \ - -l {params.fraglen} \ - -s {params.fragsd} \ - --pseudobam \ - {params.directionality} \ - {input.reads} > {output.pseudoalignment}) &> {log}" + ''' Quantification at transcript and gene level using Kallisto. ''' + input: + reads = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "{sample}.remove_polya_mate1.fastq.gz"), + index = lambda wildcards: + os.path.join( + config["kallisto_indexes"], + samples_table.loc[wildcards.sample, "organism"], + "kallisto.idx") + output: + pseudoalignment = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "quant_kallisto", + "{sample}.kallisto.pseudo.sam") + params: + output_dir = os.path.join( + config["output_dir"], + "single_end", + "{sample}", + "quant_kallisto"), + fraglen = lambda wildcards: samples_table.loc[wildcards.sample, 'mean'], + fragsd = lambda wildcards: samples_table.loc[wildcards.sample, 'sd'], + directionality = lambda wildcards: samples_table.loc[wildcards.sample, 'kallisto_directionality'] + threads: 8 + log: + os.path.join(config["log_dir"], "single_end", "{sample}", "genome_quantification_kallisto.log.log") + singularity: + "docker://zavolab/kallisto:0.46.1" + shell: + "(kallisto quant \ + -i {input.index} \ + -o {params.output_dir} \ + --single \ + -l {params.fraglen} \ + -s {params.fragsd} \ + --pseudobam \ + {params.directionality} \ + {input.reads} > {output.pseudoalignment}) &> {log}" - -- GitLab