diff --git a/files/imputationserver-beagle.yaml b/files/imputationserver-beagle.yaml
index e27eac95..3b330b8c 100644
--- a/files/imputationserver-beagle.yaml
+++ b/files/imputationserver-beagle.yaml
@@ -1,7 +1,7 @@
id: imputationserver-beagle
name: Genotype Imputation supporting Beagle (Minimac4)
description: This is the new Michigan Imputation Server Pipeline using Minimac4. Documentation can be found here.
If your input data is GRCh37/hg19 please ensure chromosomes are encoded without prefix (e.g. 20).
If your input data is GRCh38hg38 please ensure chromosomes are encoded with prefix 'chr' (e.g. chr20).
-version: 1.6.1
+version: 1.6.1
website: https://imputationserver.readthedocs.io
category:
diff --git a/files/imputationserver-pgs.yaml b/files/imputationserver-pgs.yaml
index e50e8fb3..f84d216c 100644
--- a/files/imputationserver-pgs.yaml
+++ b/files/imputationserver-pgs.yaml
@@ -1,7 +1,7 @@
id: imputationserver-pgs
name: Genotype Imputation (PGS Calc Integration)
description: This is the new Michigan Imputation Server Pipeline using Minimac4. Documentation can be found here.
If your input data is GRCh37/hg19 please ensure chromosomes are encoded without prefix (e.g. 20).
If your input data is GRCh38hg38 please ensure chromosomes are encoded with prefix 'chr' (e.g. chr20).
-version: 1.6.1
+version: 1.6.2-rc1
website: https://imputationserver.readthedocs.io
category:
diff --git a/files/minimac4.yaml b/files/minimac4.yaml
index 54ae6fe8..c88fce76 100644
--- a/files/minimac4.yaml
+++ b/files/minimac4.yaml
@@ -1,7 +1,7 @@
id: imputationserver
name: Genotype Imputation (Minimac4)
-description: This is the new Michigan Imputation Server Pipeline using Minimac4. Documentation can be found here.
If your input data is GRCh37/hg19 please ensure chromosomes are encoded without prefix (e.g. 20).
If your input data is GRCh38hg38 please ensure chromosomes are encoded with prefix 'chr' (e.g. chr20).
-version: 1.6.1
+description: This is the new Michigan Imputation Server Pipeline using Minimac4. Documentation can be found here.
If your input data is GRCh37/hg19 please ensure chromosomes are encoded without prefix (e.g. 20).
If your input data is GRCh38hg38 please ensure chromosomes are encoded with prefix 'chr' (e.g. chr20).
+version: 1.6.1
website: https://imputationserver.readthedocs.io
category:
@@ -10,7 +10,7 @@ installation:
- import:
source: ${app_local_folder}/bin
target: ${app_hdfs_folder}/bin
-
+
workflow:
setups:
@@ -31,14 +31,14 @@ workflow:
params: $mafFile
output: ${qcreport}.html
generates: $qcreport
-
-#end
+
+#end
onFailure:
name: Send Notification on Failure
jar: imputationserver.jar
classname: genepi.imputationserver.steps.FailureNotification
-
+
steps:
#if($mode == "imputation" || $mode == "phasing")
@@ -70,8 +70,8 @@ workflow:
value: hg19
values:
hg19: GRCh37/hg19
- hg38: GRCh38/hg38
- details: Please note that the final SNP coordinates always match the reference build.
+ hg38: GRCh38/hg38
+ details: Please note that the final SNP coordinates always match the reference build.
- id: r2Filter
description: rsq Filter
@@ -91,7 +91,7 @@ workflow:
values:
eagle: Eagle v2.4 (phased output)
no_phasing: No phasing
-
+
- id: population
description: Population
type: list
@@ -99,13 +99,13 @@ workflow:
bind: refpanel
property: populations
category: RefPanel
-
+
- id: mode
description: Mode
type: list
value: imputation
values:
- qconly: Quality Control Only
+ qconly: Quality Control Only
imputation: Quality Control & Imputation
phasing: Quality Control & Phasing Only
@@ -118,7 +118,7 @@ workflow:
true: yes
false: no
visible: true
-
+
- id: meta
description: Generate Meta-imputation file
type: checkbox
@@ -126,7 +126,7 @@ workflow:
values:
true: yes
false: no
- visible: true
+ visible: true
- id: myseparator
type: separator
@@ -140,12 +140,12 @@ workflow:
- id: check1
description: I will not attempt to re-identify or contact research participants.
type: terms_checkbox
-
+
- id: check2
description: I will report any inadvertent data release, security breach or other data management incident of which I become aware.
- type: terms_checkbox
+ type: terms_checkbox
+
-
outputs:
- id: qcreport
@@ -163,7 +163,7 @@ workflow:
mergeOutput: true
removeHeader: false
zip: false
-
+
- id: chunksDir
description: Actual chunk files
type: local-folder
@@ -201,13 +201,13 @@ workflow:
type: local-folder
download: true
temp: true
-
+
- id: logfile
description: Logs
type: local-folder
download: true
temp: false
-
+
- id: hadooplogs
description: Hadoop Task Logs
type: local-folder
diff --git a/pom.xml b/pom.xml
index 83fbfe3e..f4ffec6a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,9 @@
genepi
imputationserver
- 1.6.1
+
+ 1.6.2-rc1
+
jar
University of Michigan Imputation Server
@@ -79,7 +81,8 @@
org.codehaus.plexus:plexus-classworlds:*:*
org.codehaus.groovy:groovy-all:*:*
lukfor:pgs-calc:*:*
- lukfor:magic-progress:*:*
+ com.github.lukfor:magic-progress:*:*
+ com.github.lukfor:magic-reports:*:*
com.samskivert:jmustache:*:*
com.google.code.gson:gson:*:*
com.github.tommyettinger:blazingchain:*:*
@@ -195,28 +198,28 @@
junit
junit
- 4.13.1
+ 4.13.2
test
net.lingala.zip4j
zip4j
- 2.5.2
+ 2.9.1
com.esotericsoftware.yamlbeans
yamlbeans
- 1.14
+ 1.15
genepi
genepi-io
- 1.0.12
+ 1.2.0
-
+
genepi
genepi-hadoop
@@ -226,7 +229,7 @@
com.github.samtools
htsjdk
- 2.21.3
+ 2.24.1
@@ -289,14 +292,14 @@
org.codehaus.groovy
- groovy-all
- 2.4.14
+ groovy-templates
+ 3.0.9
-
+
lukfor
pgs-calc
- 0.9.2
+ 0.9.12
diff --git a/src/main/java/genepi/imputationserver/steps/CompressionEncryption.java b/src/main/java/genepi/imputationserver/steps/CompressionEncryption.java
index c9b12c11..6d22677a 100644
--- a/src/main/java/genepi/imputationserver/steps/CompressionEncryption.java
+++ b/src/main/java/genepi/imputationserver/steps/CompressionEncryption.java
@@ -304,12 +304,6 @@ public boolean run(WorkflowContext context) {
MetaFile metaFile = MetaFile.load(FileUtil.path(folder, "pgs-catalog.json"));
report.mergeWithMeta(metaFile);
- CreateHtmlReportTask htmlReport = new CreateHtmlReportTask();
- htmlReport.setReport(report);
- htmlReport.setData(mergeScore.getResult());
- htmlReport.setOutput(outputFileHtml);
- TaskService.run(htmlReport);
-
String fileName = "scores.zip";
String filePath = FileUtil.path(localOutput, fileName);
File file = new File(filePath);
diff --git a/src/main/java/genepi/imputationserver/steps/imputation/ImputationPipeline.java b/src/main/java/genepi/imputationserver/steps/imputation/ImputationPipeline.java
index d9e003dd..5712f335 100644
--- a/src/main/java/genepi/imputationserver/steps/imputation/ImputationPipeline.java
+++ b/src/main/java/genepi/imputationserver/steps/imputation/ImputationPipeline.java
@@ -3,6 +3,7 @@
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
@@ -13,17 +14,16 @@
import genepi.imputationserver.steps.vcf.VcfChunkOutput;
import genepi.io.FileUtil;
import genepi.riskscore.io.Chunk;
-import genepi.riskscore.io.OutputFile;
import genepi.riskscore.io.PGSCatalog;
-import genepi.riskscore.io.ReportFile;
import genepi.riskscore.tasks.ApplyScoreTask;
import groovy.text.SimpleTemplateEngine;
import htsjdk.samtools.util.StopWatch;
import lukfor.progress.TaskService;
+import lukfor.progress.tasks.Task;
public class ImputationPipeline {
- public static final String PIPELINE_VERSION = "michigan-imputationserver-1.6.1";
+ public static final String PIPELINE_VERSION = "michigan-imputationserver-1.6.2-rc1";
public static final String IMPUTATION_VERSION = "minimac4-1.0.2";
@@ -171,7 +171,7 @@ public boolean execute(VcfChunk chunk, VcfChunkOutput output) throws Interrupted
return false;
}
- if (scores != null && !scores.equals("no_score")) {
+ if (scores != null && scores.length >= 0) {
System.out.println(" Starting PGS calculation '" + scores + "'...");
@@ -344,15 +344,19 @@ private boolean runPgsCalc(VcfChunkOutput output) {
task.setVcfFilename(output.getImputedVcfFilename());
task.setChunk(scoreChunk);
task.setRiskScoreFilenames(scores);
+ task.setOutputReportFilename(output.getScoreFilename() + ".json");
+ task.setOutput(output.getScoreFilename());
TaskService.setAnsiSupport(false);
- TaskService.run(task);
+ List runningTasks = TaskService.run(task);
- OutputFile outputFile = new OutputFile(task.getRiskScores(), task.getSummaries());
- outputFile.save(output.getScoreFilename());
-
- ReportFile reportFile = new ReportFile(task.getSummaries());
- reportFile.save(output.getScoreFilename() + ".json");
+ for (Task runningTask : runningTasks) {
+ if (!runningTask.getStatus().isSuccess()) {
+ System.out.println("PGS-Calc failed: " + runningTask.getStatus().getThrowable());
+ runningTask.getStatus().getThrowable().printStackTrace();
+ return false;
+ }
+ }
return true;
diff --git a/src/test/java/genepi/imputationserver/steps/ImputationTest.java b/src/test/java/genepi/imputationserver/steps/ImputationTest.java
index 5fd434aa..c0a3db64 100644
--- a/src/test/java/genepi/imputationserver/steps/ImputationTest.java
+++ b/src/test/java/genepi/imputationserver/steps/ImputationTest.java
@@ -757,7 +757,7 @@ public void testPipelineWithEagleAndScores() throws IOException, ZipException {
}
readerExpected.close();
readerActual.close();
- // FileUtil.deleteDirectory("test-data/tmp");
+ FileUtil.deleteDirectory("test-data/tmp");
}