22// A subworkflow to score and rank variants.
33//
44
5- include { GENMOD_ANNOTATE } from ' ../../modules/nf-core/genmod/annotate/main'
6- include { GENMOD_MODELS } from ' ../../modules/nf-core/genmod/models/main'
7- include { GENMOD_SCORE } from ' ../../modules/nf-core/genmod/score/main'
8- include { GENMOD_COMPOUND } from ' ../../modules/nf-core/genmod/compound/main'
9- include { BCFTOOLS_SORT } from ' ../../modules/nf-core/bcftools/sort/main'
10- include { TABIX_BGZIP } from ' ../../modules/nf-core/tabix/bgzip/main'
11- include { TABIX_TABIX } from ' ../../modules/nf-core/tabix/tabix/main'
5+ include { GENMOD_ANNOTATE } from ' ../../modules/nf-core/genmod/annotate/main'
6+ include { GENMOD_MODELS } from ' ../../modules/nf-core/genmod/models/main'
7+ include { GENMOD_SCORE } from ' ../../modules/nf-core/genmod/score/main'
8+ include { GENMOD_SCORE as GENMOD_SCORE_FOR_GICAM } from ' ../../modules/nf-core/genmod/score/main'
9+ include { GENMOD_COMPOUND } from ' ../../modules/nf-core/genmod/compound/main'
10+ include { MIVMIR_INFER } from ' ../../modules/local/mivmir/main'
11+ include { GICAM_INFER } from ' ../../modules/local/gicam/main'
12+ include { BCFTOOLS_SORT } from ' ../../modules/nf-core/bcftools/sort/main'
13+ include { TABIX_BGZIP } from ' ../../modules/nf-core/tabix/bgzip/main'
14+ include { TABIX_BGZIP as TABIX_BGZIP_GENMOD_GICAM } from ' ../../modules/nf-core/tabix/bgzip/main'
15+ include { TABIX_BGZIPTABIX as TABIX_BGZIPTABIX_GICAM } from ' ../../modules/nf-core/tabix/bgziptabix/main'
16+ include { TABIX_TABIX } from ' ../../modules/nf-core/tabix/tabix/main'
17+ include { BCFTOOLS_ANNOTATE as BCFTOOLS_MERGE_GENMOD_GICAM } from ' ../../modules/nf-core/bcftools/annotate/main'
1218
1319workflow RANK_VARIANTS {
1420
1521 take :
16- ch_vcf // channel: [mandatory] [ val(meta), path(vcf) ]
17- ch_pedfile // channel: [mandatory] [ path(ped) ]
18- ch_reduced_penetrance // channel: [mandatory] [ path(pentrance) ]
19- ch_score_config // channel: [mandatory] [ path(ini) ]
22+ ch_vcf // channel: [mandatory] [ val(meta), path(vcf) ]
23+ ch_pedfile // channel: [mandatory] [ path(ped) ]
24+ ch_reduced_penetrance // channel: [mandatory] [ path(pentrance) ]
25+ ch_score_config // channel: [mandatory] [ path(ini) ]
26+ ch_genmod_gicam_score_config // channel: [mandatory] [ path(ini) ]
27+ rank_with_mivmir_gicam // value
2028
2129 main :
2230 ch_versions = Channel . empty()
@@ -31,13 +39,34 @@ workflow RANK_VARIANTS {
3139
3240 GENMOD_SCORE (ch_score_in, ch_score_config)
3341
34- GENMOD_COMPOUND (GENMOD_SCORE . out. vcf)
35-
36- BCFTOOLS_SORT (GENMOD_COMPOUND . out. vcf) // SV file needs to be sorted before indexing
42+ // Run MIVMIR - GICAM scoring (not supported for MT SNVs and SVs)
43+ if (rank_with_mivmir_gicam) {
44+ GENMOD_SCORE_FOR_GICAM (ch_score_in, ch_genmod_gicam_score_config)
45+ MIVMIR_INFER (GENMOD_SCORE_FOR_GICAM . out. vcf)
46+ GICAM_INFER (MIVMIR_INFER . out. vcf)
47+ TABIX_BGZIPTABIX_GICAM (GICAM_INFER . out. vcf)
48+ }
3749
50+ GENMOD_COMPOUND (GENMOD_SCORE . out. vcf)
3851 TABIX_BGZIP (GENMOD_COMPOUND . out. vcf) // run only for SNVs
3952
40- ch_vcf = TABIX_BGZIP . out. output. mix(BCFTOOLS_SORT . out. vcf)
53+ // Merge Genmod and MIVMIR-GICAM scores
54+ if (rank_with_mivmir_gicam) {
55+ TABIX_BGZIP . out. output
56+ .join(TABIX_BGZIPTABIX_GICAM . out. gz_tbi, failOnMismatch : true )
57+ .map {meta, vcf_genmod, vcf_gicam, vcf_index_gicam -> return [ meta, vcf_genmod, [], vcf_gicam, vcf_index_gicam ]}
58+ .set {ch_merge_genmod_gicam}
59+ BCFTOOLS_MERGE_GENMOD_GICAM (ch_merge_genmod_gicam, [])
60+ TABIX_BGZIP_GENMOD_GICAM (BCFTOOLS_MERGE_GENMOD_GICAM . out. vcf)
61+ }
62+
63+ BCFTOOLS_SORT (GENMOD_COMPOUND . out. vcf) // SV file needs to be sorted before indexing
64+ // Mix SNVs and SVs
65+ if (rank_with_mivmir_gicam) {
66+ ch_vcf = TABIX_BGZIP_GENMOD_GICAM . out. output. mix(BCFTOOLS_SORT . out. vcf)
67+ } else {
68+ ch_vcf = TABIX_BGZIP . out. output. mix(BCFTOOLS_SORT . out. vcf)
69+ }
4170
4271 TABIX_TABIX (ch_vcf)
4372
0 commit comments