sig
type header_item_tag = private
[< `CO | `HD | `Other of string | `PG | `RG | `SQ ]
type tag_value = private string * string
type sort_order = [ `Coordinate | `Query_name | `Unknown | `Unsorted ]
type header_line = private {
version : string;
sort_order : Biocaml_sam.sort_order option;
}
type ref_seq = private {
name : string;
length : int;
assembly : string option;
md5 : string option;
species : string option;
uri : string option;
}
type platform =
[ `Capillary
| `Helicos
| `Illumina
| `Ion_Torrent
| `LS454
| `Pac_Bio
| `Solid ]
type read_group = private {
id : string;
seq_center : string option;
description : string option;
run_date : [ `Date of Core.Std.Date.t | `Time of Core.Std.Time.t ] option;
flow_order : string option;
key_seq : string option;
library : string option;
program : string option;
predicted_median_insert_size : int option;
platform : Biocaml_sam.platform option;
platform_unit : string option;
sample : string option;
}
type program = private {
id : string;
name : string option;
command_line : string option;
previous_id : string option;
description : string option;
version : string option;
}
type header_item = private
[< `CO of string
| `HD of Biocaml_sam.header_line
| `Other of string * Biocaml_sam.tag_value list
| `PG of Biocaml_sam.program
| `RG of Biocaml_sam.read_group
| `SQ of Biocaml_sam.ref_seq ]
type header = private {
version : string option;
sort_order : Biocaml_sam.sort_order option;
ref_seqs : Biocaml_sam.ref_seq list;
read_groups : Biocaml_sam.read_group list;
programs : Biocaml_sam.program list;
comments : string list;
others : (string * Biocaml_sam.tag_value list) list;
}
val empty_header : Biocaml_sam.header
module Flags :
sig
type t = private int
val of_int : int -> Biocaml_sam.Flags.t Core.Std.Or_error.t
val has_multiple_segments : Biocaml_sam.Flags.t -> bool
val each_segment_properly_aligned : Biocaml_sam.Flags.t -> bool
val segment_unmapped : Biocaml_sam.Flags.t -> bool
val next_segment_unmapped : Biocaml_sam.Flags.t -> bool
val seq_is_reverse_complemented : Biocaml_sam.Flags.t -> bool
val next_seq_is_reverse_complemented : Biocaml_sam.Flags.t -> bool
val first_segment : Biocaml_sam.Flags.t -> bool
val last_segment : Biocaml_sam.Flags.t -> bool
val secondary_alignment : Biocaml_sam.Flags.t -> bool
val not_passing_quality_controls : Biocaml_sam.Flags.t -> bool
val pcr_or_optical_duplicate : Biocaml_sam.Flags.t -> bool
val supplementary_alignment : Biocaml_sam.Flags.t -> bool
val t_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.Flags.t
val sexp_of_t : Biocaml_sam.Flags.t -> Sexplib.Sexp.t
end
type cigar_op = private
[< `Alignment_match of int
| `Deletion of int
| `Hard_clipping of int
| `Insertion of int
| `Padding of int
| `Seq_match of int
| `Seq_mismatch of int
| `Skipped of int
| `Soft_clipping of int ]
type optional_field_value = private
[< `A of char
| `B of char * string list
| `H of string
| `Z of string
| `f of float
| `i of Core.Std.Int32.t ]
type optional_field = private {
tag : string;
value : Biocaml_sam.optional_field_value;
}
type rnext = private [< `Equal_to_RNAME | `Value of string ]
type alignment = private {
qname : string option;
flags : Biocaml_sam.Flags.t;
rname : string option;
pos : int option;
mapq : int option;
cigar : Biocaml_sam.cigar_op list;
rnext : Biocaml_sam.rnext option;
pnext : int option;
tlen : int option;
seq : string option;
qual : Biocaml_phred_score.t list;
optional_fields : Biocaml_sam.optional_field list;
}
module MakeIO :
functor (Future : Future.S) ->
sig
val read :
?start:Biocaml_internal_utils.Pos.t ->
Future.Reader.t ->
(Biocaml_sam.header *
Biocaml_sam.alignment Core.Std.Or_error.t Future.Pipe.Reader.t)
Core.Std.Or_error.t Future.Deferred.t
val write :
Future.Writer.t ->
?header:Biocaml_sam.header ->
Biocaml_sam.alignment Future.Pipe.Reader.t ->
unit Future.Deferred.t
val write_file :
?perm:int ->
?append:bool ->
string ->
?header:Biocaml_sam.header ->
Biocaml_sam.alignment Future.Pipe.Reader.t ->
unit Future.Deferred.t
end
val read :
?start:Biocaml_internal_utils.Pos.t ->
Future_std.Reader.t ->
(header * alignment Core.Std.Or_error.t Future_std.Pipe.Reader.t)
Core.Std.Or_error.t Future_std.Deferred.t
val write :
Future_std.Writer.t ->
?header:header ->
alignment Future_std.Pipe.Reader.t -> unit Future_std.Deferred.t
val write_file :
?perm:int ->
?append:bool ->
string ->
?header:header ->
alignment Future_std.Pipe.Reader.t -> unit Future_std.Deferred.t
val header_line :
version:string ->
?sort_order:Biocaml_sam.sort_order ->
unit -> Biocaml_sam.header_line Core.Std.Or_error.t
val ref_seq :
name:string ->
length:int ->
?assembly:string ->
?md5:string ->
?species:string ->
?uri:string -> unit -> Biocaml_sam.ref_seq Core.Std.Or_error.t
val read_group :
id:string ->
?seq_center:string ->
?description:string ->
?run_date:string ->
?flow_order:string ->
?key_seq:string ->
?library:string ->
?program:string ->
?predicted_median_insert_size:int ->
?platform:Biocaml_sam.platform ->
?platform_unit:string ->
?sample:string -> unit -> Biocaml_sam.read_group Core.Std.Or_error.t
val header :
?version:string ->
?sort_order:Biocaml_sam.sort_order ->
?ref_seqs:Biocaml_sam.ref_seq list ->
?read_groups:Biocaml_sam.read_group list ->
?programs:Biocaml_sam.program list ->
?comments:string list ->
?others:(string * Biocaml_sam.tag_value list) list ->
unit -> Biocaml_sam.header Core.Std.Or_error.t
val parse_header_item_tag :
string -> Biocaml_sam.header_item_tag Core.Std.Or_error.t
val parse_tag_value : string -> Biocaml_sam.tag_value Core.Std.Or_error.t
val parse_header_version : string -> string Core.Std.Or_error.t
val parse_sort_order : string -> Biocaml_sam.sort_order Core.Std.Or_error.t
val parse_header_line :
Biocaml_sam.tag_value list -> Biocaml_sam.header_line Core.Std.Or_error.t
val parse_ref_seq :
Biocaml_sam.tag_value list -> Biocaml_sam.ref_seq Core.Std.Or_error.t
val parse_platform : string -> Biocaml_sam.platform Core.Std.Or_error.t
val parse_read_group :
Biocaml_sam.tag_value list -> Biocaml_sam.read_group Core.Std.Or_error.t
val parse_program :
Biocaml_sam.tag_value list -> Biocaml_sam.program Core.Std.Or_error.t
val parse_header_item :
Biocaml_internal_utils.Line.t ->
Biocaml_sam.header_item Core.Std.Or_error.t
val parse_header : string -> Biocaml_sam.header Core.Std.Or_error.t
val cigar_op_alignment_match :
int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_insertion : int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_deletion : int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_skipped : int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_soft_clipping :
int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_hard_clipping :
int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_padding : int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_seq_match : int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val cigar_op_seq_mismatch : int -> Biocaml_sam.cigar_op Core.Std.Or_error.t
val optional_field_value_A :
char -> Biocaml_sam.optional_field_value Core.Std.Or_error.t
val optional_field_value_i :
Core.Std.Int32.t -> Biocaml_sam.optional_field_value
val optional_field_value_f : float -> Biocaml_sam.optional_field_value
val optional_field_value_Z :
string -> Biocaml_sam.optional_field_value Core.Std.Or_error.t
val optional_field_value_H :
string -> Biocaml_sam.optional_field_value Core.Std.Or_error.t
val optional_field_value_B :
char ->
string list -> Biocaml_sam.optional_field_value Core.Std.Or_error.t
val optional_field :
string ->
Biocaml_sam.optional_field_value ->
Biocaml_sam.optional_field Core.Std.Or_error.t
val parse_optional_field_value :
string -> Biocaml_sam.optional_field_value Core.Std.Or_error.t
val parse_optional_field :
string -> Biocaml_sam.optional_field Core.Std.Or_error.t
val alignment :
?ref_seqs:Core.Std.String.Set.t ->
?qname:string ->
flags:Biocaml_sam.Flags.t ->
?rname:string ->
?pos:int ->
?mapq:int ->
?cigar:Biocaml_sam.cigar_op list ->
?rnext:Biocaml_sam.rnext ->
?pnext:int ->
?tlen:int ->
?seq:string ->
?qual:Biocaml_phred_score.t list ->
?optional_fields:Biocaml_sam.optional_field list ->
unit -> Biocaml_sam.alignment Core.Std.Or_error.t
val parse_qname : string -> string option Core.Std.Or_error.t
val parse_flags : string -> Biocaml_sam.Flags.t Core.Std.Or_error.t
val parse_rname : string -> string option Core.Std.Or_error.t
val parse_pos : string -> int option Core.Std.Or_error.t
val parse_mapq : string -> int option Core.Std.Or_error.t
val parse_cigar : string -> Biocaml_sam.cigar_op list Core.Std.Or_error.t
val parse_rnext : string -> Biocaml_sam.rnext option Core.Std.Or_error.t
val parse_pnext : string -> int option Core.Std.Or_error.t
val parse_tlen : string -> int option Core.Std.Or_error.t
val parse_seq : string -> string option Core.Std.Or_error.t
val parse_qual : string -> Biocaml_phred_score.t list Core.Std.Or_error.t
val parse_alignment :
?ref_seqs:Core.Std.String.Set.t ->
Biocaml_internal_utils.Line.t ->
Biocaml_sam.alignment Core.Std.Or_error.t
val print_header_item_tag : Biocaml_sam.header_item_tag -> string
val print_tag_value : Biocaml_sam.tag_value -> string
val print_header_version : string -> string
val print_sort_order : Biocaml_sam.sort_order -> string
val print_header_line : Biocaml_sam.header_line -> string
val print_ref_seq : Biocaml_sam.ref_seq -> string
val print_platform : Biocaml_sam.platform -> string
val print_read_group : Biocaml_sam.read_group -> string
val print_program : Biocaml_sam.program -> string
val print_other : string * Biocaml_sam.tag_value list -> string
val print_qname : string option -> string
val print_flags : Biocaml_sam.Flags.t -> string
val print_rname : string option -> string
val print_pos : int option -> string
val print_mapq : int option -> string
val print_cigar_op : Biocaml_sam.cigar_op -> string
val print_cigar : Biocaml_sam.cigar_op list -> string
val print_rnext : Biocaml_sam.rnext option -> string
val print_pnext : int option -> string
val print_tlen : int option -> string
val print_seq : string option -> string
val print_qual : Biocaml_phred_score.t list -> string
val print_optional_field : Biocaml_sam.optional_field -> string
val print_alignment : Biocaml_sam.alignment -> string
val header_item_tag_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.header_item_tag
val __header_item_tag_of_sexp__ :
Sexplib.Sexp.t -> Biocaml_sam.header_item_tag
val sexp_of_header_item_tag : Biocaml_sam.header_item_tag -> Sexplib.Sexp.t
val tag_value_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.tag_value
val sexp_of_tag_value : Biocaml_sam.tag_value -> Sexplib.Sexp.t
val sort_order_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.sort_order
val __sort_order_of_sexp__ : Sexplib.Sexp.t -> Biocaml_sam.sort_order
val sexp_of_sort_order : Biocaml_sam.sort_order -> Sexplib.Sexp.t
val header_line_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.header_line
val sexp_of_header_line : Biocaml_sam.header_line -> Sexplib.Sexp.t
val ref_seq_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.ref_seq
val sexp_of_ref_seq : Biocaml_sam.ref_seq -> Sexplib.Sexp.t
val platform_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.platform
val __platform_of_sexp__ : Sexplib.Sexp.t -> Biocaml_sam.platform
val sexp_of_platform : Biocaml_sam.platform -> Sexplib.Sexp.t
val read_group_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.read_group
val sexp_of_read_group : Biocaml_sam.read_group -> Sexplib.Sexp.t
val program_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.program
val sexp_of_program : Biocaml_sam.program -> Sexplib.Sexp.t
val header_item_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.header_item
val __header_item_of_sexp__ : Sexplib.Sexp.t -> Biocaml_sam.header_item
val sexp_of_header_item : Biocaml_sam.header_item -> Sexplib.Sexp.t
val cigar_op_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.cigar_op
val __cigar_op_of_sexp__ : Sexplib.Sexp.t -> Biocaml_sam.cigar_op
val sexp_of_cigar_op : Biocaml_sam.cigar_op -> Sexplib.Sexp.t
val optional_field_value_of_sexp :
Sexplib.Sexp.t -> Biocaml_sam.optional_field_value
val __optional_field_value_of_sexp__ :
Sexplib.Sexp.t -> Biocaml_sam.optional_field_value
val sexp_of_optional_field_value :
Biocaml_sam.optional_field_value -> Sexplib.Sexp.t
val optional_field_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.optional_field
val sexp_of_optional_field : Biocaml_sam.optional_field -> Sexplib.Sexp.t
val rnext_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.rnext
val __rnext_of_sexp__ : Sexplib.Sexp.t -> Biocaml_sam.rnext
val sexp_of_rnext : Biocaml_sam.rnext -> Sexplib.Sexp.t
val alignment_of_sexp : Sexplib.Sexp.t -> Biocaml_sam.alignment
val sexp_of_alignment : Biocaml_sam.alignment -> Sexplib.Sexp.t
end