nf-core / rnasplice

rnasplice is a bioinformatics pipeline for RNA-seq alternative splicing analysis
https://nf-co.re/rnasplice
MIT License
44 stars 25 forks source link

ERROR ~ No such variable: Exception evaluating property 'out' for nextflow.script.ChannelOut #70

Closed amizeranschi closed 1 year ago

amizeranschi commented 1 year ago

Description of the bug

Hello,

I'm getting the error from the title when testing the pipeline, starting from BAM files produced by nf-core/rnaseq. Tested with the latest dev version and Nextflow 23.04.0. This the the output:

------------------------------------------------------
[-        ] process > NFCORE_RNASPLICE:RNASPLICE:PREPARE_GENOME:GUNZIP_GTF             -
[-        ] process > NFCORE_RNASPLICE:RNASPLICE:PREPARE_GENOME:GTF_GENE_FILTER        -
[-        ] process > NFCORE_RNASPLICE:RNASPLICE:PREPARE_GENOME:MAKE_TRANSCRIPTS_FASTA -
[-        ] process > NFCORE_RNASPLICE:RNASPLICE:PREPARE_GENOME:CUSTOM_GETCHROMSIZES   -
ERROR ~ No such variable: Exception evaluating property 'out' for nextflow.script.ChannelOut, Reason: groovy.lang.MissingPropertyException: No such property: out for class: groovyx.gpars.dataflow.DataflowBroadcast

 -- Check script '/data/share/.nextflow/assets/nf-core/rnasplice/./workflows/rnasplice.nf' at line: 175 or see '.nextflow.log' file for more details

The last printed message seems to refer to this part of the code: https://github.com/nf-core/rnasplice/blob/dev/workflows/rnasplice.nf#L175-L179

I am attaching the full log below.

Command used and terminal output

No response

Relevant files

nextflow.log

System information

No response

jma1991 commented 1 year ago

Hi @amizeranschi

Please could you provide the custom config used in the command, along with the sample and contrast sheets?

amizeranschi commented 1 year ago

Hi, sure. This is the sample sheet:

sample,condition,genome_bam
K562_TARDBP_TREATED_REP1,K562_TARDBP_TREATED,test-rnaseq/star_salmon/K562_TARDBP_TREATED_REP1.markdup.sorted.bam
K562_TARDBP_TREATED_REP2,K562_TARDBP_TREATED,test-rnaseq/star_salmon/K562_TARDBP_TREATED_REP2.markdup.sorted.bam
K562_TARDBP_CONTROL_REP1,K562_TARDBP_CONTROL,test-rnaseq/star_salmon/K562_TARDBP_CONTROL_REP1.markdup.sorted.bam
K562_TARDBP_CONTROL_REP2,K562_TARDBP_CONTROL,test-rnaseq/star_salmon/K562_TARDBP_CONTROL_REP2.markdup.sorted.bam
HepG2_TARDBP_TREATED_REP1,HepG2_TARDBP_TREATED,test-rnaseq/star_salmon/HepG2_TARDBP_TREATED_REP1.markdup.sorted.bam
HepG2_TARDBP_TREATED_REP2,HepG2_TARDBP_TREATED,test-rnaseq/star_salmon/HepG2_TARDBP_TREATED_REP2.markdup.sorted.bam
HepG2_TARDBP_CONTROL_REP1,HepG2_TARDBP_CONTROL,test-rnaseq/star_salmon/HepG2_TARDBP_CONTROL_REP1.markdup.sorted.bam
HepG2_TARDBP_CONTROL_REP2,HepG2_TARDBP_CONTROL,test-rnaseq/star_salmon/HepG2_TARDBP_CONTROL_REP2.markdup.sorted.bam

This is the contrast sheet:

contrast,treatment,control
K562_TARDBP_TREATED_CONTROL,K562_TARDBP_TREATED,K562_TARDBP_CONTROL
HepG2_TARDBP_TREATED_CONTROL,K562_TARDBP_TREATED,HepG2_TARDBP_CONTROL

And this is the custom.config. I only use it here to enforce running on HTCondor. Everything else in there so far is relevant to nf-core/sarek.

// Function to ensure that resource requirements dont go beyond
// a maximum limit

process.executor = 'condor'

env.TILEDB_DISABLE_FILE_LOCKING='1'

def check_max(obj, type) {
    if (type == 'memory') {
        try {
            if (obj.compareTo(params.max_memory as nextflow.util.MemoryUnit) == 1)
                return params.max_memory as nextflow.util.MemoryUnit
            else
                return obj
        } catch (all) {
            println "   ### ERROR ###   Max memory '${params.max_memory}' is not valid! Using default value: $obj"
            return obj
        }
    } else if (type == 'time') {
        try {
            if (obj.compareTo(params.max_time as nextflow.util.Duration) == 1)
                return params.max_time as nextflow.util.Duration
            else
                return obj
        } catch (all) {
            println "   ### ERROR ###   Max time '${params.max_time}' is not valid! Using default value: $obj"
            return obj
        }
    } else if (type == 'cpus') {
        try {
            return Math.min( obj, params.max_cpus as int )
        } catch (all) {d
            println "   ### ERROR ###   Max cpus '${params.max_cpus}' is not valid! Using default value: $obj"
            return obj
        }
    }
}

