Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mirtrace casting error - with a fix #327

Closed
seiboldfyr opened this issue Mar 11, 2024 · 5 comments
Closed

mirtrace casting error - with a fix #327

seiboldfyr opened this issue Mar 11, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@seiboldfyr
Copy link

seiboldfyr commented Mar 11, 2024

Description of the bug

Our pipeline errors out with a casting error when entering mirtrace in version 2.3 (and dev version) of the smRNAseq pipeline. It works fine with only fastp adapter trimming, but when we use the UMI tools and fastp we consistently get the java type casting bug.

The fix is: edit the smrnaseq/modules/local/mirtrace.nf file, line 10. The pipeline uses path(reads), but when that's changed to val(reads) the pipeline completes without the casting bug. Verifies that it removes UMIs and adapters as expected as well.

Command used and terminal output

input: 

nextflow run nf-core/smrnaseq -profile docker -r dev -c ${inputConfig} --input ${inputFile} --outdir '.' -work-dir './work/' --genome GRCh38 --mirtrace_species 'hsa' --with_umi true --umitools_extract_method regex --umitools_bc_pattern '.+(?P<discard_1>AACTGTAGGCACCATCAAT){s<=2}(?P<umi_1>.{12})(?P<discard_2>.*)' --save_umi_intermeds true --protocol 'qiaseq' --fastp_min_length 15


output: 

ERROR ~ Error executing process > 'NFCORE_SMRNASEQ:MIRTRACE:MIRTRACE_RUN (1)'

Caused by:
  Cannot cast object 'qiaseq_Adeptlinear.fastp.fastq.gz' with class 'nextflow.processor.TaskPath' to class 'java.util.List' -- Check script '/home/fyrseq/.nextflow/assets/nf-core/smrnaseq/./workflows/../subworkflows/local/../../modules/local/mirtrace.nf' at line: 28

Source block:
  def primer = adapter ? "--adapter ${adapter}" : ""
  def protocol = params.protocol == 'custom' ? '' : "--protocol $params.protocol"
  def java_mem = ''
  if(task.memory){
          tmem = task.memory.toBytes()
          java_mem = "-Xms${tmem} -Xmx${tmem}"
      }
  def config_lines = [ids,reads]
      .transpose()
      .collect({ id, path -> "echo '${path},${id}' >> mirtrace_config" })

Relevant files

nextflow.log

System information

  • smRNAseq version dev (also tested with 2.3.0)
  • Nextflow version: 23.10.1.5891
  • Java version: openjdk version "11.0.22" 2024-01-16
  • Operating system: Linux
  • Bash version: GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
@apeltzer
Copy link
Member

tuple val(adapter), val(ids), path(reads)

I can't find the issue here...?

@seiboldfyr
Copy link
Author

Ah sorry, I switched the words! Meant to say that path(reads) errors, but val(reads) works. Just corrected my post.

@apeltzer
Copy link
Member

Does that then work for multiple samples too?

@seiboldfyr
Copy link
Author

Yes, we ran it on a set of 4 Qiaseq samples

@apeltzer
Copy link
Member

Please run with -r dev or soon -r 2.3.1 - this should be fine then

@apeltzer apeltzer mentioned this issue Apr 3, 2024
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants