Skip to content

Commit 3cf9b63

Browse files
committed
Fixes to PBSV call scatter/gather
1 parent 8ea872e commit 3cf9b63

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/analysis/PbsvJointCallingHandler.java

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.labkey.api.sequenceanalysis.run.SimpleScriptWrapper;
2222
import org.labkey.api.util.FileType;
2323
import org.labkey.sequenceanalysis.SequenceAnalysisModule;
24+
import org.labkey.sequenceanalysis.analysis.GenotypeGVCFHandler;
2425
import org.labkey.sequenceanalysis.pipeline.ProcessVariantsHandler;
2526
import org.labkey.sequenceanalysis.pipeline.VariantProcessingJob;
2627
import org.labkey.sequenceanalysis.run.util.AbstractGenomicsDBImportHandler;
@@ -34,7 +35,7 @@
3435
import java.util.List;
3536
import java.util.stream.Collectors;
3637

37-
public class PbsvJointCallingHandler extends AbstractParameterizedOutputHandler<SequenceOutputHandler.SequenceOutputProcessor> implements SequenceOutputHandler.TracksVCF, VariantProcessingStep.SupportsScatterGather
38+
public class PbsvJointCallingHandler extends AbstractParameterizedOutputHandler<SequenceOutputHandler.SequenceOutputProcessor> implements SequenceOutputHandler.TracksVCF, VariantProcessingStep.SupportsScatterGather, VariantProcessingStep.MayRequirePrepareTask
3839
{
3940
private static final FileType FILE_TYPE = new FileType(".svsig.gz");
4041
private static final String OUTPUT_CATEGORY = "PBSV VCF";
@@ -93,7 +94,7 @@ public void processFilesOnWebserver(PipelineJob job, SequenceAnalysisJobSupport
9394
public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext ctx) throws UnsupportedOperationException, PipelineJobException
9495
{
9596
List<File> inputs = inputFiles.stream().map(SequenceOutputFile::getFile).collect(Collectors.toList());
96-
if (ctx.getParams().optBoolean("doCopyLocal", false))
97+
if (doCopyLocal(ctx.getParams()))
9798
{
9899
ctx.getLogger().info("Copying inputs locally");
99100
try
@@ -162,14 +163,15 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
162163
{
163164
File unzipVcfOut = outputs.get(0);
164165
vcfOutGz = SequenceAnalysisService.get().bgzipFile(unzipVcfOut, ctx.getLogger());
166+
if (unzipVcfOut.exists())
167+
{
168+
throw new PipelineJobException("Unzipped VCF should not exist: " + vcfOutGz.getPath());
169+
}
165170
}
166171
else
167172
{
173+
outputs.forEach(f -> ctx.getFileManager().addIntermediateFile(f));
168174
vcfOutGz = SequenceUtil.combineVcfs(outputs, genome, new File(ctx.getOutputDir(), outputBaseName), ctx.getLogger(), true, null, false);
169-
if (vcfOutGz.exists())
170-
{
171-
throw new PipelineJobException("Unzipped VCF should not exist: " + vcfOutGz.getPath());
172-
}
173175
}
174176

175177
try
@@ -258,4 +260,28 @@ private static VariantProcessingJob getVariantPipelineJob(PipelineJob job)
258260
{
259261
return job instanceof VariantProcessingJob ? (VariantProcessingJob)job : null;
260262
}
263+
264+
@Override
265+
public boolean isRequired(PipelineJob job)
266+
{
267+
if (job instanceof VariantProcessingJob)
268+
{
269+
VariantProcessingJob vpj = (VariantProcessingJob)job;
270+
271+
return doCopyLocal(vpj.getParameterJson());
272+
}
273+
274+
return false;
275+
}
276+
277+
private boolean doCopyLocal(JSONObject params)
278+
{
279+
return params.optBoolean("doCopyLocal", false);
280+
}
281+
282+
@Override
283+
public void doWork(List<SequenceOutputFile> inputFiles, JobContext ctx) throws PipelineJobException
284+
{
285+
GenotypeGVCFHandler.doCopyGvcfLocally(inputFiles, ctx);
286+
}
261287
}

0 commit comments

Comments
 (0)