SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
seqan3::format_embl Class Reference

The EMBL format. More...

#include <seqan3/io/sequence_file/format_embl.hpp>

+ Inheritance diagram for seqan3::format_embl:

Public Member Functions

Constructors, destructor and assignment
 format_embl () noexcept=default
 Defaulted.
 
 format_embl (format_embl const &) noexcept=default
 Defaulted.
 
format_embloperator= (format_embl const &) noexcept=default
 Defaulted.
 
 format_embl (format_embl &&) noexcept=default
 Defaulted.
 
format_embloperator= (format_embl &&) noexcept=default
 Defaulted.
 
 ~format_embl () noexcept=default
 

Static Public Attributes

static std::vector< std::stringfile_extensions
 The valid file extensions for this format; note that you can modify this value. More...
 

Protected Member Functions

template<typename stream_type , typename seq_legal_alph_type , bool seq_qual_combined, typename seq_type , typename id_type , typename qual_type >
void read_sequence_record (stream_type &stream, sequence_file_input_options< seq_legal_alph_type, seq_qual_combined > const &options, seq_type &sequence, id_type &id, qual_type &qualities)
 Read from the specified stream and back-insert into the given field buffers. More...
 
template<typename stream_type , typename seq_type , typename id_type , typename qual_type >
void write_sequence_record (stream_type &stream, sequence_file_output_options const &options, seq_type &&sequence, id_type &&id, qual_type &&qualities)
 Write the given fields to the specified stream. More...
 

Detailed Description

The EMBL format.

Introduction

embl is the format used in ENA sequence records. See the (ftp://ftp.ebi.ac.uk/pub/databases/embl/doc/usrman.txt) for a an in-depth description of the format.

fields_specialisation

The embl format provides the fields seqan3::field::seq and seqan3::field::id. Both fields are required when writing.

Implementation notes

When reading the ID-line, the ID is read until the stream encounters a ';'. Unless, the option truncate_ids is set to true, then the id is read until it either sees a blank, ';' or a new line. When the option "embl_genbank_complete_header" is set to true (Default: false) the whole header is read into the id.

When writing the ID-line, the sequence length is appended.

All other identifiers apart from 'ID' and 'SQ' are currently ignored.

Passed qualities to either the read or write function are ignored.

Constructor & Destructor Documentation

◆ ~format_embl()

seqan3::format_embl::~format_embl ( )
defaultnoexcept

Defaulted.

Member Function Documentation

◆ read_sequence_record()

template<typename stream_type , typename seq_legal_alph_type , bool seq_qual_combined, typename seq_type , typename id_type , typename qual_type >
void seqan3::format_embl::read_sequence_record ( stream_type &  stream,
sequence_file_input_options< seq_legal_alph_type, seq_qual_combined > const &  options,
seq_type &  sequence,
id_type &  id,
qual_type &  qualities 
)
inlineprotected

Read from the specified stream and back-insert into the given field buffers.

Template Parameters
stream_typeInput stream, must satisfy seqan3::input_stream_over with char.
seq_typeType of the seqan3::field::seq input; must satisfy std::ranges::output_range over a seqan3::alphabet.
id_typeType of the seqan3::field::id input; must satisfy std::ranges::output_range over a seqan3::alphabet.
qual_typeType of the seqan3::field::qual input; must satisfy std::ranges::output_range over a seqan3::writable_quality_alphabet.
Parameters
[in,out]streamThe input stream to read from.
[in]optionsFile specific options passed to the format.
[out]sequenceThe buffer for seqan3::field::seq input, i.e. the "sequence".
[out]idThe buffer for seqan3::field::id input, e.g. the header line in FastA.
[out]qualitiesThe buffer for seqan3::field::qual input.

Additional requirements

◆ write_sequence_record()

template<typename stream_type , typename seq_type , typename id_type , typename qual_type >
void seqan3::format_embl::write_sequence_record ( stream_type &  stream,
sequence_file_output_options const &  options,
seq_type &&  sequence,
id_type &&  id,
qual_type &&  qualities 
)
inlineprotected

Write the given fields to the specified stream.

Template Parameters
stream_typeOutput stream, must satisfy seqan3::output_stream_over with char.
seq_typeType of the seqan3::field::seq output; must satisfy std::ranges::output_range over a seqan3::alphabet.
id_typeType of the seqan3::field::id output; must satisfy std::ranges::output_range over a seqan3::alphabet.
qual_typeType of the seqan3::field::qual output; must satisfy std::ranges::output_range over a seqan3::quality_alphabet.
Parameters
[in,out]streamThe output stream to write into.
[in]optionsFile specific options passed to the format.
[in]sequenceThe data for seqan3::field::seq, i.e. the "sequence".
[in]idThe data for seqan3::field::id, e.g. the header line in FastA.
[in]qualitiesThe data for seqan3::field::qual.

Additional requirements

  • The format must also accept std::ignore as parameter for any of the fields, however it shall throw an exception if one of the fields required for writing the format is marked as such. [this shall be checked inside the function]
  • The format does not handle seqan3::field::seq_qual, instead seqan3::sequence_file_output splits it into two views and passes it to the format as if they were separate.

Implements sequence_file_output_format.

Friends And Related Function Documentation

◆ read_sequence_record()

void read_sequence_record ( stream_type &  stream,
seqan3::sequence_file_input_options const &  options,
seq_type &  sequence,
id_type &  id,
qual_type &  qualities 
)
related

Read from the specified stream and back-insert into the given field buffers.

Template Parameters
stream_typeInput stream, must satisfy seqan3::input_stream_over with char.
seq_typeType of the seqan3::field::seq input; must satisfy std::ranges::output_range over a seqan3::alphabet.
id_typeType of the seqan3::field::id input; must satisfy std::ranges::output_range over a seqan3::alphabet.
qual_typeType of the seqan3::field::qual input; must satisfy std::ranges::output_range over a seqan3::writable_quality_alphabet.
Parameters
[in,out]streamThe input stream to read from.
[in]optionsFile specific options passed to the format.
[out]sequenceThe buffer for seqan3::field::seq input, i.e. the "sequence".
[out]idThe buffer for seqan3::field::id input, e.g. the header line in FastA.
[out]qualitiesThe buffer for seqan3::field::qual input.

Additional requirements

Member Data Documentation

◆ file_extensions

std::vector<std::string> seqan3::format_embl::file_extensions
inlinestatic
Initial value:
{
{ "embl" },
}

The valid file extensions for this format; note that you can modify this value.


The documentation for this class was generated from the following file: