Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Fastq.RecordSourceA record type for FASTQ files.
Very similar to the Fasta.Record.t. See that module for more details.contents
For the "header" line, the id is everything up to the first space, and the desc is everything after. Note, that desc is optional. E.g.,
@this_is_the_id this is the desc
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
id ----------| Some desc -----|The other possibly weird field is extra. It is simply everything on the line following the + (i.e., the third line of the 4 line FASTQ file).
It is currently NOT a parse error if the sequence length and quality string length are different lengths. This may change in the future.
val create :
id:Base.string ->
desc:Base.string Base.option ->
seq:Base.string ->
qual:Base.string ->
extra:Base.string Base.option ->
tcreate ~id ~desc ~seq ~qual ~extra creates a new t. Shouldn't raise as literally any values of the correct type are accepted.
to_string t returns a string representation of t ready to print to a FASTQ output file.
to_string_nl t ~nl returns a string representation of t ready to print to a FASTQ output file, including a trailing newline (nl) string. nl defaults to "\n".
equal this other returns true if all fields of two ts are the same.
id t returns the id of the t.
desc t returns the desc (description) of the t.
seq t returns the seq of the t.
qual t returns the qual of t.
extra t returns the extra of the t if there is one. It is whatever is after the + line. Technically it should be the same ID+desc found in the header line, but this library just treats it as a blob of data.
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 =
Fastq.Record.create ~id:"apple" ~desc:None ~seq:"a a" ~qual:". ."
~extra:None
in
assert (Int.(3 = Fastq.Record.seq_length r))with_id new_id t returns a t with new_id instead of the original id.
with_seq new_seq t returns a t with new_seq instead of the original seq.
with_desc new_desc t returns a t with new_desc instead of the original desc.
with_qual new_qual t returns a t with new_qual instead of the original qual.
with_extra new_extra t returns a t with new_extra instead of the original extra.
comp t returns the complement of t. I.e., the seq is complemented. Uses IUPAC conventions. Any "base" (char) that isn't part of the IUPAC passes through unchanged. Note that comp does not round-trip.