Skip to content

Commit da16547

Browse files
committed
make possible to select several tools
1 parent 54dcc84 commit da16547

File tree

1 file changed

+35
-20
lines changed

1 file changed

+35
-20
lines changed

rain.nf

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,28 @@ params.aligner = 'hisat2'
6565
log.info header()
6666
if (params.help) { exit 0, helpMSG() }
6767

68+
69+
// Params check
70+
// Check aligner params. Can be a list (comma or space separated)
71+
def edit_site_tool_list=[]
72+
if( !params.edit_site_tool ){
73+
exit 1, "Error: <edit_site_tool> parameter is empty, please provide a aligner(s) among this list ${align_tools}.\n"
74+
} else {
75+
str_list = params.edit_site_tool.tokenize(',')
76+
str_list.each {
77+
str_list2 = it.tokenize(' ')
78+
str_list2.each {
79+
if ( ! (it.toLowerCase() in edit_site_tools) ){
80+
exit 1, "Error: <${it}> tool not acepted, please provide editing site tool among this list ${align_tools}.\n"
81+
}
82+
else{
83+
edit_site_tool_list.add(it.toLowerCase())
84+
}
85+
}
86+
}
87+
}
88+
89+
6890
// Help Message
6991
def helpMSG() {
7092
log.info """
@@ -116,6 +138,7 @@ General Parameters
116138
reads : ${params.reads}
117139
genome : ${params.genome}
118140
strandedness : ${params.strandedness}
141+
read_type : ${params.read_type}
119142
outdir : ${params.outdir}
120143
121144
Alignment Parameters
@@ -126,6 +149,7 @@ Alignment Parameters
126149
Edited Site Detection Parameters
127150
edit_site_tool : ${params.edit_site_tool}
128151
edit_threshold : ${params.edit_threshold}
152+
region : ${params.region}
129153
130154
Report Parameters
131155
MultiQC parameters
@@ -151,17 +175,12 @@ include {reditools3} from "./modules/reditools3.nf"
151175
include {jacusa2} from "./modules/jacusa2.nf"
152176
include {sapin} from "./modules/sapin.nf"
153177
include {normalize_gxf} from "./modules/agat.nf"
154-
include {pluviometer} from "./modules/pluviometer.nf"
178+
include {pluviometer as pluviometer_jacusa2; pluviometer as pluviometer_reditools2; pluviometer as pluviometer_reditools3; pluviometer as pluviometer_sapin} from "./modules/pluviometer.nf"
155179

156180
//*************************************************
157181
// STEP 3 - Deal with parameters
158182
//*************************************************
159183

160-
// Check edit site tool params. Does not accept list yet, but validates input.
161-
if ( ! (params.edit_site_tool in edit_site_tools) ){
162-
exit 1, "Error: <${it}> edit site tool not accepted, please provide a tool in this list ${edit_site_tools}.\n"
163-
}
164-
165184
// check RAIN profile - /!\ profile must be sync with AliNe profile as much as possible
166185
if (
167186
workflow.containerEngine == "singularity" ||
@@ -580,26 +599,22 @@ workflow {
580599
samtools_index(tuple_sample_bam_processed)
581600

582601
// Select site detection tool
583-
switch (params.edit_site_tool) {
584-
case "jacusa2":
602+
if ( "jacusa2" in edit_site_tool_list ){
585603
// Create a fasta index file of the reference genome
586604
samtools_fasta_index(genome.collect())
587605
jacusa2(samtools_index.out.tuple_sample_bam_bamindex, samtools_fasta_index.out.tuple_fasta_fastaindex.collect())
588-
pluviometer(jacusa2.out.tuple_sample_jacusa2_table, clean_annotation, "jacusa2")
589-
break
590-
case "sapin":
606+
pluviometer_jacusa2(jacusa2.out.tuple_sample_jacusa2_table, clean_annotation.collect(), "jacusa2")
607+
}
608+
if ( "sapin" in edit_site_tool_list ){
591609
sapin(tuple_sample_bam_processed, genome.collect())
592-
break
593-
case "reditools2":
610+
}
611+
if ( "reditools2" in edit_site_tool_list ){
594612
reditools2(samtools_index.out.tuple_sample_bam_bamindex, genome.collect(), params.region)
595-
pluviometer(reditools2.out.tuple_sample_serial_table, clean_annotation, "reditools2")
596-
break
597-
case "reditools3":
613+
pluviometer_reditools2(reditools2.out.tuple_sample_serial_table, clean_annotation.collect(), "reditools2")
614+
}
615+
if ( "reditools3" in edit_site_tool_list ){
598616
reditools3(samtools_index.out.tuple_sample_bam_bamindex, genome.collect())
599-
pluviometer(reditools3.out.tuple_sample_serial_table, clean_annotation, "reditools3")
600-
break
601-
default:
602-
exit(1, "Wrong edit site tool was passed")
617+
pluviometer_reditools3(reditools3.out.tuple_sample_serial_table, clean_annotation.collect(), "reditools3")
603618
}
604619

605620
// ------------------- MULTIQC -----------------

0 commit comments

Comments
 (0)