Skip to content
Snippets Groups Projects
Commit 495a62d3 authored by Peter van 't Hof's avatar Peter van 't Hof
Browse files

Added base version of snptest

parent 73b71f72
No related branches found
No related tags found
No related merge requests found
package nl.lumc.sasc.biopet.extensions
import java.io.File
import nl.lumc.sasc.biopet.core.{Version, Reference, BiopetCommandLineFunction}
import nl.lumc.sasc.biopet.utils.config.Configurable
import org.broadinstitute.gatk.utils.commandline.{Output, Input}
import scala.util.matching.Regex
/**
* Created by pjvan_thof on 3/25/16.
*/
class Snptest(val root: Configurable) extends BiopetCommandLineFunction with Reference with Version {
@Input(required = true)
var inputGenotypes: List[File] = Nil
@Input(required = true)
var inputSampleFiles: List[File] = Nil
@Output(required = false)
var logFile: Option[File] = None
@Output(required = false)
var outputFile: Option[File] = None
@Output(required = false)
var outputDatabaseFile: Option[File] = None
var assumeChromosome: Option[String] = config("assume_chromosome")
var genotypeField: Option[String] = config("genotype_field")
var genotypeProbabilityScale: Option[String] = config("genotype_probability_scale")
var haploidGenotypeCoding: Option[String] = config("haploid_genotype_coding")
var missingCode: Option[String] = config("missing_code")
var totalProbLimit: Option[Double] = config("total_prob_limit")
var tableName: Option[String] = config("table_name")
var useLongColumnNamingScheme: Boolean = config("use_long_column_naming_scheme", default = false)
var summaryStatsOnly: Boolean = config("summary_stats_only", default = false)
executable = config("exe", default = "snptest")
def versionCommand: String = executable + " -help"
def versionRegex: Regex = "Welcome to SNPTEST (.*)".r
override def beforeGraph(): Unit = {
super.beforeGraph()
require(inputGenotypes.length == inputSampleFiles.length)
}
def multiArg(argName: String, values: Iterable[Any]): String = {
required(argName) + values.map(required(_)).mkString
}
def cmdLine: String = {
val data = inputGenotypes.zip(inputSampleFiles).flatMap(x => List(x._1, x._2))
required(executable) +
optional("-assume_chromosome", assumeChromosome) +
multiArg("-data", data) +
optional("-genotype_field", genotypeField) +
optional("-genotype_probability_scale", genotypeProbabilityScale) +
optional("-haploid_genotype_coding", haploidGenotypeCoding) +
optional("-missing_code", missingCode) +
optional("-total_prob_limit", totalProbLimit) +
optional("-log", logFile) +
optional("-o", outputFile) +
optional("-odb", outputDatabaseFile) +
optional("-table_name", tableName) +
conditional(useLongColumnNamingScheme, "-use_long_column_naming_scheme") +
conditional(summaryStatsOnly, "-summary_stats_only")
}
}
......@@ -5,7 +5,7 @@ import java.util
import htsjdk.samtools.reference.FastaSequenceFile
import nl.lumc.sasc.biopet.core.{ PipelineCommand, Reference, BiopetQScript }
import nl.lumc.sasc.biopet.extensions.Cat
import nl.lumc.sasc.biopet.extensions.{Snptest, Cat}
import nl.lumc.sasc.biopet.extensions.gatk.{ SelectVariants, CombineVariants }
import nl.lumc.sasc.biopet.extensions.tools.GensToVcf
import nl.lumc.sasc.biopet.utils.Logging
......@@ -100,12 +100,13 @@ class GwasTest(val root: Configurable) extends QScript with BiopetQScript with R
add(sv)
//TODO: snptest
region -> sv.outputFile
val snptest = new Snptest(this)
snptest.inputGenotypes :+= sv.outputFile
snptest.inputSampleFiles :+= phenotypeFile
add(snptest)
region -> snptest
}
val cat = new Cat(this)
cat.input = snpTests.map(_._2).toList
cat.output = new File(outputDir, "merge.txt")
add(cat)
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment