annotate 0.5.0/modules/salmon/quant/main.nf @ 0:97cd2f532efe

planemo upload
author kkonganti
date Mon, 31 Mar 2025 14:50:40 -0400
parents
children
rev   line source
kkonganti@0 1 process SALMON_QUANT {
kkonganti@0 2 tag "$meta.id"
kkonganti@0 3 label "process_micro"
kkonganti@0 4
kkonganti@0 5 module (params.enable_module ? "${params.swmodulepath}${params.fs}salmon${params.fs}1.10.0" : null)
kkonganti@0 6 conda (params.enable_conda ? 'conda-forge::libgcc-ng bioconda::salmon=1.10.1' : null)
kkonganti@0 7 container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
kkonganti@0 8 'https://depot.galaxyproject.org/singularity/salmon:1.10.1--h7e5ed60_1' :
kkonganti@0 9 'quay.io/biocontainers/salmon:1.10.1--h7e5ed60_1' }"
kkonganti@0 10 input:
kkonganti@0 11 tuple val(meta), path(reads_or_bam), path(index_or_tr_fasta)
kkonganti@0 12
kkonganti@0 13 output:
kkonganti@0 14 tuple val(meta), path("${meta.id}_salmon_res"), emit: results
kkonganti@0 15 path "versions.yml" , emit: versions
kkonganti@0 16
kkonganti@0 17 when:
kkonganti@0 18 task.ext.when == null || task.ext.when
kkonganti@0 19
kkonganti@0 20 script:
kkonganti@0 21 def args = task.ext.args ?: ''
kkonganti@0 22 def prefix = task.ext.prefix ?: "${meta.id}_salmon_res"
kkonganti@0 23 def reference = "--index $index_or_tr_fasta"
kkonganti@0 24 def lib_type = (meta.salmon_lib_type ?: '')
kkonganti@0 25 def alignment_mode = (meta.salmon_alignment_mode ?: '')
kkonganti@0 26 def gtf = (meta.salmon_gtf ? "--geneMap ${meta.salmon_gtf}" : '')
kkonganti@0 27 def input_reads =(meta.single_end || !reads_or_bam[1] ? "-r $reads_or_bam" : "-1 ${reads_or_bam[0]} -2 ${reads_or_bam[1]}")
kkonganti@0 28
kkonganti@0 29 // Use path(reads_or_bam) to point to BAM and path(index_or_tr_fasta) to point to transcript fasta
kkonganti@0 30 // if using salmon DSL2 module in alignment-based mode.
kkonganti@0 31 // By default, this module will be run in selective-alignment-based mode of salmon.
kkonganti@0 32 if (alignment_mode) {
kkonganti@0 33 reference = "-t $index_or_tr_fasta"
kkonganti@0 34 input_reads = "-a $reads_or_bam"
kkonganti@0 35 }
kkonganti@0 36
kkonganti@0 37 def strandedness_opts = [
kkonganti@0 38 'A', 'U', 'SF', 'SR',
kkonganti@0 39 'IS', 'IU' , 'ISF', 'ISR',
kkonganti@0 40 'OS', 'OU' , 'OSF', 'OSR',
kkonganti@0 41 'MS', 'MU' , 'MSF', 'MSR'
kkonganti@0 42 ]
kkonganti@0 43
kkonganti@0 44 def strandedness = 'A'
kkonganti@0 45
kkonganti@0 46 if (lib_type) {
kkonganti@0 47 if (strandedness_opts.contains(lib_type)) {
kkonganti@0 48 strandedness = lib_type
kkonganti@0 49 } else {
kkonganti@0 50 log.info "[Salmon Quant] Invalid library type specified '--libType=${lib_type}', defaulting to auto-detection with '--libType=A'."
kkonganti@0 51 }
kkonganti@0 52 } else {
kkonganti@0 53 strandedness = meta.single_end ? 'U' : 'IU'
kkonganti@0 54 if (meta.strandedness == 'forward') {
kkonganti@0 55 strandedness = meta.single_end ? 'SF' : 'ISF'
kkonganti@0 56 } else if (meta.strandedness == 'reverse') {
kkonganti@0 57 strandedness = meta.single_end ? 'SR' : 'ISR'
kkonganti@0 58 }
kkonganti@0 59 }
kkonganti@0 60 """
kkonganti@0 61 salmon quant \\
kkonganti@0 62 --threads $task.cpus \\
kkonganti@0 63 --libType=$strandedness \\
kkonganti@0 64 $gtf \\
kkonganti@0 65 $args \\
kkonganti@0 66 -o $prefix \\
kkonganti@0 67 $reference \\
kkonganti@0 68 $input_reads
kkonganti@0 69
kkonganti@0 70 cat <<-END_VERSIONS > versions.yml
kkonganti@0 71 "${task.process}":
kkonganti@0 72 salmon: \$(echo \$(salmon --version) | sed -e "s/salmon //g")
kkonganti@0 73 END_VERSIONS
kkonganti@0 74 """
kkonganti@0 75 }