import os
import sys
import shutil
from datetime import datetime
import glob
from snakemake.utils import min_version
import seqnado.utils
import pandas as pd
import pathlib

ASSAY = "CONSENUS_PEAKS"
configfile: "config_consensus_peaks.yml"
container: "library://asmith151/seqnado/seqnado_pipeline:latest"


seqnado.utils.format_config_dict(config)


# Get experiment design
# Require a fn column and a group column
design_path = pathlib.Path(config["design"])
if design_path.exists():
    DESIGN = pd.read_csv(design_path, sep="[\s+,\t]", engine="python")
    assert DESIGN.shape[0] > 0, "No samples found in design file"

else:
    raise ValueError("No design file found")


SAMPLE_NAMES = [pathlib.Path(fn).stem for fn in DESIGN.fn]
GROUPS = DESIGN.group.unique().tolist()


include: "rules/alignment_post_processing.smk"
include: "rules/peak_call.smk"
include: "rules/pileup.smk"
include: "rules/consensus_peaks.smk"


rule all:
    input:
        peaks=expand("seqnado_output/consensus_peaks/{group}.bed", group=GROUPS),
