deepof_experiments.smk 4.16 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
# @authors lucasmiranda42
# encoding: utf-8
# deepof_experiments

"""

Snakefile for data and imputation.
Execution: sbatch snakemake
Plot DAG: snakemake --snakefile deepof_experiments.smk --forceall --dag | dot -Tpdf > deepof_experiments_DAG.pdf
Plot rule graph: snakemake --snakefile deepof_experiments.smk --forceall --rulegraph | dot -Tpdf > deepof_experiments_RULEGRAPH.pdf

"""

14
import os
15

16
outpath = "/u/lucasmir/DLC/DLC_autoencoders/DeepOF/deepof/logs/"
17
losses = ["ELBO"]#, "MMD", "ELBO+MMD"]
18
19
20
encodings = [4, 6, 8]#[2, 4, 6, 8, 10, 12, 14, 16]
cluster_numbers = [10, 15]#[1, 5, 10, 15, 20]
pheno_weights = [0.01, 0.1, 0.25, 0.5, 1, 2, 4, 10, 100]
21
22
23
24

rule deepof_experiments:
    input:
        expand(
25
            "/u/lucasmir/DLC/DLC_autoencoders/DeepOF/deepof/logs/dimension_and_loss_experiments/trained_weights/"
26
            "GMVAE_loss={loss}_encoding={encs}_k={k}_run_1_final_weights.h5",
27
28
            loss=losses,
            encs=encodings,
29
            k=cluster_numbers,
30
        ),
31
32
33
34
35
36
        expand(
            "/u/lucasmir/DLC/DLC_autoencoders/DeepOF/deepof/logs/pheno_classification_experiments/trained_weights/"
            "GMVAE_loss={loss}_encoding={encs}_k={k}_pheno={phenos}_run_1_final_weights.h5",
            loss=losses,
            encs=encodings,
            k=cluster_numbers,
37
            phenos=pheno_weights,
38
        )
39
40


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# rule coarse_hyperparameter_tuning:
#     input:
#         data_path="/u/lucasmir/DLC/DLC_models/deepof_single_topview/",
#     output:
#         trained_models=os.path.join(
#             outpath,
#             "coarse_hyperparameter_tuning/trained_weights/GMVAE_loss={loss}_encoding={encs}_run_1_final_weights.h5",
#         ),
#     shell:
#         "pipenv run python -m deepof.train_model "
#         "--train-path {input.data_path} "
#         "--val-num 25 "
#         "--components 10 "
#         "--input-type coords "
#         "--predictor 0 "
#         "--variational True "
#         "--loss {wildcards.loss} "
#         "--kl-warmup 20 "
#         "--mmd-warmup 20 "
#         "--encoding-size 2 "
#         "--batch-size 256 "
#         "--window-size 11 "
#         "--window-step 11 "
#         "--output-path {outpath}coarse_hyperparameter_tuning "
#         "--hyperparameter-tuning hyperband "
#         "--hpt-trials 3"
67

68
69
rule explore_encoding_dimension_and_loss_function:
    input:
70
        data_path=ancient("/u/lucasmir/DLC/DLC_models/deepof_single_topview/"),
71
    output:
72
        trained_models=os.path.join(
73
            outpath,
74
            "dimension_and_loss_experiments/trained_weights/GMVAE_loss={loss}_encoding={encs}_k={k}_run_1_final_weights.h5",
75
        ),
76
    shell:
77
78
        "pipenv run python -m deepof.train_model "
        "--train-path {input.data_path} "
79
        "--val-num 5 "
80
        "--components {wildcards.k} "
81
82
        "--input-type coords "
        "--predictor 0 "
lucas_miranda's avatar
lucas_miranda committed
83
        "--phenotype-classifier 0 "
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
        "--variational True "
        "--loss {wildcards.loss} "
        "--kl-warmup 20 "
        "--mmd-warmup 20 "
        "--montecarlo-kl 10 "
        "--encoding-size {wildcards.encs} "
        "--batch-size 256 "
        "--window-size 11 "
        "--window-step 11 "
        "--stability-check 3  "
        "--output-path {outpath}dimension_and_loss_experiments"


rule explore_phenotype_classification:
    input:
        data_path="/u/lucasmir/DLC/DLC_models/deepof_single_topview/",
    output:
        trained_models=os.path.join(
            outpath,
            "pheno_classification_experiments/trained_weights/GMVAE_loss={loss}_encoding={encs}_k={k}_pheno={phenos}_run_1_final_weights.h5",
        ),
    shell:
        "pipenv run python -m deepof.train_model "
        "--train-path {input.data_path} "
108
        "--val-num 5 "
109
110
111
        "--components {wildcards.k} "
        "--input-type coords "
        "--predictor 0 "
lucas_miranda's avatar
lucas_miranda committed
112
        "--phenotype-classifier {wildcards.phenos} "
113
114
        "--variational True "
        "--loss {wildcards.loss} "
115
116
        "--kl-warmup 20 "
        "--mmd-warmup 20 "
117
        "--montecarlo-kl 10 "
118
119
120
121
122
        "--encoding-size {wildcards.encs} "
        "--batch-size 256 "
        "--window-size 11 "
        "--window-step 11 "
        "--stability-check 3  "
123
        "--output-path {outpath}pheno_classification_experiments"