Parsing and printing of BAM files.
module Biocaml_bam:
sig
string
buffers to raw_item
s
(minimal parsing), and conversion from raw_item
s to Sam.item
s
(higher-level constructs).type
raw_alignment = {
|
qname : |
|||
|
flag : |
|||
|
ref_id : |
|||
|
pos : |
(* | Positions are 0-based, -1 if undefined | *) |
|
mapq : |
|||
|
bin : |
|||
|
cigar : |
|||
|
next_ref_id : |
|||
|
pnext : |
|||
|
tlen : |
|||
|
seq : |
|||
|
qual : |
|||
|
optional : |
The rather meaningless names come from the “almost official”
specification of the format (c.f.
SAM1.pdf).
typeraw_item =
[ `alignment of raw_alignment
| `header of string
| `reference_information of (string * int) array ]
module Error:
sig
typeraw_bam =
[ `read_name_not_null_terminated of string
| `reference_information_name_not_null_terminated of string
| `reference_information_overflow of int * string
| `wrong_int32 of string
| `wrong_magic_number of string ]
typeparse_optional =
[ `wrong_auxiliary_data of
[ `array_size of int
| `null_terminated_hexarray
| `null_terminated_string
| `out_of_bounds
| `unknown_type of char
| `wrong_int32 of string ] * string ]
typeparse_cigar =
[ `wrong_cigar of string | `wrong_cigar_length of int ]
typeraw_to_item =
[ `header_line_not_first of int
| `header_line_without_version of (string * string) list
| `header_line_wrong_sorting of string
| `invalid_header_tag of int * string
| `invalid_tag_value_list of int * string list
| `reference_sequence_not_found of Biocaml_bam.raw_alignment
| `wrong_auxiliary_data of
[ `array_size of int
| `null_terminated_hexarray
| `null_terminated_string
| `out_of_bounds
| `unknown_type of char
| `wrong_int32 of string ] * string
| `wrong_cigar of string
| `wrong_cigar_length of int
| `wrong_flag of Biocaml_bam.raw_alignment
| `wrong_mapq of Biocaml_bam.raw_alignment
| `wrong_pnext of Biocaml_bam.raw_alignment
| `wrong_pos of Biocaml_bam.raw_alignment
| `wrong_qname of Biocaml_bam.raw_alignment
| `wrong_tlen of Biocaml_bam.raw_alignment ]
raw_item
s to
Sam.item
s.typeitem_to_raw =
[ `cannot_get_sequence of Biocaml_sam_deprecated.alignment
| `header_item_not_first of string
| `reference_name_not_found of Biocaml_sam_deprecated.alignment * string ]
Sam.item
to a raw_item
.typet =
[ `cannot_get_sequence of Biocaml_sam_deprecated.alignment
| `header_item_not_first of string
| `header_line_not_first of int
| `header_line_without_version of (string * string) list
| `header_line_wrong_sorting of string
| `invalid_header_tag of int * string
| `invalid_tag_value_list of int * string list
| `read_name_not_null_terminated of string
| `reference_information_name_not_null_terminated of string
| `reference_information_overflow of int * string
| `reference_name_not_found of Biocaml_sam_deprecated.alignment * string
| `reference_sequence_not_found of Biocaml_bam.raw_alignment
| `wrong_auxiliary_data of
[ `array_size of int
| `null_terminated_hexarray
| `null_terminated_string
| `out_of_bounds
| `unknown_type of char
| `wrong_int32 of string ] * string
| `wrong_cigar of string
| `wrong_cigar_length of int
| `wrong_flag of Biocaml_bam.raw_alignment
| `wrong_int32 of string
| `wrong_magic_number of string
| `wrong_mapq of Biocaml_bam.raw_alignment
| `wrong_pnext of Biocaml_bam.raw_alignment
| `wrong_pos of Biocaml_bam.raw_alignment
| `wrong_qname of Biocaml_bam.raw_alignment
| `wrong_tlen of Biocaml_bam.raw_alignment ]
val raw_bam_of_sexp : Sexplib.Sexp.t -> raw_bam
val sexp_of_raw_bam : raw_bam -> Sexplib.Sexp.t
val parse_optional_of_sexp : Sexplib.Sexp.t -> parse_optional
val sexp_of_parse_optional : parse_optional -> Sexplib.Sexp.t
val parse_cigar_of_sexp : Sexplib.Sexp.t -> parse_cigar
val sexp_of_parse_cigar : parse_cigar -> Sexplib.Sexp.t
val raw_to_item_of_sexp : Sexplib.Sexp.t -> raw_to_item
val sexp_of_raw_to_item : raw_to_item -> Sexplib.Sexp.t
val item_to_raw_of_sexp : Sexplib.Sexp.t -> item_to_raw
val sexp_of_item_to_raw : item_to_raw -> Sexplib.Sexp.t
end
In_channel
Functionsexception Error of [ `bam of Error.t | `unzip of Biocaml_zip.Error.unzip ]
*_exn
functions in this module.val in_channel_to_raw_item_stream : ?zlib_buffer_size:int ->
?buffer_size:int ->
Pervasives.in_channel ->
(raw_item,
[> `bam of [> Error.raw_bam ]
| `unzip of [> Biocaml_zip.Error.unzip ] ])
Core.Std.Result.t Stream.t
val in_channel_to_raw_item_stream_exn : ?zlib_buffer_size:int ->
?buffer_size:int -> Pervasives.in_channel -> raw_item Stream.t
Stream.next
may throw an Error _
exception).val in_channel_to_item_stream : ?zlib_buffer_size:int ->
?buffer_size:int ->
Pervasives.in_channel ->
(Biocaml_sam_deprecated.item,
[> `bam of [> Error.t ] | `unzip of [> Biocaml_zip.Error.unzip ] ])
Core.Std.Result.t Stream.t
Sam.item
results from an input-channel.val in_channel_to_item_stream_exn : ?zlib_buffer_size:int ->
?buffer_size:int ->
Pervasives.in_channel -> Biocaml_sam_deprecated.item Stream.t
Sam.item
s from an input-channel (any call to
Stream.next
may throw an Error _
exception).Transform.t
Creations module Transform:
sig
Transform.t
implementations.val raw_to_item : unit ->
(Biocaml_bam.raw_item,
(Biocaml_sam_deprecated.item, [> Biocaml_bam.Error.raw_to_item ])
Core.Std.Result.t)
Biocaml_transform.t
raw_item
s to the higher-level representation
defined in the Biocaml_sam
module.val string_to_raw : ?zlib_buffer_size:int ->
unit ->
(string,
(Biocaml_bam.raw_item,
[> `bam of Biocaml_bam.Error.raw_bam | `unzip of Biocaml_zip.Error.unzip ])
Core.Std.Result.t)
Biocaml_transform.t
zlib_buffer_size
is passed to the Biocaml_zip
module.val item_to_raw : unit ->
(Biocaml_sam_deprecated.item,
(Biocaml_bam.raw_item, [> Biocaml_bam.Error.item_to_raw ]) Core.Std.Result.t)
Biocaml_transform.t
Sam.item
s to raw_item
s.val raw_to_string : ?gzip_level:int ->
?zlib_buffer_size:int ->
unit -> (Biocaml_bam.raw_item, string) Biocaml_transform.t
raw_item
s in the BAM format.
The gzip_level
and zlib_buffer_size
options are passed to
the Biocaml_zip
module.end
val parse_cigar : ?pos:int ->
?len:int ->
string ->
(Biocaml_sam_deprecated.cigar_op array, [> Error.parse_cigar ])
Core.Std.Result.t
raw_alignment.cigar
).val parse_optional : ?pos:int ->
?len:int ->
string ->
(Biocaml_sam_deprecated.optional_content,
[> Error.parse_optional ])
Core.Std.Result.t
raw_alignment.optional
).val raw_alignment_of_sexp : Sexplib.Sexp.t -> raw_alignment
val sexp_of_raw_alignment : raw_alignment -> Sexplib.Sexp.t
val raw_item_of_sexp : Sexplib.Sexp.t -> raw_item
val sexp_of_raw_item : raw_item -> Sexplib.Sexp.t
end