rule all:
    input:
        "output/deviation.pdf",
        "output/rmsd.txt",
        "output/time.pdf",
        "output/smallmol_environment.txt",
        "output/compare_geometries.txt",
        "output/pdb_statistics.txt"


rule download_protein:
    output:
        directory("protein_data/")
    script:
        "download_protein.py"

rule download_nucleotide:
    output:
        directory("nucleotide_data/")
    script:
        "download_nucleotide.py"

rule download_smallmol:
    output:
        directory("smallmol_data/")
    script:
        "download_smallmol.py"


rule measure_deviation:
    input:
        "{type}_data/"
    output:
        "{type}_deviation.json"
    script:
        "measure_deviation.py"

rule plot_deviation:
    input:
        "protein_deviation.json",
        "nucleotide_deviation.json",
        "smallmol_deviation.json"
    output:
        "output/deviation.pdf",
        "output/rmsd.txt"
    script:
        "plot_deviation.py"


rule download_time_dataset:
    output:
        directory("time_data/")
    script:
        "download_time_dataset.py"

rule measure_time:
    input:
        "time_data/"
    output:
        "run_times.json"
    script:
        "measure_time.py"

rule plot_time:
    input:
        "run_times.json"
    output:
        "output/time.pdf"
    script:
        "plot_time.py"


rule smallmol_environment:
    output:
        "output/smallmol_environment.txt"
    script:
        "smallmol_environment.py"


rule compare_geometries:
    output:
        "output/compare_geometries.txt"
    script:
        "compare_geometries.py"


rule pdb_statistics:
    output:
        "output/pdb_statistics.txt"
    script:
        "pdb_statistics.py"