Skip to content

Commit

Permalink
Merge pull request #22 from Joon-Klaps/21-trinity-fails-when-dealing-…
Browse files Browse the repository at this point in the history
…with-very-few-reads

Catchin trinity errors
  • Loading branch information
Joon-Klaps authored Sep 28, 2023
2 parents deea58c + b789faa commit 9a594c0
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 19 deletions.
6 changes: 5 additions & 1 deletion conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

variant_caller = params.variant_caller
intermediate_variant_caller = params.intermediate_variant_caller
assemblers = params.assemblers ? params.assemblers.split(',').collect{ it.trim().toLowerCase() } : []

process {

Expand Down Expand Up @@ -219,7 +220,10 @@ process {

withName: TRINITY {
cpus = { check_max( 12 * task.attempt, 'cpus' ) } // defeault was 1
errorStrategy = { task.exitStatus == 2 ? 'ignore' : 'retry' } // can fail with very few reads
errorStrategy =
'megahit' in assemblers || 'spades' in assemblers ?
{ task.exitStatus == 2 ? 'ignore' : 'retry' } : // can fail with very few reads see issue #21
{'retry'}
ext.args = "--min_contig_length ${params.min_contig_size} --NO_SEQTK"
publishDir = [
path: { "${params.outdir}/assembly/assemblers/trinity/" },
Expand Down
31 changes: 13 additions & 18 deletions subworkflows/local/fastq_spades_trinity_megahit.nf
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@ workflow FASTQ_SPADES_TRINITY_MEGAHIT {

main:
ch_versions = Channel.empty()
ch_scaffolds = reads.map{meta,reads -> [meta]}
ch_scaffolds_spades = Channel.empty()
ch_scaffolds_trinity = Channel.empty()
ch_scaffolds_megahit = Channel.empty()
ch_scaffolds = Channel.empty()

// SPADES
if ('spades' in assemblers) {
Expand All @@ -31,46 +28,44 @@ workflow FASTQ_SPADES_TRINITY_MEGAHIT {
)

ch_versions = ch_versions.mix(SPADES.out.versions.first())
ch_scaffolds_spades = SPADES.out.scaffolds
ch_scaffolds = ch_scaffolds.join(ch_scaffolds_spades,remainder: true)
ch_scaffolds = ch_scaffolds.mix( SPADES.out.scaffolds)
}

// TRINITY
if ('trinity' in assemblers) {
TRINITY(reads)

TRINITY
.out
.transcript_fasta
.filter{ meta, contigs -> contigs != null } // filter out empty contigs check issue #21
.set{ch_scaffolds_trinity}

ch_versions = ch_versions.mix(TRINITY.out.versions.first())
ch_scaffolds_trinity = TRINITY.out.transcript_fasta
ch_scaffolds = ch_scaffolds.join(ch_scaffolds_trinity,remainder: true)
ch_scaffolds = ch_scaffolds.mix(ch_scaffolds_trinity)
}

// MEGAHIT
if ('megahit' in assemblers) {
MEGAHIT(reads)

ch_versions = ch_versions.mix(MEGAHIT.out.versions.first())
ch_scaffolds_megahit = MEGAHIT.out.contigs
ch_scaffolds = ch_scaffolds.join(ch_scaffolds_megahit,remainder: true)
ch_scaffolds = ch_scaffolds.mix(MEGAHIT.out.contigs)
}

// ch_scaffolds, go from [meta,scaffold1,scaffold2] to [meta,[scaffolds]]
ch_scaffolds
.map{
it ->
[it[0],it[1..-1]]
}
.groupTuple()
.set{ch_scaffolds_combined}

ch_scaffolds_combined.view()

CAT_CAT(ch_scaffolds_combined)
ch_versions = CAT_CAT.out.versions.first()



emit:
scaffolds = CAT_CAT.out.file_out // channel: [ val(meta), [ scaffolds] ]
scaffolds_spades = ch_scaffolds_spades // channel: [ val(meta), [ scaffolds] ]
ch_scaffolds_trinity = ch_scaffolds_trinity // channel: [ val(meta), [ scaffolds] ]
ch_scaffolds_megahit = ch_scaffolds_megahit // channel: [ val(meta), [ scaffolds] ]

versions = ch_versions // channel: [ versions.yml ]
// there are not any MQC files available for spades, trinity and megahit
Expand Down

0 comments on commit 9a594c0

Please sign in to comment.