Picard Changelog

What's new in Picard 3.1.1

Nov 15, 2023
  • Check for non-symbolic alt alleles before left aligning in liftover by @kachulis in #1909
  • Fix for setting the custom tmp folder. by @kockan in #1908
  • FastqToSam stdin fix for #915 by @delocalizer in #1910
  • Changed CrosscheckFingerprints hashing to linked hashing by @tmelman in #1892
  • Update htsjdk to 4.0.2 by @lbergelson in #1917

New in Picard 3.1.0 (Jul 30, 2023)

  • Highlights:
  • Improving Google Cloud Support:
  • We've done away with the picard-cloud.jar. The default picard jar now includes the necessary libraries to read from google cloud buckets. This is part of an ongoing push to cloud enable more of the important picard tools. It will reduce confusion and simplify code.
  • cloud jar is now default jar #1900
  • IntervalListTools is cloud enabled #1852
  • updated google nio library which supports _ in bucket names #1903
  • new test infrastructure for writing tests that use google cloud #1860
  • IntelGKL update:
  • A new version:
  • A new version of the Intel GKL library fixes several major bugs. #1901
  • A bug fix which enables the IntelInflater which was accidentally being ignored. #1885
  • Dependency and Gradle Updates:
  • Updated dependencies to their latest versions to incorporate security and bug fixes.
  • Updated to gradle 8.2.1
  • Notes:
  • Downstream toolkits will have to make some changes if they want to continue to NOT provide the google cloud libraries.
  • Updating to gradle 8.2.1 was necessitated by a packaging issue. One of the updated dependencies now includes java 19 code in it's multi-version jar and we needed to update to the newest version of the shadowJar plugin in order to handle it. See #1903 for more disussin.
  • Change List:
  • Remove unused method Fingerprint.filterSuspectSites() by @lbergelson in #1849
  • Fix crash on PF_READS == 0 for AlignmentSummaryMetricsCollector by @kockan in #1871
  • More informative error messages when dictionaries don't match by @kachulis in #1870
  • Enable IntelInflater by @lbergelson in #1885
  • Add .DS_STORE and .java-version to .gitignore by @lbergelson in #1886
  • Fix deprecated uses of newInstance() by @lbergelson in #1887
  • Add tests to verify sequence dictionary MD5s respect dos line endings. by @cmnbroad in #1884
  • Mark GENOTYPING_ERROR_RATE as a DeprecatedFeature and remove code ref… by @cmnbroad in #1878
  • Refactoring by @LadDeep in #1868
  • Fix #1081. Make --USE_SEQUENTIAL_FASTQS help message more user friendly by @nrockweiler in #1891
  • DbSnpBitSetUtil should verify that the VCF dict should match the inpu… by @nh13 in #1889
  • Fix the dependency issue causing dsp-appsec-trivy workflow to fail. by @kockan in #1895
  • Lb add cloud tests by @lbergelson in #1860
  • make cloud jar mandatory by @lbergelson in #1900
  • Support cloud input/output for IntervalListTools by @takutosato in #1852
  • typo correction "Didn't recognized" -> "Didn't recognize" by @tomkinsc in #1902
  • Update google-cloud-nio to support underscores in bucket names by @kshakir in #1903
  • Fix gradle 8 publishing issue by @kshakir in #1904
  • Update all our dependencies to the latest version by @lbergelson in #1901

New in Picard 3.0.0 (Feb 23, 2023)

  • The same as before but now on Java 17:
  • The big change is that Picard is moving from Java 8 -> 17. Java 8 is very old and no longer available by default on most systems. Java 17 is the newest long term support release. This will enable us to take advantage of improvements in the language as well as benefiting from improvements and security fixes in the newer JVMs.
  • Major changes:
  • Upgrade to Java 17. by @cmnbroad in #1833
  • Bug fixes and minor improvements:
  • Improvements to CompareMetrics by @kachulis in #1839
  • Fix typo in a filter name output by LiftoverVcf by @lbergelson in #1842
  • Stop removing periods from the end of output names by @tlangs in #1433
  • Avoid merging fingerprints when there is only one by @yfarjoun in #1826
  • Remove commons.lang dependency because it is redundant with commons lang3 by @lbergelson in #1856
  • Delete the now redundant ClassFinder by @lbergelson in #1857
  • Remove obsolete references to Google Genomics API by @lbergelson in #1858
  • Fix Duplicate Set Index for queryname sorted input to MarkDuplicates by @kachulis in #1843
  • Allow empty input files for CollectAlignmentSummaryMetrics and FastqToSam by @kachulis in #1859
  • Documentation and infrastructure changes:
  • Update CrosscheckFingerprints summary by @derekca in #1721
  • Updated the issue template to link to our support forum by @droazen in #1837
  • Adding a gh actions test by @lbergelson in #1853

