Skip to content

Commit

Permalink
Changes required to work with htsjdk 2.20.0 (#107)
Browse files Browse the repository at this point in the history
Updated htsjdk from 2.19.0 -> 2.20.0
This required some changes to disq's implementation to deal with breaking changes around the Cram code.  
Removed CRAMContainerStreamWriter2 since it's been incorporated in htsjdk.
Registered new Vcf Headerline classes.

Co-authored-by: Tom White <tom.e.white@gmail.com>
Co-authored-by: Louis Bergelson <louisb@broadinstitute.org>
  • Loading branch information
tomwhite and lbergelson committed Aug 1, 2019
1 parent 9529873 commit 7370ba6
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 501 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<java.version>1.8</java.version>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.source>${java.version}</maven.compiler.source>
<htsjdk.version>2.19.0</htsjdk.version>
<htsjdk.version>2.20.0</htsjdk.version>
<hadoop.version>2.7.5</hadoop.version>
<mockito.version>2.22.0</mockito.version>
<kryo-serializers.version>0.42</kryo-serializers.version>
Expand Down
490 changes: 0 additions & 490 deletions src/htsjdk/java/htsjdk/samtools/CRAMContainerStreamWriter2.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public CachingBAMFileIndexOptimized(SeekableStream stream, SAMSequenceDictionary
super(stream, dictionary);
}

@Override
protected BAMIndexContent query(final int referenceSequence, final int startPos, final int endPos) {
seek(4);

Expand All @@ -31,7 +32,8 @@ protected BAMIndexContent query(final int referenceSequence, final int startPos,
return super.query(referenceSequence, startPos, endPos);
}

private void skipToSequence(final int sequenceIndex) {
@Override
protected void skipToSequence(final int sequenceIndex) {
//Use sequence position cache if available
if(sequenceIndexes[sequenceIndex] != -1){
seek(sequenceIndexes[sequenceIndex]);
Expand Down
2 changes: 1 addition & 1 deletion src/htsjdk/java/htsjdk/samtools/cram/CRAIIndexMerger.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void processIndex(CRAIIndex index, long partLength) {
}

private static CRAIEntry shift(CRAIEntry entry, long offset) {
return new CRAIEntry(entry.getSequenceId(), entry.getAlignmentStart(), entry.getAlignmentSpan(), entry.getContainerStartByteOffset() + offset, entry.getSliceByteOffset(), entry.getSliceByteSize());
return new CRAIEntry(entry.getSequenceId(), entry.getAlignmentStart(), entry.getAlignmentSpan(), entry.getContainerStartByteOffset() + offset, entry.getSliceByteOffsetFromCompressionHeaderStart(), entry.getSliceByteSize());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
*/
package org.disq_bio.disq.impl.formats.cram;

import htsjdk.samtools.CRAMContainerStreamWriter2;
import htsjdk.samtools.CRAMCRAIIndexer;
import htsjdk.samtools.CRAMContainerStreamWriter;
import htsjdk.samtools.SAMFileHeader;
import htsjdk.samtools.SAMRecord;
import htsjdk.samtools.cram.CRAIIndex;
Expand Down Expand Up @@ -83,7 +84,7 @@ public RecordWriter<Void, SAMRecord> getRecordWriter(TaskAttemptContext taskAtte
static class CramRecordWriter extends RecordWriter<Void, SAMRecord> {

private final OutputStream out;
private final CRAMContainerStreamWriter2 cramWriter;
private final CRAMContainerStreamWriter cramWriter;

public CramRecordWriter(
Configuration conf,
Expand All @@ -103,8 +104,12 @@ public CramRecordWriter(
indexStream = null;
}
cramWriter =
new CRAMContainerStreamWriter2(
out, indexStream, referenceSource, header, file.toString());
new CRAMContainerStreamWriter(
out,
referenceSource,
header,
file.toString(),
indexStream == null ? null : new CRAMCRAIIndexer(indexStream, header));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
*/
package org.disq_bio.disq.impl.formats.cram;

import htsjdk.samtools.CRAMContainerStreamWriter2;
import htsjdk.samtools.CRAMContainerStreamWriter;
import htsjdk.samtools.SAMFileHeader;
import htsjdk.samtools.SAMRecord;
import htsjdk.samtools.cram.CRAIIndex;
Expand Down Expand Up @@ -134,8 +134,8 @@ private void writeHeader(
OutputStream out,
String headerFile,
CRAMReferenceSource referenceSource) {
CRAMContainerStreamWriter2 cramWriter =
new CRAMContainerStreamWriter2(out, null, referenceSource, header, headerFile);
CRAMContainerStreamWriter cramWriter =
new CRAMContainerStreamWriter(out, null, referenceSource, header, headerFile);
cramWriter.writeHeader(header);
cramWriter.finish(false); // don't write terminator
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ private NavigableSet<Long> getContainerOffsetsFromFile(
NavigableSet<Long> containerOffsets = new TreeSet<>();
while (it.hasNext()) {
Container container = it.next();
containerOffsets.add(container.offset);
containerOffsets.add(container.byteOffset);
}
containerOffsets.add(cramFileLength);
return containerOffsets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ public void registerClasses(final Kryo kryo) {
kryo.register(htsjdk.variant.variantcontext.VariantContext.Type.class);

// htsjdk.variant.vcf
kryo.register(htsjdk.variant.vcf.VCFAltHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFCompoundHeaderLine.SupportedHeaderLineType.class);
kryo.register(htsjdk.variant.vcf.VCFContigHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFFilterHeaderLine.class);
Expand All @@ -133,7 +134,11 @@ public void registerClasses(final Kryo kryo) {
kryo.register(htsjdk.variant.vcf.VCFHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFHeaderLineCount.class);
kryo.register(htsjdk.variant.vcf.VCFHeaderLineType.class);
kryo.register(htsjdk.variant.vcf.VCFHeaderVersion.class);
kryo.register(htsjdk.variant.vcf.VCFInfoHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFMetaHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFPedigreeHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFSampleHeaderLine.class);
kryo.register(htsjdk.variant.vcf.VCFSimpleHeaderLine.class);

// java.io
Expand Down

0 comments on commit 7370ba6

Please sign in to comment.