Heads up:
We’re moving the GATK website, docs and forum to a new platform. Read the full story and breakdown of key changes on this blog.
Notice:
If you happen to see a question you know the answer to, please do chime in and help your fellow community members. We encourage our fourm members to be more involved, jump in and help out your fellow researchers with their questions. GATK forum is a community forum and helping each other with using GATK tools and research is the cornerstone of our success as a genomics research community.We appreciate your help!

Test-drive the GATK tools and Best Practices pipelines on Terra


Check out this blog post to learn how you can get started with GATK and try out the pipelines in preconfigured workspaces (with a user-friendly interface!) without having to install anything.

Queue: how to connect GATK walkers?

I am reading through the most recent workshop slides on Queue, and trying to write a scala script to connect the GATK walkers. However, I'm confused how to use the output of last walker as input for the next walker, especially when you have multiple outputs from the last walker. For example, I wrote the following script to connect RealignerTargetCreator and IndelRealigner, and I have a list of bam files as input to RealignerTargetCreator. I don't know whether I should have multiple outputs from RealignerTargetCreator, and how to use the multiple output from RealignerTargetCreator as input for IndelRealigner. My confusion is highlighted as bold comment text below:

def script() {
    val bams = QScriptUtils.createSeqFromFile(qscript.input)

    if (nContigs < 0)
      nContigs = QScriptUtils.getNumberOfContigs(bams(0))
    val baseName = ""
    val outputDir = if (qscript.outputDir.isEmpty()) baseName else qscript.outputDir + "/" + baseName


    val realigner = new RealignerTargetCreator
    realigner.reference_sequence = qscript.referenceFile
    realigner.input_file = bams
    realigner.out = new File(outputDir + "/Realigner")  // **should I have multiple outputs? how do you name individual output files?**

    val indelRealigner = new IndelRealigner
    indelRealigner.input_file :+= realigner.out  // **do I need a for-loop to go through each input files from last walker?**
    indelRealigner.targetIntervals = swapExt(realigner.out, "bam", "intervals")
    indelRealigner.nWayOut = new File(".realigned.bam")

    add(realigner)
    add(indelRealigner)

  }
Tagged:

Best Answer

Answers

Sign In or Register to comment.