sig
module type Chromosome = sig type t val compare : t -> t -> int end
module Make :
functor (Chromosome : Chromosome) ->
sig
type range = Biocaml_range.t
type location = Chromosome.t * range
module Selection :
sig
type t = Biocaml_genomeMap.Make(Chromosome).Selection.t
val inter : t -> t -> t
val union : t -> t -> t
val diff : t -> t -> t
val size : t -> int
val intersects : t -> location -> bool
val overlap : t -> location -> int
val to_stream : t -> location Stream.t
val of_stream : location Stream.t -> t
end
module type Signal =
sig
type 'a t
val eval : 'a t -> default:'a -> Chromosome.t -> int -> 'a
val fold :
'a t -> init:'c -> f:('c -> location -> 'b -> 'c) -> 'c
val to_stream : 'a t -> (location * 'a) Stream.t
val of_stream :
('a -> 'a -> 'a) -> (location * 'a) Stream.t -> 'a t
end
module LSet :
sig
type t = Biocaml_genomeMap.Make(Chromosome).LSet.t
val to_stream : t -> location Stream.t
val of_stream : location Stream.t -> t
val intersects : t -> location -> bool
val closest : t -> location -> (location * int) option
val intersecting_elems : t -> location -> location Stream.t
end
module LMap :
sig
type 'a t = 'a Biocaml_genomeMap.Make(Chromosome).LMap.t
val to_stream : 'a t -> (location * 'a) Stream.t
val of_stream : (location * 'a) Stream.t -> 'a t
val intersects : 'a t -> location -> bool
val closest : 'a t -> location -> (location * 'a * int) option
val intersecting_elems :
'a t -> location -> (location * 'a) Stream.t
end
end
end