Skip to content

Releases: samtools/htsjdk

2.13.0

15 Nov 22:57
2.13.0
68189f3
Compare
Choose a tag to compare

KNOWN ISSUES:

This version introduced a regression that can cause tools using sorting collections to crash. #1029
You may want to wait until 2.13.1 to upgrade.


This release includes assorted bug fixes and API improvements.

There is a new validation in SamFileValidation to check that records include quality scores. Records without quality scores are valid SAM records, but will often cause problems in downstream tools. This change means some files which previously validated will now emit warnings.

Deprecations:

The term not primary has been a longstanding cause of confusion in htsjdk. Deprecating methods that refer to notPrimary and replacing them with methods that refer to secondary. This should hopefully reduce confusion surrounding secondary and supplementary reads.

Removals:

the long deprecated SAMRecordUtil has been removed

Complete change list:

68189f3 Adds option to validator to skip mate validation (#1025)
060047e include cause when SAMFileWriterFactory rethrows exceptions (#1023)
0ab0667 More support for java.nio.Path: DiskBackedQueue and SortingCollection (#910)
889df1c Test that all the @DataProviders are successful (#1000)
5f90d4f Fix VCFFileReader.fromVCF throws an NPE when input contains no CONTIG lines #978 (#988)
82f9044 new SAM validation warning for missing quality scores (#993)
2a494dd Fix BufferedLineReader peek() at end of line with Windows line endings. (#1002)
4664c62 Add SamReaderFactory.referenceSequence(java.nio.Path) (#1006)
1efe018 Remove deprecated SAMRecordUtil (#950)
e45e448 Ability to opt-out of logging all failed intervals for LiftOver (#995)
e730d03 Add support for GZI index (#997)
d8e037a fixing resource leak in VCFFileReader (#1013)
d3e85e0 VariantContextFilter extends Predicate (#1010)
5df68ce Some refactoring of the Strand enum adding decoding (string and char) functionality. (#986)
3ac309c Add out/ to .gitignore (#1009)
d045c63 Deprecate 'not-primary' in favor of secondary along HTSJDK (#977)
bd4eac3 defining <NON_REF> allele in htsjdk, where it belongs. (#1007)
26eada2 Fixed ENA url to use https (instead of http) (#1004)
c9cab31 Remove redundant use of DataOutputStream when passing to BinaryCodec. (#1001)

2.12.0

28 Sep 21:17
2.12.0
Compare
Choose a tag to compare

Notable changes:

  • expanded Path support to SamFileWriterFactory
  • upgraded Snappy to version 1.1.4, this brings us to using standard modern snappy rather than an ancient and unsupported beta version
  • support for writing VCFs records without outputting a header first
  • minor API additions, SAMRecord.hasAttribute(), new default methods on Locatable
  • additional tests and bug fixes

Deprecations:

These will be removed in a future release

  • StringLineReader in favor of a BufferedLineReader.fromString()
  • SortingVariantContextWriter and related classes, no replacement
  • FixBAMFile, no replacement

Breaking Changes:

  • new method VariantContextWriter.setHeader() must be provided by implementations, see the javadoc for more details, this should hopefully be an easy fix for most downstream users
  • removed main method from TabixReader

Complete change list:

86a7417 add default methods to Locatable (#443)
a35b420 Don't generate interrupt on close in AbstractAsyncWriter. (#992)
934fb62 Fix unhelpful exception message in IndexFactory (#987)
9b0bb26 renaming VariantContextWriter.setVCFHeader -> setHeader (#989)
b16ad36 Add convenience method hasAttibute() to SAMRecord (#963)
f0ff130 minor updates to snappy code (#983)
1e2ebd5 deprecating SortingVariantContextWriter (#982)
aa2d24a remove unnecessary array copy in TabixReader(#932)
fc9f2c4 Upgraded snappy-java to 1.1.4 #666 (#872)
9991e55 allow writing vcf records without writing a header #902 (#904)
04b17d5 Optimize intervals fails to merge abutting intervals #971 (#979)
4c5620b Simplify and deprecate StringLineReader (#974)
a0e38a9 Simplify BufferedLineReader by using LineNumberReader (#953)
1ade6c9 add Path options for SAMFileWriterFactory (#840)
e110f44 Increase coverage for SAMRecord query comparators (#948)
958dc6e Increase test coverage for SAMReadGroupRecord (#951)
4f4c505 cleaning up constructors in ReferenceSource (#970)
dcff7f5 Deprecate FixBAMFile.java (#947)
d5af563 speed up performance when creating a VCF header with a large number of contigs.
#934 (#968)

2.10.1

08 Jun 15:30
2.10.1
Compare
Choose a tag to compare

Minor release with several new methods. No need to update unless you want to use the new methods.

98c2438 overloading BlockCompressedInputStream.checkTerminator to support NIO (#890)
dcd20ff Adding an overlaps function to IntervalList. (#877)

2.10.0

01 Jun 19:43
2.10.0
Compare
Choose a tag to compare

This release includes useful new features and a lot of bug fixes:

  • Expanded support for Path to more of the api (#846, #810, #814)
  • There's now support for creating fasta.fai indexes (#842)
  • HTSJDK tests can now be written in scala as well as java (#789)

This release includes changes to the htsjdk.tribble.Index API. Anyone who has implemented a subclass of Index will have to update their class See #841 and #810 for more details.

Detailed Changes:

  • Revert "The existing code was throwing a NPE when using a CRAMFileReader for … (#879)" (#885)
  • The existing code was throwing a NPE when using a CRAMFileReader for … (#879)
  • Index.writeBasedOnFeaturePath throws instead of silently failing (#841)
  • fixed a small NPE in MD5CalculatingOutputStream (#881)
  • Fix ordering of assignments in FastQReader constructor. (#878)
  • Adding OpenJDK8 to travis configuration (#875)
  • Defensive programming around test case race condition to address #776 (#790)
  • Obey the tmpDir setting in several constructors that currently ignore it (#826)
  • add UNKNOWN sort order(#862)
  • More informative IO error for FASTQ reader (#865)
  • Add .fai index creation support (#842)
  • Add fromPath to IntervalList. (#846)
  • Count the number of warnings and errors during SAM file validation (#855)
  • Added the ability to query the length of the line terminator to AsciiLineReader. (#843)
  • removing scripts/release_picard.sh (#858)
  • Adding a pre-test check that looks for java files in the test/scala d… (#857)
  • Expose a couple of protected methods and replace hard coded strings with an enum. (#854)
  • check for negative length in CigarElement ctor (#839)
  • replace method getRefPos() into abstract class EdgingRecordAndOffset and delete constructor in AbstractRecordAndOffset (#849)
  • Enabling writing and running of tests with scalatest. (#789)
  • Maintain ordering of header in smartMergeHeader #847 (#848)
  • Fix DateParserTest unit tests that were failing in my locale. (#832)
  • Make exception message informative in SAMUtils.charToCompressedBase (#836)
  • Adding getSAMString to AbstractSAMHeaderRecord (#827)
  • Update javadoc for Feature (#818)
  • Tribble/Tabix index path support (#810)
  • Fix for issue #513: NPE in ValidateSamFile with CRAM (#735)
  • fixing vararg warnings on test compilation (#809)
  • support Path in Md5CalculatingOutputStream(#814)
  • Fixed bug where calling IntervalList.uniqued(false) would fail if the interval names were null. (#815)
  • Refactoring FastqRecord (#572)
  • automatically adding @OverRide annotations (#729)
  • add a coverage drop threshold to limit codecov failure spam (#803)
  • fixes for issue #547

2.9.1

21 Feb 17:29
2.9.1
Compare
Choose a tag to compare

Minor release to make BAMFileReader and related classes public.

Fixes a serious bug in BAMFileSpan. removeContentsBefore() if you use this method directly you should update.

  • 55bf01b Make BAMFileReader and some related classes public, and expose (#786)

2.9.0

14 Feb 22:07
2.9.0
Compare
Choose a tag to compare

This release includes some major new functionality as well as minor bug fixes and API updates:

Asynchronous bam decompression If you have an extra core you can speedup bam reading by setting the system property use_async_io_read_samtools=true. Thanks to @d-cameron for this functionality and to all the people who helped review it.

Support for hardware optimized decompression using InflaterFactory: You can use the new InflaterFactory to enable the use of hardware optimized inflaters. An accelerated inflater offering large performance improvements is coming for intel hardware in the near future. Watch https://github.com/Intel-HLS/gkl for updates.

Improved support for java.nio.Path : We're expanding support for using java.nio.Path in addition to the more limited File. You can you now read bams and feature files from a Path. This is exciting for anyone using FileSystem providers to access data in the cloud.

This release removes a number of long deprecated methods and deprecates LazyInitializer. Please update your code accordingly.

Complete change list:

  • Changed parameter names and doc to be consistent in use of "offset" and "position".
  • Make constructors public in CustomGzipOutputStream (#798)
  • Add/improve CRAM roundtripping tests. (#720)
  • updating tribble to support path wrappers (#796)
  • Don't set a custom default InflaterFactory when testing passing in an explicit InflaterFactory (#795)
  • Small patches to custom InflaterFactory support left over from code review (#794)
  • add inflater factory (#771)
  • Add getters for defaults SAMFileWriterFactory fields (#791)
  • wrap both path and index (#785)
  • improve ambiguous documentation in SAMRecord.getAlignmentStart() (#782)
  • Increase Test Coverage, fix tiny bug in Node class (regarding OVERLAPS) (#779)
  • Support use of Path in ParsingUtils, SeekableStreamFactory, AbstractVCFCodec. (#724)
  • fixed unmappable character for encoding ASCII (#784)
  • refactoring Lazy to take a Supplier() (#780)
  • removed deprecated LineReaderUtil (#754)
  • removed gelitext package and usages (#753)
  • removing unused package-specific (visible for testing) deprecated method (#752)
  • Discounts reads that are non-filter-passing in DuplicateScoringStrategy (#745)
  • Async BAM decompression (#576)
  • adding new method SamReaderFactory.setPathWrapper(#775)
  • switching coverage reporting from coveralls to codecov (#764)
  • replacing uses of getRecordAndPositions with getRecordAndOffsets (#715)
  • Methods for default sequence dictionary name (#774)
  • updating the gradle version from 2.13 to 3.2.1 (#727)
  • removed VariantContextWriterFactory (#756)

2.8.1

09 Dec 22:28
2.8.1
Compare
Choose a tag to compare

Point release to provide finer control over Jexl expression matching #697 (#772)

This was necessary to enable certain GATK functionality that was impacted by #668
Users of Jexl matching functionality may want to upgrade. Other users may safely ignore this release.

2.8.0

07 Dec 20:28
2.8.0
Compare
Choose a tag to compare

Minor release of htsjdk with bug fixes and new functionality

Validate VariantContext AC and AF without genotypes #757 (#759)
Fixed bugs preventing reading bam indexes from remote Paths #749 (#769) (#762)
new algorithm for locus iteration and Picard's CollectWgsMetrics (#637)
Clean some deprecated classes/methods usages in htsjdk (#707)
fix CreateSequenceDictionary stalls indefinitely with large genomes broadinstitute/picard#432 (#744)
Add file name to FileTruncatedException messages #747 (#750)
make CustomGzipOutputStream public to be able to set compression level (#746)
Added getDescription() in VCFFilterHeaderLine (#726)
fix exception inVariantContex.getAltAlleleWithHighestAlleleCount() broadinstitute/picard#519 (#733)
More getters for VariantContext #371 (#712)
test coverage for SamFileValidator (#743)
Missing license header added to the several classes (#742)
Change default logging level to INFO #739 (#740)
new enum variantcontext.StructuralVariantType (#696)

2.7.0

28 Oct 20:34
2.7.0
Compare
Choose a tag to compare

Small release with bug fixes and new functions. CRAM users probably want to upgrade due a change which will make use of CRAM indexes in some cases they were not being used before.

There are minor incompatible API changes in this update. Some old deprecated code was removed. There are some new deprecations where API improvements have made old code unnecessary. The upgrade path should be clear for anyone making use of newly deprecated code.

add tag aware merge samdictionary #689
fixed an issue with NM case sensitivity #728
0808588 Add a mergeDictionary utility to SAMSequenceDictionary to be used by picard in MergeBamAlignment
6f0512b Fix for Issue 574: CRAM index (#716)
Add option to deep copy attributes in ReverseComplement #717
b497630 preventing non-deterministic test failure in RelativeIso8601DateTest #578 (#710)
7ab2531 deleting SAMFileReader and SAMTruncatedFileReader (#699)
88b6719 IndexingVariantContextWriter cleanup (#706)
224cfc1 adding Hamming Distance functions to StringUtil (#690)
b5fd3c0 fixed the text codec to enable empty strings TA:Z:"" as per latest hts-spec
fbba536 adding additional write method to Index, fixes #430 (#683)
0e6edc7 Added support for an empty NM tag in SA tag fields using '*' character (#693)
255e41a annotating deprecated methods with @Deprecated (#698)
7886768 Added a secondary constructor to IntervalList that takes a dict. (#703)
21d8865 Fix JexlMap and GenotypeJEXLContext NullPtrException (#668)
fb1ba06 Fix BEDCodec.canDecode() to handle block-compressed extensions (#704)

2.6.1

30 Aug 17:28
2.6.1
Compare
Choose a tag to compare

Minor release with bug fixes and new methods.

This release while not technically source compatible with 2.6.0 should not require any changes by the vast majority of users.

Added new checks to prevent reading a CRAM file with the wrong reference sequence. It is recommended that CRAM users upgrade since accidentally reading a CRAM file with a different reference than it was created with results in reading incorrect bases.

Deprecated TribbleIndexedFeatureReader.isGZIPPath, use TribbleIndexedFeatureReader.hasBlockCompressedExtension instead.

c3d5a88 added function to extract SA tag and return a list of supplementary alignments (#685)
275cfe0 Removed unused .bcf test files. (#691)
0d0da87 Throw on unrecognized CRAM encoding tag. (#593)
b81d036 Remove unreferenced test files. (#687)
0e17e07 Added a "RANDOM" duplicate scoring strategy. (#688)
a781afa Normalize CRAM reference bases and throw on MD5 validation failure.
c8202f2 Fix TribbleIndexedFeatureReader cannot read header from .bgz #653 (#672)
fba4637 FeatureCodec.getTabixFormat() to encapsulate tabix formatting (#669)
c872049 Add mention of test.single to README
ea80585 Fix self-suppression problem with exception handling in AbstractAsyncWriter

Thank you to all of our contributors!