From e6f07f764a0ff75beb622e95b3144ee35f99ef44 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Sun, 27 Jul 2014 14:35:32 +0200
Subject: [PATCH] First version of summary of flexiprep in queue/scala

---
 .../flexiprep/FlexiprepSummary.scala          | 132 ++++++++++++++++++
 1 file changed, 132 insertions(+)
 create mode 100644 flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepSummary.scala

diff --git a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepSummary.scala b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepSummary.scala
new file mode 100644
index 000000000..3ff41f674
--- /dev/null
+++ b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/FlexiprepSummary.scala
@@ -0,0 +1,132 @@
+package nl.lumc.sasc.biopet.pipelines.flexiprep
+
+import nl.lumc.sasc.biopet.core.config.Configurable
+import nl.lumc.sasc.biopet.function.fastq.Fastqc
+import org.broadinstitute.gatk.queue.function.InProcessFunction
+import org.broadinstitute.gatk.utils.commandline.{ Input, Output, Argument }
+import java.io.File
+import argonaut._, Argonaut._
+import scalaz._, Scalaz._
+
+class FlexiprepSummary(val root: Configurable) extends InProcessFunction with Configurable {
+  this.analysisName = getClass.getSimpleName
+
+  @Input(doc = "Seq stat files R1", required=true)
+  var seqstatR1: List[File] = Nil
+  
+  @Input(doc = "Seq stat files R2", required=false)
+  var seqstatR2: List[File] = Nil
+  
+  @Input(doc = "Seq stat files R1 after", required=false)
+  var seqstatR1after: List[File] = Nil
+  
+  @Input(doc = "Seq stat files R2 after", required=false)
+  var seqstatR2after: List[File] = Nil
+  
+  @Input(doc = "sha1 files R1", required=true)
+  var sha1R1: File = _
+  
+  @Input(doc = "sha1 files R2", required=false)
+  var sha1R2: File = _
+  
+  @Input(doc = "sha1 files R1 after", required=false)
+  var sha1R1after: File = _
+  
+  @Input(doc = "sha1 files R2 after", required=false)
+  var sha1R2after: File = _
+  
+  @Input(doc = "Clip stat files R1", required=false)
+  var clipstatR1: List[File] = Nil
+  
+  @Input(doc = "Clip stat files R2", required=false)
+  var clipstatR2: List[File] = Nil
+  
+  @Input(doc = "Trim stat files", required=false)
+  var trimstats: List[File] = Nil
+  
+  @Input(doc = "Sync stat files", required=false)
+  var syncstats: List[File] = Nil
+  
+  @Output(doc = "Summary output", required=true)
+  var out: File = _
+  
+  @Argument(doc = "fastqc files R1", required=true)
+  var fastqcR1: Fastqc = _
+  
+  @Argument(doc = "fastqc files R2", required=false)
+  var fastqcR2: Fastqc = _
+  
+  @Argument(doc = "fastqc files R1 after", required=false)
+  var fastqcR1after: Fastqc = _
+  
+  @Argument(doc = "fastqc files R2 after", required=false)
+  var fastqcR2after: Fastqc = _
+  
+  @Argument(doc = "Flexiprep Pipeline", required=true)
+  var flexiprep: Flexiprep = _
+  
+  var clipping = true
+  var trimming = true
+  var paired = true
+  
+  override def run {
+    clipping = !flexiprep.skipClip
+    trimming = !flexiprep.skipTrim
+    paired = flexiprep.paired
+    
+    fastqcSummary(fastqcR1)
+    if (paired) fastqcSummary(fastqcR2)
+    
+    sha1Summary(sha1R1)
+    if (paired) sha1Summary(sha1R2)
+    
+    seqstatSummary(seqstatR1)
+    if (paired) seqstatSummary(seqstatR2)
+    
+    if (clipping) {
+      clipstatSummary(clipstatR1)
+      if (paired) {
+        clipstatSummary(clipstatR2)
+        syncstatSummary(syncstats)
+      }
+    }
+    
+    if (trimming) trimstatSummary(trimstats)
+    
+    if (clipping || trimming) {
+      fastqcSummary(fastqcR1after)
+      if (paired) fastqcSummary(fastqcR2after)
+      
+      sha1Summary(sha1R1after)
+      if (paired) sha1Summary(sha1R2after)
+      
+      seqstatSummary(seqstatR1after)
+      if (paired) seqstatSummary(seqstatR2after)
+    }
+  }
+  
+  def seqstatSummary(files: List[File]): Json = {
+    //TODO
+    return null
+  }
+  def sha1Summary(file:File): Json = {
+    //TODO
+    return null
+  }
+  def fastqcSummary(fastqc:Fastqc): Json  = {
+    //TODO
+    return null
+  }
+  def clipstatSummary(files: List[File]): Json = {
+    //TODO
+    return null
+  }
+  def syncstatSummary(files: List[File]): Json = {
+    //TODO
+    return null
+  }
+  def trimstatSummary(files: List[File]): Json = {
+    //TODO
+    return null
+  }
+}
\ No newline at end of file
-- 
GitLab