sig
type vcf_id = string
type vcf_description = string
type vcf_number = Number of int | OnePerAllele | OnePerGenotype | Unknown
type vcf_format_type =
[ `character_value | `float_value | `integer_value | `string_value ]
type vcf_info_type =
[ `character_value
| `flag_value
| `float_value
| `integer_value
| `string_value ]
type vcf_info_meta =
Info of Biocaml_vcf.vcf_number * Biocaml_vcf.vcf_info_type *
Biocaml_vcf.vcf_description
type vcf_filter_meta = Filter of Biocaml_vcf.vcf_description
type vcf_format_meta =
Format of Biocaml_vcf.vcf_number * Biocaml_vcf.vcf_format_type *
Biocaml_vcf.vcf_description
type vcf_alt_meta = Alt of Biocaml_vcf.vcf_description
type vcf_meta = {
vcfm_version : string;
vcfm_id_cache : Biocaml_vcf.vcf_id Biocaml_internal_pervasives.Set.Poly.t;
vcfm_info :
(Biocaml_vcf.vcf_id, Biocaml_vcf.vcf_info_meta)
Biocaml_internal_pervasives.Hashtbl.t;
vcfm_filters : (Biocaml_vcf.vcf_id * Biocaml_vcf.vcf_filter_meta) list;
vcfm_format :
(Biocaml_vcf.vcf_id, Biocaml_vcf.vcf_format_meta)
Biocaml_internal_pervasives.Hashtbl.t;
vcfm_alt :
(string, Biocaml_vcf.vcf_alt_meta)
Biocaml_internal_pervasives.Hashtbl.t;
vcfm_arbitrary : (string, string) Biocaml_internal_pervasives.Hashtbl.t;
vcfm_header : string list;
vcfm_samples : string list;
}
type vcf_format =
[ `character of char
| `float of float
| `integer of int
| `missing
| `string of string ]
type vcf_info =
[ `character of char
| `flag of string
| `float of float
| `integer of int
| `missing
| `string of string ]
type vcf_row = {
vcfr_chrom : string;
vcfr_pos : int;
vcfr_ids : string list;
vcfr_ref : string;
vcfr_alts : string list;
vcfr_qual : float option;
vcfr_filter : Biocaml_vcf.vcf_id list;
vcfr_info :
(Biocaml_vcf.vcf_id, Biocaml_vcf.vcf_info list)
Biocaml_internal_pervasives.Hashtbl.t;
vcfr_samples :
(Biocaml_vcf.vcf_id,
(Biocaml_vcf.vcf_id * Biocaml_vcf.vcf_format list) list)
Biocaml_internal_pervasives.Hashtbl.t;
}
type item = Biocaml_vcf.vcf_row
module Pos :
sig
type t = private {
file : string option;
line : int option;
col : int option;
}
exception Bad of string
exception Undefined
val make : ?file:string -> ?line:int -> ?col:int -> unit -> t
val f : string -> t
val l : int -> t
val fl : string -> int -> t
val lc : int -> int -> t
val flc : string -> int -> int -> t
val unknown : t
val file_exn : t -> string
val line_exn : t -> int
val col_exn : t -> int
val set_file : t -> string -> t
val set_line : t -> int -> t
val set_col : t -> int -> t
val incrl : t -> int -> t
val to_string : t -> string
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
end
type vcf_parse_row_error =
[ `duplicate_ids of Biocaml_vcf.vcf_id list
| `format_type_coersion_failure of Biocaml_vcf.vcf_format_type * string
| `info_type_coersion_failure of Biocaml_vcf.vcf_info_type * string
| `invalid_arguments_length of Biocaml_vcf.vcf_id * int * int
| `invalid_dna of string
| `invalid_float of string
| `invalid_int of string
| `invalid_row_length of int * int
| `malformed_sample of string
| `unknown_alt of string
| `unknown_filter of Biocaml_vcf.vcf_id
| `unknown_format of Biocaml_vcf.vcf_id
| `unknown_info of Biocaml_vcf.vcf_id ]
type vcf_parse_error =
[ `incomplete_input of Biocaml_vcf.Pos.t * string list * string option
| `malformed_header of Biocaml_vcf.Pos.t * string
| `malformed_meta of Biocaml_vcf.Pos.t * string
| `malformed_row of
Biocaml_vcf.Pos.t * Biocaml_vcf.vcf_parse_row_error * string
| `not_ready ]
val parse_error_to_string : Biocaml_vcf.vcf_parse_error -> string
module Transform :
sig
val string_to_item :
?filename:string ->
unit ->
(string,
(Biocaml_vcf.item, Biocaml_vcf.vcf_parse_error) Core.Result.t)
Biocaml_transform.t
end
end