process {
    withName:'INDEX_CRAM|INDEX_MARKDUPLICATES|INDEX_MERGE_BAM|SAMTOOLS_INDEX|GATK4_APPLYBQSR|GATK4_BASERECALIBRATOR'{
        cpus            = { check_max( 1 * task.attempt, 'cpus' ) }
        memory          = { check_max( 3.GB * task.attempt, 'memory' ) }
        time            = { check_max( 8.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'BCFTOOLS_SORT|BCFTOOLS_STATS|SAMTOOLS_STATS|SAMTOOLS_MERGE|MERGE_BAM|INDEX_MERGE_BAM|GATK4_VARIANTRECALIBRATOR|GATK4_APPLYVQSR_INDEL|GATK4_APPLYVQSR_SNP|GATK4_APPLYVQSR|VARIANTRECALIBRATOR_INDEL|VARIANTRECALIBRATOR_SNP|TABIX_TABIX|TABIX|TABIX_BGZIPTABIX|TABIX_BGZIP_TIDDIT_SV'{
        cpus            = { check_max( 2 * task.attempt, 'cpus' ) }
        memory          = { check_max( 7.GB * task.attempt, 'memory' ) }
        time            = { check_max( 8.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'TABIX_BGZIPTABIX_INTERVAL_SPLIT|GATK4_APPLYBQSR_SPARK|GATK4_BASERECALIBRATOR_SPARK|GATK4_GATHERBQSRREPORTS|GATK4_GENOTYPEGVCFS'{
        cpus            = { check_max( 2 * task.attempt, 'cpus' ) }
        memory          = { check_max( 7.GB * task.attempt, 'memory' ) }
        time            = { check_max( 24.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'GATK4_MERGEVCFS|MERGE_GENOTYPEGVCFS|MERGE_VQSR|MERGE_MANTA_SMALL_INDELS|MERGE_MANTA_SV|MERGE_MANTA_DIPLOID|BWA_INDEX|BWAMEM2_INDEX'{
        cpus            = { check_max( 2 * task.attempt, 'cpus' ) }
        memory          = { check_max( 128.GB * task.attempt, 'memory' ) }
        time            = { check_max( 48.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'FASTQC|MOSDEPTH|GATK4_HAPLOTYPECALLER|GATK4_GENOMICSDBIMPORT|CNVKIT_BATCH'{
        cpus            = { check_max( 4 * task.attempt, 'cpus' ) }
        memory          = { check_max( 15.GB * task.attempt, 'memory' ) }
        time            = { check_max( 12.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'MANTA_GERMLINE|TIDDIT_SV'{
        cpus            = { check_max( 8 * task.attempt, 'cpus' ) }
        memory          = { check_max( 30.GB * task.attempt, 'memory' ) }
        time            = { check_max( 24.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'FASTP|GATK4_MARKDUPLICATES|ENSEMBLVEP'{
        cpus            = { check_max( 8 * task.attempt, 'cpus' ) }
        memory          = { check_max( 30.GB * task.attempt, 'memory' ) }
        time            = { check_max( 48.h * task.attempt, 'time' ) }
    }
}

process {
    withName:'BWAMEM1_MEM|BWAMEM2_MEM|GATK4_MARKDUPLICATES_SPARK'{
        cpus            = { check_max( 16 * task.attempt, 'cpus' ) }
        memory          = { check_max( 60.GB * task.attempt, 'memory' ) }
        time            = { check_max( 24.h * task.attempt, 'time' ) }
    }
}

process {
     withName:'CNNSCOREVARIANTS'{
         time = 336.h
     }
}

trace {
    enabled = true
    fields = 'task_id,hash,native_id,name,status,exit,submit,start,complete,duration,realtime,%cpu,peak_rss,peak_vmem,rchar,wchar'
}
jma1991 commented 1 year ago

Thanks @amizeranschi, will get back to you after reviewing

amizeranschi commented 1 year ago

Hi! Is there any update on this issue? It would be great to have this pipeline working from BAM files produced with nf-core/rnaseq, in order to avoid having to map reads a second time to the reference genome.

jma1991 commented 1 year ago

Hi @amizeranschi ,

We've just pushed a bunch of changes to dev, and this should have fixed your issue. Remember to force nextflow download the latest changes, rather than a cache of the one you currently have on your computer. Let us know how you get on.

amizeranschi commented 1 year ago

Thanks @jma1991 for letting me know. I tried testing again and now I'm running into the issue described here: https://github.com/nf-core/rnasplice/issues/72

Could you guys also implement the fixes proposed there by @dkoppstein and @valentinoruggieri?

jma1991 commented 1 year ago

Good that your issue has been solved. I will implement the fixes in #72 right now.