gatk-3.8/scala/src/org/broadinstitute/sting/queue/QScript.scala

42 lines
1.6 KiB
Scala
Executable File

package org.broadinstitute.sting.queue
import org.broadinstitute.sting.queue.util.Logging
/**
* Defines a Queue pipeline as a collection of CommandLineFunctions.
*/
trait QScript extends Logging {
// Type aliases so users don't have to import
type File = java.io.File
type Input = org.broadinstitute.sting.commandline.Input
type Output = org.broadinstitute.sting.commandline.Output
type Argument = org.broadinstitute.sting.commandline.Argument
type ArgumentCollection = org.broadinstitute.sting.commandline.ArgumentCollection
type CommandLineFunction = org.broadinstitute.sting.queue.function.CommandLineFunction
type ScatterGatherableFunction = org.broadinstitute.sting.queue.function.scattergather.ScatterGatherableFunction
type Scatter = org.broadinstitute.sting.queue.function.scattergather.Scatter
type Gather = org.broadinstitute.sting.queue.function.scattergather.Gather
type SimpleTextGatherFunction = org.broadinstitute.sting.queue.function.scattergather.SimpleTextGatherFunction
/**
* Builds the CommandLineFunctions that will be used to run this script and adds them to this.functions directly or using the add() utility method.
*/
def script: Unit
/**
* The command line functions that will be executed for this QScript.
*/
var functions = List.empty[CommandLineFunction]
/**
* Exchanges the extension on a file.
*/
protected def swapExt(file: File, oldExtension: String, newExtension: String) =
new File(file.getName.stripSuffix(oldExtension) + newExtension)
/**
* Adds one or more command line functions to be run.
*/
def add(functions: CommandLineFunction*) = this.functions ++= List(functions:_*)
}