From 3ef511a0f0036d7d0cbe13ce3f59e97119aedea7 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Tue, 21 Jun 2016 11:04:23 +0200
Subject: [PATCH] Added testing for aligner in gentrap

---
 .../pipelines/gentrap/GentrapTest.scala       | 36 +++++++++++++------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/gentrap/src/test/scala/nl/lumc/sasc/biopet/pipelines/gentrap/GentrapTest.scala b/gentrap/src/test/scala/nl/lumc/sasc/biopet/pipelines/gentrap/GentrapTest.scala
index a981f4e48..34e093691 100644
--- a/gentrap/src/test/scala/nl/lumc/sasc/biopet/pipelines/gentrap/GentrapTest.scala
+++ b/gentrap/src/test/scala/nl/lumc/sasc/biopet/pipelines/gentrap/GentrapTest.scala
@@ -14,19 +14,21 @@
  */
 package nl.lumc.sasc.biopet.pipelines.gentrap
 
-import java.io.{ File, FileOutputStream }
+import java.io.{File, FileOutputStream}
 
 import com.google.common.io.Files
 import nl.lumc.sasc.biopet.extensions._
+import nl.lumc.sasc.biopet.extensions.gmap.Gsnap
+import nl.lumc.sasc.biopet.extensions.hisat.Hisat2
 import nl.lumc.sasc.biopet.extensions.tools.BaseCounter
 import nl.lumc.sasc.biopet.utils.ConfigUtils
 import nl.lumc.sasc.biopet.utils.config.Config
 import org.broadinstitute.gatk.queue.QSettings
 import org.scalatest.Matchers
 import org.scalatest.testng.TestNGSuite
-import org.testng.annotations.{ DataProvider, Test }
+import org.testng.annotations.{DataProvider, Test}
 
-abstract class GentrapTestAbstract(val expressionMeasure: String) extends TestNGSuite with Matchers {
+abstract class GentrapTestAbstract(val expressionMeasure: String, val aligner: Option[String]) extends TestNGSuite with Matchers {
 
   def initPipeline(map: Map[String, Any]): Gentrap = {
     new Gentrap() {
@@ -105,10 +107,9 @@ abstract class GentrapTestAbstract(val expressionMeasure: String) extends TestNG
     val settings = Map(
       "output_dir" -> GentrapTest.outputDir,
       "gsnap" -> Map("db" -> "test", "dir" -> "test"),
-      "aligner" -> "gsnap",
       "expression_measures" -> expMeasures,
       "strand_protocol" -> strandProtocol
-    )
+    ) ++ aligner.map("aligner" -> _)
     val config = ConfigUtils.mergeMaps(settings ++ sampleConfig, Map(GentrapTest.executables.toSeq: _*))
     val gentrap: Gentrap = initPipeline(config)
 
@@ -139,16 +140,29 @@ abstract class GentrapTestAbstract(val expressionMeasure: String) extends TestNG
       assert(gentrap.functions.exists(_.isInstanceOf[Cufflinks]))
       assert(gentrap.functions.exists(_.isInstanceOf[Ln]))
     }
+
+    val classMap = Map(
+      "gsnap" -> classOf[Gsnap],
+      "tophat" -> classOf[Tophat],
+      "star" -> classOf[Star],
+      "star-2pass" -> classOf[Star],
+      "hisat2" -> classOf[Hisat2]
+    )
+
+    val alignerClass = classMap.get(aligner.getOrElse("gsnap"))
+
+    alignerClass.foreach(c => assert(gentrap.functions.exists(c.isInstance(_))))
+    classMap.values.filterNot(Some(_) == alignerClass).foreach(x => assert(!gentrap.functions.exists(x.isInstance(_))))
   }
 
 }
 
-class GentrapFragmentsPerGeneTest extends GentrapTestAbstract("fragments_per_gene")
-//class GentrapFragmentsPerExonTest extends GentrapTestAbstract("fragments_per_exon")
-class GentrapBaseCountsTest extends GentrapTestAbstract("base_counts")
-class GentrapCufflinksStrictTest extends GentrapTestAbstract("cufflinks_strict")
-class GentrapCufflinksGuidedTest extends GentrapTestAbstract("cufflinks_guided")
-class GentrapCufflinksBlindTest extends GentrapTestAbstract("cufflinks_blind")
+class GentrapFragmentsPerGeneTest extends GentrapTestAbstract("fragments_per_gene", None)
+//class GentrapFragmentsPerExonTest extends GentrapTestAbstract("fragments_per_exon", None)
+class GentrapBaseCountsTest extends GentrapTestAbstract("base_counts", Some("gsnap"))
+class GentrapCufflinksStrictTest extends GentrapTestAbstract("cufflinks_strict", None)
+class GentrapCufflinksGuidedTest extends GentrapTestAbstract("cufflinks_guided", None)
+class GentrapCufflinksBlindTest extends GentrapTestAbstract("cufflinks_blind", None)
 
 object GentrapTest {
   val outputDir = Files.createTempDir()
-- 
GitLab