from mtsv.utils import script_path
shell.prefix("set -euo pipefail;")

SCRIPTS = {
    'analyze': script_path("MTSv_analyze.py")
}

EXP_DB_PARAMS = {
    'db_path': config['database_config'],
    'kmer': config['kmer'],
    'edits': config['edits'],
    'seed_size': config['seed_size'],
    'seed_gap': config['seed_gap'],
    'min_seeds': config['min_seeds']}

rule analyze_all:
    input: config['analysis_file']


rule analyze:
    output: config['analysis_file']
    message: 
        """
        Analyzing statistics.
        Writing to {output}.
        Logging to {log}
        Snakemake scheduler assuming {threads} thread(s) and 
        {resources.mem_mb} Mb of memory.
        """
    resources:
        mem_mb=lambda wildcards, attempt: attempt
    params:
        obs_summary=config['summary_file_in'],
        taxa=config['candidate_taxa'],
        req_taxa=['candidate_taxa_req'],
        exp_db_params=EXP_DB_PARAMS
    log: config['log_file']
    script: SCRIPTS['analyze']    