From 33f6e6d7951d8f5aebdf11f43f0b70741cb4b4bd Mon Sep 17 00:00:00 2001
From: bow <bow@bow.web.id>
Date: Fri, 30 Jan 2015 12:51:56 +0100
Subject: [PATCH] Use AsyncFastqWriter instead of BasicFastqWriter

---
 .../scala/nl/lumc/sasc/biopet/tools/FastqSync.scala   | 11 ++++++-----
 .../nl/lumc/sasc/biopet/tools/FastqSyncTest.scala     |  6 +++---
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala
index 089efa171..382b59925 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala
@@ -17,7 +17,7 @@ import scala.collection.JavaConverters._
 
 import argonaut._, Argonaut._
 import scalaz._, Scalaz._
-import htsjdk.samtools.fastq.{ BasicFastqWriter, FastqReader, FastqRecord }
+import htsjdk.samtools.fastq.{ AsyncFastqWriter, BasicFastqWriter, FastqReader, FastqRecord }
 import org.broadinstitute.gatk.utils.commandline.{ Input, Output }
 
 import nl.lumc.sasc.biopet.core.BiopetJavaCommandLineFunction
@@ -185,8 +185,8 @@ object FastqSync extends ToolCommand {
 
   def writeSyncedFastq(sync: Stream[(FastqRecord, FastqRecord)],
                        counts: SyncCounts,
-                       outputFastq1: BasicFastqWriter,
-                       outputFastq2: BasicFastqWriter): Unit = {
+                       outputFastq1: AsyncFastqWriter,
+                       outputFastq2: AsyncFastqWriter): Unit = {
     sync.foreach {
       case (rec1, rec2) =>
         outputFastq1.write(rec1)
@@ -281,8 +281,9 @@ object FastqSync extends ToolCommand {
       new FastqReader(commandArgs.inputFastq2))
 
     writeSyncedFastq(synced, counts,
-      new BasicFastqWriter(commandArgs.outputFastq1),
-      new BasicFastqWriter(commandArgs.outputFastq2)
+      // using 3000 for queue size to approximate NFS buffer
+      new AsyncFastqWriter(new BasicFastqWriter(commandArgs.outputFastq1), 3000),
+      new AsyncFastqWriter(new BasicFastqWriter(commandArgs.outputFastq2), 3000)
     )
   }
 }
diff --git a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/FastqSyncTest.scala b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/FastqSyncTest.scala
index 1c4a02b05..1c98a36f2 100644
--- a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/FastqSyncTest.scala
+++ b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/FastqSyncTest.scala
@@ -8,7 +8,7 @@ import java.io.File
 import java.nio.file.Paths
 import scala.collection.JavaConverters._
 
-import htsjdk.samtools.fastq.{ BasicFastqWriter, FastqReader, FastqRecord }
+import htsjdk.samtools.fastq.{ AsyncFastqWriter, FastqReader, FastqRecord }
 import org.mockito.Mockito.{ inOrder => inOrd, when }
 import org.scalatest.Matchers
 import org.scalatest.mock.MockitoSugar
@@ -191,8 +191,8 @@ class FastqSyncTest extends TestNGSuite with MockitoSugar with Matchers {
   }
 
   @Test def testWriteSynced() = {
-    val aMock = mock[BasicFastqWriter]
-    val bMock = mock[BasicFastqWriter]
+    val aMock = mock[AsyncFastqWriter]
+    val bMock = mock[AsyncFastqWriter]
     val sync = Stream(
       (new FastqRecord("1", "A", "", "H"), new FastqRecord("1", "T", "", "E")),
       (new FastqRecord("2", "A", "", "H"), new FastqRecord("2", "T", "", "E")))
-- 
GitLab