Library
Module
Module type
Parameter
Class
Class type
A record type for FASTA files.
If you have a fasta file something like this:
>s1 apple pie
ACTG
actg
Then you would get a record
something like this:
Fasta_record.id record (* "s1" *) Fasta_record.desc record
(* Some "apple pie" *) Fasta_record.seq record
(* "ACTGactg" *)
If you have a fasta file something like this:
>s1
ACTG
actg
Then you would get a record
something like this:
Fasta_record.id record (* "s1" *) Fasta_record.desc record (* None *)
Fasta_record.seq record
(* "ACTGactg" *)
To change a part of the Fasta_record
use the with_*
functions. E.g.,
Fasta_record.with_id "apple" record
would change give you a t
with the id
set to "apple"
.
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
exception Exn of Base.string
val create :
id:Base.string ->
desc:Base.string Base.option ->
seq:Base.string ->
t
create ~id ~desc ~seq
creates a new t
. Shouldn't raise as literally any values of the correct type are accepted.
val of_header_exn : Base.string -> t
of_header_exn header
returns a t
from a FASTA header. May raise exceptions. Used internally for parsing FASTA files, but the code consuming the bio_io
module probably won't need to use this function.
val of_header : Base.string -> t Base.Or_error.t
of_header header
is like of_header_exn header
except that it returns Or_error.t
rather than raising exceptions.
val to_string : t -> Base.string
to_string t
returns a string representation of t
ready to print to a FASTA output file.
val to_string_nl : ?nl:Base.string -> t -> Base.string
to_string_nl t ~nl
returns a string representation of t
ready to print to a FASTA output file, including a trailing newline (nl) string. nl
defaults to "\n"
.
val serialize : t -> Base.string
serialize t
returns the Sexp
of t
as a string.
val id : t -> Base.string
id t
returns the id
of the t
.
val desc : t -> Base.string Base.option
desc t
returns the desc
(description) of the t
.
val seq : t -> Base.string
seq t
returns the seq
of the t
.
seq_length t
returns the length of the seq
of t
.
If you construct a record by hand (e.g., with create
), and there are spaces or other weird characters in the sequences, they will be counted in the length. E.g.,
let r = Fasta_record.create ~id:"apple" ~desc:None ~seq:"a a" in
assert (Int.(3 = Fasta_record.seq_length r))
val with_id : Base.string -> t -> t
with_id new_id t
returns a t
with new_id
instead of the original id
.
val with_seq : Base.string -> t -> t
with_seq new_seq t
returns a t
with new_seq
instead of the original seq
.
val with_desc : Base.string Base.option -> t -> t
with_desc new_desc t
returns a t
with new_desc
instead of the original desc
.