Skip to content

Commit 5bec61c

Browse files
authored
Changes required to update HTSJDK Version (#34)
* Changes required to update HTSJDK Version * Update jars.txt for new version * Remove old code that attempts to find JARs directly
1 parent c9220e3 commit 5bec61c

File tree

11 files changed

+14
-150
lines changed

11 files changed

+14
-150
lines changed

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/SequenceAnalysisService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ static public void setInstance(SequenceAnalysisService instance)
8989

9090
abstract public String getVCFLineCount(File vcf, Logger log, boolean passOnly) throws PipelineJobException;
9191

92-
abstract public File getPicardJar();
93-
9492
abstract public File writeAllCellHashingBarcodes(File webserverDir, User u, Container c) throws PipelineJobException;
9593

9694
abstract public String createReferenceLibrary(List<Integer> sequenceIds, Container c, User u, String name, String assemblyId, String description, boolean skipCacheIndexes, boolean skipTriggers) throws IOException;

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

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.jetbrains.annotations.Nullable;
77
import org.labkey.api.pipeline.PipelineJobException;
88
import org.labkey.api.pipeline.PipelineJobService;
9-
import org.labkey.api.sequenceanalysis.SequenceAnalysisService;
109
import org.labkey.api.sequenceanalysis.pipeline.SequencePipelineService;
1110

1211
import java.io.File;
@@ -63,16 +62,7 @@ public static File getPicardJar()
6362
path = PipelineJobService.get().getAppProperties().getToolsDirectory();
6463
}
6564

66-
File ret = path == null ? null : new File(path, "picard.jar");
67-
68-
// we only use the provided JAR if there is not one in the pipeline directory. this allows the admin to update this JAR separate from the LK version
69-
// however, if not otherwise provided, use the included one for convenience.
70-
if (ret == null || !ret.exists())
71-
{
72-
return SequenceAnalysisService.get().getPicardJar();
73-
}
74-
75-
return ret;
65+
return path == null ? null : new File(path, "picard.jar");
7666
}
7767

7868
protected File getJar()

SequenceAnalysis/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ dependencies {
2626
external "org.apache.commons:commons-math3:${commonsMath3Version}"
2727
// picard brings in a version of servlet-api and a very old one at that, so we excluded it
2828
// Note: if changing this, we might need to match the htsjdk version set in gradle.properties
29-
external("com.github.broadinstitute:picard:2.18.4") {
29+
external("com.github.broadinstitute:picard:2.22.4") {
3030
exclude group: "javax.servlet", module: "servlet-api"
31+
exclude group: "org.apache.commons", module: "commons-collections4"
3132
}
3233

3334
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:LabDevKitModules:laboratory", depProjectConfig: "published", depExtension: "module")
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# direct external dependencies for project :server:modules:DiscvrLabKeyModules:SequenceAnalysis
2-
htsjdk-2.14.3.jar
2+
htsjdk-2.21.3.jar
33
biojava3-core-3.0.7.jar
44
biojava3-genome-3.0.7.jar
55
bzip2-0.9.1.jar
66
sam-1.96.jar
77
commons-math3-3.6.1.jar
8-
picard-2.18.4.jar
8+
picard-2.22.4.jar

SequenceAnalysis/resources/credits/jars.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ sam-1.96.jar|picard tools|1.96|{link:picard tools|http://sourceforge.net/project
55
biojava3-core-3.0.7.jar|biojava3-core|3.0.7|{link:biojava|http://biojava.org/wiki/Main_Page}|{link:GNU Lesser GPL V2.1|http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html}|bbimber|Java framework for processing biological data
66
biojava3-genome-3.0.7.jar|biojava3-genome|3.0.7|{link:biojava|http://biojava.org/wiki/Main_Page}|{link:GNU Lesser GPL V2.1|http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html}|bbimber|Java framework for processing biological data
77
commons-math3-3.6.1.jar|commons-math|3-3.6.1|{link:commons-math|http://commons.apache.org/proper/commons-math/}|{link:Apache License, Version 2.0|http://www.apache.org/licenses/LICENSE-2.0.txt}|bbimber|Self-contained mathematics and statistics components
8-
htsjdk-2.14.3.jar|htsjdk|2.14.3|{link:htsjdk|http://samtools.github.io/htsjdk/}|{link:MIT License|http://opensource.org/licenses/MIT}|bbimber|Description A Java API for high-throughput sequencing data (HTS) formats
9-
picard-2.18.4.jar|Picard Tools Lib|2.18.4|{link:PicardTools|https://github.com/broadinstitute/picard}|{link:Apache 2.0|http://www.apache.org/licenses/LICENSE-2.0}|bbimber|Manipulating Sequence Data
8+
htsjdk-2.21.3.jar|htsjdk|2.21.3|{link:htsjdk|http://samtools.github.io/htsjdk/}|{link:MIT License|http://opensource.org/licenses/MIT}|bbimber|Description A Java API for high-throughput sequencing data (HTS) formats
9+
picard-2.22.4.jar|Picard Tools Lib|2.22.4|{link:PicardTools|https://github.com/broadinstitute/picard}|{link:Apache 2.0|http://www.apache.org/licenses/LICENSE-2.0}|bbimber|Manipulating Sequence Data
1010
{table}

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

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@
5858
import org.labkey.api.query.UserSchema;
5959
import org.labkey.api.reader.FastaDataLoader;
6060
import org.labkey.api.reader.FastaLoader;
61-
import org.labkey.api.resource.FileResource;
62-
import org.labkey.api.resource.Resource;
6361
import org.labkey.api.security.User;
6462
import org.labkey.api.security.UserManager;
6563
import org.labkey.api.security.permissions.DeletePermission;
@@ -70,7 +68,6 @@
7068
import org.labkey.api.util.Job;
7169
import org.labkey.api.util.JobRunner;
7270
import org.labkey.api.util.PageFlowUtil;
73-
import org.labkey.api.util.Path;
7471
import org.labkey.api.view.UnauthorizedException;
7572
import org.labkey.sequenceanalysis.model.ReferenceLibraryMember;
7673
import org.labkey.sequenceanalysis.pipeline.ReferenceGenomeImpl;
@@ -522,38 +519,6 @@ public void deleteRefAaSequence(List<Integer> rowIds) throws SQLException
522519
}
523520
}
524521

525-
private static final String htsjdkVersion = "2.14.3";
526-
private static final String picardVersion = "2.18.4";
527-
528-
public static File getHtsJdkJar()
529-
{
530-
return getJar("htsjdk-" + htsjdkVersion);
531-
}
532-
533-
public static File getPicardJar()
534-
{
535-
return getJar("picard-" + picardVersion);
536-
}
537-
538-
private static File getJar(String name)
539-
{
540-
Resource r = ModuleLoader.getInstance().getResource(ModuleLoader.getInstance().getModule(SequenceAnalysisModule.NAME), Path.parse("lib/" + name + ".jar"));
541-
if (r == null)
542-
{
543-
throw new IllegalArgumentException("Unable to find JAR file: " + name);
544-
}
545-
else if (!(r instanceof FileResource))
546-
{
547-
throw new IllegalArgumentException("resource not instance of FileResource: " + r.getClass().getName());
548-
}
549-
550-
File jar = ((FileResource) r).getFile();
551-
if (!jar.exists())
552-
throw new RuntimeException("Not found: " + jar.getPath());
553-
554-
return jar;
555-
}
556-
557522
public static void cascadeDelete(int userId, String containerId, String schemaName, String queryName, String keyField, Object keyValue) throws SQLException
558523
{
559524
cascadeDelete(userId, containerId, schemaName, queryName, keyField, keyValue, null);
@@ -905,14 +870,6 @@ public static class TestCase extends Assert
905870
@Test
906871
public void testJars()
907872
{
908-
File htsjdkJar = SequenceAnalysisManager.getHtsJdkJar();
909-
assertNotNull("Unble to find HTSJDK jar", htsjdkJar);
910-
assertTrue("JAR does not exist: " + htsjdkJar.getPath(), htsjdkJar.exists());
911-
912-
File picardJar = SequenceAnalysisManager.getPicardJar();
913-
assertNotNull("Unable to find picard jar", picardJar);
914-
assertTrue("JAR does not exist: " + picardJar.getPath(), picardJar.exists());
915-
916873
File libDir = new File(ModuleLoader.getInstance().getModule(SequenceAnalysisModule.NAME).getExplodedPath(), "lib");
917874
assertNotNull("Unable to find SequenceAnalysis lib dir", libDir);
918875
assertTrue("SequenceAnalysis lib dir does not exist: " + libDir.getPath(), libDir.exists());

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -432,12 +432,6 @@ public String getVCFLineCount(File vcf, Logger log, boolean passOnly) throws Pip
432432
return ProcessVariantsHandler.getVCFLineCount(vcf, log, passOnly);
433433
}
434434

435-
@Override
436-
public File getPicardJar()
437-
{
438-
return SequenceAnalysisManager.getPicardJar();
439-
}
440-
441435
@Override
442436
public String getScriptPath(String moduleName, String path) throws PipelineJobException
443437
{

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/PicardMetricsUtil.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import org.labkey.api.data.ConvertHelper;
1010
import org.labkey.api.pipeline.PipelineJobException;
1111
import picard.analysis.AlignmentSummaryMetrics;
12-
import picard.analysis.CollectWgsMetrics;
1312
import picard.analysis.CollectWgsMetricsWithNonZeroCoverage;
1413
import picard.analysis.InsertSizeMetrics;
14+
import picard.analysis.WgsMetrics;
1515
import picard.sam.DuplicationMetrics;
1616

1717
import java.io.BufferedReader;
@@ -56,7 +56,7 @@ else if (metrics.get(0).getClass() == AlignmentSummaryMetrics.class)
5656
log.info("Importing Picard AlignmentSummaryMetricsCollector metrics from: " + f.getName());
5757
return processAlignmentSummaryMetrics(metricsFile, log);
5858
}
59-
else if (metrics.get(0).getClass() == CollectWgsMetrics.WgsMetrics.class)
59+
else if (metrics.get(0).getClass() == WgsMetrics.class)
6060
{
6161
log.info("Importing Picard WgsMetrics for: " + f.getName());
6262
return processWgsMetrics(metricsFile, log);
@@ -92,9 +92,9 @@ private static List<Map<String, Object>> processWgsNonZeroMetrics(MetricsFile mf
9292
private static List<Map<String, Object>> processWgsMetricsBase(MetricsFile mf, Logger log, String category) throws PipelineJobException
9393
{
9494
List<Map<String, Object>> ret = new ArrayList<>();
95-
List<CollectWgsMetrics.WgsMetrics> metrics = mf.getMetrics();
95+
List<WgsMetrics> metrics = mf.getMetrics();
9696

97-
for (CollectWgsMetrics.WgsMetrics m : metrics)
97+
for (WgsMetrics m : metrics)
9898
{
9999
Map<String, Object> metricNames = new HashMap<>();
100100

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/alignment/MosaikWrapper.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.labkey.api.util.FileUtil;
3131
import org.labkey.api.util.PageFlowUtil;
3232
import org.labkey.sequenceanalysis.pipeline.SequenceTaskHelper;
33-
import org.labkey.sequenceanalysis.run.util.FixBAMWrapper;
3433
import org.labkey.sequenceanalysis.util.SequenceUtil;
3534

3635
import java.io.File;
@@ -388,8 +387,8 @@ public File executeMosaikAligner(File refFasta, File indexDir, File reads, File
388387
}
389388

390389
//Note: mosaik has started to give errors about bin field
391-
FixBAMWrapper fixBam = new FixBAMWrapper(getLogger());
392-
fixBam.executeCommand(bam, null);
390+
//FixBAMWrapper fixBam = new FixBAMWrapper(getLogger());
391+
//fixBam.executeCommand(bam, null);
393392

394393
new SamSorter(getLogger()).execute(bam, null, SAMFileHeader.SortOrder.coordinate);
395394

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/FixBAMWrapper.java

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)