Skip to content

2.19.0

Compare
Choose a tag to compare
@lbergelson lbergelson released this 18 Mar 19:58
· 209 commits to master since this release
2.19.0
019465f

This release contains significant new features and many bug fixes.

Compatibility Notes:

This release is neither binary or source backwards compatible with 2.18.2 but upgrading should be painless for the majority of users. There may be some minor source changes necessary when recompiling against 2.19.0. If you encounter difficulties please contact us.

Binary/Source Compatibility issues:

  • The method SamRecord.getIndexingBin() has been removed. It was a cache of a bam format specific field which could often get out of sync with correct value. Users with their own subclasses of SamRecord may need to make changes. Uses of getIndexingBin() can be replaced by computeIndexingBin().
  • Various static fields have been made final. These fields are not intended to be update by user code.
  • There continues to be significant changes in the unstable htsjdk.samtools.cram cram package.
  • Signature change in SAMSequenceDictionaryCodec:
    SAMSequenceDictionaryCodec(BufferedWriter) -> SAMSequenceDictionaryCodec(Writer)
  • Signature change: AbstractBAMFileIndex.position() returns a long instead of an int now.
  • Removed throws clause from methods:
    • CRAMContainerStreamWriter.flushContainer( )
    • SequenceUtil.calculateMD5String
    • multiple overloads of `CRAMIterator.CRAMIterator

Changes in behavior:

  • IntervalList.fromFiles() no longer calls unique() on the returned interval list. (#1273)

New Features:

CSI index Support:

We can now use CSI indexes generated by other tools. (#1040, #1314, #447)

Fasta Writing:

We can now write fasta files with FastaReferenceWriter (#1172, #1285)

Java 11 support:

We now build and test with Java 11. This is fairly experimental and our downstream acceptance tests haven't been run on 11. We still target java 8 so no new features of 9/10/11 can be used in code yet. (#1291)
IntervalList improvements: Reduced in memory size of IntervalList and OverlapDetector and added support for read/writing them into sorting collections / from Paths.

IntervalList Improvements:

  • New support for writing/reading large interval lists from on disk SortingCollection. (#1288)
  • Reduced memory footprint IntervalList and OverlapDetector. (#1309)
  • IntervalLists can now be written to Paths. #1297 (#1298)
  • IntervalList.fromFiles() no longer calls unique on the returned interval list. (#1273)

CRAM Improvements:

Many other bug fixes and minor additions.

Complete Change List:

019465f Adding back a removed method (#1321)
fe27e66 Fixing zero-length interval bug in IntervalList.merge (#1318)
b321d91 Fix CSI bug when querying files with long references. (#1314)
dd313de Deprecate TestUtil.deleteRecursively (#1315)
68199fb Revert singletonList optimization in SamRecordSetBuilder (#1317)
d678af3 Fix bug in BlockCompressedInputStream.checkTermination() (#1310)
7b3c7a6 Fix bug when loading indexed bgzip fasta file. (#1311)
9f84b7b Optimizations to reduce in-memory size of IntervalList and OverlapDetector (#1309)
d25bbb4 Add ability to generate reference from SamRecordSetBuilder (#1286)
1509dcc Consolidate common code into CRAMStructureTestUtil: (#1312)
b1cb410 Fix toFile call that prevents IntervalListWriter from writing to Paths (#1298)
37b2e87 CRAM: formalize Slice Type with an enum (#1274)
b58a5a9 CRAM: Only calculate alignmentDelta as needed for records (#1304)
62388a2 A few fixes for issues found by spotbugs (#1278)
0b16296 Simplify CRAM sequence dictionary extractor to not require a fake reference. (#1308)
a6c5837 remove caching of alleles in AbstractVCFCodec (#1282)
2d2922f Load BlockCompressedIndexedFastaSequenceFile and GZIIndex from streams (#1259)
205d5f0 Add support for CRAM in SamSequenceDictionaryExtractor (#1305)
d6043f0 Changing the team name/url in the maven pom (#1300)
0cc762f Changed IntervalList fromFiles() so that it doesn't call .unique() on… (#1273)
3b3d107 adding new overloads to IOUtils with Path for some file only methods (#1296)
5e8b1fa Update java version information in the README (#1299)
061e217 update CramCompressionRecord.isPlaced() to make it APDelta-aware (#1284)
efe4abf Remove redundant and unused BAM_FLAGS from CRAM code. (#1292)
e8e0a6f Add an IntervalCodec that use useful for sorting large sets of Intervals (#1288)
d771b30 rm CramHeader.clone() (#1283)
c0642fb Build and test on Java 11 (#1291)
4c8dfbd Changes to FastaReferenceWriter (#1285)
38bfe65 moving HttpUtilsTest to externalApi test task (#1289)
62fc0b1 Use Integer.parseInt over Integer.valueOf to avoid unnecessary boxing (#1275)
77b3b8f Fix fields that should be final, as reported by SpotBugs (#1268)
52169ed Moving the SRA tests to a separate env (#1272)
3ae552f Move bad coordinates check (#911)
942e3d6 Ported GATK's FastaReferenceWriter (#1172)
e86af96 makeSAMOrBAMWriter accept only .sam/.bam (#834)
c189878 CRAM: Container and Slice states (#1266)
5ef9223 Add support for Sam Header Readgroup Barcode field (#1210)
3c48018 Fix bug in IntervalList.getUniqueIntervals that caused missing interval names (#1265)
d0b1a74 Adding some constants due to additions to hts-spec (#1241)
93250d5 Parse valid VCF 4.2 with ##INFO containing Source + Version (#1248)
5217fe4 Misc CRAM cleanup (#1253)
16a4e37 Support for reading CSI indexes for BAM files (#1040)
15ec7da Only compute BIN on BAM write and on index building (#1258)
94f0967 Immutable CRAIEntry (#1256)