Entering edit mode
                    3.2 years ago
        rohitsatyam102
        
    
        ▴
    
    940
    Hi Everyone. I was trying to add help section to my nextflow script as given below:
nextflow.enable.dsl=2
params.ref = "resources/sequence.fasta"
params.outdir="results/00_indexes"
params.runidx="bwa"
params.help = false    
// Help Section
log.info """
Step 0: Indexing
=============================================
Usage:
    nextflow run idx.nf --ref ${params.ref} --outdir ${params.outdir} --runidx ${params.runidx}
Input:
    * --ref: Path of reference file. Defult [${params.ref}]
    * --outdir: name of output directory. Default [${params.outdir}]
    * --runidx: Name of tool to run indexing. Valid values are "bwa" and "dragmap". Default [${params.runidx}]
"""
process DRAGMAPINDEX{
    publishDir "$params.outdir", mode: 'copy'
    input:
    path (fasta)
    output:
    path "*"
    script:
    """
    mkdir dragmapidx
    cp $fasta dragmapidx/
    samtools faidx dragmapidx/$fasta 
    gatk CreateSequenceDictionary -R dragmapidx/$fasta  
    dragen-os --build-hash-table true --ht-reference dragmapidx/$fasta  --output-directory dragmapidx --ht-num-threads 20
    gatk ComposeSTRTableFile -R dragmapidx/$fasta -O dragmapidx/str_table.tsv
    """
}
process BWAINDEX{
    publishDir "$params.outdir", mode: 'copy'
    input:
    path (fasta)
    output:
    path "*"
    script:
    """
    mkdir bwaidx
    cp $fasta bwaidx/
    bwa index bwaidx/$fasta
    gatk CreateSequenceDictionary -R bwaidx/$fasta
    samtools faidx bwaidx/$fasta
    """
}
fa_ch=Channel.fromPath(params.ref, checkIfExists: true)
if (params.help) {
    log.info 'This is test pipeline'
    exit 0
}
workflow {
if ("${params.runidx}" == "bwa"){
 BWAINDEX(fa_ch)
} else if ("${params.runidx}" == "dragmap"){
  DRAGMAPINDEX(fa_ch)
  } else {
  exit 1,  "Invalid argument passed to --runidx"
  }
}
This  pipeline behaves nicely when I run it with nextflow run idx.nf --help however it still prints the help message when I run nextflow run idx.nf. That is unnecessary printing of help section.
N E X T F L O W  ~  version 21.10.6
Launching `idx.nf` [tender_monod] - revision: 5342c1bda0
Step 0: Indexing
=============================================
Usage:
    nextflow run idx.nf --ref resources/sequence.fasta --outdir results/00_indexes --runidx bwa
Input:
    * --ref: Path of reference file. Defult [resources/sequence.fasta]
    * --outdir: name of output directory. Default [results/00_indexes]
    * --runidx: Name of tool to run indexing. Valid values are "bwa" and "dragmap". Default [bwa]
executor >  local (1)
[ce/99a3c5] process > BWAINDEX (1) [100%] 1 of 1 ✔
                    
                
                
Keeping the help statement explicitly within
ifconditional block worked.