-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.nf
90 lines (77 loc) · 2.53 KB
/
main.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
import org.yaml.snakeyaml.Yaml
// Misc Parameters
params.VERBOSITY = 0
params.TRAITS_DATASET = "You need to provide a Traits dataset."
params.UKB_ENCODING_FILE = "NO_UKB_ENCODING_FILE"
params.CALL_THRESHOLD = 0.9
params.POSITIVITY_CONSTRAINT = 0.01
params.MAF_THRESHOLD = 0.01
params.COHORT = "UKB"
params.UKB_CONFIG = "${projectDir}/assets/ukbconfig.yaml"
params.UKB_WITHDRAWAL_LIST = "${projectDir}/assets/NO_WITHDRAWAL_LIST"
params.OUTDIR = "${launchDir}/results"
// Confounding adjustment by PCA
params.NB_PCS = 6
params.QC_FILE = "${projectDir}/assets/NO_QC_FILE"
params.LD_BLOCKS = "${projectDir}/assets/NO_LD_BLOCKS"
params.FLASHPCA_EXCLUSION_REGIONS = "${projectDir}/assets/exclusion_regions_hg19.txt"
// Estimands Generation
params.BATCH_SIZE = 50
// CUSTOM
params.ESTIMANDS_CONFIG = "NO_ESTIMANDS_CONFIG"
// SVP Parameters
params.SVP = false
params.GRM_NSPLITS = 100
params.NB_SVP_ESTIMATORS = 100
params.MAX_SVP_THRESHOLD = 0.9
params.ESTIMATOR_KEY = "1"
// TMLE Parameters
params.KEEP_IC = params.SVP == true ? true : false
params.PVAL_THRESHOLD = 0.05
params.TL_SAVE_EVERY = params.BATCH_SIZE
params.ESTIMATORS_CONFIG = "wtmle-ose--tunedxgboost"
// Simulations
params.TRAIN_RATIO = 6
params.SAMPLE_GA_HITS = true
params.GA_MAX_VARIANTS = 50
params.GA_DISTANCE_THRESHOLD = 1000000
params.GA_PVAL_THRESHOLD = 1e-5
params.GA_MAF_THRESHOLD = 0.01
params.N_REPEATS = 2
params.RNGS = 1..250
params.SAMPLE_SIZES = [500000]
params.GA_TRAIT_TABLE = "${projectDir}/assets/Traits_Table_GeneATLAS.csv"
params.MIN_FACTOR_LEVEL_OCCURENCES = 10
params.MAX_SAMPLING_ATTEMPTS = 1000
params.NSAMPLES_FOR_TRUTH = 1000000
include { GWAS } from './workflows/gwas.nf'
include { TARGENE } from './workflows/targene.nf'
include { PCA } from './workflows/pca.nf'
include { MAKE_DATASET } from './workflows/dataset.nf'
include { NULL_SIMULATION; REALISTIC_SIMULATION } from './workflows/simulations.nf'
def isGWAS(){
config = new Yaml().load(new FileReader(params.ESTIMANDS_CONFIG))
return config.type == 'gwas'
}
log.info """\
${workflow.manifest.name} v${workflow.manifest.version}
==========================
Cohort Type : ${params.COHORT}
--
run as : ${workflow.commandLine}
started at : ${workflow.start}
config files : ${workflow.configFiles}
container : ${workflow.containerEngine}
==========================
"""
.stripIndent()
workflow {
if (isGWAS()) {
GWAS()
}
else {
TARGENE()
}
}