SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
seqan3::format_genbank Class Reference

The GenBank format. More...

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

+ Inheritance diagram for seqan3::format_genbank:

Public Member Functions

Constructors, destructor and assignment
 format_genbank () noexcept=default
 Defaulted.
 
 format_genbank (format_genbank const &) noexcept=default
 Defaulted.
 
format_genbankoperator= (format_genbank const &) noexcept=default
 Defaulted.
 
 format_genbank (format_genbank &&) noexcept=default
 Defaulted.
 
format_genbankoperator= (format_genbank &&) noexcept=default
 Defaulted.
 
 ~format_genbank () noexcept=default
 Defaulted.
 

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...
 

Additional Inherited Members

Detailed Description

The GenBank format.

Introduction

genbank is the format used in the GenBank sequence database. See this example record at NCBI for more details about the format.

fields_specialisation

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

Implementation notes

There is no truncate_ids option while reading because the GenBank format has no (FASTA-like) idbuffer. Instead, there is the option "complete_header" to indicate whether the whole header is to be read (embl_genbank_complete_header=true) or only the "LOCUS" information should be stored.

Qualities passed to the write function are ignored.

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_genbank::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

  • The function must also accept std::ignore as parameter for any of the fields. [This is enforced by the concept checker!]
  • In this case the data read for that field shall be discarded by the format.

◆ write_sequence_record()

template<typename stream_type , typename seq_type , typename id_type , typename qual_type >
void seqan3::format_genbank::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]

Implements sequence_file_output_format.

Member Data Documentation

◆ file_extensions

std::vector<std::string> seqan3::format_genbank::file_extensions
inlinestatic
Initial value:
{
{ "genbank" },
{ "gb" },
{ "gbk" },
}

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: