Changelog
Source:NEWS.md
cpp11bigwig 0.3.1
CRAN release: 2026-06-26
New
bigbed_info()andbigwig_info()report header metadata without reading any intervals.bigbed_info()returns the field counts and embedded autoSql schema, making it possible to identify the BED variant a file holds before reading it (a genuine BED12 hasdefined_field_count == 12).bigwig_info()returns the version, zoom levels, chromosome count, and file-level summary statistics (min/max/mean/std).read_bigbed()now returns all BED columns for files with no embedded autoSql schema (e.g. a bed12 written bybedToBigBedwithout-as). Previously such files returned onlychrom/start/end; the reader now falls back to the field counts in the file header and names columns with the standard BED field names (any extra bedN+ fields become genericfieldNcharacter columns) (#18). When a file has no embedded schema,read_bigbed()now emits amessage()noting that the column names were inferred rather than declared by the file; silence it withsuppressMessages().
cpp11bigwig 0.3.0
CRAN release: 2026-06-22
Fix a CRAN
gcc-san(UBSan)load of misaligned addressruntime error when reading a bigBed block that packs more than one record. In libBigWig’sbwValues.c, records are stored as threeuint32_tfields followed by a variable-length name, so every record after the first starts on an unaligned offset; the fields are now read withmemcpyinstead of an aligneduint32_tcast.Multi-range queries now open the file once per call instead of re-opening it for every range. The per-range loop moved into C++, so a query of many ranges (and especially a remote file, where each open re-fetches headers) is substantially faster.
read_bigbed()no longer crashes on a bigBed file with no embedded autoSql schema.bbGetSQL()returnsNULLin that case, and constructing astd::stringfrom it was undefined behavior; such files now read back theirchrom/start/endcolumns with no extra typed fields.The bigWig/bigBed readers now release the libBigWig file handle and read buffer when they error out (e.g. on an unreadable file or a failed interval query), rather than leaking them.
Fix a CRAN
gcc-ASANglobal-buffer-overflow reported when reading bigBed files. The autoSql schema parser no longer usesstd::regex(which tripped an AddressSanitizer error inside libstdc++); it now parses the schema with simple string operations.read_bigwig()andread_bigbed()can now query multiple ranges in a single call. Pass equal-length (or length-1, recycled)chrom,start, andendvectors, or aGRangesof regions viachrom. Forread_bigwig(as = "Rle"), a multi-range query returns a namedRleListwith one element per range (#18).
cpp11bigwig 0.2.0
CRAN release: 2026-06-18
read_bigwig()gainsas = "Rle", returning a per-base run-length-encoded vector spanning the queried range (anRlefor a single chromosome, or a namedRleListfor several). Uncovered bases are set to thefillvalue (default0; useNAto mark them missing) (#18).Fix remote access to large bigWig/bigBed files. The HTTP
Rangeheader was not being set, so servers returned the entire file, crashing R or failing to open files larger than the read buffer (#18).
cpp11bigwig 0.1.3
CRAN release: 2025-12-11
- bigBed columns are now automatically coerced based on autoSql types (#12)