42 lines
1.6 KiB
Scala
Executable File
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:_*)
|
|
}
|