Skip to content

Commit e7ab9ab

Browse files
committed
Allow CreateSequenceDictionary to work even if picard.jar isnt found
1 parent eb98935 commit e7ab9ab

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/run/PicardWrapper.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,20 @@ public String getVersion() throws PipelineJobException
4949
return ret;
5050
}
5151

52-
public static File getPicardJar()
52+
public static @Nullable File getPicardJar(boolean throwIfNotFound)
5353
{
54-
return resolveFileInPath("picard.jar", "PICARDPATH", true);
54+
return resolveFileInPath("picard.jar", "PICARDPATH", throwIfNotFound);
55+
}
56+
57+
public boolean jarExists()
58+
{
59+
File jar = getPicardJar(false);
60+
return jar != null && jar.exists();
5561
}
5662

5763
protected File getJar()
5864
{
59-
return getPicardJar();
65+
return getPicardJar(false);
6066
}
6167

6268
public ValidationStringency getStringency()

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequencePipelineServiceImpl.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.labkey.sequenceanalysis;
22

33
import htsjdk.samtools.SAMFileHeader;
4-
import htsjdk.samtools.ValidationStringency;
54
import org.apache.commons.io.FilenameUtils;
65
import org.apache.commons.lang3.StringUtils;
76
import org.apache.logging.log4j.LogManager;
@@ -32,9 +31,9 @@
3231
import org.labkey.sequenceanalysis.pipeline.TaskFileManagerImpl;
3332
import org.labkey.sequenceanalysis.run.preprocessing.PreprocessingOutputImpl;
3433
import org.labkey.sequenceanalysis.run.preprocessing.TrimmomaticWrapper;
35-
import org.labkey.sequenceanalysis.run.util.BuildBamIndexWrapper;
3634
import org.labkey.sequenceanalysis.run.util.SortVcfWrapper;
3735
import org.labkey.sequenceanalysis.util.FastqUtils;
36+
import org.labkey.sequenceanalysis.util.ReferenceLibraryHelperImpl;
3837
import org.labkey.sequenceanalysis.util.SequenceUtil;
3938

4039
import java.io.File;
@@ -231,7 +230,26 @@ public <StepType extends PipelineStep> List<PipelineStepCtx<StepType>> getSteps(
231230
@Override
232231
public void ensureSequenceDictionaryExists(File referenceFasta, Logger log, boolean forceRecreate) throws PipelineJobException
233232
{
234-
new CreateSequenceDictionaryWrapper(log).execute(referenceFasta, false);
233+
CreateSequenceDictionaryWrapper wrapper = new CreateSequenceDictionaryWrapper(log);
234+
if (wrapper.jarExists())
235+
{
236+
new CreateSequenceDictionaryWrapper(log).execute(referenceFasta, false);
237+
return;
238+
}
239+
240+
log.debug("picard.jar not found, creating directly");
241+
ReferenceLibraryHelperImpl helper = new ReferenceLibraryHelperImpl(referenceFasta, log);
242+
if (forceRecreate)
243+
{
244+
File dict = helper.getSequenceDictionaryFile(false);
245+
if (dict.exists())
246+
{
247+
log.debug("Deleting pre-existing dictionary: " + dict.getPath());
248+
dict.delete();
249+
}
250+
}
251+
252+
helper.getSequenceDictionaryFile(true);
235253
}
236254

237255
@Override

0 commit comments

Comments
 (0)