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

Specifying a file in a google bucket as a string input to a task in a wdl

ChipChip 415M 4053Member, Broadie


Due to how data fields in a vcf were labeled I need to parse bam names in a vcf_parsing task, but I don't actually need (or want) the bams to be localized. I had expected that an input block like this:

task vcf_parser {
File vcf_file
String tumor_bam
String normal_bam

would pass the bam name to the wdl without cromwell trying to localize the bam, but tests on a google VM (outside of Firecloud) show that cromwell wants to localize the bams anyway. Is this expected behavior?



  • Tiffany_at_BroadTiffany_at_Broad Cambridge, MAMember, Administrator, Broadie, Moderator admin

    Hi Chip! Sorry for the delay. We are getting an answer for you now.

  • ChrisLChrisL Cambridge, MAMember, Broadie, Dev admin

    Hi @Chip,

    You're correct, the tumor_bam and normal_bam should not be being localized, only the File vcf_file. If that's not working properly, then it's probably a bug in Cromwell so thanks for finding it!

    In the meantime, if all you want is the file name (without the path), you could try doing this when you supply inputs:

    call vcf_parser { input:
      vcf_file = ...
      tumor_bam = basename(...)
      normal_bam = basename(...)

    Let me know how you get on, and whether I should raise this as a Cromwell bug! Thanks!

  • ChipChip 415M 4053Member, Broadie

    Could be a cromwell 26 v.s 29 thing. Tests on a google VM (cromwell 26) had bam localization while Firecloud runs using the same wdl (cromwell 29) did not localize bams.

  • ChrisLChrisL Cambridge, MAMember, Broadie, Dev admin

    Oh right, that's good to hear! FWIW the basename function wasn't around in Cromwell 26 either so I'd recommend updating for that reason too!

Sign In or Register to comment.