module type Signal =
sig
type 'a
t
val eval : 'a t ->
default:'a -> Biocaml_genomeMap.Chromosome.t -> int -> 'a
val fold : 'a t ->
init:'c -> f:('c -> Biocaml_genomeMap.Make.location -> 'b -> 'c) -> 'c
val to_stream : 'a t ->
(Biocaml_genomeMap.Make.location * 'a) Stream.t
val of_stream : ('a -> 'a -> 'a) ->
(Biocaml_genomeMap.Make.location * 'a) Stream.t ->
'a t
of_stream f ls
builds a signal from a collection of
annotated locations. f
is used when two locations intersect, to
compute the annotation on their intersection. *Beware*, f
should be associative and commutative since when many locations
in ls
intersect, there is no guarantee on the order followed to
aggregate them and their annotation.end
This module implements a partial function over the genome: each
base may be associated to a value. Alternatively, this can be
seen as a collection of non-overlapping regions each labeled
with a value