-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdim_scale_ex_HSP.nf
61 lines (53 loc) · 1.49 KB
/
dim_scale_ex_HSP.nf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
include { crossProduct; collectCSVs; setupPigeons; head; pow; deliverables; findDataDim; estimateMemoryMinESS } from './utils.nf'
params.dryRun = true
def variables = [
dim: (1..12).collect{pow(2,it)},
size: ["nothing"],
seed: (1..10),
data: ["colon","leukemia","ALLAML","Prostate_GE","madelon"],
sampler: ["CGGibbs","NUTS_Stan"],
model: ["logistic"],
prior: ["horseshoe"]
]
dim_string = [
colon: "2000",
ALLAML: "7129",
leukemia: "7070",
Prostate_GE: "5966",
BASEHOCK: "4862",
madelon: "500",
RELATHE: "4322",
PCMAC: "3289",
arcene: "10000",
gisette: "5000",
GLI_85: "22283",
SMK_CAN_187: "19993"
]
// global variables
ESS_threshold = params.dryRun ? 0 : 100
// local variables
def julia_env_dir = file("julia-environment")
def julia_depot_dir = file(".depot")
def deliv = deliverables(workflow)
workflow {
args = crossProduct(variables, params.dryRun)
julia_env = setupPigeons(julia_depot_dir, julia_env_dir)
agg_path = runSimulation(julia_depot_dir, julia_env, args, dim_string) | collectCSVs
}
process runSimulation {
memory { estimateMemoryMinESS(arg.dim.toInteger()*2, ESS_threshold) * Math.pow(2, task.attempt-1) }
time { 100.hour }
cpus 1
errorStrategy 'ignore'
input:
env JULIA_DEPOT_PATH
path julia_env
val arg
val dim_string
val n_samples_string
//val data_dim
output:
tuple val(arg), path('csvs')
script:
template 'scale_main.jl'
}