Releases: JetBrains-Research/big
Releases · JetBrains-Research/big
0.9.0
Version 0.9.0
Released on Jul 11th 2019
Changed
BedEntry.unpack
logic has changed significantly. It now throws on missing fields. The exception can be
used to determine the offending field and adjust the BED format correspondingly.BedEntry.unpack
now controls the extra fields parsing with a flag instead of a number. The old signature
remains available for compatibility sake, but is deprecated.
NewBedEntryUnpackException
is thrown whenBedEntry.unpack
fails to parse an entry. The exception properties
provide the reason and the number of the field which caused parsing to fail.
FixedExtendedBedEntry.score
is now Int instead of Short. The reason for this is that many
BED file providers (e.g. MACS2, SICER) don't respect the UCSC standard which limits the score
to 0..1000 range, and we want to be able to parse those files.
0.8.4
0.8.3
Version 0.8.3
Released on Oct 24th 2018
New
ExtendedBedEntry.rest
is a public method to return the list of fields except for
the first three obligatory BED columns. Is used duringExtendedBedEntry.pack
.
It could be convenient when we want to iterate through optional fields. For simplicity
and to avoid code duplication the method returns a string representation of extended
bed entry fields (the same values as joined bypack
method.) instead of original values.
Such behavior is consistent with values which user will see in a BED/BigBed file.
0.8.2
Version 0.8.2
Released on June 26th 2018
Fixed
BigWig.read
&BigBed.read
should close factory in case of exception
while creating big file- Default buffer size for
EndianSynchronizedBufferFactory
andEndianBufferFactory
fixed
toBetterSeekableBufferedStream.DEFAULT_BUFFER_SIZE
0.8.1
0.8.0
Version 0.8.0
Released on April 29th 2018
New
- HTTP/HTTPS urls support for BigWig, BigBed, TDF files. Server is
supposed to support accept-ranges http header - New buffer factories for files/urls reading based on hts-jdk
SeekableStream
:- Without concurrent BigFile access support:
EndianBufferFactory
- With concurrent BigFile access support:
EndianSynchronizedBufferFactory
,
EndianThreadSafeBufferFactory
- Without concurrent BigFile access support:
- Big files
read
andwrite
methods acceptscancelledChecker
closure to
abort current operation, e.g. if you need to render another range.
Just throw exception in this closure. - 'BigFile#BigFile.determineFileType(src)' returns src file type, could be
BigFile.Type.BIGBED
,BigFile.Type.BIGWIG
ornull
.
Changed
- Show 'Header extensions are unsupported' only in debug log
- Use
RomBufferFactory
to detect file endianness - Changed
prefetch
option to int value inBigFile.read()
,
BigWigFile.read()
,BigBedFile.read()
. Supported values are:BigFile.PREFETCH_LEVEL_OFF
: do not prefetchBigFile.PREFETCH_LEVEL_FAST
: prefetch zoom level indexes tree,
chromosomes listBigFile.PREFETCH_LEVEL_DETAILED
: prefetch w/o zoom level data tree
indexes up to chromosomes level
Larger prefetch values increase big file opening time and memory
consumption but provides faster data access with fewer i/o operations
Removed:
RandomAccessFile
based factory and rom buffer
removed. Please useEndianBufferFactory
,EndianThreadSafeBufferFactory
orEndianSynchronizedBufferFactory
factories instead.
0.7.1
Version 0.7.1
Released on April 31th 2017
Changed
- Use maxHeapSize = "1024m" option for tests. Seems by default on
windows heap size in about 256m and it isn't enough for tests RAFBufferFactory
,RAFBuffer
,RomBufferFactory
moved to
org.jetbrains.bio
packageRAFBufferFactory
supports buffer size option for underlying
random access file- By default
RAFBufferFactory
uses default Random Access File
buffers size (8092 bytes) instead of 125 kb.
0.7.0
Version 0.7.0
Released on April 30th 2017
Fixed
-
RandomAccessFile (https://www.unidata.ucar.edu) copied to project and
rewritten in Kotlin so as not to depend on heavy netcdf-java library.
For simplicity writing operations were removed from file. -
Windows support #36, using RandomAccessFile
(https://www.unidata.ucar.edu/software/thredds/v4.3/netcdf-java project)
instead of memory mapped buffer. The previous impl (works only on
Mac/Linux) is available usingMMBRomBufferFactory
inBig*.read()
.
Improved
- Show less warnings like "R+ tree leaves are overlapping", see issue #35
Changed
- BedFile was made closeable
- Default
name
field value inExtendedBedEntry
was changed to ".".
also while parsing empty name value is converted to ".". - Bed entry pack/unpack methods now supports custom delimiter and
ExtendedBedEntry.unpack()
method supportsomitEmptyStrings
option,
which treats several consecutive separators as one, e.g. if TAB
delimiter was converted by error to sequence of whitespace characters.- Score range [0..1000] check disable because MACS2 output may contain
scores > 1000 ExtendedBedEntry.unpack()
parses '.' values as fields default values
0.5.3
0.6.0
Version 0.6.0
Released on December 13th 2017
Fixed
- Issue #33: Encode *.bigBed files: NumberFormatException: For input
string: "5.30862042004096
Changed
org.jetbrains.bio.big.BedEntry
now is minimal bed entry impl and
represents same info as records in bed file. Obligatory fields are
chromosome, start, end, all other fields stored as '\t' separated string.
BedEntry.unpack()
allow to parse as BED+ format toExtendedBedEntry
which contain all BED12 fields plus optional extended fields.
'ExtendedBedEntry.pack()' allows to pack back to minimal
representation.- Switched to Kotlin 1.2
- Source compatibility updated to Java 8
Removed:
- In class
org.jetbrains.bio.big.BedEntry
removed all fields except
'chrom', 'start', 'end', 'rest'