Biocaml_unix.WigSourceWIG data.
Internal representation of coordinates always assumes the first position on a chromosome is numbered 1. Also, integer ranges are always closed; the range [1, 10] is the set of integers from 1 to 10 inclusive of 1 and 10. WIG data can be in three formats---bed, variable-step, or fixed-step---and unfortunately each has different conventions as follows:
[low, high\) and numbers the first base as 0. Thus 1 is added to the low value when parsing. The line "chrI 0 10 3.14" is parsed to ("chrI", 1, 10, 3.14)."1 3.14" is parsed to (1, 3.14)."fixedStep chrom=chrI start=1 step=100 span=30" is parsed to ("chrI", 1, 100, 30).The inverse is done for printing routines. You are freed from these details if you always use this module to parse and print.
All parsers allow columns (fields) on a line to be separated by any combination of space, tab, or carriage return characters. Printers always separate columns with a single tab. Tag-value pairs must be in the form "tag=value" with no space around the '='.
variable_step_state_change of name x span
fixed_step_state_change of name, start, step, span
The most general type that the default parser outputs.
type t = [comment | variable_step | fixed_step | `bed_graph_value of bed_graph_value ]In_channel Functionsval in_channel_to_item_stream :
?buffer_size:int ->
?filename:string ->
?tags:Tags.t ->
Core_kernel.In_channel.t ->
(item, Error.t) Core_kernel.result Stream.tGet a stream of item values out of an input-channel.
val in_channel_to_item_stream_exn :
?buffer_size:int ->
?filename:string ->
?tags:Tags.t ->
Core_kernel.In_channel.t ->
item Stream.tDo like in_channel_to_item_stream but each call to Stream.next may throw an exception.
val in_channel_to_bed_graph :
?buffer_size:int ->
?filename:string ->
?tags:Tags.t ->
Core_kernel.In_channel.t ->
(bed_graph_value, Error.t) Core_kernel.result Stream.tGet a stream of bed_graph_value values out of a WIG-file input-channel.
val in_channel_to_bed_graph_exn :
?buffer_size:int ->
?filename:string ->
?tags:Tags.t ->
Core_kernel.In_channel.t ->
bed_graph_value Stream.tDo like in_channel_to_bed_graph but each call to Stream.next may throw an exception.
To_string FunctionsConvert an item to a string (including new line characters).
Note: the parsing of the Tags.t is staged, so storing let to_string = item_to_string ~tags only once could be slightly more efficient than calling item_to_string ~tags item many times.