|
1 | 1 | .. An online version of the release history can be found here: |
2 | 2 | .. http://pysam.readthedocs.io/en/latest/release.html |
3 | 3 |
|
| 4 | +Release 0.24.0 |
| 5 | +============== |
| 6 | + |
| 7 | +.. rubric:: 27 April 2026 |
| 8 | + |
| 9 | +This pysam release wraps htslib/samtools/bcftools version 1.23.1 (PR #1343, |
| 10 | +PR #1372, and PR #1396) and now requires Cython 3. |
| 11 | + |
| 12 | +It has been tested with Python versions 3.8 through 3.14, and wheels are |
| 13 | +available via PyPI_ for all of those Python versions. Wheels are built for |
| 14 | +macOS and Linux (manylinux_2_28 and musllinux_1_2) on both ARM and x86-64. |
| 15 | + |
| 16 | +This release is the first to wrap htslib 1.22 or later, which contains |
| 17 | +significant CRAM-related operational changes inherited by pysam: |
| 18 | + |
| 19 | +* The default output CRAM version is now 3.1 rather than 3.0. |
| 20 | + The version can be explicitly specified by using |
| 21 | + :class:`AlignmentFile(..., "wc", format_options=["version=3.0"]) <.AlignmentFile>`. |
| 22 | + |
| 23 | +* CRAM reference data is no longer fetched from EBI's server by default. |
| 24 | + Use the :envvar:`REF_CACHE` and :envvar:`REF_PATH` environment variables |
| 25 | + if necessary to set up an alternative source of CRAM reference data. |
| 26 | + |
| 27 | +The final pysam release that supported Python 3.6 and 3.7 was v0.23.0. |
| 28 | +This release is expected to be the last release supporting Python 3.8. |
| 29 | + |
| 30 | +Bugs fixed: |
| 31 | + |
| 32 | +* Removed :attr:`.AlignedSegment.modified_bases`'s limitation of only five |
| 33 | + modification types in MM/ML fields. (#1348, reported by Leszek Pryszcz) |
| 34 | + |
| 35 | +* Fixed :attr:`.AlignedSegment.modified_bases` crash when given a degenerate |
| 36 | + MM field that modifies no bases at all. (#1355, reported by Jun Mencius) |
| 37 | + |
| 38 | +* Fixed type hints for :class:`.AlignmentFile` and :class:`.VariantFile` |
| 39 | + constructor `filename` and `mode` parameters. (#1405, reported by Matt Stone) |
| 40 | + |
| 41 | +* Fixed coverage functionality for Python 3.13 and later. Pysam's Cython code |
| 42 | + is no longer built with Python profiling enabled by default. :ref:`Profiling |
| 43 | + <pysam-profile>` can be re-enabled by using the :envvar:`PYSAM_PROFILE` |
| 44 | + environment variable when building pysam from source. |
| 45 | + (#1350, reported by Marcus Fedarko) |
| 46 | + |
| 47 | +* Fixed capturing :func:`pysam.samtools.calmd() <.samtools.command>` output, |
| 48 | + which fixed tests on 32-bit i386. Also suppressed TestBinaryCompatibility |
| 49 | + test cases on platforms where we have not calculated the expected sizes. |
| 50 | + (#1367, reported by Étienne Mollier for Debian) |
| 51 | + |
| 52 | +* Adjusted :attr:`.HTSFile.add_hts_options` for Python 3: it now expects |
| 53 | + a list of :class:`str` as documented, rather than needing :class:`bytes`. |
| 54 | + This method's :attr:`format_options` argument is no longer optional. |
| 55 | + Similarly :class:`AlignmentFile(format_options=...) <.AlignmentFile>` |
| 56 | + now accepts a list of :class:`str` as documented. |
| 57 | + |
| 58 | +New functionality: |
| 59 | + |
| 60 | +* Updated :file:`pysam/libchtslib.pxd` declarations to the HTSlib 1.23.1 API. |
| 61 | + This is the first comprehensive update that these Cython HTSlib API |
| 62 | + declarations have received. (PR #1362) |
| 63 | + |
| 64 | +* Optimized :func:`pysam.array_to_qualitystring` using Cython memoryviews, |
| 65 | + resulting in an approximately 70x-100x speed improvement in this function. |
| 66 | + (PR #1363, thanks to Josh Chorlton) |
| 67 | + |
| 68 | +Documentation improvements: |
| 69 | + |
| 70 | +* The numerous internal classes representing :class:`.VariantHeader` and |
| 71 | + :class:`.VariantRecord` fields are now documented. |
| 72 | + (#407 et al; PR #1358, PR #1359, PR #1361, PR #1394, thanks to Tim Dunn) |
| 73 | + |
| 74 | +* Clarified :attr:`.AlignedSegment.query_alignment_length` et al |
| 75 | + behaviour for unmapped reads. (#1319, reported by Sam Chorlton) |
| 76 | + |
| 77 | + |
4 | 78 | Release 0.23.3 |
5 | 79 | ============== |
6 | 80 |
|
|
0 commit comments