Parsing and printing of BAM files.
module Biocaml_bam: sigstring buffers to raw_items
(minimal parsing), and conversion from raw_items to Sam.items
(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: sigtyperaw_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_items to
Sam.items.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_bamval sexp_of_raw_bam : raw_bam -> Sexplib.Sexp.tval parse_optional_of_sexp : Sexplib.Sexp.t -> parse_optionalval sexp_of_parse_optional : parse_optional -> Sexplib.Sexp.tval parse_cigar_of_sexp : Sexplib.Sexp.t -> parse_cigarval sexp_of_parse_cigar : parse_cigar -> Sexplib.Sexp.tval raw_to_item_of_sexp : Sexplib.Sexp.t -> raw_to_itemval sexp_of_raw_to_item : raw_to_item -> Sexplib.Sexp.tval item_to_raw_of_sexp : Sexplib.Sexp.t -> item_to_rawval sexp_of_item_to_raw : item_to_raw -> Sexplib.Sexp.tendIn_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.tval in_channel_to_raw_item_stream_exn : ?zlib_buffer_size:int ->
?buffer_size:int -> Pervasives.in_channel -> raw_item Stream.tStream.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.tSam.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.tSam.items from an input-channel (any call to
Stream.next may throw an Error _ exception).Transform.t Creations module Transform: sigTransform.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.traw_items 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.tzlib_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.tSam.items to raw_items.val raw_to_string : ?gzip_level:int ->
?zlib_buffer_size:int ->
unit -> (Biocaml_bam.raw_item, string) Biocaml_transform.traw_items in the BAM format.
The gzip_level and zlib_buffer_size options are passed to
the Biocaml_zip module.endval parse_cigar : ?pos:int ->
?len:int ->
string ->
(Biocaml_sam_deprecated.cigar_op array, [> Error.parse_cigar ])
Core.Std.Result.traw_alignment.cigar).val parse_optional : ?pos:int ->
?len:int ->
string ->
(Biocaml_sam_deprecated.optional_content,
[> Error.parse_optional ])
Core.Std.Result.traw_alignment.optional).val raw_alignment_of_sexp : Sexplib.Sexp.t -> raw_alignmentval sexp_of_raw_alignment : raw_alignment -> Sexplib.Sexp.tval raw_item_of_sexp : Sexplib.Sexp.t -> raw_itemval sexp_of_raw_item : raw_item -> Sexplib.Sexp.tend