To celebrate the release of GATK 4.0, we are giving away free credits for running the GATK4 Best Practices pipelines in FireCloud, our secure online analysis portal. It’s first come first serve, so sign up now to claim your free credits worth $250. Sponsored by Google Cloud. Learn more at https://software.broadinstitute.org/firecloud/documentation/freecredits

declarations that refer to task outputs

stekazstekaz BrisbaneMember

Hi,

I'm having some trouble with this example code:

task test { 
  String var 
  command { 
    ./script ${var} 
  } 
  output { 
    String value = read_string(stdout()) 
  } 
} 

workflow wf { 
  call test as x {input: var="x"} 
  call test as y {input: var="y"} 

  Array[String] strs = [x.value, y.value] 
} 

The errors I get (using 0.19) look like:

[error] Workflow input processing failed. 
Workflow has invalid declarations: Could not find a value for x 
Could not find a value for y 
cromwell.engine.workflow.MaterializeWorkflowDescriptorActor$$anonfun$receive$1$$anon$1: Workflow input processing failed. 
Workflow has invalid declarations: Could not find a value for x 
Could not find a value for y 
        at cromwell.engine.workflow.MaterializeWorkflowDescriptorActor$$anonfun$receive$1.applyOrElse(MaterializeWorkflowDescriptorActor.scala:69) 
        at akka.actor.Actor$class.aroundReceive(Actor.scala:467) 
        at cromwell.engine.workflow.MaterializeWorkflowDescriptorActor.aroundReceive(MaterializeWorkflowDescriptorActor.scala:59) 
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) 
        at akka.actor.ActorCell.invoke(ActorCell.scala:487) 
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) 
        at akka.dispatch.Mailbox.run(Mailbox.scala:220) 
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) 
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 
Workflow input processing failed. 
Workflow has invalid declarations: Could not find a value for x 
Could not find a value for y 

Is this the expected output? I also get an error if I simplify the workflow to:

workflow wf { ````

  call test {input: var="x"} 

  String str = test.value 
} 

Why can't we declare the outputs of tasks? Have I missed something?

Tagged:

Best Answer

Answers

  • stekazstekaz BrisbaneMember

    Thanks for clearing up my confusion, Kate. Much appreciated!

Sign In or Register to comment.