@@ -22,7 +22,6 @@ import VIS_helper_functions as vhf #custom functions to make snakemake pipeline
2222
2323#inmport rules
2424include : config ["detection" ]
25- include : config ["functional_genomics" ]
2625include : config ["quality_control" ]
2726
2827#analysis-specific rules
@@ -33,35 +32,48 @@ include: config["quality_control"]
3332#include: config["variants"]
3433#include: config["development"]
3534
36- # Optional c-modification rule: Only works if input BAMs have MM tags
35+
36+ #conditional rule all based on defined rules
37+ conditional_output = list ()
38+
39+ if "functional_genomics" in config :
40+ include : config ["functional_genomics" ]
41+ conditional_output .append (expand (f"{ outdir } /final/functional_genomics/Functional_distances_to_Insertions_{{sample}}.bed" , sample = SAMPLES ))
42+ conditional_output .append (expand (f"{ outdir } /final/functional_genomics/Functional_distances_to_Insertions_{{sample}}.bed" , sample = SAMPLES ))
43+ conditional_output .append (expand (f"{ outdir } /intermediate/localization/annotation/Annotation_{{annotation}}_Insertions_{{sample}}.bed" ,
44+ annotation = [k .replace ("annotate_" , "" ) for k in config if k .startswith ("annotate_" )],
45+ sample = SAMPLES ))
46+
47+ if "plot_functional_genomics" in config :
48+
49+ import VIS_plot_functional_annotation_helper_functions as vhf_fa
50+ include : config ["plot_functional_genomics" ]
51+
52+ conditional_output .append (expand (f"{ outdir } /final/functional_genomics/Plot_Distance_to_Genes_{ fragmentsize } _{{sample}}.png" , sample = SAMPLES ))
53+ conditional_output .append (expand (f"{ outdir } /final/functional_genomics/Insertion_Scoring_{{sample}}.svg" , sample = SAMPLES ))
54+
3755if "cmod" in config :
3856 include : config ["cmod" ]
39- rule all :
40- input :
41- expand (f"{ outdir } /intermediate/cmod/Final_Isolated_Reads_{{sample}}.bam" , sample = SAMPLES ),
42- expand (f"{ outdir } /intermediate/cmod/Isolated_Reads_{{sample}}.tsv" , sample = SAMPLES ),
43- #expand(f"{outdir}/intermediate/cmod/Calls_Isolated_Reads_{{sample}}.tsv", sample=SAMPLES)
44- else :
45- rule all :
46- input :
47- #detection
48- expand (f"{ outdir } /final/localization/ExactInsertions_{{sample}}.bed" , sample = SAMPLES ),
49- f"{ outdir } /final/localization/Heatmap_Insertion_Chr.png" ,
50- f"{ outdir } /final/localization/Insertion_length.png" ,
51- #functional genomics
52- expand (f"{ outdir } /final/functional_genomics/Functional_distances_to_Insertions_{{sample}}.bed" , sample = SAMPLES ),
53- expand (f"{ outdir } /final/functional_genomics/Plot_Distance_to_Genes_{ fragmentsize } _{{sample}}.png" , sample = SAMPLES ),
54- expand (f"{ outdir } /intermediate/localization/annotation/Annotation_gene_Insertions_{{sample}}.bed" , sample = SAMPLES ),
55- expand (f"{ outdir } /final/functional_genomics/Insertion_Scoring_{{sample}}.svg" , sample = SAMPLES ),
56- #quality control
57- expand (f"{ outdir } /final/qc/mapq/{{sample}}_mapq_heatmap_image.png" , sample = SAMPLES ),
58- expand (f"{ outdir } /final/qc/Fragmentation/Insertions/insertions_{ fragmentsize } _{{sample}}" , sample = SAMPLES ),
59- expand (f"{ outdir } /final/qc/Fragmentation/Longest_Interval/{{sample}}/" , sample = SAMPLES ),
60- f"{ outdir } /final/qc/multiqc_report.html" ,
61- # process
62- f"{ outdir } /config_settings.yml" ,
63- # downstream
64- #expand(f"{outdir}/intermediate/blastn/Filtered_Annotated_{fragmentsize}_InsertionMatches_{{sample}}.gff", sample=SAMPLES),
65- #expand(f"{outdir}/final/functional_genomics/localization/{fragmentsize}_{{sample}}", sample=SAMPLES),
66- # for msa
67- #expand(f"{outdir}/intermediate/fasta/Inserted_sequence_{{sample}}.fa", sample=SAMPLES)
57+ conditional_output .append (expand (f"{ outdir } /intermediate/cmod/Isolated_Reads_{{sample}}.tsv" , sample = SAMPLES ))
58+ conditional_output .append (expand (f"{ outdir } /intermediate/cmod/Calls_Isolated_Reads_{{sample}}.tsv" , sample = SAMPLES ))
59+
60+ rule all :
61+ input :
62+ #detection
63+ expand (f"{ outdir } /final/localization/ExactInsertions_{{sample}}.bed" , sample = SAMPLES ),
64+ f"{ outdir } /final/localization/Heatmap_Insertion_Chr.png" ,
65+ f"{ outdir } /final/localization/Insertion_length.png" ,
66+ #quality control
67+ expand (f"{ outdir } /final/qc/mapq/{{sample}}_mapq_heatmap_image.png" , sample = SAMPLES ),
68+ expand (f"{ outdir } /final/qc/Fragmentation/Insertions/insertions_{ fragmentsize } _{{sample}}" , sample = SAMPLES ),
69+ expand (f"{ outdir } /final/qc/Fragmentation/Longest_Interval/{{sample}}/" , sample = SAMPLES ),
70+ f"{ outdir } /final/qc/multiqc_report.html" ,
71+ # process
72+ f"{ outdir } /config_settings.yml" ,
73+ # other output
74+ conditional_output
75+ # downstream
76+ #expand(f"{outdir}/intermediate/blastn/Filtered_Annotated_{fragmentsize}_InsertionMatches_{{sample}}.gff", sample=SAMPLES),
77+ #expand(f"{outdir}/final/functional_genomics/localization/{fragmentsize}_{{sample}}", sample=SAMPLES),
78+ # for msa
79+ #expand(f"{outdir}/intermediate/fasta/Inserted_sequence_{{sample}}.fa", sample=SAMPLES)
0 commit comments