Update: July 26, 2019
This section of the forum is now closed; we are working on a new support model for WDL that we will share here shortly. For Cromwell-specific issues, see the Cromwell docs and post questions on Github.

Not able to evaluate output

While putting together a pipeline I get the following error:

Could not evaluate DetectBeadSynthesisErrors.Bead_Error_Summary = "bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.summary.txt"
java.lang.RuntimeException: Could not evaluate DetectBeadSynthesisErrors.Bead_Error_Summary = "bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.summary.txt"

Here is the call and task:

call DetectBeadSynthesisErrors {
input:
dropseq_home=dropseq_home,
java_memory=java_memory,
collapsed_barcodes=CollapseBarCodes.Collapsed_Barcodes,
core_barcode=2*core_barcodes,
primer=primer,
max_synthesis_errors=max_synthesis_errors,
base_qc=base_qc,
sample_name=sample_name
}

task DetectBeadSynthesisErrors {
String dropseq_home
String java_memory
String collapsed_barcodes
Int core_barcode
String primer
Int max_synthesis_errors
String sample_name
Int base_qc

command {
mkdir "bams"
mkdir "bam_reads"
PATH=${dropseq_home}:$PATH
DetectBeadSynthesisErrors \
-m ${java_memory} \
I=${collapsed_barcodes} \
O=bams/${sample_name}_bq${base_qc}_star_corrected.bam \
OUTPUT_STATS=bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.bead_synthesis_error_detail \
SUMMARY=bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.summary.txt \
NUM_BARCODES=${core_barcode} \
PRIMER_SEQUENCE=${primer} \
MAX_NUM_ERRORS=${max_synthesis_errors}
}

output {
File Corrected_Barcodes="bams/${sample_name}_bq${base_qc}_star_corrected.bam"
File Bead_Error_Out="bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.bead_synthesis_error_detail"
File Bead_Error_Summary="bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.summary.txt"
}
}

Corrected_Barcodes and Bead_Error_Out both made the correct files, but the Bead_Error_Summary is not being made. Am I using the correct format?

Thank you,
Asma

Tagged:

Comments

  • ChrisLChrisL Cambridge, MAMember, Broadie, Dev admin

    Hi @Asma -

    A few questions to help diagnose things:

    • Which Cromwell version are you using?
    • Which backend are you using?
    • Are you running your own Cromwell or is somebody else hosting it? If it's your own, is it in server or run mode?

    For your question, there's two possible things happening here:
    1. The file is not being created by the command.
    2. Cromwell's failing to interpolate values into the string.

    Since you say the other two are being created correctly, I suspect this is more likely number (1). Are you sure that the command you have is creating a file for Cromwell to find at the path for Bead_Error_Summary?

    If you want to be sure that the interpolation is happening correctly and without accidental typos, you could do it only once before the command even runs, like:

    task DetectBeadSynthesisErrors {
      String dropseq_home
      String java_memory
      String collapsed_barcodes
      Int core_barcode
      String primer
      Int max_synthesis_errors
      String sample_name
      Int base_qc
      String correct_barcodes_path = "bams/${sample_name}_bq${base_qc}_star_corrected.bam"
      String bead_error_out_path = "bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.bead_synthesis_error_detail"
      String bead_error_summary_path = "bam_reads/${sample_name}_bq${base_qc}.synthesis_stats.summary.txt"
    
      command {
        mkdir "bams"
        mkdir "bam_reads"
        PATH=${dropseq_home}:$PATH
        DetectBeadSynthesisErrors \
          -m ${java_memory} \
          I=${collapsed_barcodes} \
          O=${correct_barcodes_path} \
          OUTPUT_STATS=${bead_error_out_path} \
          SUMMARY=${bead_error_summary_path} \
          NUM_BARCODES=${core_barcode} \
          PRIMER_SEQUENCE=${primer} \
          MAX_NUM_ERRORS=${max_synthesis_errors}
      }
    
      output {
        File Corrected_Barcodes = correct_barcodes_path
        File Bead_Error_Out = bead_error_out_path
        File Bead_Error_Summary = bead_error_summary_path
      }
    }
    
  • AsmaAsma Member, Broadie

    Which Cromwell version are you using? - cromwell-28_2.jar
    Which backend are you using? - Using a LINUX server
    Are you running your own Cromwell or is somebody else hosting it? If it's your own, is it in server or run mode? Using own Cromwell in run mode.

  • ChrisLChrisL Cambridge, MAMember, Broadie, Dev admin

    If you're on the local backend, you should be able to find the execution directory for the task (check for a cromwell-executions directory where you run Cromwell and navigate down to your task).

    In the execution directory for the task you should find the directory you're creating, bam_reads, and it should have a ${sample_name}_bq${base_qc}.synthesis_stats.summary.txt file in it - could you check that that's the case?

  • mcovarrmcovarr Cambridge, MAMember, Broadie, Dev ✭✭

    Hi Asma, any update on this? I agree with @ChrisL that the most likely explanation is that the command is not creating this file. Thanks!

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    @mcovarr I've connected Asma to @Ruchi who will provide some 1:1 help

  • alongaloralongalor Member
    edited September 2017

    What was the result of this? I have been encountering very similar issues.

    Post edited by alongalor on
  • kshakirkshakir Broadie, Dev ✭✭

    Hi @alongalor,

    I'm not sure what became of this original ticket, but in general this error usually occurs as stated above:

    Are you sure that the command you have is creating a file for Cromwell to find at the path

    One example I saw just today was a python tool that was configured to write to the root directory / instead of the current working directory. The command block and the output variable values are all relative to the current working directory.

    If you're continuing to have problems with tools creating files in the current working directory but the outputs are not being delocalized, please open a new issue and we can take a look from there.

Sign In or Register to comment.