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
open CFStream
include Biocaml_unix.Fasta
let sequence_to_int_list s =
ok_exn (sequence_to_int_list s)
let read0
?start
?allow_sharp_comments
?allow_semicolon_comments
?allow_empty_lines
?max_line_length
?alphabet
r
=
read0
?start
?allow_sharp_comments
?allow_semicolon_comments
?allow_empty_lines
?max_line_length
?alphabet
r
|> Stream.map ~f:ok_exn
let read ?start ?fmt r =
let header,strm = ok_exn (read ?start ?fmt r) in
header, Stream.map strm ~f:ok_exn
let with_file ?fmt file ~f =
with_file ?fmt file ~f:(fun header strm ->
Ok (f header (Stream.map strm ~f:ok_exn))
)
|> ok_exn