diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Snptest.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Snptest.scala
new file mode 100644
index 0000000000000000000000000000000000000000..24ff7f029d4b21f9905181f79ed5e028549cfee4
--- /dev/null
+++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Snptest.scala
@@ -0,0 +1,72 @@
+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")
+  }
+
+}
diff --git a/public/gwas-test/src/main/scala/nl/lumc/sasc/biopet/pipelines/gwastest/GwasTest.scala b/public/gwas-test/src/main/scala/nl/lumc/sasc/biopet/pipelines/gwastest/GwasTest.scala
index 67e056a51c96eacb11e6b1d82c16dc13de7fe353..b18c3f6e2f5598c5f8ec0744718f1d5b52379960 100644
--- a/public/gwas-test/src/main/scala/nl/lumc/sasc/biopet/pipelines/gwastest/GwasTest.scala
+++ b/public/gwas-test/src/main/scala/nl/lumc/sasc/biopet/pipelines/gwastest/GwasTest.scala
@@ -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)
   }
 }