from importlib import resources
from pathlib import Path
import pandas
import numpy

# Define local software installation folder
PKG_DIR = resources.files("serovar_detector")

# Define user inputs
database = Path(config["database"])
outdir = Path(config["outdir"])
threshold = config["threshold"]
tmpdir = Path(config["tmpdir"])
debug = config["debug"]

# Define user project and samples
pepfile: Path(f"{outdir}/schemas/project_config.yaml")
serovar_profiles = Path(PKG_DIR / "config/serovar_profiles.yaml")

# Determine database
database_name = database.stem
database_prefix = PKG_DIR / f"db/{database_name}"


subsample_table = pep.subsample_table

sample_grouped = subsample_table.groupby("type")

reads_sheet = pandas.DataFrame({"sample_name": []})
reads_samples = ()
if "Reads" in subsample_table["type"].values:
  reads_sheet = sample_grouped.get_group("Reads")
  reads_samples = set(reads_sheet["sample_name"])

assembly_sheet = pandas.DataFrame({"sample_name": []})
assembly_samples = ()
if "Assembly" in subsample_table["type"].values:
  assembly_sheet = sample_grouped.get_group("Assembly")
  assembly_samples = set(assembly_sheet["sample_name"])

rule all:
  input:
    serovar = f"{outdir}/serovars.tsv"

include: "rules/setup_databases.smk"
include: "rules/detect_serovars.smk"
include: "rules/summarise_serovars.smk"