New in Picard 2.27.5 (Oct 7, 2022)

  • Allow explicit index file paths for inputs to CrosscheckFingerprints by @rickymagner in #1823
  • Fix temporary directory hijacking or temporary directory information disclosure by @lbergelson in #1829
  • Update htsjdk to 3.0.1 by @lbergelson in #1831

New in Picard 2.27.4 (Jun 30, 2022)

  • Picard modifications to support flow based sequencing (#1813)

New in Picard 2.27.3 (Jun 14, 2022)

  • Upgrade to htsjdk 3.0.0. (#1812)
  • Fix FastqToSam regression. (#1811)

New in Picard 2.27.2 (May 26, 2022)

  • Update command line parser argument style detection, add tests. (#1785)
  • Convert FastqToSam and RevertSam to use PicardHtsPath (#1794)

New in Picard 2.27.1 (Apr 8, 2022)

  • Add a new interval list scatter mode (#1786)

New in Picard 2.27.0 (Apr 7, 2022)

  • Upgrade google-cloud-nio to match gatk (#1792)
  • Add support for documentation generation for metrics classes. (#1782)
  • Simplify handling of paths for input in BuildBamIndex.java (#1787)

New in Picard 2.26.11 (Feb 24, 2022)

  • In GtcToVcf, set infinite values to missing ('.') in the VCF. (#1777)
  • Correct logic to have ExtractBarcodesProgram properly match for all Ns (#1775)
  • Cluster Visualization Python Script (#1701)
  • Detect worker thread exception sooner, and stop other workers. (#1772)

New in Picard 2.26.10 (Jan 4, 2022)

  • Update log4j to v2.17.1 (#1768)

New in Picard 2.26.9 (Dec 21, 2021)

  • Update log4j to v2.17 (#1766)

New in Picard 2.26.8 (Dec 16, 2021)

  • Update Picard to Log4J 2.16.0 (#1762)

New in Picard 2.26.7 (Dec 14, 2021)

  • Upgrade Barclay. (#1760)
  • Update log4j version 2.15 to address CVE-2021-44228
  • Clarified comment for purpose of GatherVcfs (#1758)

New in Picard 2.26.6 (Nov 24, 2021)

  • Fix error in Picard jar packaging that prevented it from running under Java 11. Make the shadowJar multi-release. (#1749)
  • Fix picard doc on java 11 (#1750)
  • Change IlluminaBasecallToFastq to make the parameter ADAPTERS_TO_CHECK to be null by default (#1745)
  • ** Note that this reverts the behavior of IlluminaBasecallsToFastq back to what it was in Picard release 2.26.0 and before.
  • Fix data provider for IlluminaBasecallsToSamTest (#1752)

New in Picard 2.26.5 (Nov 15, 2021)

  • Fixed bug in initialization of ExtractIlluminaBarcodes perfect score array. (#1744)
  • Removed deprecated parameter 'IS_NOVASEQ' from CollectIlluminaLaneMetrics. (#1736)
  • Updated the GKL version to 0.8.8 (#1733)
  • Added validation for existence of .bpm file to CompareGtcFiles (#1743)

New in Picard 2.26.4 (Oct 27, 2021)

  • Fixed a bug in IlluminaBasecallsToFastq where ADAPTERS_TO_CHECK could not be set as a CLP argument. (#1740)
  • Fixed a bug in GtcToVcf where where SOURCE fields populated from the Illumina manifest that contain a semicolon may be incorrectly populated in the INFO field of the VCF (#1738)
  • Updated CombineGenotypingArrayVcfs to handle differences in INFO:SOURCE field of a VCF generated by GtcToVcf (#1739)
  • Added more logging to IlluminaBaseCallsToSam/Fastq (#1735)

New in Picard 2.26.3 (Oct 13, 2021)

  • Added CLP that can combine multiple QualityYieldMetrics files (#1717)
  • Added description of the gtcCallRate field in the VCF Header. (#1730)
  • If deprecated parameter MAX_READS_IN_RAM_PER_TILE is specified, have IlluminaBasecallsToFastq set MAX_RECORDS_IN_RAM appropriately. (#1726)
  • Minor updates: https, new urls, license year (#1723)

New in Picard 2.26.2 (Sep 9, 2021)

  • Changed calculation of call rate to account for zeroed out SNPs. (#1711)

New in Picard 2.26.1 (Sep 3, 2021)

  • Updated documentation for MarkDuplicates.java (#1704)
  • Fixed a tiny typo in CollectWgsMetrics (#1705)
  • Added adapter and quality trimming to IlluminaBasecallsToFastq. (#1646)
  • Adjusted handling of missing data situations in CheckFingerprints (#1700)

New in Picard 2.26.0 (Aug 20, 2021)

  • Make cram valid input to remaining CLPs (#1622)
  • Add on the fly demux and speed up barcode matching. (#1649)
  • Cleaned up some variable names and order in the alignment metrics code. (#1707)
  • Added some more skew-resistent metrics for read length (#1706)
  • Fix typo in usage (#1703)
  • HaplotypeMap bug fix (#1702)
  • Fix bug in CollectSamErrorMetrics (#1618)

New in Picard 2.25.7 (Jul 21, 2021)

  • Fix: underflow in HaplotypeProbabilitiesFromContaminatorSequence (#1697)
  • Bugfix and nio access in Fingerprinting code (no need to panic) (#1694)

New in Picard 2.25.6 (Jul 21, 2021)

  • [bugfix] Fix small data race condition (#1690)
  • [bugfix] Pass MAX_RECORDS_IN_RAM to BasecallsConverter (#1687)
  • Only read the cbcl header once the tile is about to be cached and then close the streams. (#1686)
  • Added ref to software catalogs to citation section (#1606)
  • Addressing Integer comparison bug yeilding deflated rrna counts (#1680)

New in Picard 2.25.5 (May 18, 2021)

  • Created CreateExtendedIlluminaManifest tool (#1667)
  • SortGff tool (#1531)
  • Handle error case in interruptAndShutdownExecutors. (#1678)

New in Picard 2.25.4 (May 18, 2021)

  • Allow for no barcode files case. (#1675)
  • R Chart/PDF output filenames escape '%' with '%%' (#1671)

New in Picard 2.25.3 (Apr 29, 2021)

  • Add validation of existence of input directories (#1673)
  • [bugfix] Fix an issue with cbcl parsing when barcodes files are in a different directory from basecalls. (#1672)
  • Only run PR build, not the branch build (#1656)
  • Fix: getCumulative R method optimized (#1659)

New in Picard 2.25.2 (Apr 11, 2021)

  • Throw an exception if one of the pooled threads has an error. (#1663)
  • Delay data provider instantiation to avoid caching too many tiles when using cbcls. (#1658)
  • Added multi-lane support to BasecallsConverter (#1642)

New in Picard 2.25.1 (Mar 26, 2021)

  • Use AsyncWriterPool for Fastq writing. (#1645)
  • Merge branch 'master' into rz_rnaseqmetrics_parameterize_endbias_length
  • Update to htsjdk 2.24.1 (#1655)
  • Merge branch 'rz_rnaseqmetrics_parameterize_endbias_length' of https://github.com/watchmaker-genomics/picard into rz_rnaseqmetrics_parameterize_endbias_length
  • Added an additional constructor for RnaSeqMetricsCollector to be backwards compatible. 2. Added a static default endBias in the RnaSeqMetricsCollector to define the default value, and reference that in the constructor and in CollectRnaSeqMetrics
  • Merge branch 'master' into rz_rnaseqmetrics_parameterize_endbias_length
  • Spellcheck.
  • Add ConvertHaplotypeDatabaseToVcf clp (#1648)
  • Addressed test description comment. 2. Parameterized test start and stop positions. 3. Cleaned up whitespace.
  • Updated test cases to derive from DataProvider 2. Updated documentation to mention the role of end bias bases in bias calculation and coverage metrics filtering transcripts under the end bias length.
  • Change docker base image for security reasons. (#1654)
  • Add sample -> individual map capability to CrosscheckFingerprints (#1643)
  • Updated the unit test to explicitly call the parameters for each case.
  • Added an option to specify an end bias into a transcript replacing the constant PRIME_BASES (100 nt) variable. The default of this parameter set to the previous fixed value.
  • Fix multi-tile bcl file faking (#1640)
  • A tool to convert BafRegress output to a Picard metrics file. (#1597)
  • Parse version directly from tile metrics instead of using a clp flag. (#1633)
  • Add AppSec GitHub Trivy Action (#1634)
  • Update RefFlatReader.java (#1530)

New in Picard 2.25.0 (Feb 11, 2021)

  • Update htsjdk 2.23.0 -> 2.24.0 (#1641)
  • Include common (engine-level) args in help output. (#1580)
  • [refactor] Large refactor of IlluminaBaseCallsConverter (#1626)
  • Refactor the IlluminaBasecallsConverter and IlluminaDataFactory to normalize creation when dealing with cbcls vs bcls
  • Include a BasecallsConverter that doesn't do read name sorting by default
  • Performance enhancements

New in Picard 2.24.2 (Feb 4, 2021)

  • Added mapping quality concordance functionality to CompareSAMs (#1617)
  • Yf fix il to bed sorting (#1612)

New in Picard 2.24.1 (Jan 22, 2021)

  • Adding read information to an error. (#1621)

New in Picard 2.24.0 (Jan 5, 2021)

  • Adds support for reading CSI indexes. (#998)
  • Fix default PAR values for hg37 for FindMendelianViolations (#1600)
  • using guava instead of rolling my own CollectionsUtils... (#1619)
  • Added a metric to CollectAlignmentSummaryMetrics for the mean length of 3' softclips (#1586)
  • Add functionality to not combine abutting intervals (#1608)

New in Picard 2.23.9 (Dec 10, 2020)

  • Fast fail if R is not installed in tools that use R (#1613)
  • enable CollectIndependentReplicateMetrics to read a cram file (#1599)
  • Remove cluster intensity data.
  • Check Sequence Dictionaries Match in CollectWgsMetrics (#1610)
  • Add flowcell location stratifier for CollectSamErrorMetrics (#1603)
  • GtcToVcf should not fail if AS tag is missing (#1445)
  • Increase fraction of target coverage for panel metrics (#1542)

New in Picard 2.23.8 (Oct 15, 2020)

  • There was a buggy interactino between CollectMultipleMetrics and CollectAlignmentSummaryMetrics with regards to the collection and emission of the readlength histrogram. This PR fixes it. (#1595)

New in Picard 2.23.7 (Oct 14, 2020)

  • Extra protection and messaging for the histogram of read lengths in CollectAlignmentSummaryMetrics (#1593)
  • Safely run DownsampleSam multiple times (#1584)
  • MBA deletion edge case alternate solution and minor bug fix (#1589)

New in Picard 2.23.6 (Oct 14, 2020)

  • Remove deprecated syntax (#1585)
  • Fixed a bug in MergeBamAlignment (#1581)
  • Support standard input in IntervalListTools (#1582)

New in Picard 2.23.5 (Oct 14, 2020)

  • Add testing for methods within sex enum (#1578)

New in Picard 2.23.4 (Sep 6, 2020)

  • Adjust MBA read overhang clipping to be consistent with past behavior (#1571)
  • add support for CRAM reading in IdentifyContaminant and ExtractFingerprint (#1572)
  • Yf fix typo in histogram column name asm (#1568)
  • Use new IntervalMergingIterator to merge intervals on the fly (#1456)
  • Several changes to metrics collections (AlignmentSummaryMetrics and WgsMetrics) + some fluff (#1555)
  • Make Fingerprint checking fail when run on a truly unsorted file (currently it returns a non-informative fingerprint) (#1556)
  • Added a simple test for LiftoverHaplotypeMap (#1550)

New in Picard 2.23.3 (Jul 21, 2020)

  • Add haplotype map liftover (#1457)
  • Determine arg parser to use. (#1265)
  • Update CREATE_INDEX arg javadoc. (#1547)
  • Update README.md (#1543)
  • Use a mutable list when initializing MergeBamAlignment MATCHING_DICTIONARY_TAGS arg. (#1545)
  • New CheckDuplicateMarking CLP (#1507)

New in Picard 1.94 (Jul 2, 2013)

  • FixMateInformation.java: Eliminate extraneous open of SAM file.
  • SplitVcfs.java: Include option STRICT, which is true by default. If STRICT, throw an exception if something other than a SNP or Indel is found. Otherwise ignore that event.
  • FastqToSam.java: Allow for the ability to remove trailing /1s for unpaired reads in a FASTQ
  • Illumina bug workaround: Parser for TileMetricsOutput.bin ignore will discard duplicate entries. (Previously, if duplicate entries were found, the parser could get confused and couldn't collate the tile data properly.)

New in Picard 1.93 (Jun 18, 2013)

  • Set javac.target to 1.6
  • SamFileValidator.java: Speed up validation for headers with many read group records.
  • IlluminaBasecallsToSam: Support both gzipped and normal BCL files. This now uses a BufferedReader instead of a memory map backed iterator
  • Various VCF programs: Support for converting from VCF to BCF and back again
  • IntervalList.java: Handle null name in IntervalListComparator.
  • MarkDuplicates & EstimateLibrarySize: Change storage of tile # from byte to short in order to handle tile numbers > 127.
  • Emit warning once for MarkDuplicates and EstimateLibrarySize if the user-supplied READ_NAME_REGEX does not match a read name. Add limited validation of match against default READ_NAME_REGEX.

New in Picard 1.92 (May 24, 2013)

  • Added some tests to SeekableBufferedStream and fixed insertSizeHistogram.R so that it doesnt get confused by a single quote in the sample name
  • MeanQualityByCycle.java: Bug fix: was calculating average quality of second-reads by using the count for the first-reads (where the second-read count was appropriate).
  • CollectMultipleMetrics.java: Create an interface for Program enum to extend, so that outside developers can add their own Program implementations.
  • Fix issues with R scripts when read group library is not populated.
  • Package R scripts into picard.jar.
  • ExtractIlluminaBarcodes.java: Fixed bug in which inability to write barcodes.txt(.gz) file is not detected.