Biocaml_unix.BedSourceBED data files.
A BED file is in the format shown below, where columns must be separated by a tab character.
chrA lo1 hi1 chrA lo2 hi2 . . . . . . . . . chrB lo1 hi1 chrB lo2 hi2 . . . . . . . . .
The definition is that intervals are zero based and half-open. So by default the line "chrA lo hi" is parsed to the interval [lo + 1, hi] on chromosome chrA. Similarly, when printing, the default is to print [lo - 1, hi]. The optional argument increment_lo_hi allows changing this behavior for non-conformant files. In addition, the optional argument chr_map is a string -> string function that allows changing of the chromosome name to a specified format, and defaults to identity.
Some tools require that the set of intervals do not overlap within each chromosome. This is not enforced, but you can use any_overlap to verify this property when needed.
The type of BED data stream items.
The specification of how to parse the remaining columns.
In_channel Functionsval in_channel_to_item_stream :
?buffer_size:int ->
?more_columns:parsing_spec ->
Core.In_channel.t ->
(item, [> Error.parsing ]) Core.result Stream.tParse an input-channel into item values.
val in_channel_to_item_stream_exn :
?buffer_size:int ->
?more_columns:parsing_spec ->
Core.In_channel.t ->
item Stream.tLike in_channel_to_item_stream but use exceptions for errors (raised within Stream.next).
Line.tSee also Line.t.
Basic parsing of a single line.
Basic “printing” of one single item.