package biocaml

  1. Overview
  2. Docs
The OCaml Bioinformatics Library

Install

Dune Dependency

Authors

Maintainers

Sources

biocaml-0.11.2.tbz
sha256=fae219e66db06f81f3fd7d9e44717ccf2d6d85701adb12004ab4ae6d3359dd2d
sha512=f6abd60dac2e02777be81ce3b5acdc0db23b3fa06731f5b2d0b32e6ecc9305fe64f407bbd95a3a9488b14d0a7ac7c41c73a7e18c329a8f18febfc8fd50eccbc6

doc/src/biocaml.unix/seq_range.ml.html

Source file seq_range.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31


module type Identifier = sig
  include Comparable
  include Sexpable with type t := t
  val to_string : t -> string
end

module Make(S : Identifier) = struct
  type t = S.t * Range.t
  [@@deriving compare, sexp]

  let make s lo hi =
    let open Or_error in
    Range.make lo hi >>= fun r ->
    Or_error.return (s, r)

  let seq = fst

  let size (_, r) = Range.size r

  let to_string (seq, { Range.lo ; hi }) =
    sprintf "%s:%d-%d" (S.to_string seq) lo hi
end

include Make(String)

let of_string s =
  try Scanf.sscanf s "%s@:%d-%d" make
  with Scanf.Scan_failure _ ->
    Or_error.errorf "Seq_range.of_string: invalid format %s" s
OCaml

Innovation. Community. Security.