from snakemake.utils import min_version


min_version("6.0")
shell.prefix("set -euo pipefail; ")


configfile: "config/config.yaml"


# Constants loaded here.
include: "rules/common.smk"


wildcard_constraints:
    chr="|".join(CHROMOSOMES),
    ort="|".join(ORIENTATION),
    sm="|".join(SAMPLE_NAMES),
    hap="|".join(HAPLOTYPE),
    mer_order="|".join(MER_ORDER),


include: "rules/utils.smk"
include: "rules/concat_asm.smk"
include: "rules/extract_ref_hor_arrays.smk"
include: "rules/align_asm_to_ref.smk"
include: "rules/ident_cen_ctgs.smk"
include: "rules/dna_brnn.smk"
include: "rules/extract_new_cens_ctgs.smk"
include: "rules/nucflag.smk"
include: "rules/repeatmasker.smk"
include: "rules/humas_hmmer.smk"
include: "rules/plot_hor_stv.smk"
include: "rules/plot_repeatmasker_sat_annot.smk"
include: "rules/moddotplot.smk"
include: "rules/plot_cens_structure.smk"
include: "rules/calculate_hor_length.smk"
include: "rules/count_complete_cens.smk"
include: "rules/cluster_cens.smk"


rule extract_align_cens_only:
    input:
        rules.extract_ref_hor_arrays_all.input,
        rules.concat_asm_all.input,
        rules.align_asm_ref_all.input,


rule all:
    input:
        rules.extract_align_cens_only.input,
        rules.ident_cen_ctgs_all.input,
        rules.dna_brnn_all.input,
        rules.extract_new_cens_all.input,
        rules.nucflag_only.input,
        rules.repeatmasker_only.input,
        rules.humas_hmmer_only.input,
        rules.plot_hor_stv_only.input,
        rules.get_hor_length_only.input,
        rules.count_complete_cens_only.input,
        rules.moddotplot_only.input,
        rules.plot_cens_structure_only.input,
        rules.cluster_cens_only.input,
    default_target: True
