From a327c58d5e3bd8d7e497d5a6910a62df6cdd6fcd Mon Sep 17 00:00:00 2001
From: Peter van 't Hof
Date: Fri, 10 Feb 2017 16:13:24 +0100
Subject: [PATCH] Add sampleId and libId for single sample pipelines
---
.../lumc/sasc/biopet/core/summary/WriteSummary.scala | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala b/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
index b7a34fb6a..e38f87510 100644
--- a/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
+++ b/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
@@ -56,13 +56,23 @@ class WriteSummary(val parent: SummaryQScript) extends InProcessFunction with Co
}
def init(): Unit = {
+ val db = SummaryDb.openSqliteSummary(qscript.summaryDbFile)
if (qscript == root) { // This initialize the database
qscript match {
case s: MultiSampleQScript => s.initSummaryDb
+ case t:SampleLibraryTag => t.sampleId.foreach { case sampleName =>
+ val sampleId = Await.result(db.getSamples(name = Some(sampleName), runId = Some(qscript.summaryRunId)).map(_.headOption.map(_.id)), Duration.Inf).getOrElse {
+ Await.result(db.createSample(sampleName, qscript.summaryRunId), Duration.Inf)
+ }
+ t.libId.foreach {libName =>
+ val libId = Await.result(db.getSamples(name = Some(libName), runId = Some(qscript.summaryRunId), sampleId = Some(sampleId)).map(_.headOption.map(_.id)), Duration.Inf).getOrElse {
+ Await.result(db.createLibrary(libName, qscript.summaryRunId, sampleId), Duration.Inf)
+ }
+ }
+ }
case _ => qscript.summaryRunId
}
}
- val db = SummaryDb.openSqliteSummary(qscript.summaryDbFile)
val pipelineId = Await.result(db.createPipeline(qscript.summaryName, qscript.summaryRunId), Duration.Inf)
qscript.summarizables.map(x => Await.result(db.createModule(x._1._1, qscript.summaryRunId, pipelineId), Duration.Inf))
db.close()
--
GitLab