diff --git a/Snakefile b/Snakefile index ff6071b47a4d1be8e1fe70750296b5edb5325908..2f9142b94fecc872d1f58aa255181fb54289509d 100755 --- a/Snakefile +++ b/Snakefile @@ -69,7 +69,10 @@ else: sample_dir = config["input_dir"] + analysis_dir = config["analysis_dir"] +if not os.path.exists(analysis_dir): + os.makedirs(analysis_dir) input_data = [sample_dir + "/{{SAMPLE}}{}{}".format(rt1,config["input_extension"])] if paired: @@ -86,12 +89,13 @@ final_output = [] #---------------------------------- fastqc_input_fastq = input_data -fastqc_output_done = "00-Fastqc/{{SAMPLE}}{}_fastqc.done".format(rt1) -fastqc_wkdir = "00-Fastqc" -fastqc_log = "00-Fastqc/logs/{{SAMPLE}}{}_fastqc_raw.log".format(rt1) +fastqc_output_done = os.path.join(analysis_dir, "00-Fastqc/{{SAMPLE}}{}_fastqc.done".format(rt1)) +fastqc_wkdir = os.path.join(analysis_dir, "00-Fastqc") +fastqc_log = os.path.join(analysis_dir, "00-Fastqc/logs/{{SAMPLE}}{}_fastqc_raw.log".format(rt1)) final_output.extend(expand(fastqc_output_done, SAMPLE=samples)) include: os.path.join(RULES, "fastqc.rules") + #---------------------------------- # remove adapters #---------------------------------- @@ -99,17 +103,17 @@ include: os.path.join(RULES, "fastqc.rules") if config["adapters"]["remove"] : adapter_tool = config["adapters"]["tool"] adapters_input_fastq = input_data - adapters_wkdir = "01-Trimming" - adapters_output = ["01-Trimming/{{SAMPLE}}{}_trim.fastq".format(rt1)] + adapters_wkdir = os.path.join(analysis_dir, "01-Trimming") + adapters_output = [os.path.join(analysis_dir, "01-Trimming/{{SAMPLE}}{}_trim.fastq".format(rt1))] if paired: - adapters_output += ["01-Trimming/{{SAMPLE}}{}_trim.fastq".format(rt2)] + adapters_output += [os.path.join(analysis_dir, "01-Trimming/{{SAMPLE}}{}_trim.fastq".format(rt2))] # Set parameters adapters_options = config["adapters"]["options"] adapters_mode = config["adapters"]["mode"] adapters_min = config["adapters"]["m"] adapters_qual = config["adapters"]["quality"] - adapters_log = "01-Trimming/logs/{SAMPLE}_trim.txt" + adapters_log = os.path.join(analysis_dir, "01-Trimming/logs/{SAMPLE}_trim.txt") #final_output.extend(expand(adapters_output, SAMPLE=samples)) if adapter_tool == "cutadapt" : include: os.path.join(RULES, "cutadapt.rules") @@ -123,6 +127,21 @@ else: adapters_output = input_data + +#----------------------------------------- +# fastq_screen on samples +#----------------------------------------- + +if config["fastq_screen"]["do"] : + fastq_screen_input = adapters_output + fastq_screen_outdir = os.path.join(analysis_dir, "02-Mapping/Fastq-screen/{SAMPLE}") + fastq_screen_logs_err = os.path.join(analysis_dir, "02-Mapping/Fastq-screen/logs/{SAMPLE}_mapping.err") + fastq_screen_logs_out = os.path.join(analysis_dir, "02-Mapping/Fastq-screen/logs/{SAMPLE}_mapping.out") + final_output.extend(expand(fastq_screen_outdir, SAMPLE=samples)) + include: os.path.join(RULES, "fastq_screen.rules") + + + #----------------------------------------- # Estimate ribosomal rate in samples #----------------------------------------- @@ -131,17 +150,21 @@ else: if config["genome"]["rRNA_mapping"] : sortmerna_input = adapters_output sortmerna_fasta = config["genome"]["ribo_fasta_file"] - sortmerna_outfile_rRNA = ["02-Mapping/Ribo/{{SAMPLE}}_rRNA{}.fastq".format(rt1)] - sortmerna_outfile_no_rRNA = ["02-Mapping/Ribo/{{SAMPLE}}_norRNA{}.fastq".format(rt1)] + sortmerna_outfile_rRNA = [os.path.join(analysis_dir, "02-Mapping/Ribo/{{SAMPLE}}_rRNA{}.fastq".format(rt1))] + sortmerna_outfile_no_rRNA = [os.path.join(analysis_dir, "02-Mapping/Ribo/{{SAMPLE}}_norRNA{}.fastq".format(rt1))] if paired: - sortmerna_outfile_rRNA += ["02-Mapping/Ribo/{{SAMPLE}}_rRNA{}.fastq".format(rt2)] - sortmerna_outfile_no_rRNA += ["02-Mapping/Ribo/{{SAMPLE}}_norRNA{}.fastq".format(rt2)] - sortmerna_logs_err = "02-Mapping/Ribo/logs/{SAMPLE}_mapping.err" - sortmerna_logs_out = "02-Mapping/Ribo/logs/{SAMPLE}_mapping.out" + sortmerna_outfile_rRNA += [os.path.join(analysis_dir, "02-Mapping/Ribo/{{SAMPLE}}_rRNA{}.fastq".format(rt2))] + sortmerna_outfile_no_rRNA += [os.path.join(analysis_dir, "02-Mapping/Ribo/{{SAMPLE}}_norRNA{}.fastq".format(rt2))] + sortmerna_logs_err = os.path.join(analysis_dir, "02-Mapping/Ribo/logs/{SAMPLE}_mapping.err") + sortmerna_logs_out = os.path.join(analysis_dir, "02-Mapping/Ribo/logs/{SAMPLE}_mapping.out") final_output.extend(expand(sortmerna_outfile_no_rRNA, SAMPLE=samples)) include: os.path.join(RULES, "sortmerna.rules") + adapters_output = sortmerna_outfile_no_rRNA + + + + - #---------------------------------- # genome gestion #---------------------------------- @@ -153,11 +176,28 @@ if config["genome"]["host_mapping"]: def mapping_index(wildcards): + if (wildcards.REF == config["genome"]["name"]): + if config["salmon"]["do"] and not config["genome"]["host_mapping"]: + return {"fasta": config["salmon"]["fasta"]} + else: + return {"fasta": config["genome"]["fasta_file"]} + elif (wildcards.REF == config["genome"]["host_name"]): + if config["salmon"]["do"]: + return {"fasta": config["salmon"]["fasta"]} + else: + return {"fasta": config["genome"]["host_fasta_file"]} + +def bowtie2_mapping_index(wildcards): if (wildcards.REF == config["genome"]["name"]): return {"fasta": config["genome"]["fasta_file"]} elif (wildcards.REF == config["genome"]["host_name"]): return {"fasta": config["genome"]["host_fasta_file"]} +def minimap2_mapping_index(wildcards): + if (wildcards.REF == config["genome"]["name"]): + return config["genome"]["fasta_file"] + elif (wildcards.REF == config["genome"]["host_name"]): + return config["genome"]["host_fasta_file"] def mapping_prefix(wildcards): if (wildcards.REF == config["genome"]["name"]): @@ -168,9 +208,15 @@ def mapping_prefix(wildcards): def annot_index(wildcards): if (wildcards.REF == config["genome"]["name"]): - return {"gff_file": config["genome"]["gff_file"]} + if config["salmon"]["do"] and not config["genome"]["host_mapping"]: + return {"gff_file": config["salmon"]["fasta"]} + else: + return {"gff_file": config["genome"]["gff_file"]} elif (wildcards.REF == config["genome"]["host_name"]): - return {"gff_file": config["genome"]["host_gff_file"]} + if config["salmon"]["do"]: + return {"gff_file": config["salmon"]["fasta"]} + else: + return {"gff_file": config["genome"]["host_gff_file"]} #---------------------------------- @@ -183,11 +229,10 @@ if config["bowtie2_mapping"]["do"]: mapper += ["bowtie2"] # indexing for bowtie2 - bowtie2_index_fasta = unpack(mapping_index) - bowtie2_index_log = "02-Mapping/{REF}/bowtie2/logs/bowtie2_{REF}_indexing.log" + bowtie2_index_fasta = unpack(bowtie2_mapping_index) + bowtie2_index_log = os.path.join(analysis_dir, "02-Mapping/{REF}/bowtie2/logs/bowtie2_{REF}_indexing.log") bowtie2_index_output_done = os.path.join(config["genome"]["genome_directory"], "{REF}/bowtie2/{REF}.1.bt2") bowtie2_index_output_prefix = os.path.join(config["genome"]["genome_directory"], "{REF}/bowtie2/{REF}") - include: os.path.join(RULES, "bowtie2_index.rules") @@ -195,11 +240,11 @@ if config["bowtie2_mapping"]["do"]: # Mapping step bowtie2_mapping_input = adapters_output bowtie2_mapping_index_done = bowtie2_index_output_done - bowtie2_mapping_sort = "02-Mapping/{REF}/bowtie2/{SAMPLE}_{REF}_sort.bam" - bowtie2_mapping_bam = "02-Mapping/{REF}/bowtie2/{SAMPLE}_{REF}.bam" - bowtie2_mapping_sortprefix = "02-Mapping/{REF}/bowtie2/{SAMPLE}_{REF}_sort" - bowtie2_mapping_logs_err = "02-Mapping/{REF}/bowtie2/logs/{SAMPLE}_{REF}_mapping.err" - bowtie2_mapping_logs_out = "02-Mapping/{REF}/bowtie2/logs/{SAMPLE}_{REF}_mapping.out" + bowtie2_mapping_sort = os.path.join(analysis_dir, "02-Mapping/{REF}/bowtie2/{SAMPLE}_{REF}_sort.bam") + bowtie2_mapping_bam = os.path.join(analysis_dir, "02-Mapping/{REF}/bowtie2/{SAMPLE}_{REF}.bam") + bowtie2_mapping_sortprefix = os.path.join(analysis_dir, "02-Mapping/{REF}/bowtie2/{SAMPLE}_{REF}_sort") + bowtie2_mapping_logs_err = os.path.join(analysis_dir, "02-Mapping/{REF}/bowtie2/logs/{SAMPLE}_{REF}_mapping.err") + bowtie2_mapping_logs_out = os.path.join(analysis_dir, "02-Mapping/{REF}/bowtie2/logs/{SAMPLE}_{REF}_mapping.out") bowtie2_mapping_prefix_index = bowtie2_index_output_prefix bowtie2_mapping_options = config["bowtie2_mapping"]["options"] final_output.extend(expand(bowtie2_mapping_sort, SAMPLE=samples, REF=ref)) @@ -214,7 +259,7 @@ if config["star_mapping"]["do"]: mapper += ["STAR"] star_index_fasta = unpack(mapping_index) star_mapping_splice_file = unpack(annot_index) - star_index_log = "02-Mapping/{REF}/STAR/logs/STAR_{REF}_indexing.log" + star_index_log = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/logs/STAR_{REF}_indexing.log") star_index_output_done = os.path.join(config["genome"]["genome_directory"], "{REF}/STAR/SAindex") star_index_output_dir = os.path.join(config["genome"]["genome_directory"], "{REF}/STAR/") @@ -226,15 +271,15 @@ if config["star_mapping"]["do"]: star_mapping_pass1_done = star_index_output_done star_mapping_pass1_index = star_index_output_dir if config["star_mapping"]["pass2"] == "none": - star_mapping_pass1_logs = "02-Mapping/{REF}/STAR/logs/{SAMPLE}_{REF}.out" - star_mapping_pass1_output_prefix = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_" - star_mapping_pass1_junctions = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_SJ.out.tab" - star_mapping_pass1_bam = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_Aligned.sortedByCoord.out.bam" + star_mapping_pass1_logs = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/logs/{SAMPLE}_{REF}.out") + star_mapping_pass1_output_prefix = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_") + star_mapping_pass1_junctions = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_SJ.out.tab") + star_mapping_pass1_bam = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_Aligned.sortedByCoord.out.bam") else : - star_mapping_pass1_logs = "02-Mapping/{REF}/STAR/logs/{SAMPLE}_{REF}_init.out" - star_mapping_pass1_output_prefix = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_" - star_mapping_pass1_junctions = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_SJ.out.tab" - star_mapping_pass1_bam = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_Aligned.sortedByCoord.out.bam" + star_mapping_pass1_logs = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/logs/{SAMPLE}_{REF}_init.out") + star_mapping_pass1_output_prefix = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_") + star_mapping_pass1_junctions = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_SJ.out.tab") + star_mapping_pass1_bam = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_Aligned.sortedByCoord.out.bam") star_mapping_pass1_read_groups = "" #final_output.extend(expand(star_mapping_pass1_junctions, SAMPLE=samples, REF=ref)) include: os.path.join(RULES, "star_mapping_pass1.rules") @@ -244,30 +289,50 @@ if config["star_mapping"]["do"]: star_mapping_pass2_input = adapters_output star_mapping_pass2_done = star_index_output_done star_mapping_pass2_index = star_index_output_dir - star_mapping_pass2_logs = "02-Mapping/{REF}/STAR/logs/{SAMPLE}_{REF}.out" - star_mapping_pass2_output_prefix = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_" + star_mapping_pass2_logs = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/logs/{SAMPLE}_{REF}.out") + star_mapping_pass2_output_prefix = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_") if config["star_mapping"]["pass2"] == "by-sample": - star_mapping_pass2_junctions = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_SJ.out.tab" + star_mapping_pass2_junctions = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_SJ.out.tab") elif config["star_mapping"]["pass2"] == "all-samples": - star_mapping_pass2_junctions = expand("02-Mapping/{{REF}}/STAR/{SAMPLE}_{{REF}}_init_SJ.out.tab", SAMPLE=samples) + star_mapping_pass2_junctions = expand(os.path.join(analysis_dir, "02-Mapping/{{REF}}/STAR/{SAMPLE}_{{REF}}_init_SJ.out.tab"), SAMPLE=samples) else: raise ValueError("Please provides a valid option to pass2 of STAR: must be by-sample, all-samples or none") star_mapping_pass2_bam = star_mapping_pass1_bam star_mapping_pass2_read_groups = "ID:{SAMPLE}" - star_mapping_pass2_sort = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_Aligned.sortedByCoord.out.bam" + star_mapping_pass2_sort = os.path.join(analysis_dir, "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_Aligned.sortedByCoord.out.bam") final_output.extend(expand(star_mapping_pass2_sort, SAMPLE=samples, REF=ref)) include: os.path.join(RULES, "star_mapping_pass2.rules") +#---------------------------------- +# MINIMAP2 MAPPING +#---------------------------------- + + +if config["minimap2"]["do"]: + mapper += ["minimap2"] + + minimap2_input = adapters_output + minimap2_genome = minimap2_mapping_index + minimap2_sort = os.path.join(analysis_dir, "02-Mapping/{REF}/minimap2/{SAMPLE}_{REF}_sort.bam") + minimap2_bam = os.path.join(analysis_dir, "02-Mapping/{REF}/minimap2/{SAMPLE}_{REF}.bam") + minimap2_logs_err = os.path.join(analysis_dir, "02-Mapping/{REF}/minimap2/logs/{SAMPLE}_{REF}_mapping.err") + minimap2_logs_out = os.path.join(analysis_dir, "02-Mapping/{REF}/minimap2/logs/{SAMPLE}_{REF}_mapping.out") + minimap2_options = config["minimap2"]["options"] + final_output.extend(expand(minimap2_sort, SAMPLE=samples, REF=ref)) + include: os.path.join(RULES, "minimap2.rules") + #---------------------------------- # Mark duplicated reads #---------------------------------- def output_mapping(wildcards): if (wildcards.MAP == "bowtie2"): - input = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort.bam" + input = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort.bam") elif (wildcards.MAP == "STAR"): - input = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_Aligned.sortedByCoord.out.bam" + input = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_Aligned.sortedByCoord.out.bam") + elif (wildcards.MAP == "minimap2"): + input = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort.bam") return(input) #if mapping on ribosomal RNA done, do not perform markDuplicates, counting or coverage @@ -276,10 +341,10 @@ if "Ribo" in ref: if config["mark_duplicates"]["do"]: mark_duplicates_input = output_mapping - mark_duplicates_output = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort_dedup.bam" - mark_duplicates_metrics = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort_dedup.txt" - mark_duplicates_log_std = "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}_sort_dedup.out" - mark_duplicates_log_err = "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}_sort_dedup.err" + mark_duplicates_output = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort_dedup.bam") + mark_duplicates_metrics = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort_dedup.txt") + mark_duplicates_log_std = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}_sort_dedup.out") + mark_duplicates_log_err = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}_sort_dedup.err") mark_duplicates_tmpdir = config['tmpdir'] final_output.extend(expand(mark_duplicates_output, SAMPLE=samples, REF=ref, MAP=mapper)) include: os.path.join(RULES, "mark_duplicates.rules") @@ -308,25 +373,44 @@ def counting_options(wildcards): if config["feature_counts"]["do"]: if config["mark_duplicates"]["remove"]: - feature_counts_input = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort_dedup.bam" + feature_counts_input = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_sort_dedup.bam") else: feature_counts_input = output_mapping - feature_counts_output_count = "03-Counting/{REF}/{MAP}/{SAMPLE}_{REF}_feature.out" + feature_counts_output_count = os.path.join(analysis_dir, "03-Counting/{REF}/{MAP}/{SAMPLE}_{REF}_feature.out") feature_counts_gff = counting_gff - feature_counts_logs_err = "03-Counting/logs/{MAP}/{SAMPLE}_{REF}_feature.err" - feature_counts_logs_out = "03-Counting/logs/{MAP}/{SAMPLE}_{REF}_feature.out" + feature_counts_logs_err = os.path.join(analysis_dir, "03-Counting/logs/{MAP}/{SAMPLE}_{REF}_feature.err") + feature_counts_logs_out = os.path.join(analysis_dir, "03-Counting/logs/{MAP}/{SAMPLE}_{REF}_feature.out") feature_counts_options = counting_options final_output.extend(expand(feature_counts_output_count, SAMPLE=samples, REF=ref, MAP=mapper)) include: os.path.join(RULES, "feature_counts.rules") + +#---------------------------------- +# Quantification with Salmon +#---------------------------------- + +if config["salmon"]["do"]: + + #pseudo mapping + salmon_quant_bam = star_mapping_pass2_sort + salmon_quant_transcript = config["salmon"]["fasta"] + salmon_quant_output_dir = os.path.join(analysis_dir, "03-Counting/salmon/{SAMPLE}_{REF}") + salmon_quant_options = config["salmon"]["options"] + salmon_quant_log_err = os.path.join(analysis_dir, "03-Counting/salmon/logs/{SAMPLE}_{REF}_salmon.err") + salmon_quant_log_out = os.path.join(analysis_dir, "03-Counting/salmon/logs/{SAMPLE}_{REF}_salmon.out") + final_output.extend(expand(salmon_quant_output_dir, SAMPLE=samples, REF=ref)) + include: os.path.join(RULES, "salmon_quant.rules") + + + #---------------------------------- # Samtools Flagstat #---------------------------------- flagstat_input = output_mapping -flagstat_logs = "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}.out" -flagstat_output = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_stats.out" +flagstat_logs = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}.out") +flagstat_output = os.path.join(analysis_dir, "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_stats.out") final_output.extend(expand(flagstat_output, SAMPLE=samples, REF=ref, MAP=mapper)) include: os.path.join(RULES, "flagstat.rules") @@ -336,32 +420,42 @@ include: os.path.join(RULES, "flagstat.rules") #---------------------------------- if config["bamCoverage"]["do"]: bamCoverage_input = output_mapping - bamCoverage_logs = "04-Coverage/{REF}/{MAP}/logs/{SAMPLE}_{REF}.out" - bamCoverage_output = "04-Coverage/{REF}/{MAP}/{SAMPLE}_{REF}.bw" + bamCoverage_logs = os.path.join(analysis_dir, "04-Coverage/{REF}/{MAP}/logs/{SAMPLE}_{REF}.out") + bamCoverage_output = os.path.join(analysis_dir, "04-Coverage/{REF}/{MAP}/{SAMPLE}_{REF}.bw") bamCoverage_options = config['bamCoverage']['options'] final_output.extend(expand(bamCoverage_output, SAMPLE=samples, REF=ref, MAP=mapper)) include: os.path.join(RULES, "bamCoverage.rules") + if config["bamCoverage"]["igv_session"]: + igv_session_input = expand(bamCoverage_output, SAMPLE=samples, REF=ref, MAP=mapper) + igv_session_output = os.path.join(analysis_dir, "04-IGV/igv_session.xml") + igv_session_genome = ref + igv_session_wdir = os.path.join(analysis_dir, "04-IGV/") + igv_session_autoScale = "True" + igv_session_normalize = "False" + igv_session_log_out = os.path.join(analysis_dir, "04-IGV/logs/igv_session.out") + final_output.extend([igv_session_output]) + include: os.path.join(RULES, "igv_session.rules") #---------------------------------- # PseudoMapping with Kallisto #---------------------------------- -if config["pseudomapping"]["do"]: - kallisto_index_fasta = config["pseudomapping"]["fasta"] - kallisto_index_output = (os.path.splitext(config["pseudomapping"]["fasta"])[0])+".idx" - kallisto_index_kmer = config["pseudomapping"]["kmer"] - kallisto_index_log = "02-Mapping/STAR/logs/Kallisto_indexing.log" +if config["kallisto"]["do"]: + kallisto_index_fasta = config["kallisto"]["fasta"] + kallisto_index_output = (os.path.splitext(config["kallisto"]["fasta"])[0])+".idx" + kallisto_index_kmer = config["kallisto"]["kmer"] + kallisto_index_log = os.path.join(analysis_dir, "02-Mapping/STAR/logs/Kallisto_indexing.log") include: os.path.join(RULES, "kallisto_index.rules") #pseudo mapping kallisto_quant_fastq = adapters_output - kallisto_quant_index = (os.path.splitext(config["pseudomapping"]["fasta"])[0])+".idx" - kallisto_quant_output_dir = "02-Mapping/Kallisto/{SAMPLE}" - kallisto_quant_options = config["pseudomapping"]["options"] - kallisto_quant_gtf = config["pseudomapping"]["gtf"] - kallisto_pseudo_log = "02-Mapping/Kallisto/logs/{SAMPLE}_pseudomap.log" + kallisto_quant_index = (os.path.splitext(config["kallisto"]["fasta"])[0])+".idx" + kallisto_quant_output_dir = os.path.join(analysis_dir, "02-Mapping/Kallisto/{SAMPLE}") + kallisto_quant_options = config["kallisto"]["options"] + kallisto_quant_gtf = config["kallisto"]["gtf"] + kallisto_pseudo_log = os.path.join(analysis_dir, "02-Mapping/Kallisto/logs/{SAMPLE}_kallisto.log") final_output.extend(expand(kallisto_quant_output_dir, SAMPLE=samples)) include: os.path.join(RULES, "kallisto_quant.rules") @@ -372,10 +466,10 @@ if config["pseudomapping"]["do"]: #---------------------------------- multiqc_input = final_output multiqc_input_dir = "." -multiqc_logs = "05-Multiqc/multiqc.log" -multiqc_output = "05-Multiqc/multiqc_report.html" +multiqc_logs = os.path.join(analysis_dir, "05-Multiqc/multiqc.log") +multiqc_output = os.path.join(analysis_dir, "05-Multiqc/multiqc_report.html") multiqc_options = config['multiqc']['options'] + " -c config/multiqc_config.yaml" -multiqc_output_dir = "05-Multiqc" +multiqc_output_dir = os.path.join(analysis_dir, "05-Multiqc") final_output = [multiqc_output] include: os.path.join(RULES, "multiqc.rules") @@ -389,7 +483,7 @@ onsuccess: import os import glob import shutil - for file in glob.glob('02-Mapping/STAR/*/*init*'): + for file in glob.glob('02-Mapping/*/STAR/*init*'): if os.path.isfile(file): os.remove(file) elif os.path.isdir(file): diff --git a/config/.gitkeep b/config/.gitkeep old mode 100644 new mode 100755 diff --git a/config/TruSeq_Stranded_RNA.fa b/config/TruSeq_Stranded_RNA.fa old mode 100644 new mode 100755 diff --git a/config/cluster_config.json b/config/cluster_config.json old mode 100644 new mode 100755 index 37e5b79d5433a6c16449bdd83cc9ac472a1f2adf..1f32fdec1abca72d03552d5227e1f9f974ebde11 --- a/config/cluster_config.json +++ b/config/cluster_config.json @@ -38,6 +38,12 @@ { "ram" : "60G" }, + + "minimap2" : + { + "ram" : "30G" + }, + "mark_duplicates": { "ram" : "30G" diff --git a/config/config.yaml b/config/config.yaml old mode 100644 new mode 100755 index cc168307a5c18145ab92c5f1743f02066270c065..56ed5b3e4c13fb8f3cfa58df2adcad4597d27e37 --- a/config/config.yaml +++ b/config/config.yaml @@ -27,13 +27,13 @@ # Absolute path of directory where fastq are stored # could be a single directory or a list of directory (data/*) -input_dir: /absolute/path/to/data +input_dir: /path/to/your/data # How mate paires are written in fastq input_mate: '_R[12]' # filemame extension input_extension: '.fastq.gz' -# directory where you want (not yet fonctional sorry) -analysis_dir: . +# directory where you want +analysis_dir: results # tmpdir: write tempory file on this directory (could be /tmp/ or "/pasteur/appa/scratch/LOGIN/") tmpdir: $MYSCRATCH @@ -41,7 +41,7 @@ tmpdir: $MYSCRATCH #=============================================================================== # Genome Section # Note that this pipeline is conceived to used one or more genome. -# Please always fill the four first lines. +# Please always fill the four first lines. # # :Parameters: # @@ -49,25 +49,25 @@ tmpdir: $MYSCRATCH # - name: name of prefix use in all output files from mapping [First Genome] # - fasta_file: path to Reference Genome in fasta format [First Genome] # - gff_file : path to annotation file [First Genome] -# - host_mapping: set to True if you want align reads also against another genome [Second Genome] +# - host_mapping: set to yes if you want align reads also against another genome [Second Genome] # - host_name: name of prefix use in all output files from mapping related to [Second Genome] # - host_fasta_file: path related to another genome in fasta format [Second Genome] # - gff_file : path to annotation file [Second Genome] -# - rRNA_mapping: Mapping on ribosomal RNA. If true, sortmeRNA is used to estimate ribosomal rate +# - rRNA_mapping: Mapping on ribosomal RNA. If yes, sortmeRNA is used to estimate ribosomal rate # - ribo_fasta_file : path to ribosomal sequences in fasta format #=============================================================================== genome: genome_directory: /pasteur/zeus/projets/p01/BioIT/Genomes - name: Rabies - fasta_file: /pasteur/zeus/projets/p01/BioIT/Genomes/Rabies/Rabies.fa - gff_file: /pasteur/zeus/projets/p01/BioIT/Genomes/Rabies/Rabies.gff - host_mapping: true + name: saccer3 + fasta_file: /pasteur/zeus/projets/p01/BioIT/Genomes/saccer3/saccer3.fa + gff_file: /pasteur/zeus/projets/p01/BioIT/Genomes/saccer3/saccer3.gff + host_mapping: yes host_name: hg38 host_fasta_file: /pasteur/zeus/projets/p01/BioIT/Genomes/hg38/hg38.fa host_gff_file: /pasteur/zeus/projets/p01/BioIT/Genomes/hg38/hg38.gff - rRNA_mapping: true + rRNA_mapping: yes ribo_fasta_file: /pasteur/zeus/projets/p01/BioIT/Genomes/hg38/hg38_rRNA.fa #=============================================================================== @@ -82,6 +82,23 @@ fastqc: options: --nogroup threads: 4 + +#=============================================================================== +# Fastq_screen section +# +# :Parameters: +# +# - do: if unchecked, this rule is ignored +# - conf: string with any valid FastQC options +#=============================================================================== + +fastq_screen: + do: yes + conf: /pasteur/zeus/projets/p01/BioIT/Genomes/fastq_screen_conf/fastq_screen.conf + threads: 4 + + + #=============================================================================== # Quality trimming and adapter removal # @@ -177,12 +194,12 @@ minimap2: # - fasta: Fasta file for the kallisto index to be used for quantification # - gtf: GTF file for transcriptome information (required for --genomebam) # - kmer: k-mer (odd) length (default: 31, max value: 31) -# - options: any options recognised by bowtie2 tool +# - options: any options recognised by kallisto tool # - threads: number of threads to be used #=============================================================================== -pseudomapping: +kallisto: do: no fasta: /pasteur/zeus/projets/p01/BioIT/Genomes/hg38/hg38_cDNA.fa gtf: /pasteur/zeus/projets/p01/BioIT/Genomes/hg38/hg38.gtf @@ -190,24 +207,33 @@ pseudomapping: kmer: 31 threads: 12 + #=============================================================================== -# mark duplicates (picard-tools) allows to mark PCR duplicate in BAM files +# Quantification with Salmon quant (only available with STAR mapping) # # :Parameters: # # - do: if unchecked, this rule is ignored -# - remove: If true do not write duplicates to the output file instead of writing -# them with appropriate flags set. Default value: no. +# - fasta: Fasta file for the kallisto index to be used for quantification +# - gtf: GTF file for transcriptome information (required for --genomebam) +# - libtype: the type of sequencing library from which the reads come +# - options: any options recognised by salmon # - threads: number of threads to be used +# +# #=============================================================================== -mark_duplicates: + +salmon: do: yes - remove: no - threads: 4 + fasta: /pasteur/zeus/projets/p01/BioIT/Genomes/hg38/hg38_cDNA.fa + options: "" + libtype: "A" + threads: 12 -############################################################################# + +#=============================================================================== # feature_counts used to count reads against features # # :Parameters: @@ -216,15 +242,33 @@ mark_duplicates: # - options: options related to the first genome # - options_host : options related to the host genome # - threads: number of threads to be used -# +#=============================================================================== + + feature_counts: do: yes - options: "-t gene -g ID -s 1 " ## if exon/CDS is used, put -O option - options_host: "-t exon -g gene_id -s 1 " - threads: 2 + options: "-t gene -g ID -s 1 " + options_host: "-t gene -g gene_id -s 1 " + threads: 8 +#=============================================================================== +# mark duplicates (picard-tools) allows to mark PCR duplicate in BAM files +# +# :Parameters: +# +# - do: if unchecked, this rule is ignored +# - remove: If true do not write duplicates to the output file instead of writing +# them with appropriate flags set. Default value: no. +# - threads: number of threads to be used +#=============================================================================== + +mark_duplicates: + do: no + remove: no + threads: 4 -############################################################################# + +#=============================================================================== # bamCoverage from Deeptools # see https://deeptools.readthedocs.io/en/develop/content/tools/bamCoverage.html # @@ -235,11 +279,14 @@ feature_counts: # see https://deeptools.readthedocs.io/en/latest/content/feature/effectiveGenomeSize.html # for more information about effective Genome Size # - threads: number of threads to be used +#=============================================================================== + bamCoverage: - do: no + do: yes options: "--filterRNAstrand forward --effectiveGenomeSize 120000 " options_host: "--filterRNAstrand forward --effectiveGenomeSize 2913022398 " + igv_session: yes threads: 4 @@ -254,4 +301,4 @@ bamCoverage: multiqc: - options: " -f -x 02-Mapping/*/*/*_init_* -x .snakemake" + options: " -f -x 02-Mapping/*/*/*init* -x .snakemake" diff --git a/config/multiqc_config.yaml b/config/multiqc_config.yaml old mode 100644 new mode 100755 diff --git a/images/rulegraph.svg b/images/rulegraph.svg index d0a3d46ffe0cdf83bd975a66b7894333e10eecf2..65f3a51b3ef81915206b2f11f03bc856eeb6184c 100644 --- a/images/rulegraph.svg +++ b/images/rulegraph.svg @@ -1,835 +1,1048 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generated by graphviz version 2.49.1 (20211004.0028) - --> - -<!-- Title: snakemake_dag Pages: 1 --> - <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="635pt" - height="404pt" - viewBox="0.00 0.00 634.50 404.00" + id="svg406" version="1.1" - id="svg315" - sodipodi:docname="rulegraph.svg" - inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> + viewBox="0.00 0.00 860.00 476.00" + height="476pt" + width="860pt"> <metadata - id="metadata321"> + id="metadata412"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <defs - id="defs319" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="3696" - inkscape:window-height="2032" - id="namedview317" - showgrid="false" - inkscape:zoom="2.4783743" - inkscape:cx="467.03165" - inkscape:cy="232.3745" - inkscape:window-x="144" - inkscape:window-y="54" - inkscape:window-maximized="1" - inkscape:current-layer="graph0" /> + id="defs410" /> <g - id="graph0" + transform="scale(1 1) rotate(0) translate(4 472)" class="graph" - transform="scale(1 1) rotate(0) translate(4 400)"> + id="graph0"> <title id="title2">snakemake_dag</title> - <polygon - fill="white" - stroke="transparent" - points="-4,4 -4,-400 630.5,-400 630.5,4 -4,4" - id="polygon4" /> <!-- 0 --> <g - id="node1" - class="node"> + class="node" + id="node1"> <title id="title6">0</title> <path - fill="none" - stroke="#97d856" + id="path8" + d="M419,-36C419,-36 389,-36 389,-36 383,-36 377,-30 377,-24 377,-24 377,-12 377,-12 377,-6 383,0 389,0 389,0 419,0 419,0 425,0 431,-6 431,-12 431,-12 431,-24 431,-24 431,-30 425,-36 419,-36" stroke-width="2" - d="M316,-36C316,-36 286,-36 286,-36 280,-36 274,-30 274,-24 274,-24 274,-12 274,-12 274,-6 280,0 286,0 286,0 316,0 316,0 322,0 328,-6 328,-12 328,-12 328,-24 328,-24 328,-30 322,-36 316,-36" - id="path8" /> + stroke="#56a9d8" + fill="none" /> <text - text-anchor="middle" - x="301" - y="-15.5" - font-family="sans" + id="text10" font-size="10.00" - id="text10">rnaflow</text> + font-family="sans" + y="-15.5" + x="404" + text-anchor="middle">rnaflow</text> </g> <!-- 1 --> <g - id="node2" - class="node"> + class="node" + id="node2"> <title id="title13">1</title> <path - fill="none" - stroke="#56d8d8" + id="path15" + d="M419,-108C419,-108 389,-108 389,-108 383,-108 377,-102 377,-96 377,-96 377,-84 377,-84 377,-78 383,-72 389,-72 389,-72 419,-72 419,-72 425,-72 431,-78 431,-84 431,-84 431,-96 431,-96 431,-102 425,-108 419,-108" stroke-width="2" - d="M316,-108C316,-108 286,-108 286,-108 280,-108 274,-102 274,-96 274,-96 274,-84 274,-84 274,-78 280,-72 286,-72 286,-72 316,-72 316,-72 322,-72 328,-78 328,-84 328,-84 328,-96 328,-96 328,-102 322,-108 316,-108" - id="path15" /> + stroke="#d85656" + fill="none" /> <text - text-anchor="middle" - x="301" - y="-87.5" - font-family="sans" + id="text17" font-size="10.00" - id="text17">multiqc</text> + font-family="sans" + y="-87.5" + x="404" + text-anchor="middle">multiqc</text> + <path + id="path15-2" + d="m 828.44556,-326.694 c 0,0 -45.9571,0 -45.9571,0 -9.19142,0 -18.38284,6 -18.38284,12 0,0 0,12 0,12 0,6 9.19142,12 18.38284,12 0,0 45.9571,0 45.9571,0 9.19142,0 18.38284,-6 18.38284,-12 0,0 0,-12 0,-12 0,-6 -9.19142,-12 -18.38284,-12" + style="fill:none;stroke:#d85656;stroke-width:2.4754014" /> + <path + id="path15-2-2" + d="m 316.34092,-179.08246 c 0,0 -45.9571,0 -45.9571,0 -9.19142,0 -18.38284,6 -18.38284,12 0,0 0,12 0,12 0,6 9.19142,12 18.38284,12 0,0 45.9571,0 45.9571,0 9.19142,0 18.38284,-6 18.38284,-12 0,0 0,-12 0,-12 0,-6 -9.19142,-12 -18.38284,-12" + style="fill:none;stroke:#d85656;stroke-width:2.4754014" /> + <path + id="path15-2-3" + d="m 769.15893,-180.86521 c 0,0 -45.9571,0 -45.9571,0 -9.19142,0 -18.38284,6 -18.38284,12 0,0 0,12 0,12 0,6 9.19142,12 18.38284,12 0,0 45.9571,0 45.9571,0 9.19142,0 18.38283,-6 18.38283,-12 0,0 0,-12 0,-12 0,-6 -9.19141,-12 -18.38283,-12" + style="fill:none;stroke:#d85656;stroke-width:2.4754014" /> </g> <!-- 1->0 --> <g - id="edge1" - class="edge"> + class="edge" + id="edge1"> <title id="title20">1->0</title> <path - fill="none" - stroke="grey" + id="path22" + d="M404,-71.7C404,-63.98 404,-54.71 404,-46.11" stroke-width="2" - d="M301,-71.7C301,-63.98 301,-54.71 301,-46.11" - id="path22" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon24" + points="407.5,-46.1 404,-36.1 400.5,-46.1 407.5,-46.1" stroke-width="2" - points="304.5,-46.1 301,-36.1 297.5,-46.1 304.5,-46.1" - id="polygon24" /> + stroke="grey" + fill="grey" /> </g> <!-- 2 --> <g - id="node3" - class="node"> + class="node" + id="node3"> <title id="title27">2</title> - <path - fill="none" - stroke="#56d8b9" - stroke-width="2" - d="M42,-180C42,-180 12,-180 12,-180 6,-180 0,-174 0,-168 0,-168 0,-156 0,-156 0,-150 6,-144 12,-144 12,-144 42,-144 42,-144 48,-144 54,-150 54,-156 54,-156 54,-168 54,-168 54,-174 48,-180 42,-180" - id="path29" /> <text - text-anchor="middle" - x="27" - y="-159.5" - font-family="sans" + id="text31" font-size="10.00" - id="text31">fastqc</text> + font-family="sans" + y="-159.5" + x="27" + text-anchor="middle">fastqc</text> </g> <!-- 2->1 --> <g - id="edge9" - class="edge"> + class="edge" + id="edge2"> <title id="title34">2->1</title> <path - fill="none" - stroke="grey" + id="path36" + d="M54.03,-148.74C58.63,-146.96 63.4,-145.3 68,-144 174.12,-114.09 304.16,-99.62 366.79,-93.97" stroke-width="2" - d="M54.11,-149.01C58.7,-147.19 63.45,-145.45 68,-144 135.8,-122.4 217.35,-105.95 263.78,-97.45" - id="path36" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon38" + points="367.31,-97.44 376.97,-93.08 366.7,-90.47 367.31,-97.44" stroke-width="2" - points="264.48,-100.88 273.69,-95.66 263.23,-93.99 264.48,-100.88" - id="polygon38" /> + stroke="grey" + fill="grey" /> </g> <!-- 3 --> <g - id="node4" - class="node"> + class="node" + id="node4"> <title id="title41">3</title> - <path - fill="none" - stroke="#d85656" - stroke-width="2" - d="M142.5,-252C142.5,-252 99.5,-252 99.5,-252 93.5,-252 87.5,-246 87.5,-240 87.5,-240 87.5,-228 87.5,-228 87.5,-222 93.5,-216 99.5,-216 99.5,-216 142.5,-216 142.5,-216 148.5,-216 154.5,-222 154.5,-228 154.5,-228 154.5,-240 154.5,-240 154.5,-246 148.5,-252 142.5,-252" - id="path43" /> <text - text-anchor="middle" - x="121" - y="-231.5" - font-family="sans" + id="text45" font-size="10.00" - id="text45">sortmerna</text> + font-family="sans" + y="-303.5" + x="109" + text-anchor="middle">fastq_screen</text> </g> <!-- 3->1 --> <g - id="edge2" - class="edge"> + class="edge" + id="edge10"> <title id="title48">3->1</title> <path - fill="none" - stroke="grey" + id="path50" + d="M105.16,-287.77C98.99,-255.08 91,-183.77 128,-144 159.86,-109.75 298.83,-97.07 366.58,-92.87" stroke-width="2" - d="M117.37,-215.86C114.28,-196.25 112.6,-164.25 129,-144 161.5,-103.88 223.7,-93.47 263.72,-91.13" - id="path50" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon52" + points="367.04,-96.35 376.82,-92.26 366.63,-89.36 367.04,-96.35" stroke-width="2" - points="264.05,-94.62 273.88,-90.68 263.74,-87.63 264.05,-94.62" - id="polygon52" /> + stroke="grey" + fill="grey" /> </g> <!-- 4 --> <g - id="node5" - class="node"> + class="node" + id="node5"> <title id="title55">4</title> - <path - d="m 378.31598,-396 c 0,0 -87.71829,0 -87.71829,0 -9.2335,0 -18.467,6 -18.467,12 0,0 0,12 0,12 0,6 9.2335,12 18.467,12 0,0 87.71829,0 87.71829,0 9.23349,0 18.467,-6 18.467,-12 0,0 0,-12 0,-12 0,-6 -9.23351,-12 -18.467,-12" - id="path57" - inkscape:connector-curvature="0" - style="fill:none;stroke:#569ad8;stroke-width:2.48106194" /> <text - x="335" - y="-375.5" - font-size="10.00" + style="font-size:10px;font-family:sans;text-anchor:middle" id="text59" - style="font-size:10px;font-family:sans;text-anchor:middle">alienTrimmer/cutadapt</text> + font-size="10.00" + y="-447.14346" + x="378.89713">alienTrimmer/cutadapt</text> </g> <!-- 4->3 --> <g - id="edge11" class="edge" - transform="matrix(0.85930646,0,0,1.0136636,17.734517,3.4965436)"> + id="edge14"> <title id="title62">4->3</title> <path - d="m 294.23,-372.11 c -35.58,6.07 -86.9,19.4 -122.23,48.11 -19.98,16.24 -33.66,42.52 -41.78,62.32" id="path64" - inkscape:connector-curvature="0" - style="fill:none;stroke:#808080;stroke-width:2" /> + d="M319.44,-439.92C287.19,-431.58 241.72,-417.26 206,-396 176.7,-378.56 148.61,-351.22 130.26,-331.44" + stroke-width="2" + stroke="grey" + fill="none" /> <polygon - points="126.57,-252.27 126.93,-262.86 133.45,-260.33 " id="polygon66" - style="fill:#808080;stroke:#808080;stroke-width:2" /> + points="132.81,-329.04 123.49,-324.01 127.64,-333.76 132.81,-329.04" + stroke-width="2" + stroke="grey" + fill="grey" /> </g> <!-- 5 --> <g - id="node6" - class="node"> + class="node" + id="node6"> <title id="title69">5</title> - <path - fill="none" - stroke="#59d856" - stroke-width="2" - d="M333,-252C333,-252 253,-252 253,-252 247,-252 241,-246 241,-240 241,-240 241,-228 241,-228 241,-222 247,-216 253,-216 253,-216 333,-216 333,-216 339,-216 345,-222 345,-228 345,-228 345,-240 345,-240 345,-246 339,-252 333,-252" - id="path71" /> <text - text-anchor="middle" - x="293" - y="-231.5" - font-family="sans" + id="text73" font-size="10.00" - id="text73">bowtie2_mapping</text> + font-family="sans" + y="-375.5" + x="524" + text-anchor="middle">sortmerna</text> </g> <!-- 4->5 --> <g - id="edge13" - class="edge"> + class="edge" + id="edge15"> <title id="title76">4->5</title> <path - fill="none" - stroke="grey" + id="path78" + d="M400.12,-431.88C424.67,-421.4 456.07,-407.99 481.12,-397.3" stroke-width="2" - d="M329.93,-359.87C322.74,-335.56 309.51,-290.82 300.99,-262.01" - id="path78" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon80" + points="482.55,-400.5 490.38,-393.35 479.8,-394.06 482.55,-400.5" stroke-width="2" - points="304.28,-260.79 298.08,-252.19 297.56,-262.77 304.28,-260.79" - id="polygon80" /> + stroke="grey" + fill="grey" /> </g> - <!-- 7 --> + <!-- 5->1 --> + <!-- 6 --> <g - id="node8" - class="node"> + class="node" + id="node7"> <title - id="title83">7</title> + id="title90">6</title> <path fill="none" - stroke="#d6d856" + stroke="#56d863" stroke-width="2" - d="M468.5,-252C468.5,-252 375.5,-252 375.5,-252 369.5,-252 363.5,-246 363.5,-240 363.5,-240 363.5,-228 363.5,-228 363.5,-222 369.5,-216 375.5,-216 375.5,-216 468.5,-216 468.5,-216 474.5,-216 480.5,-222 480.5,-228 480.5,-228 480.5,-240 480.5,-240 480.5,-246 474.5,-252 468.5,-252" - id="path85" /> + id="path92" + d="M492,-252C492,-252 412,-252 412,-252 406,-252 400,-246 400,-240 400,-240 400,-228 400,-228 400,-222 406,-216 412,-216 412,-216 492,-216 492,-216 498,-216 504,-222 504,-228 504,-228 504,-240 504,-240 504,-246 498,-252 492,-252" /> <text - text-anchor="middle" - x="422" - y="-231.5" font-family="sans" + text-anchor="middle" + id="text94" font-size="10.00" - id="text87">star_mapping_pass2</text> + y="-231.5" + x="452">bowtie2_mapping</text> </g> - <!-- 4->7 --> - <!-- 9 --> + <!-- 5->6 --> <g - id="node10" - class="node"> + class="edge" + id="edge17"> <title - id="title97">9</title> + id="title97">5->6</title> <path - fill="none" - stroke="#56b9d8" + id="path99" + d="M523.22,-359.94C521.74,-341.26 517.45,-310.9 505,-288 499.18,-277.3 490.54,-267.34 481.91,-259.01" + stroke-width="2" + stroke="grey" + fill="none" /> + <polygon + id="polygon101" + points="484.14,-256.31 474.4,-252.13 479.41,-261.47 484.14,-256.31" stroke-width="2" - d="M468.5,-324C468.5,-324 375.5,-324 375.5,-324 369.5,-324 363.5,-318 363.5,-312 363.5,-312 363.5,-300 363.5,-300 363.5,-294 369.5,-288 375.5,-288 375.5,-288 468.5,-288 468.5,-288 474.5,-288 480.5,-294 480.5,-300 480.5,-300 480.5,-312 480.5,-312 480.5,-318 474.5,-324 468.5,-324" - id="path99" /> + stroke="grey" + fill="grey" /> + </g> + <!-- 8 --> + <g + class="node" + id="node9"> + <title + id="title104">8</title> <text + font-family="sans" text-anchor="middle" - x="422" - y="-303.5" + id="text108" + font-size="10.00" + y="-231.5" + x="295">star_mapping_pass2</text> + </g> + <!-- 5->8 --> + <!-- 10 --> + <g + class="node" + id="node11"> + <title + id="title118">10</title> + <text + id="text122" + font-size="10.00" font-family="sans" + y="-303.5" + x="293" + text-anchor="middle">star_mapping_pass1</text> + </g> + <!-- 5->10 --> + <g + transform="matrix(0.98654634,0,0,1.1141587,6.5232918,41.90161)" + class="edge" + id="edge22"> + <title + id="title125">5->10</title> + <path + style="fill:none;stroke:#808080;stroke-width:2" + id="path127" + d="m 490.41,-366.82 c -34.25,10.38 -88.29,26.75 -131.17,39.75" /> + <polygon + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon129" + points="349.43,-324.1 357.99,-330.35 360.02,-323.65 " /> + </g> + <!-- 11 --> + <g + transform="translate(7.8440914,0.35654961)" + class="node" + id="node12"> + <title + id="title132">11</title> + <text + style="font-size:10px;font-family:sans;text-anchor:middle" + id="text136" font-size="10.00" - id="text101">star_mapping_pass1</text> + y="-231.5" + x="558">minimap2</text> </g> - <!-- 4->9 --> + <!-- 5->11 --> <g - id="edge18" - class="edge"> + class="edge" + id="edge23"> <title - id="title104">4->9</title> + id="title139">5->11</title> <path - fill="none" - stroke="grey" + id="path141" + d="M528.7,-359.86C531.5,-349.5 535.06,-336.02 538,-324 543.04,-303.36 548.29,-279.91 552.15,-262.27" stroke-width="2" - d="M356.51,-359.7C367.46,-350.88 380.95,-340.03 392.82,-330.47" - id="path106" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon143" + points="555.65,-262.62 554.35,-252.11 548.81,-261.14 555.65,-262.62" stroke-width="2" - points="395.14,-333.1 400.74,-324.1 390.76,-327.65 395.14,-333.1" - id="polygon108" /> + stroke="grey" + fill="grey" /> </g> - <!-- 14 --> + <!-- 17 --> <g - id="node15" - class="node"> + transform="translate(-122.65306,71.309922)" + class="node" + id="node18"> <title - id="title111">14</title> - <path - fill="none" - stroke="#56d89a" - stroke-width="2" - d="M614.5,-324C614.5,-324 553.5,-324 553.5,-324 547.5,-324 541.5,-318 541.5,-312 541.5,-312 541.5,-300 541.5,-300 541.5,-294 547.5,-288 553.5,-288 553.5,-288 614.5,-288 614.5,-288 620.5,-288 626.5,-294 626.5,-300 626.5,-300 626.5,-312 626.5,-312 626.5,-318 620.5,-324 614.5,-324" - id="path113" /> + id="title146">17</title> <text - text-anchor="middle" - x="584" - y="-303.5" - font-family="sans" + style="font-size:10px;font-family:sans;text-anchor:middle" + id="text150" font-size="10.00" - id="text115">kallisto_quant</text> + y="-303.5" + x="809">kallisto_quant</text> </g> - <!-- 4->14 --> + <!-- 5->17 --> <g - id="edge28" + transform="matrix(0.47640093,0,0,2.195952,290.71039,447.61317)" class="edge" - transform="matrix(0.87330675,0,0,1.0602879,68.843467,19.250561)"> + id="edge37"> <title - id="title118">4->14</title> + id="title153">5->17</title> <path - d="m 375.56,-365.6 c 42.5,11.95 109.41,30.76 155.92,43.84" - id="path120" - inkscape:connector-curvature="0" - style="fill:none;stroke:#808080;stroke-width:2" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path155" + d="m 557.77,-369.83 c 44.65,9.63 125.68,27.66 194.23,45.83 1.26,0.33 2.54,0.68 3.83,1.03" /> <polygon - points="541.37,-318.98 530.8,-318.32 532.69,-325.06 " - id="polygon122" - style="fill:#808080;stroke:#808080;stroke-width:2" /> + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon157" + points="765.82,-320.18 755.25,-319.5 757.13,-326.24 " /> </g> - <!-- 5->1 --> - <!-- 10 --> + <!-- 6->1 --> + <!-- 12 --> <g - id="node11" - class="node"> + class="node" + id="node13"> <title - id="title132">10</title> - <path - fill="none" - stroke="#56d87b" - stroke-width="2" - d="M338,-180C338,-180 264,-180 264,-180 258,-180 252,-174 252,-168 252,-168 252,-156 252,-156 252,-150 258,-144 264,-144 264,-144 338,-144 338,-144 344,-144 350,-150 350,-156 350,-156 350,-168 350,-168 350,-174 344,-180 338,-180" - id="path134" /> + id="title167">12</title> <text - text-anchor="middle" - x="301" - y="-159.5" - font-family="sans" + id="text171" font-size="10.00" - id="text136">mark_duplicates</text> + font-family="sans" + y="-159.5" + x="443" + text-anchor="middle">mark_duplicates</text> + <path + id="path8-7-3-6" + d="m 469.43432,-176.94317 c 0,0 -52.58376,0 -52.58376,0 -10.51676,0 -21.03351,6 -21.03351,12 0,0 0,12 0,12 0,6 10.51675,12 21.03351,12 0,0 52.58376,0 52.58376,0 10.51678,0 21.03352,-6 21.03352,-12 0,0 0,-12 0,-12 0,-6 -10.51674,-12 -21.03352,-12" + style="fill:none;stroke:#56a9d8;stroke-width:2.64786148" /> + <path + id="path8-7-3-6-2" + d="m 545.18809,-396.93428 c 0,0 -39.47941,0 -39.47941,0 -7.89589,0 -15.79177,6 -15.79177,12 0,0 0,12 0,12 0,6 7.89588,12 15.79177,12 0,0 39.47941,0 39.47941,0 7.8959,0 15.79178,-6 15.79178,-12 0,0 0,-12 0,-12 0,-6 -7.89588,-12 -15.79178,-12" + style="fill:none;stroke:#56a9d8;stroke-width:2.29432416" /> </g> - <!-- 5->10 --> + <!-- 6->12 --> <g - id="edge19" - class="edge"> + class="edge" + id="edge25"> <title - id="title139">5->10</title> + id="title174">6->12</title> <path - fill="none" - stroke="grey" + id="path176" + d="M449.78,-215.7C448.78,-207.98 447.59,-198.71 446.49,-190.11" stroke-width="2" - d="M294.98,-215.7C295.86,-207.98 296.92,-198.71 297.9,-190.11" - id="path141" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon178" + points="449.95,-189.58 445.2,-180.1 443,-190.47 449.95,-189.58" stroke-width="2" - points="301.39,-190.44 299.05,-180.1 294.43,-189.64 301.39,-190.44" - id="polygon143" /> + stroke="grey" + fill="grey" /> </g> - <!-- 11 --> + <!-- 13 --> <g - id="node12" - class="node"> + class="node" + id="node14"> <title - id="title146">11</title> - <path - fill="none" - stroke="#78d856" - stroke-width="2" - d="M445.5,-180C445.5,-180 380.5,-180 380.5,-180 374.5,-180 368.5,-174 368.5,-168 368.5,-168 368.5,-156 368.5,-156 368.5,-150 374.5,-144 380.5,-144 380.5,-144 445.5,-144 445.5,-144 451.5,-144 457.5,-150 457.5,-156 457.5,-156 457.5,-168 457.5,-168 457.5,-174 451.5,-180 445.5,-180" - id="path148" /> + id="title181">13</title> <text - text-anchor="middle" - x="413" - y="-159.5" - font-family="sans" + id="text185" font-size="10.00" - id="text150">feature_counts</text> + font-family="sans" + y="-159.5" + x="555" + text-anchor="middle">feature_counts</text> </g> - <!-- 5->11 --> + <!-- 6->13 --> <g - id="edge21" - class="edge"> + class="edge" + id="edge28"> <title - id="title153">5->11</title> + id="title188">6->13</title> <path - fill="none" - stroke="grey" + id="path190" + d="M477.2,-215.88C490.41,-206.89 506.79,-195.76 521.11,-186.03" stroke-width="2" - d="M322.36,-215.88C338.05,-206.72 357.56,-195.34 374.45,-185.48" - id="path155" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon192" + points="523.4,-188.71 529.71,-180.19 519.47,-182.92 523.4,-188.71" stroke-width="2" - points="376.66,-188.25 383.53,-180.19 373.13,-182.21 376.66,-188.25" - id="polygon157" /> + stroke="grey" + fill="grey" /> </g> - <!-- 12 --> + <!-- 15 --> <g - id="node13" - class="node"> + class="node" + id="node16"> <title - id="title160">12</title> + id="title195">15</title> <path - fill="none" - stroke="#567bd8" + id="path197" + d="M660,-180C660,-180 630,-180 630,-180 624,-180 618,-174 618,-168 618,-168 618,-156 618,-156 618,-150 624,-144 630,-144 630,-144 660,-144 660,-144 666,-144 672,-150 672,-156 672,-156 672,-168 672,-168 672,-174 666,-180 660,-180" stroke-width="2" - d="M518,-180C518,-180 488,-180 488,-180 482,-180 476,-174 476,-168 476,-168 476,-156 476,-156 476,-150 482,-144 488,-144 488,-144 518,-144 518,-144 524,-144 530,-150 530,-156 530,-156 530,-168 530,-168 530,-174 524,-180 518,-180" - id="path162" /> + stroke="#d8ac56" + fill="none" /> <text - text-anchor="middle" - x="503" - y="-159.5" - font-family="sans" + id="text199" font-size="10.00" - id="text164">flagstat</text> + font-family="sans" + y="-159.5" + x="645" + text-anchor="middle">flagstat</text> </g> - <!-- 5->12 --> + <!-- 6->15 --> <g - id="edge23" + transform="matrix(1.0357668,0,0,1.0465799,-21.911713,7.675261)" class="edge" - transform="matrix(1.0203953,0,0,1.0206904,-9.7590791,3.6187926)"> + id="edge32"> <title - id="title167">5->12</title> + id="title202">6->15</title> <path - d="m 345.25,-217.83 c 42.38,12.46 98.59,29.39 120.75,37.83 0.1,0.04 0.2,0.08 0.3,0.11" - id="path169" - inkscape:connector-curvature="0" - style="fill:none;stroke:#808080;stroke-width:2" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path204" + d="m 504.13,-216.78 c 30.55,9.88 69.72,23.18 103.87,36.78 0.1,0.04 0.2,0.08 0.3,0.12" /> <polygon - points="475.69,-176.04 465.11,-176.59 467.77,-183.07 " - id="polygon171" - style="fill:#808080;stroke:#808080;stroke-width:2" /> + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon206" + points="609.8,-183.05 617.66,-175.94 607.08,-176.6 " /> </g> - <!-- 13 --> + <!-- 16 --> <g - id="node14" - class="node"> + transform="translate(-14.975083,77.727814)" + class="node" + id="node17"> <title - id="title174">13</title> - <path - fill="none" - stroke="#d89556" - stroke-width="2" - d="M221.5,-180C221.5,-180 160.5,-180 160.5,-180 154.5,-180 148.5,-174 148.5,-168 148.5,-168 148.5,-156 148.5,-156 148.5,-150 154.5,-144 160.5,-144 160.5,-144 221.5,-144 221.5,-144 227.5,-144 233.5,-150 233.5,-156 233.5,-156 233.5,-168 233.5,-168 233.5,-174 227.5,-180 221.5,-180" - id="path176" /> + id="title209">16</title> <text - text-anchor="middle" - x="191" - y="-159.5" - font-family="sans" + style="font-size:10px;font-family:sans;text-anchor:middle" + id="text213" font-size="10.00" - id="text178">bamCoverage</text> + y="-235.08852" + x="306.76614">bamCoverage</text> </g> - <!-- 5->13 --> + <!-- 6->16 --> <g - id="edge25" - class="edge"> + class="edge" + id="edge35"> <title - id="title181">5->13</title> + id="title216">6->16</title> <path - fill="none" - stroke="grey" + id="path218" + d="M413.59,-215.88C392.13,-206.31 365.2,-194.3 342.43,-184.15" stroke-width="2" - d="M268.05,-215.88C254.96,-206.89 238.74,-195.76 224.56,-186.03" - id="path183" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon220" + points="343.84,-180.94 333.28,-180.07 340.99,-187.34 343.84,-180.94" stroke-width="2" - points="226.27,-182.96 216.05,-180.19 222.31,-188.73 226.27,-182.96" - id="polygon185" /> + stroke="grey" + fill="grey" /> </g> - <!-- 6 --> + <!-- 7 --> <g - id="node7" - class="node"> + class="node" + id="node8"> <title - id="title188">6</title> - <path - fill="none" - stroke="#d87556" - stroke-width="2" - d="M257,-324C257,-324 193,-324 193,-324 187,-324 181,-318 181,-312 181,-312 181,-300 181,-300 181,-294 187,-288 193,-288 193,-288 257,-288 257,-288 263,-288 269,-294 269,-300 269,-300 269,-312 269,-312 269,-318 263,-324 257,-324" - id="path190" /> + id="title223">7</title> <text - text-anchor="middle" - x="225" - y="-303.5" - font-family="sans" + id="text227" font-size="10.00" - id="text192">bowtie2_index</text> + font-family="sans" + y="-303.5" + x="452" + text-anchor="middle">bowtie2_index</text> </g> - <!-- 6->5 --> + <!-- 7->6 --> <g - id="edge12" - class="edge"> + class="edge" + id="edge16"> <title - id="title195">6->5</title> + id="title230">7->6</title> <path - fill="none" - stroke="grey" + id="path232" + d="M452,-287.7C452,-279.98 452,-270.71 452,-262.11" stroke-width="2" - d="M241.81,-287.7C250.13,-279.14 260.31,-268.66 269.39,-259.3" - id="path197" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon234" + points="455.5,-262.1 452,-252.1 448.5,-262.1 455.5,-262.1" stroke-width="2" - points="271.93,-261.72 276.38,-252.1 266.91,-256.84 271.93,-261.72" - id="polygon199" /> + stroke="grey" + fill="grey" /> </g> - <!-- 7->1 --> - <!-- 7->10 --> + <!-- 8->1 --> + <!-- 8->12 --> <g - id="edge20" - class="edge"> + class="edge" + id="edge24"> <title - id="title209">7->10</title> + id="title244">8->12</title> <path - fill="none" - stroke="grey" + id="path246" + d="M331.2,-215.88C351.26,-206.39 376.37,-194.51 397.71,-184.42" stroke-width="2" - d="M392.4,-215.88C376.43,-206.64 356.54,-195.13 339.39,-185.21" - id="path211" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon248" + points="399.37,-187.51 406.91,-180.07 396.38,-181.18 399.37,-187.51" stroke-width="2" - points="341.12,-182.17 330.71,-180.19 337.62,-188.23 341.12,-182.17" - id="polygon213" /> + stroke="grey" + fill="grey" /> </g> - <!-- 7->11 --> + <!-- 8->13 --> <g - id="edge22" - class="edge"> + transform="matrix(1.0188611,0,0,1.1554971,-9.7035318,27.427729)" + class="edge" + id="edge27"> <title - id="title216">7->11</title> + id="title251">8->13</title> <path - fill="none" - stroke="grey" - stroke-width="2" - d="M419.78,-215.7C418.78,-207.98 417.59,-198.71 416.49,-190.11" - id="path218" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path253" + d="m 353.83,-218.75 c 38.98,9.65 91.47,23.02 146.5,38.63" /> <polygon - fill="grey" + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon255" + points="499.69,-176.66 501.61,-183.39 510.27,-177.28 " /> + </g> + <!-- 14 --> + <g + class="node" + id="node15"> + <title + id="title258">14</title> + <text + id="text262" + font-size="10.00" + font-family="sans" + y="-159.5" + x="191" + text-anchor="middle">salmon_quant</text> + </g> + <!-- 8->14 --> + <g + class="edge" + id="edge30"> + <title + id="title265">8->14</title> + <path + id="path267" + d="M269.56,-215.88C256.21,-206.89 239.68,-195.76 225.22,-186.03" + stroke-width="2" stroke="grey" + fill="none" /> + <polygon + id="polygon269" + points="226.79,-182.87 216.54,-180.19 222.88,-188.68 226.79,-182.87" stroke-width="2" - points="419.95,-189.58 415.2,-180.1 413,-190.47 419.95,-189.58" - id="polygon220" /> + stroke="grey" + fill="grey" /> </g> - <!-- 7->12 --> + <!-- 8->15 --> <g - id="edge24" - class="edge"> + class="edge" + id="edge31"> <title - id="title223">7->12</title> + id="title272">8->15</title> <path - fill="none" - stroke="grey" + id="path274" + d="M353.62,-222.52C365.96,-220.34 378.91,-218.07 391,-216 487.36,-199.48 514.53,-208.66 608,-180 608.1,-179.97 608.2,-179.94 608.3,-179.91" stroke-width="2" - d="M442.02,-215.7C452.13,-206.97 464.54,-196.24 475.52,-186.75" - id="path225" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon276" + points="609.62,-183.15 617.84,-176.46 607.25,-176.57 609.62,-183.15" stroke-width="2" - points="477.93,-189.29 483.21,-180.1 473.35,-183.99 477.93,-189.29" - id="polygon227" /> + stroke="grey" + fill="grey" /> </g> - <!-- 7->13 --> + <!-- 8->16 --> <g - id="edge26" class="edge" - transform="matrix(1.0292845,0,0,1.0592845,-6.7358021,10.428901)"> + id="edge34"> <title - id="title230">7->13</title> + id="title279">8->16</title> <path - d="m 363.43,-216.11 c -32.7,9.54 -74.38,21.86 -120.08,36.04" - id="path232" - inkscape:connector-curvature="0" - style="fill:none;stroke:#808080;stroke-width:2" /> + id="path281" + d="M295,-215.7C295,-207.98 295,-198.71 295,-190.11" + stroke-width="2" + stroke="grey" + fill="none" /> <polygon - points="233.54,-177.01 242.04,-183.33 244.12,-176.64 " - id="polygon234" - style="fill:#808080;stroke:#808080;stroke-width:2" /> + id="polygon283" + points="298.5,-190.1 295,-180.1 291.5,-190.1 298.5,-190.1" + stroke-width="2" + stroke="grey" + fill="grey" /> </g> - <!-- 8 --> + <!-- 9 --> <g - id="node9" - class="node"> + class="node" + id="node10"> <title - id="title237">8</title> + id="title286">9</title> <path - fill="none" - stroke="#b6d856" + id="path288" + d="M271,-396C271,-396 227,-396 227,-396 221,-396 215,-390 215,-384 215,-384 215,-372 215,-372 215,-366 221,-360 227,-360 227,-360 271,-360 271,-360 277,-360 283,-366 283,-372 283,-372 283,-384 283,-384 283,-390 277,-396 271,-396" stroke-width="2" - d="M481,-396C481,-396 437,-396 437,-396 431,-396 425,-390 425,-384 425,-384 425,-372 425,-372 425,-366 431,-360 437,-360 437,-360 481,-360 481,-360 487,-360 493,-366 493,-372 493,-372 493,-384 493,-384 493,-390 487,-396 481,-396" - id="path239" /> + stroke="#61d856" + fill="none" /> <text - text-anchor="middle" - x="459" - y="-375.5" - font-family="sans" + id="text290" font-size="10.00" - id="text241">star_index</text> + font-family="sans" + y="-375.5" + x="249" + text-anchor="middle">star_index</text> </g> - <!-- 8->7 --> - <!-- 8->9 --> + <!-- 9->8 --> + <!-- 9->10 --> <g - id="edge17" - class="edge"> + class="edge" + id="edge21"> <title - id="title251">8->9</title> + id="title300">9->10</title> <path - fill="none" - stroke="grey" + id="path302" + d="M259.88,-359.7C264.99,-351.56 271.2,-341.69 276.84,-332.7" stroke-width="2" - d="M449.85,-359.7C445.6,-351.64 440.44,-341.89 435.73,-332.98" - id="path253" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon304" + points="279.89,-334.43 282.25,-324.1 273.96,-330.71 279.89,-334.43" stroke-width="2" - points="438.81,-331.31 431.04,-324.1 432.62,-334.58 438.81,-331.31" - id="polygon255" /> + stroke="grey" + fill="grey" /> </g> - <!-- 9->7 --> + <!-- 10->8 --> <g - id="edge14" - class="edge"> + class="edge" + id="edge20"> <title - id="title258">9->7</title> + id="title307">10->8</title> <path - fill="none" - stroke="grey" + id="path309" + d="M293.49,-287.7C293.71,-279.98 293.98,-270.71 294.23,-262.11" stroke-width="2" - d="M422,-287.7C422,-279.98 422,-270.71 422,-262.11" - id="path260" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon311" + points="297.72,-262.2 294.51,-252.1 290.73,-262 297.72,-262.2" stroke-width="2" - points="425.5,-262.1 422,-252.1 418.5,-262.1 425.5,-262.1" - id="polygon262" /> + stroke="grey" + fill="grey" /> </g> - <!-- 10->1 --> + <!-- 11->1 --> + <!-- 11->12 --> <g - id="edge7" - class="edge"> + transform="matrix(1.0862496,0,0,1.1035166,-40.409519,18.501627)" + class="edge" + id="edge26"> <title - id="title265">10->1</title> + id="title321">11->12</title> <path - fill="none" - stroke="grey" - stroke-width="2" - d="M301,-143.7C301,-135.98 301,-126.71 301,-118.11" - id="path267" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path323" + d="m 529.87,-215.88 c -15.04,9.16 -33.74,20.54 -49.93,30.4" /> <polygon - fill="grey" + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon325" + points="471.24,-180.19 477.96,-188.38 481.6,-182.4 " /> + </g> + <!-- 11->13 --> + <g + class="edge" + id="edge29"> + <title + id="title328">11->13</title> + <path + id="path330" + d="M557.26,-215.7C556.93,-207.98 556.53,-198.71 556.16,-190.11" + stroke-width="2" stroke="grey" + fill="none" /> + <polygon + id="polygon332" + points="559.66,-189.95 555.73,-180.1 552.66,-190.25 559.66,-189.95" stroke-width="2" - points="304.5,-118.1 301,-108.1 297.5,-118.1 304.5,-118.1" - id="polygon269" /> + stroke="grey" + fill="grey" /> </g> - <!-- 11->1 --> + <!-- 11->15 --> <g - id="edge5" - class="edge"> + class="edge" + id="edge33"> <title - id="title272">11->1</title> + id="title335">11->15</title> <path - fill="none" - stroke="grey" + id="path337" + d="M579.51,-215.7C590.46,-206.88 603.95,-196.03 615.82,-186.47" stroke-width="2" - d="M385.6,-143.88C370.85,-134.66 352.47,-123.17 336.62,-113.26" - id="path274" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon339" + points="618.14,-189.1 623.74,-180.1 613.76,-183.65 618.14,-189.1" stroke-width="2" - points="338.45,-110.28 328.12,-107.95 334.74,-116.22 338.45,-110.28" - id="polygon276" /> + stroke="grey" + fill="grey" /> + </g> + <!-- 11->16 --> + <g + transform="matrix(1.0390631,0,0,1.0769848,-13.048238,13.055057)" + class="edge" + id="edge36"> + <title + id="title342">11->16</title> + <path + style="fill:none;stroke:#808080;stroke-width:2" + id="path344" + d="m 524.74,-219.91 c -3.93,1.39 -7.91,2.73 -11.74,3.91 -55.75,17.24 -120.92,32.45 -165.38,42.11" /> + <polygon + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon346" + points="337.62,-171.74 346.66,-177.27 348.13,-170.42 " /> </g> <!-- 12->1 --> <g - id="edge10" class="edge" - transform="translate(1.62,-5.47)"> + id="edge12"> <title - id="title279">12->1</title> + id="title349">12->1</title> <path - d="m 475.68,-148 c -3.24,1.4 -6.52,2.77 -9.68,4 -43.2,16.79 -94.17,32.57 -127.9,42.47" - id="path281" - inkscape:connector-curvature="0" - style="fill:none;stroke:#808080;stroke-width:2" /> + id="path351" + d="M433.36,-143.7C428.87,-135.64 423.44,-125.89 418.48,-116.98" + stroke-width="2" + stroke="grey" + fill="none" /> <polygon - points="328.21,-98.65 336.83,-104.81 338.79,-98.09 " - id="polygon283" - style="fill:#808080;stroke:#808080;stroke-width:2" /> + id="polygon353" + points="421.45,-115.14 413.53,-108.1 415.34,-118.54 421.45,-115.14" + stroke-width="2" + stroke="grey" + fill="grey" /> </g> <!-- 13->1 --> <g - id="edge3" - class="edge"> + class="edge" + id="edge5"> <title - id="title286">13->1</title> + id="title356">13->1</title> <path - fill="none" - stroke="grey" + id="path358" + d="M518.06,-143.88C494.43,-132.92 463.9,-118.77 440.37,-107.86" stroke-width="2" - d="M217.91,-143.88C232.16,-134.81 249.85,-123.55 265.24,-113.76" - id="path288" /> - <polygon - fill="grey" stroke="grey" + fill="none" /> + <polygon + id="polygon360" + points="441.63,-104.59 431.09,-103.56 438.69,-110.94 441.63,-104.59" stroke-width="2" - points="267.43,-116.51 273.99,-108.19 263.67,-110.61 267.43,-116.51" - id="polygon290" /> + stroke="grey" + fill="grey" /> </g> <!-- 14->1 --> <g - id="edge8" - class="edge"> + transform="translate(-2.8523969,-0.71309921)" + class="edge" + id="edge13"> <title - id="title293">14->1</title> + id="title363">14->1</title> <path - fill="none" - stroke="grey" - stroke-width="2" - d="M586.63,-287.95C590.64,-255.25 594.18,-183.45 556,-144 526.29,-113.3 401.48,-99.04 338.17,-93.68" - id="path295" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path365" + d="m 234.1,-146.83 c 39,12.81 95.84,31.49 132.84,43.65" /> + <polygon + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon367" + points="376.82,-99.93 366.23,-99.73 368.42,-106.38 " /> + </g> + <!-- 15->1 --> + <g + transform="matrix(1.0481699,0,0,0.87898112,-19.816317,-14.960295)" + class="edge" + id="edge6"> + <title + id="title370">15->1</title> + <path + style="fill:none;stroke:#808080;stroke-width:2" + id="path372" + d="m 617.74,-147.83 c -3.25,1.38 -6.54,2.69 -9.74,3.83 -57.04,20.33 -125.57,36.52 -166.91,45.43" /> <polygon - fill="grey" + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon374" + points="440.24,-101.97 441.7,-95.12 431.19,-96.46 " /> + </g> + <!-- 16->1 --> + <g + class="edge" + id="edge4"> + <title + id="title377">16->1</title> + <path + id="path379" + d="M321.66,-143.88C335.78,-134.81 353.31,-123.55 368.56,-113.76" + stroke-width="2" stroke="grey" + fill="none" /> + <polygon + id="polygon381" + points="370.71,-116.54 377.23,-108.19 366.93,-110.65 370.71,-116.54" stroke-width="2" - points="338.45,-90.19 328.2,-92.87 337.88,-97.17 338.45,-90.19" - id="polygon297" /> + stroke="grey" + fill="grey" /> </g> - <!-- 15 --> + <!-- 17->1 --> <g - id="node16" - class="node"> + transform="matrix(0.73375046,0,0,0.6410152,113.94556,-31.315802)" + class="edge" + id="edge7"> <title - id="title300">15</title> + id="title384">17->1</title> <path - fill="none" - stroke="#d8b456" - stroke-width="2" - d="M614,-396C614,-396 554,-396 554,-396 548,-396 542,-390 542,-384 542,-384 542,-372 542,-372 542,-366 548,-360 554,-360 554,-360 614,-360 614,-360 620,-360 626,-366 626,-372 626,-372 626,-384 626,-384 626,-390 620,-396 614,-396" - id="path302" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path386" + d="m 808.41,-287.95 c -2.15,33.36 -11.96,107.2 -56.41,143.95 -46.82,38.71 -230.83,49.26 -310.68,52.04" /> + <polygon + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon388" + points="431.21,-91.63 441.09,-95.45 441.32,-88.46 " /> + </g> + <!-- 18 --> + <g + transform="translate(-125.50546,68.100975)" + class="node" + id="node19"> + <title + id="title391">18</title> + <path + style="fill:none;stroke:#80d856;stroke-width:2" + id="path393" + d="m 839.5,-396 c 0,0 -61,0 -61,0 -6,0 -12,6 -12,12 0,0 0,12 0,12 0,6 6,12 12,12 0,0 61,0 61,0 6,0 12,-6 12,-12 0,0 0,-12 0,-12 0,-6 -6,-12 -12,-12" /> <text - text-anchor="middle" - x="584" + style="font-size:10px;font-family:sans;text-anchor:middle" + id="text395" + font-size="10.00" y="-375.5" - font-family="sans" + x="809">kallisto_index</text> + <path + style="fill:none;stroke:#80d856;stroke-width:1.99999988" + id="path393-9" + d="m 842.9986,-319.91956 c 0,0 -61,0 -61,0 -6,0 -12,6 -12,12 0,0 0,12 0,12 0,6 6,12 12,12 0,0 61,0 61,0 6,0 12,-6 12,-12 0,0 0,-12 0,-12 0,-6 -6,-12 -12,-12" /> + <path + style="fill:none;stroke:#80d856;stroke-width:1.74692595" + id="path393-9-1" + d="m 718.10164,-317.81098 c 0,0 -49.91454,0 -49.91454,0 -4.90962,0 -9.81925,5.59426 -9.81925,11.18853 0,0 0,11.18853 0,11.18853 0,5.59427 4.90963,11.18853 9.81925,11.18853 0,0 49.91454,0 49.91454,0 4.90962,0 9.81925,-5.59426 9.81925,-11.18853 0,0 0,-11.18853 0,-11.18853 0,-5.59427 -4.90963,-11.18853 -9.81925,-11.18853" /> + <path + style="fill:none;stroke:#80d856;stroke-width:2.27088332" + id="path393-9-1-2" + d="m 462.56808,-390.36883 c 0,0 -84.34663,0 -84.34663,0 -8.29637,0 -16.59277,5.59426 -16.59277,11.18853 0,0 0,11.18853 0,11.18853 0,5.59427 8.2964,11.18853 16.59277,11.18853 0,0 84.34663,0 84.34663,0 8.29638,0 16.59278,-5.59426 16.59278,-11.18853 0,0 0,-11.18853 0,-11.18853 0,-5.59427 -8.2964,-11.18853 -16.59278,-11.18853" /> + <path + style="fill:none;stroke:#80d856;stroke-width:1.94390404" + id="path393-9-1-2-7" + d="m 608.87585,-392.50813 c 0,0 -61.80559,0 -61.80559,0 -6.07923,0 -12.15847,5.59426 -12.15847,11.18853 0,0 0,11.18853 0,11.18853 0,5.59427 6.07924,11.18853 12.15847,11.18853 0,0 61.80559,0 61.80559,0 6.07923,0 12.15847,-5.59426 12.15847,-11.18853 0,0 0,-11.18853 0,-11.18853 0,-5.59427 -6.07924,-11.18853 -12.15847,-11.18853" /> + <path + style="fill:none;stroke:#80d856;stroke-width:2.23384023" + id="path393-9-1-2-7-0" + d="m 461.79769,-319.0589 c 0,0 -81.6173,0 -81.6173,0 -8.02792,0 -16.05586,5.59426 -16.05586,11.18853 0,0 0,11.18853 0,11.18853 0,5.59427 8.02794,11.18853 16.05586,11.18853 0,0 81.6173,0 81.6173,0 8.02792,0 16.05586,-5.59426 16.05586,-11.18853 0,0 0,-11.18853 0,-11.18853 0,-5.59427 -8.02794,-11.18853 -16.05586,-11.18853" /> + <path + style="fill:none;stroke:#80d856;stroke-width:2.04345989" + id="path393-93" + d="m 963.51047,-484.28893 c 0,0 -63.67986,0 -63.67986,0 -6.2636,0 -12.52719,6 -12.52719,12 0,0 0,12 0,12 0,6 6.26359,12 12.52719,12 0,0 63.67986,0 63.67986,0 6.26359,0 12.52718,-6 12.52718,-12 0,0 0,-12 0,-12 0,-6 -6.26359,-12 -12.52718,-12" /> + <text + style="font-size:10px;font-family:sans;text-anchor:middle;stroke-width:0.99999994" + id="text395-6" font-size="10.00" - id="text304">kallisto_index</text> + y="-464.02585" + x="931.29565">Mapping</text> </g> - <!-- 15->14 --> + <!-- 18->17 --> <g - id="edge27" - class="edge"> + transform="translate(-124.07926,69.170624)" + class="edge" + id="edge38"> <title - id="title307">15->14</title> + id="title398">18->17</title> <path - fill="none" - stroke="grey" - stroke-width="2" - d="M584,-359.7C584,-351.98 584,-342.71 584,-334.11" - id="path309" /> + style="fill:none;stroke:#808080;stroke-width:2" + id="path400" + d="m 809,-359.7 c 0,7.72 0,16.99 0,25.59" /> <polygon - fill="grey" - stroke="grey" - stroke-width="2" - points="587.5,-334.1 584,-324.1 580.5,-334.1 587.5,-334.1" - id="polygon311" /> + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon402" + points="809,-324.1 805.5,-334.1 812.5,-334.1 " /> + </g> + <g + class="node" + id="node1-3" + transform="translate(403.15036,-426.89595)"> + <title + id="title6-6">0</title> + <path + id="path8-7" + d="m 426.80287,-36 c 0,0 -48.58963,0 -48.58963,0 -9.71793,0 -19.43585,6 -19.43585,12 0,0 0,12 0,12 0,6 9.71792,12 19.43585,12 0,0 48.58963,0 48.58963,0 9.71794,0 19.43586,-6 19.43586,-12 0,0 0,-12 0,-12 0,-6 -9.71792,-12 -19.43586,-12" + style="fill:none;stroke:#56a9d8;stroke-width:2.54531288" /> + <text + id="text10-5" + font-size="10.00" + y="-15.5" + x="404" + style="font-size:10px;font-family:sans;text-anchor:middle">Quality Control</text> + <path + id="path8-7-3" + d="m -268.40312,103.05434 c 0,0 -48.58962,0 -48.58962,0 -9.71793,0 -19.43585,6 -19.43585,12 0,0 0,12 0,12 0,6 9.71792,12 19.43585,12 0,0 48.58962,0 48.58962,0 9.71795,0 19.43586,-6 19.43586,-12 0,0 0,-12 0,-12 0,-6 -9.71791,-12 -19.43586,-12" + style="fill:none;stroke:#56a9d8;stroke-width:2.54531288" /> + <path + id="path8-7-3-5" + d="m -359.13068,245.67418 c 0,0 -28.86229,0 -28.86229,0 -5.77246,0 -11.54491,6 -11.54491,12 0,0 0,12 0,12 0,6 5.77245,12 11.54491,12 0,0 28.86229,0 28.86229,0 5.77247,0 11.54492,-6 11.54492,-12 0,0 0,-12 0,-12 0,-6 -5.77245,-12 -11.54492,-12" + style="fill:none;stroke:#56a9d8;stroke-width:1.96170986" /> + <path + id="path8-7-3-7" + d="m 10.77605,-40.635149 c 0,0 -68.455126,0 -68.455126,0 -13.691034,0 -27.382053,6.000002 -27.382053,12.000002 0,0 0,12 0,12 0,6 13.691019,11.9999999 27.382053,11.9999999 0,0 68.455126,0 68.455126,0 13.691062,0 27.382067,-5.9999999 27.382067,-11.9999999 0,0 0,-12 0,-12 0,-6 -13.691005,-12.000002 -27.382067,-12.000002" + style="fill:none;stroke:#56a9d8;stroke-width:3.02115083" /> + </g> + <g + class="node" + id="node16-0" + transform="translate(145.39252,-191.61925)"> + <title + id="title195-6">15</title> + <path + id="path197-2" + d="m 682.54894,-180 c 0,0 -46.10638,0 -46.10638,0 -9.22128,0 -18.44256,6 -18.44256,12 0,0 0,12 0,12 0,6 9.22128,12 18.44256,12 0,0 46.10638,0 46.10638,0 9.22128,0 18.44256,-6 18.44256,-12 0,0 0,-12 0,-12 0,-6 -9.22128,-12 -18.44256,-12" + style="fill:none;stroke:#d8ac56;stroke-width:2.47941899" /> + <text + id="text199-6" + font-size="10.00" + y="-159.85655" + x="661.40131" + style="font-size:10px;font-family:sans;text-anchor:middle">Counting</text> + <path + id="path197-2-1" + d="m 71.14748,11.42925 c 0,0 -46.10638,0 -46.10638,0 -9.22128,0 -18.44256,6 -18.44256,12 0,0 0,12 0,12 0,6 9.22128,12 18.44256,12 0,0 46.10638,0 46.10638,0 9.22128,0 18.44256,-6 18.44256,-12 0,0 0,-12 0,-12 0,-6 -9.22128,-12 -18.44256,-12" + style="fill:none;stroke:#d8ac56;stroke-width:2.47941899" /> + <path + id="path197-2-8" + d="m 435.4861,14.319532 c 0,0 -50.11212,0 -50.11212,0 -10.02243,0 -20.04486,6 -20.04486,12 0,0 0,12 0,12 0,5.999995 10.02243,11.999995 20.04486,11.999995 0,0 50.11212,0 50.11212,0 10.02243,0 20.04486,-6 20.04486,-11.999995 0,0 0,-12 0,-12 0,-6 -10.02243,-12 -20.04486,-12" + style="fill:none;stroke:#d8ac56;stroke-width:2.5848825" /> + <text + id="text199-6-0" + font-size="10.00" + y="-113.24632" + x="661.93115" + style="font-size:10px;font-family:sans;text-anchor:middle;stroke-width:0.99999994">Visualisation</text> + <text + id="text199-6-0-7" + font-size="10.00" + y="31.055862" + x="604.73914" + style="font-size:10px;font-family:sans;text-anchor:middle;stroke-width:0.99999994">IGV session</text> + </g> + <g + transform="matrix(0.83034272,0,0,0.33555259,73.5256,-48.32639)" + class="edge" + id="edge7-5"> + <title + id="title384-9">17->1</title> + <path + style="fill:none;stroke:#808080;stroke-width:2" + id="path386-2" + d="m 808.41,-287.95 c -2.15,33.36 -11.96,107.2 -56.41,143.95 -46.82,38.71 -230.83,49.26 -310.68,52.04" /> + <polygon + style="fill:#808080;stroke:#808080;stroke-width:2" + id="polygon388-2" + points="441.09,-95.45 441.32,-88.46 431.21,-91.63 " /> </g> </g> </svg> diff --git a/images/rulegraph_old.svg b/images/rulegraph_old.svg new file mode 100644 index 0000000000000000000000000000000000000000..d0a3d46ffe0cdf83bd975a66b7894333e10eecf2 --- /dev/null +++ b/images/rulegraph_old.svg @@ -0,0 +1,835 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by graphviz version 2.49.1 (20211004.0028) + --> + +<!-- Title: snakemake_dag Pages: 1 --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="635pt" + height="404pt" + viewBox="0.00 0.00 634.50 404.00" + version="1.1" + id="svg315" + sodipodi:docname="rulegraph.svg" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> + <metadata + id="metadata321"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs319" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="3696" + inkscape:window-height="2032" + id="namedview317" + showgrid="false" + inkscape:zoom="2.4783743" + inkscape:cx="467.03165" + inkscape:cy="232.3745" + inkscape:window-x="144" + inkscape:window-y="54" + inkscape:window-maximized="1" + inkscape:current-layer="graph0" /> + <g + id="graph0" + class="graph" + transform="scale(1 1) rotate(0) translate(4 400)"> + <title + id="title2">snakemake_dag</title> + <polygon + fill="white" + stroke="transparent" + points="-4,4 -4,-400 630.5,-400 630.5,4 -4,4" + id="polygon4" /> + <!-- 0 --> + <g + id="node1" + class="node"> + <title + id="title6">0</title> + <path + fill="none" + stroke="#97d856" + stroke-width="2" + d="M316,-36C316,-36 286,-36 286,-36 280,-36 274,-30 274,-24 274,-24 274,-12 274,-12 274,-6 280,0 286,0 286,0 316,0 316,0 322,0 328,-6 328,-12 328,-12 328,-24 328,-24 328,-30 322,-36 316,-36" + id="path8" /> + <text + text-anchor="middle" + x="301" + y="-15.5" + font-family="sans" + font-size="10.00" + id="text10">rnaflow</text> + </g> + <!-- 1 --> + <g + id="node2" + class="node"> + <title + id="title13">1</title> + <path + fill="none" + stroke="#56d8d8" + stroke-width="2" + d="M316,-108C316,-108 286,-108 286,-108 280,-108 274,-102 274,-96 274,-96 274,-84 274,-84 274,-78 280,-72 286,-72 286,-72 316,-72 316,-72 322,-72 328,-78 328,-84 328,-84 328,-96 328,-96 328,-102 322,-108 316,-108" + id="path15" /> + <text + text-anchor="middle" + x="301" + y="-87.5" + font-family="sans" + font-size="10.00" + id="text17">multiqc</text> + </g> + <!-- 1->0 --> + <g + id="edge1" + class="edge"> + <title + id="title20">1->0</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M301,-71.7C301,-63.98 301,-54.71 301,-46.11" + id="path22" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="304.5,-46.1 301,-36.1 297.5,-46.1 304.5,-46.1" + id="polygon24" /> + </g> + <!-- 2 --> + <g + id="node3" + class="node"> + <title + id="title27">2</title> + <path + fill="none" + stroke="#56d8b9" + stroke-width="2" + d="M42,-180C42,-180 12,-180 12,-180 6,-180 0,-174 0,-168 0,-168 0,-156 0,-156 0,-150 6,-144 12,-144 12,-144 42,-144 42,-144 48,-144 54,-150 54,-156 54,-156 54,-168 54,-168 54,-174 48,-180 42,-180" + id="path29" /> + <text + text-anchor="middle" + x="27" + y="-159.5" + font-family="sans" + font-size="10.00" + id="text31">fastqc</text> + </g> + <!-- 2->1 --> + <g + id="edge9" + class="edge"> + <title + id="title34">2->1</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M54.11,-149.01C58.7,-147.19 63.45,-145.45 68,-144 135.8,-122.4 217.35,-105.95 263.78,-97.45" + id="path36" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="264.48,-100.88 273.69,-95.66 263.23,-93.99 264.48,-100.88" + id="polygon38" /> + </g> + <!-- 3 --> + <g + id="node4" + class="node"> + <title + id="title41">3</title> + <path + fill="none" + stroke="#d85656" + stroke-width="2" + d="M142.5,-252C142.5,-252 99.5,-252 99.5,-252 93.5,-252 87.5,-246 87.5,-240 87.5,-240 87.5,-228 87.5,-228 87.5,-222 93.5,-216 99.5,-216 99.5,-216 142.5,-216 142.5,-216 148.5,-216 154.5,-222 154.5,-228 154.5,-228 154.5,-240 154.5,-240 154.5,-246 148.5,-252 142.5,-252" + id="path43" /> + <text + text-anchor="middle" + x="121" + y="-231.5" + font-family="sans" + font-size="10.00" + id="text45">sortmerna</text> + </g> + <!-- 3->1 --> + <g + id="edge2" + class="edge"> + <title + id="title48">3->1</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M117.37,-215.86C114.28,-196.25 112.6,-164.25 129,-144 161.5,-103.88 223.7,-93.47 263.72,-91.13" + id="path50" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="264.05,-94.62 273.88,-90.68 263.74,-87.63 264.05,-94.62" + id="polygon52" /> + </g> + <!-- 4 --> + <g + id="node5" + class="node"> + <title + id="title55">4</title> + <path + d="m 378.31598,-396 c 0,0 -87.71829,0 -87.71829,0 -9.2335,0 -18.467,6 -18.467,12 0,0 0,12 0,12 0,6 9.2335,12 18.467,12 0,0 87.71829,0 87.71829,0 9.23349,0 18.467,-6 18.467,-12 0,0 0,-12 0,-12 0,-6 -9.23351,-12 -18.467,-12" + id="path57" + inkscape:connector-curvature="0" + style="fill:none;stroke:#569ad8;stroke-width:2.48106194" /> + <text + x="335" + y="-375.5" + font-size="10.00" + id="text59" + style="font-size:10px;font-family:sans;text-anchor:middle">alienTrimmer/cutadapt</text> + </g> + <!-- 4->3 --> + <g + id="edge11" + class="edge" + transform="matrix(0.85930646,0,0,1.0136636,17.734517,3.4965436)"> + <title + id="title62">4->3</title> + <path + d="m 294.23,-372.11 c -35.58,6.07 -86.9,19.4 -122.23,48.11 -19.98,16.24 -33.66,42.52 -41.78,62.32" + id="path64" + inkscape:connector-curvature="0" + style="fill:none;stroke:#808080;stroke-width:2" /> + <polygon + points="126.57,-252.27 126.93,-262.86 133.45,-260.33 " + id="polygon66" + style="fill:#808080;stroke:#808080;stroke-width:2" /> + </g> + <!-- 5 --> + <g + id="node6" + class="node"> + <title + id="title69">5</title> + <path + fill="none" + stroke="#59d856" + stroke-width="2" + d="M333,-252C333,-252 253,-252 253,-252 247,-252 241,-246 241,-240 241,-240 241,-228 241,-228 241,-222 247,-216 253,-216 253,-216 333,-216 333,-216 339,-216 345,-222 345,-228 345,-228 345,-240 345,-240 345,-246 339,-252 333,-252" + id="path71" /> + <text + text-anchor="middle" + x="293" + y="-231.5" + font-family="sans" + font-size="10.00" + id="text73">bowtie2_mapping</text> + </g> + <!-- 4->5 --> + <g + id="edge13" + class="edge"> + <title + id="title76">4->5</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M329.93,-359.87C322.74,-335.56 309.51,-290.82 300.99,-262.01" + id="path78" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="304.28,-260.79 298.08,-252.19 297.56,-262.77 304.28,-260.79" + id="polygon80" /> + </g> + <!-- 7 --> + <g + id="node8" + class="node"> + <title + id="title83">7</title> + <path + fill="none" + stroke="#d6d856" + stroke-width="2" + d="M468.5,-252C468.5,-252 375.5,-252 375.5,-252 369.5,-252 363.5,-246 363.5,-240 363.5,-240 363.5,-228 363.5,-228 363.5,-222 369.5,-216 375.5,-216 375.5,-216 468.5,-216 468.5,-216 474.5,-216 480.5,-222 480.5,-228 480.5,-228 480.5,-240 480.5,-240 480.5,-246 474.5,-252 468.5,-252" + id="path85" /> + <text + text-anchor="middle" + x="422" + y="-231.5" + font-family="sans" + font-size="10.00" + id="text87">star_mapping_pass2</text> + </g> + <!-- 4->7 --> + <!-- 9 --> + <g + id="node10" + class="node"> + <title + id="title97">9</title> + <path + fill="none" + stroke="#56b9d8" + stroke-width="2" + d="M468.5,-324C468.5,-324 375.5,-324 375.5,-324 369.5,-324 363.5,-318 363.5,-312 363.5,-312 363.5,-300 363.5,-300 363.5,-294 369.5,-288 375.5,-288 375.5,-288 468.5,-288 468.5,-288 474.5,-288 480.5,-294 480.5,-300 480.5,-300 480.5,-312 480.5,-312 480.5,-318 474.5,-324 468.5,-324" + id="path99" /> + <text + text-anchor="middle" + x="422" + y="-303.5" + font-family="sans" + font-size="10.00" + id="text101">star_mapping_pass1</text> + </g> + <!-- 4->9 --> + <g + id="edge18" + class="edge"> + <title + id="title104">4->9</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M356.51,-359.7C367.46,-350.88 380.95,-340.03 392.82,-330.47" + id="path106" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="395.14,-333.1 400.74,-324.1 390.76,-327.65 395.14,-333.1" + id="polygon108" /> + </g> + <!-- 14 --> + <g + id="node15" + class="node"> + <title + id="title111">14</title> + <path + fill="none" + stroke="#56d89a" + stroke-width="2" + d="M614.5,-324C614.5,-324 553.5,-324 553.5,-324 547.5,-324 541.5,-318 541.5,-312 541.5,-312 541.5,-300 541.5,-300 541.5,-294 547.5,-288 553.5,-288 553.5,-288 614.5,-288 614.5,-288 620.5,-288 626.5,-294 626.5,-300 626.5,-300 626.5,-312 626.5,-312 626.5,-318 620.5,-324 614.5,-324" + id="path113" /> + <text + text-anchor="middle" + x="584" + y="-303.5" + font-family="sans" + font-size="10.00" + id="text115">kallisto_quant</text> + </g> + <!-- 4->14 --> + <g + id="edge28" + class="edge" + transform="matrix(0.87330675,0,0,1.0602879,68.843467,19.250561)"> + <title + id="title118">4->14</title> + <path + d="m 375.56,-365.6 c 42.5,11.95 109.41,30.76 155.92,43.84" + id="path120" + inkscape:connector-curvature="0" + style="fill:none;stroke:#808080;stroke-width:2" /> + <polygon + points="541.37,-318.98 530.8,-318.32 532.69,-325.06 " + id="polygon122" + style="fill:#808080;stroke:#808080;stroke-width:2" /> + </g> + <!-- 5->1 --> + <!-- 10 --> + <g + id="node11" + class="node"> + <title + id="title132">10</title> + <path + fill="none" + stroke="#56d87b" + stroke-width="2" + d="M338,-180C338,-180 264,-180 264,-180 258,-180 252,-174 252,-168 252,-168 252,-156 252,-156 252,-150 258,-144 264,-144 264,-144 338,-144 338,-144 344,-144 350,-150 350,-156 350,-156 350,-168 350,-168 350,-174 344,-180 338,-180" + id="path134" /> + <text + text-anchor="middle" + x="301" + y="-159.5" + font-family="sans" + font-size="10.00" + id="text136">mark_duplicates</text> + </g> + <!-- 5->10 --> + <g + id="edge19" + class="edge"> + <title + id="title139">5->10</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M294.98,-215.7C295.86,-207.98 296.92,-198.71 297.9,-190.11" + id="path141" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="301.39,-190.44 299.05,-180.1 294.43,-189.64 301.39,-190.44" + id="polygon143" /> + </g> + <!-- 11 --> + <g + id="node12" + class="node"> + <title + id="title146">11</title> + <path + fill="none" + stroke="#78d856" + stroke-width="2" + d="M445.5,-180C445.5,-180 380.5,-180 380.5,-180 374.5,-180 368.5,-174 368.5,-168 368.5,-168 368.5,-156 368.5,-156 368.5,-150 374.5,-144 380.5,-144 380.5,-144 445.5,-144 445.5,-144 451.5,-144 457.5,-150 457.5,-156 457.5,-156 457.5,-168 457.5,-168 457.5,-174 451.5,-180 445.5,-180" + id="path148" /> + <text + text-anchor="middle" + x="413" + y="-159.5" + font-family="sans" + font-size="10.00" + id="text150">feature_counts</text> + </g> + <!-- 5->11 --> + <g + id="edge21" + class="edge"> + <title + id="title153">5->11</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M322.36,-215.88C338.05,-206.72 357.56,-195.34 374.45,-185.48" + id="path155" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="376.66,-188.25 383.53,-180.19 373.13,-182.21 376.66,-188.25" + id="polygon157" /> + </g> + <!-- 12 --> + <g + id="node13" + class="node"> + <title + id="title160">12</title> + <path + fill="none" + stroke="#567bd8" + stroke-width="2" + d="M518,-180C518,-180 488,-180 488,-180 482,-180 476,-174 476,-168 476,-168 476,-156 476,-156 476,-150 482,-144 488,-144 488,-144 518,-144 518,-144 524,-144 530,-150 530,-156 530,-156 530,-168 530,-168 530,-174 524,-180 518,-180" + id="path162" /> + <text + text-anchor="middle" + x="503" + y="-159.5" + font-family="sans" + font-size="10.00" + id="text164">flagstat</text> + </g> + <!-- 5->12 --> + <g + id="edge23" + class="edge" + transform="matrix(1.0203953,0,0,1.0206904,-9.7590791,3.6187926)"> + <title + id="title167">5->12</title> + <path + d="m 345.25,-217.83 c 42.38,12.46 98.59,29.39 120.75,37.83 0.1,0.04 0.2,0.08 0.3,0.11" + id="path169" + inkscape:connector-curvature="0" + style="fill:none;stroke:#808080;stroke-width:2" /> + <polygon + points="475.69,-176.04 465.11,-176.59 467.77,-183.07 " + id="polygon171" + style="fill:#808080;stroke:#808080;stroke-width:2" /> + </g> + <!-- 13 --> + <g + id="node14" + class="node"> + <title + id="title174">13</title> + <path + fill="none" + stroke="#d89556" + stroke-width="2" + d="M221.5,-180C221.5,-180 160.5,-180 160.5,-180 154.5,-180 148.5,-174 148.5,-168 148.5,-168 148.5,-156 148.5,-156 148.5,-150 154.5,-144 160.5,-144 160.5,-144 221.5,-144 221.5,-144 227.5,-144 233.5,-150 233.5,-156 233.5,-156 233.5,-168 233.5,-168 233.5,-174 227.5,-180 221.5,-180" + id="path176" /> + <text + text-anchor="middle" + x="191" + y="-159.5" + font-family="sans" + font-size="10.00" + id="text178">bamCoverage</text> + </g> + <!-- 5->13 --> + <g + id="edge25" + class="edge"> + <title + id="title181">5->13</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M268.05,-215.88C254.96,-206.89 238.74,-195.76 224.56,-186.03" + id="path183" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="226.27,-182.96 216.05,-180.19 222.31,-188.73 226.27,-182.96" + id="polygon185" /> + </g> + <!-- 6 --> + <g + id="node7" + class="node"> + <title + id="title188">6</title> + <path + fill="none" + stroke="#d87556" + stroke-width="2" + d="M257,-324C257,-324 193,-324 193,-324 187,-324 181,-318 181,-312 181,-312 181,-300 181,-300 181,-294 187,-288 193,-288 193,-288 257,-288 257,-288 263,-288 269,-294 269,-300 269,-300 269,-312 269,-312 269,-318 263,-324 257,-324" + id="path190" /> + <text + text-anchor="middle" + x="225" + y="-303.5" + font-family="sans" + font-size="10.00" + id="text192">bowtie2_index</text> + </g> + <!-- 6->5 --> + <g + id="edge12" + class="edge"> + <title + id="title195">6->5</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M241.81,-287.7C250.13,-279.14 260.31,-268.66 269.39,-259.3" + id="path197" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="271.93,-261.72 276.38,-252.1 266.91,-256.84 271.93,-261.72" + id="polygon199" /> + </g> + <!-- 7->1 --> + <!-- 7->10 --> + <g + id="edge20" + class="edge"> + <title + id="title209">7->10</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M392.4,-215.88C376.43,-206.64 356.54,-195.13 339.39,-185.21" + id="path211" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="341.12,-182.17 330.71,-180.19 337.62,-188.23 341.12,-182.17" + id="polygon213" /> + </g> + <!-- 7->11 --> + <g + id="edge22" + class="edge"> + <title + id="title216">7->11</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M419.78,-215.7C418.78,-207.98 417.59,-198.71 416.49,-190.11" + id="path218" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="419.95,-189.58 415.2,-180.1 413,-190.47 419.95,-189.58" + id="polygon220" /> + </g> + <!-- 7->12 --> + <g + id="edge24" + class="edge"> + <title + id="title223">7->12</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M442.02,-215.7C452.13,-206.97 464.54,-196.24 475.52,-186.75" + id="path225" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="477.93,-189.29 483.21,-180.1 473.35,-183.99 477.93,-189.29" + id="polygon227" /> + </g> + <!-- 7->13 --> + <g + id="edge26" + class="edge" + transform="matrix(1.0292845,0,0,1.0592845,-6.7358021,10.428901)"> + <title + id="title230">7->13</title> + <path + d="m 363.43,-216.11 c -32.7,9.54 -74.38,21.86 -120.08,36.04" + id="path232" + inkscape:connector-curvature="0" + style="fill:none;stroke:#808080;stroke-width:2" /> + <polygon + points="233.54,-177.01 242.04,-183.33 244.12,-176.64 " + id="polygon234" + style="fill:#808080;stroke:#808080;stroke-width:2" /> + </g> + <!-- 8 --> + <g + id="node9" + class="node"> + <title + id="title237">8</title> + <path + fill="none" + stroke="#b6d856" + stroke-width="2" + d="M481,-396C481,-396 437,-396 437,-396 431,-396 425,-390 425,-384 425,-384 425,-372 425,-372 425,-366 431,-360 437,-360 437,-360 481,-360 481,-360 487,-360 493,-366 493,-372 493,-372 493,-384 493,-384 493,-390 487,-396 481,-396" + id="path239" /> + <text + text-anchor="middle" + x="459" + y="-375.5" + font-family="sans" + font-size="10.00" + id="text241">star_index</text> + </g> + <!-- 8->7 --> + <!-- 8->9 --> + <g + id="edge17" + class="edge"> + <title + id="title251">8->9</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M449.85,-359.7C445.6,-351.64 440.44,-341.89 435.73,-332.98" + id="path253" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="438.81,-331.31 431.04,-324.1 432.62,-334.58 438.81,-331.31" + id="polygon255" /> + </g> + <!-- 9->7 --> + <g + id="edge14" + class="edge"> + <title + id="title258">9->7</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M422,-287.7C422,-279.98 422,-270.71 422,-262.11" + id="path260" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="425.5,-262.1 422,-252.1 418.5,-262.1 425.5,-262.1" + id="polygon262" /> + </g> + <!-- 10->1 --> + <g + id="edge7" + class="edge"> + <title + id="title265">10->1</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M301,-143.7C301,-135.98 301,-126.71 301,-118.11" + id="path267" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="304.5,-118.1 301,-108.1 297.5,-118.1 304.5,-118.1" + id="polygon269" /> + </g> + <!-- 11->1 --> + <g + id="edge5" + class="edge"> + <title + id="title272">11->1</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M385.6,-143.88C370.85,-134.66 352.47,-123.17 336.62,-113.26" + id="path274" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="338.45,-110.28 328.12,-107.95 334.74,-116.22 338.45,-110.28" + id="polygon276" /> + </g> + <!-- 12->1 --> + <g + id="edge10" + class="edge" + transform="translate(1.62,-5.47)"> + <title + id="title279">12->1</title> + <path + d="m 475.68,-148 c -3.24,1.4 -6.52,2.77 -9.68,4 -43.2,16.79 -94.17,32.57 -127.9,42.47" + id="path281" + inkscape:connector-curvature="0" + style="fill:none;stroke:#808080;stroke-width:2" /> + <polygon + points="328.21,-98.65 336.83,-104.81 338.79,-98.09 " + id="polygon283" + style="fill:#808080;stroke:#808080;stroke-width:2" /> + </g> + <!-- 13->1 --> + <g + id="edge3" + class="edge"> + <title + id="title286">13->1</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M217.91,-143.88C232.16,-134.81 249.85,-123.55 265.24,-113.76" + id="path288" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="267.43,-116.51 273.99,-108.19 263.67,-110.61 267.43,-116.51" + id="polygon290" /> + </g> + <!-- 14->1 --> + <g + id="edge8" + class="edge"> + <title + id="title293">14->1</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M586.63,-287.95C590.64,-255.25 594.18,-183.45 556,-144 526.29,-113.3 401.48,-99.04 338.17,-93.68" + id="path295" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="338.45,-90.19 328.2,-92.87 337.88,-97.17 338.45,-90.19" + id="polygon297" /> + </g> + <!-- 15 --> + <g + id="node16" + class="node"> + <title + id="title300">15</title> + <path + fill="none" + stroke="#d8b456" + stroke-width="2" + d="M614,-396C614,-396 554,-396 554,-396 548,-396 542,-390 542,-384 542,-384 542,-372 542,-372 542,-366 548,-360 554,-360 554,-360 614,-360 614,-360 620,-360 626,-366 626,-372 626,-372 626,-384 626,-384 626,-390 620,-396 614,-396" + id="path302" /> + <text + text-anchor="middle" + x="584" + y="-375.5" + font-family="sans" + font-size="10.00" + id="text304">kallisto_index</text> + </g> + <!-- 15->14 --> + <g + id="edge27" + class="edge"> + <title + id="title307">15->14</title> + <path + fill="none" + stroke="grey" + stroke-width="2" + d="M584,-359.7C584,-351.98 584,-342.71 584,-334.11" + id="path309" /> + <polygon + fill="grey" + stroke="grey" + stroke-width="2" + points="587.5,-334.1 584,-324.1 580.5,-334.1 587.5,-334.1" + id="polygon311" /> + </g> + </g> +</svg>