We've moved!
You can find our new documentation site and support forum for posting questions here.

gatk/Somatic_SNV_Indel_Discovery_MC failing in oncotator

ChipChip 415M 4053Member, Broadie


I attempted to run M2 based on the configuration in gatk/Somatic_SNV_Indel_Discovery_MC, the workflow runs ok until it hits the Mutect2.oncotate_m2 step with failure messages:

Couldn't resolve all inputs for Mutect2.oncotate_m2 at index None.
message: Input evaluation for Call Mutect2.oncotate_m2 failed.
message: oncotator_docker
message: No coercion defined from '"broadinstitute/oncotator:"' of type 'String?' to 'String'.

The oncotator parameters are set:

Mutect2.is_run_oncotator: (Boolean)"True"
Mutect2.sequencing_center: (optional String?)"Broad"
Mutect2.oncotator_docker: (optional String?)"broadinstitute/oncotator:"
Mutect2.default_config_file: (optional File?)"gs://fc-099b74a5-b2e1-4f8c-8720-2ab7123fe631/oncotator/tcgaMAFManualOverrides2.4.config"
Mutect2.onco_ds_tar_gz: (optional File?)"gs://gatk-best-practices/somatic-b37/oncotator_v1_ds_April052016.tar.gz"

Is there something wrong with the Mutect2.oncotator_docker: (optional String?)"broadinstitute/oncotator:" parameter?


Best Answer


  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    That's odd -- I'll have a look. Are you running this in a clone of the public workspace we made, or did you import the config into your own workspace?

  • ChipChip 415M 4053Member, Broadie

    Hi Geraldine, This was imported into a su2c workspace. I did make some changes (eg. Agilent->ICE targets) but I tried to keep most parameters unchanged from the gatk public configuration. I "published" my config under stewart/Somatic_SNV_Indel_Discovery_MC in case y9u can spot something wrong.

  • RuchiRuchi Member, Broadie, Moderator, Dev admin

    Hey @Chip,

    This error is saying that your task requires a non-optional String input for oncotator_docker in task oncotate_m2. The input Mutect2.oncotator_docker: (optional String?)"broadinstitute/oncotator:" is an optional String and there is no implicit coercion from String? to String. You have a few options:

    workflow Mutect2 {
      String? oncotator_docker 
      #Option 1: Forced coercion. This will fail the workflow if oncotator_docker isn't defined
      String forced_oncotator_docker = select_first([oncotator_docker]) 
     #Option 2: Provide a default, and order them in a way that if the oncotator_docker isn't defined, only then use the default option
      String default_oncotator_docker
      String selected_oncotator_docker = select_first([oncotator_docker, default_oncotator_docker])
  • ChipChip 415M 4053Member, Broadie

    Hi @Ruchi,

    I'm testing option #1 (remove the "?" from "String?" but w/o the "forced" bit) as implemented in https://portal.firecloud.org/#workspaces/help-gatk/Somatic_variant_discovery_b37/method-configs/gatk/Somatic_SNV_Indel_Discovery_MC
    but apparently not quite what was in the methods repo from which I copied the workflow config.

    Is there a reason why "String?" can not be coerced into "String" ? Is this on the cromwell wish list somewhere?


  • ChipChip 415M 4053Member, Broadie

    The main difficulty testing option #1 is manually copying 29 parameters into the new workflow. Does the latest Firecloud have way to import loads of workflow parameters from some other workflow ? Re-entering loads of parameters manually is both annoying and error prone.

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    Oh hang on, I think I addressed this is a more recent snapshot. Let me check.

    (wrt parameter imports, I've been using the API to import configs as a JSON, which is less painful)

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    Ah yes I remember how this came about. I wanted to make the docker optional at the workflow level for when we choose not to run oncotator. I have a solution in flight for this, just need to finalize it. Let me do that now.

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    Ugh, what I had in mind didn't work. I do think it should be possible to coerce optional String to String, will talk to Cromwell team about this. In the meantime, the simplest way to solve this is to make the oncotator docker non-optional. It's just a string after all -- for the case I wanted to enable (skipping oncotator) one could simply leave the value we provide in the base config. If you just edit your method config to use snapshot 4 it should work now. Sorry for the churn.

  • ChipChip 415M 4053Member, Broadie

    The modified wdl (String? -> String) ran ok on a test sample. It created a maf with 410 fields. There are many filter-related fields that appear to warrant filtering (eg. t_lod=FAIL/PASS, strand_artifact=FAIL/PASS, str_contraction=FAIL/PASS, read_position=FAIL/PASS, panel_of_normals=FAIL/PASS, orientation_bias=FAIL/PASS, mapping_quality=FAIL/PASS, multiallelic=FAIL/PASS, germline_risk=FAIL/PASS, fragment_length=FAIL/PASS, duplicate_evidence=FAIL/PASS, artifact_in_normal=FAIL/PASS, contamination=FAIL/PASS, clustered_events=FAIL/PASS, clipping=FAIL/PASS, base_quality=FAIL/PASS). Filtering all of these fields to be PASS reduced the number of calls in my test sample MAF from 943 to 258. Some of these filters are familiar and some not so much. Does the M2 team have a recommended set of post-process filter criteria? Should the task make a filtered maf?

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    Glad to hear it ran ok!

    I believe the M2 team is actively working on refining the filtering and producing guidelines for how to work with the filtering info. So while we're not able to give you much guidance on this right now, we hope to be able to do so in the not too distant future.

    @davidben may be able/willing to tell you more.

  • ChipChip 415M 4053Member, Broadie

    The Somatic_SNV_Indel_Discovery_MC workflow finished for 144 T/N pairs, and failed on one T/N with error message:

    message: JobStore write failure: Task [email protected] rejected from [email protected][Running, pool size = 200, active threads = 183, queued tasks = 139, completed tasks = 246275]
    message: Task [email protected] rejected from sli[email protected][Running, pool size = 200, active threads = 183, queued tasks = 139, completed tasks = 246275]

    which smells like something in Firecloud/Cromwell/Google and not so much of a problem in Somatic_SNV_Indel_Discovery_MC. When this happens do we keep pushing launch until it works?

  • ChipChip 415M 4053Member, Broadie

    clicked 'launch" on the wayward job and that ran ok. Must have been a transient problem.

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie admin

    Ok thanks for letting me know. If you have any feedback on the results of the analysis, I'm sure the M2 devs (David B and Takuto) would be happy to hear it.

Sign In or Register to comment.