package biocaml
The OCaml Bioinformatics Library
Install
Dune Dependency
Authors
Maintainers
Sources
biocaml-0.11.2.tbz
sha256=fae219e66db06f81f3fd7d9e44717ccf2d6d85701adb12004ab4ae6d3359dd2d
sha512=f6abd60dac2e02777be81ce3b5acdc0db23b3fa06731f5b2d0b32e6ecc9305fe64f407bbd95a3a9488b14d0a7ac7c41c73a7e18c329a8f18febfc8fd50eccbc6
doc/src/biocaml.unix/phred_score.ml.html
Source file phred_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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
type t = int [@@deriving sexp] type offset = [`Offset33 | `Offset64] [@@deriving sexp] let int_of_offset = function `Offset33 -> 33 | `Offset64 -> 64 let min_as_char = int_of_offset let max_as_char = 126 let round_float_to_int x = if Float.(mod_float x 1.0 < 0.5) then Float.(to_int (round_down x)) else Float.(to_int (round_up x)) let to_int t = t let to_probability t = 10.0 ** (Float.of_int t /. -10.0) let to_char ?(offset=`Offset33) t = let offset' = int_of_offset offset in let x = t + offset' in if offset' <= x && x <= max_as_char then Ok (Char.of_int_exn x) else error "cannot convert PHRED score with requested offset to a \ visible ASCII character" (t, offset) [%sexp_of: t * offset ] let of_int x = if x >= 0 then Ok x else error "invalid PHRED score" x sexp_of_int let of_char ?(offset=`Offset33) x = let offset' = int_of_offset offset in let c = Char.to_int x in if offset' <= c && c <= max_as_char then Ok (c - offset') else error "character with given offset is not a valid PHRED score" (x, offset) [%sexp_of: char * offset ] let of_probability ?(f = round_float_to_int) x = if Float.(0.0 < x && x <= 1.0) then Ok (f (-10. *. Float.log10 x)) else error "invalid probability" x sexp_of_float let of_solexa_score ?(f = round_float_to_int) x = f (10. *. Float.log10((10. ** (Float.of_int x /. 10.)) +. 1.)) let to_solexa_score ?(f = round_float_to_int) t = f (10. *. Float.log10((10. ** (Float.of_int t /. 10.)) -. 1.))
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>