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/solexa_score.ml.html

Source file solexa_score.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


exception Error of string

type t = int

let offset = 64

let to_probability t =
  let z = 10. ** (Float.of_int t /. -10.) in
  z /. (1. +. z)

let to_ascii t =
  let x = t + offset in
  if 33 <= x && x <= 126 then
    Char.of_int_exn x
  else
    Error (sprintf "%d cannot be encoded as a visible ASCII character" t) |> raise

let of_ascii x =
  let c = Char.to_int x in
  if 33 <= c && c <= 126 then
    c - offset
  else
    Error (sprintf "%c is not a valid score" x) |> raise

let of_probability ?(f = Float.iround_nearest_exn) x =
  if Float.(0.0 <= x && x <= 1.0) then
    f (-10. *. Float.log10(x /. (1. -. x)))
  else
    Error (sprintf "invalid probability %0.17g" x) |> raise
OCaml

Innovation. Community. Security.