SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
seqan3::sam_record< field_types, field_ids > Class Template Reference

The record type of seqan3::alignment_file_input. More...

#include <seqan3/io/alignment_file/record.hpp>

+ Inheritance diagram for seqan3::sam_record< field_types, field_ids >:

Public Types

using base_type = detail::transfer_template_args_onto_t< field_types, std::tuple >
 A specialisation of std::tuple.
 

Public Member Functions

decltype(auto) alignment () &
 The (pairwise) alignment stored in an seqan3::alignment object. More...
 
decltype(auto) alignment () &&
 The (pairwise) alignment stored in an seqan3::alignment object.
 
decltype(auto) alignment () const &
 The (pairwise) alignment stored in an seqan3::alignment object. More...
 
decltype(auto) alignment () const &&
 The (pairwise) alignment stored in an seqan3::alignment object. More...
 
decltype(auto) base_qualities () &
 The qualities, usually in phred-score notation. More...
 
decltype(auto) base_qualities () &&
 The qualities, usually in phred-score notation.
 
decltype(auto) base_qualities () const &
 The qualities, usually in phred-score notation. More...
 
decltype(auto) base_qualities () const &&
 The qualities, usually in phred-score notation. More...
 
decltype(auto) cigar_sequence () &
 The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format. More...
 
decltype(auto) cigar_sequence () &&
 The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format.
 
decltype(auto) cigar_sequence () const &
 The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format. More...
 
decltype(auto) cigar_sequence () const &&
 The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format. More...
 
void clear () noexcept(noexcept(std::apply(expander, std::declval< record & >())))
 Clears containers that provide .clear() and (re-)initialises all other elements with = {}.
 
decltype(auto) flag () &
 The alignment flag (bit information), uint16_t value. More...
 
decltype(auto) flag () &&
 The alignment flag (bit information), uint16_t value.
 
decltype(auto) flag () const &
 The alignment flag (bit information), uint16_t value. More...
 
decltype(auto) flag () const &&
 The alignment flag (bit information), uint16_t value. More...
 
decltype(auto) header_ptr () &
 A pointer to the seqan3::alignment_file_header object storing header information. More...
 
decltype(auto) header_ptr () &&
 A pointer to the seqan3::alignment_file_header object storing header information.
 
decltype(auto) header_ptr () const &
 A pointer to the seqan3::alignment_file_header object storing header information. More...
 
decltype(auto) header_ptr () const &&
 A pointer to the seqan3::alignment_file_header object storing header information. More...
 
decltype(auto) id () &
 The identifier, usually a string. More...
 
decltype(auto) id () &&
 The identifier, usually a string.
 
decltype(auto) id () const &
 The identifier, usually a string. More...
 
decltype(auto) id () const &&
 The identifier, usually a string. More...
 
decltype(auto) mapping_quality () &
 The mate pair information given as a std::tuple of reference name, offset and template length. More...
 
decltype(auto) mapping_quality () &&
 The mate pair information given as a std::tuple of reference name, offset and template length.
 
decltype(auto) mapping_quality () const &
 The mate pair information given as a std::tuple of reference name, offset and template length. More...
 
decltype(auto) mapping_quality () const &&
 The mate pair information given as a std::tuple of reference name, offset and template length. More...
 
decltype(auto) mate_position () &
 The mate pair information with the position. More...
 
decltype(auto) mate_position () &&
 The mate pair information with the position.
 
decltype(auto) mate_position () const &
 The mate pair information with the position. More...
 
decltype(auto) mate_position () const &&
 The mate pair information with the position. More...
 
decltype(auto) mate_reference_id () &
 The mate pair information with the reference name. More...
 
decltype(auto) mate_reference_id () &&
 The mate pair information with the reference name.
 
decltype(auto) mate_reference_id () const &
 The mate pair information with the reference name. More...
 
decltype(auto) mate_reference_id () const &&
 The mate pair information with the reference name. More...
 
decltype(auto) reference_id () &
 The identifier of the (reference) sequence that SEQ was aligned to. More...
 
decltype(auto) reference_id () &&
 The identifier of the (reference) sequence that SEQ was aligned to.
 
decltype(auto) reference_id () const &
 The identifier of the (reference) sequence that SEQ was aligned to. More...
 
decltype(auto) reference_id () const &&
 The identifier of the (reference) sequence that SEQ was aligned to. More...
 
decltype(auto) reference_position () &
 Sequence (REF_SEQ) relative start position (0-based), unsigned value. More...
 
decltype(auto) reference_position () &&
 Sequence (REF_SEQ) relative start position (0-based), unsigned value.
 
decltype(auto) reference_position () const &
 Sequence (REF_SEQ) relative start position (0-based), unsigned value. More...
 
decltype(auto) reference_position () const &&
 Sequence (REF_SEQ) relative start position (0-based), unsigned value. More...
 
decltype(auto) reference_sequence () &
 The (reference) "sequence" information, usually a range of nucleotides or amino acids. More...
 
decltype(auto) reference_sequence () &&
 The (reference) "sequence" information, usually a range of nucleotides or amino acids.
 
decltype(auto) reference_sequence () const &
 The (reference) "sequence" information, usually a range of nucleotides or amino acids. More...
 
decltype(auto) reference_sequence () const &&
 The (reference) "sequence" information, usually a range of nucleotides or amino acids. More...
 
decltype(auto) sequence () &
 The "sequence", usually a range of nucleotides or amino acids. More...
 
decltype(auto) sequence () &&
 The "sequence", usually a range of nucleotides or amino acids.
 
decltype(auto) sequence () const &
 The "sequence", usually a range of nucleotides or amino acids. More...
 
decltype(auto) sequence () const &&
 The "sequence", usually a range of nucleotides or amino acids. More...
 
decltype(auto) sequence_position () &
 Sequence (SEQ) relative start position (0-based), unsigned value. More...
 
decltype(auto) sequence_position () &&
 Sequence (SEQ) relative start position (0-based), unsigned value.
 
decltype(auto) sequence_position () const &
 Sequence (SEQ) relative start position (0-based), unsigned value. More...
 
decltype(auto) sequence_position () const &&
 Sequence (SEQ) relative start position (0-based), unsigned value. More...
 
decltype(auto) tags () &
 The optional tags in the SAM format, stored in a dictionary. More...
 
decltype(auto) tags () &&
 The optional tags in the SAM format, stored in a dictionary.
 
decltype(auto) tags () const &
 The optional tags in the SAM format, stored in a dictionary. More...
 
decltype(auto) tags () const &&
 The optional tags in the SAM format, stored in a dictionary. More...
 
decltype(auto) template_length () &
 The mate pair information with the template length. More...
 
decltype(auto) template_length () &&
 The mate pair information with the template length.
 
decltype(auto) template_length () const &
 The mate pair information with the template length. More...
 
decltype(auto) template_length () const &&
 The mate pair information with the template length. More...
 
Constructors, destructor and assignment
 sam_record ()=default
 Defaulted.
 
 sam_record (sam_record const &)=default
 Defaulted.
 
sam_recordoperator= (sam_record const &)=default
 Defaulted.
 
 sam_record (sam_record &&)=default
 Defaulted.
 
sam_recordoperator= (sam_record &&)=default
 Defaulted.
 
 ~sam_record ()=default
 Defaulted.
 

Private Types

using base_t = record< field_types, field_ids >
 The base class.
 
template<field f>
using field_constant = typename base_t::template field_constant< f >
 A type alias for std::integral_constant. More...
 
using tuple_base_t = typename base_t::base_type
 The underlying std::tuple class.
 

Static Private Member Functions

template<typename t >
static constexpr void clear_element (t &v) noexcept(noexcept(std::declval< t & >()=t{}))
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename t >
static constexpr void clear_element (t &v) noexcept(noexcept(v.clear()))
 Auxiliary functions for clear().
 
template<field f, typename tuple_t >
static decltype(auto) get_impl (field_constant< f >, tuple_t &&record_as_tuple)
 This is basically the seqan3::get<f>(static_cast<tuple>(record)) implementation.
 

Static Private Attributes

static constexpr auto expander = [] (auto & ...args) { (clear_element(args), ...); }
 A lambda function that expands a pack and calls clear_element on every argument in the pack.
 

Related Functions

(Note that these are not member functions.)

Free function get() interface for seqan3::record based on seqan3::field.

This is the tuple interface via seqan3::field, e.g. seqan3::get<seqan3::field::seq>(record).

template<field f, typename field_types , typename field_ids >
auto & get (record< field_types, field_ids > &r)
 Free function get() for seqan3::record based on seqan3::field.
 
template<field f, typename field_types , typename field_ids >
auto const & get (record< field_types, field_ids > const &r)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<field f, typename field_types , typename field_ids >
auto && get (record< field_types, field_ids > &&r)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<field f, typename field_types , typename field_ids >
auto const && get (record< field_types, field_ids > const &&r)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
Requirements for seqan3::tuple_like

You can expect these (meta-)functions on all types that implement seqan3::tuple_like.

auto && get (type &&val)
 Return the i-th element of the tuple. More...
 
size_t tuple_size_v
 A unary type trait that holds the number of elements in the tuple. More...
 
 tuple_elment_t
 A transformation trait that holds the type of elements in the tuple. More...
 

Detailed Description

template<typename field_types, typename field_ids>
class seqan3::sam_record< field_types, field_ids >

The record type of seqan3::alignment_file_input.

Template Parameters
field_typesThe types of the fields in this record as a seqan3::type_list.
field_idsA seqan3::fields type with seqan3::field IDs corresponding to field_types.

Member Typedef Documentation

◆ field_constant

template<typename field_types , typename field_ids >
template<field f>
using seqan3::sam_record< field_types, field_ids >::field_constant = typename base_t::template field_constant<f>
private

A type alias for std::integral_constant.

Member Function Documentation

◆ alignment() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::alignment ( ) &
inline

The (pairwise) alignment stored in an seqan3::alignment object.

◆ alignment() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::alignment ( ) const &
inline

The (pairwise) alignment stored in an seqan3::alignment object.

◆ alignment() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::alignment ( ) const &&
inline

The (pairwise) alignment stored in an seqan3::alignment object.

◆ base_qualities() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::base_qualities ( ) &
inline

The qualities, usually in phred-score notation.

◆ base_qualities() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::base_qualities ( ) const &
inline

The qualities, usually in phred-score notation.

◆ base_qualities() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::base_qualities ( ) const &&
inline

The qualities, usually in phred-score notation.

◆ cigar_sequence() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::cigar_sequence ( ) &
inline

The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format.

◆ cigar_sequence() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::cigar_sequence ( ) const &
inline

The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format.

◆ cigar_sequence() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::cigar_sequence ( ) const &&
inline

The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format.

◆ flag() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::flag ( ) &
inline

The alignment flag (bit information), uint16_t value.

◆ flag() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::flag ( ) const &
inline

The alignment flag (bit information), uint16_t value.

◆ flag() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::flag ( ) const &&
inline

The alignment flag (bit information), uint16_t value.

◆ header_ptr() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::header_ptr ( ) &
inline

A pointer to the seqan3::alignment_file_header object storing header information.

◆ header_ptr() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::header_ptr ( ) const &
inline

A pointer to the seqan3::alignment_file_header object storing header information.

◆ header_ptr() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::header_ptr ( ) const &&
inline

A pointer to the seqan3::alignment_file_header object storing header information.

◆ id() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::id ( ) &
inline

The identifier, usually a string.

◆ id() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::id ( ) const &
inline

The identifier, usually a string.

◆ id() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::id ( ) const &&
inline

The identifier, usually a string.

◆ mapping_quality() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mapping_quality ( ) &
inline

The mate pair information given as a std::tuple of reference name, offset and template length.

◆ mapping_quality() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mapping_quality ( ) const &
inline

The mate pair information given as a std::tuple of reference name, offset and template length.

◆ mapping_quality() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mapping_quality ( ) const &&
inline

The mate pair information given as a std::tuple of reference name, offset and template length.

◆ mate_position() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mate_position ( ) &
inline

The mate pair information with the position.

◆ mate_position() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mate_position ( ) const &
inline

The mate pair information with the position.

◆ mate_position() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mate_position ( ) const &&
inline

The mate pair information with the position.

◆ mate_reference_id() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mate_reference_id ( ) &
inline

The mate pair information with the reference name.

◆ mate_reference_id() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mate_reference_id ( ) const &
inline

The mate pair information with the reference name.

◆ mate_reference_id() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::mate_reference_id ( ) const &&
inline

The mate pair information with the reference name.

◆ reference_id() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_id ( ) &
inline

The identifier of the (reference) sequence that SEQ was aligned to.

◆ reference_id() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_id ( ) const &
inline

The identifier of the (reference) sequence that SEQ was aligned to.

◆ reference_id() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_id ( ) const &&
inline

The identifier of the (reference) sequence that SEQ was aligned to.

◆ reference_position() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_position ( ) &
inline

Sequence (REF_SEQ) relative start position (0-based), unsigned value.

◆ reference_position() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_position ( ) const &
inline

Sequence (REF_SEQ) relative start position (0-based), unsigned value.

◆ reference_position() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_position ( ) const &&
inline

Sequence (REF_SEQ) relative start position (0-based), unsigned value.

◆ reference_sequence() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_sequence ( ) &
inline

The (reference) "sequence" information, usually a range of nucleotides or amino acids.

◆ reference_sequence() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_sequence ( ) const &
inline

The (reference) "sequence" information, usually a range of nucleotides or amino acids.

◆ reference_sequence() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::reference_sequence ( ) const &&
inline

The (reference) "sequence" information, usually a range of nucleotides or amino acids.

◆ sequence() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::sequence ( ) &
inline

The "sequence", usually a range of nucleotides or amino acids.

◆ sequence() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::sequence ( ) const &
inline

The "sequence", usually a range of nucleotides or amino acids.

◆ sequence() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::sequence ( ) const &&
inline

The "sequence", usually a range of nucleotides or amino acids.

◆ sequence_position() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::sequence_position ( ) &
inline

Sequence (SEQ) relative start position (0-based), unsigned value.

◆ sequence_position() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::sequence_position ( ) const &
inline

Sequence (SEQ) relative start position (0-based), unsigned value.

◆ sequence_position() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::sequence_position ( ) const &&
inline

Sequence (SEQ) relative start position (0-based), unsigned value.

◆ tags() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::tags ( ) &
inline

The optional tags in the SAM format, stored in a dictionary.

◆ tags() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::tags ( ) const &
inline

The optional tags in the SAM format, stored in a dictionary.

◆ tags() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::tags ( ) const &&
inline

The optional tags in the SAM format, stored in a dictionary.

◆ template_length() [1/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::template_length ( ) &
inline

The mate pair information with the template length.

◆ template_length() [2/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::template_length ( ) const &
inline

The mate pair information with the template length.

◆ template_length() [3/3]

template<typename field_types , typename field_ids >
decltype(auto) seqan3::sam_record< field_types, field_ids >::template_length ( ) const &&
inline

The mate pair information with the template length.

Friends And Related Function Documentation

◆ get()

auto && get< i > ( type &&  val)
related

Return the i-th element of the tuple.

Template Parameters
iThe index of the element to return (of type size_t).
Parameters
[in,out]valThe tuple-like object to operate on.
Returns
The i-th value in the tuple.
Attention
This is a concept requirement, not an actual function (however types satisfying this concept will provide an implementation).
This constraint is not enforced since empty tuples are valid.

◆ tuple_elment_t()

tuple_elment_t
related

A transformation trait that holds the type of elements in the tuple.

Template Parameters
iIndex of the queried element type.
typeThe tuple-like type.
Attention
This is a concept requirement, not an actual function (however types satisfying this concept will provide an implementation).
This constraint is not enforced since empty tuples are valid.

◆ tuple_size_v()

size_t tuple_size_v
related

A unary type trait that holds the number of elements in the tuple.

Template Parameters
typeThe tuple-like type.
Attention
This is a concept requirement, not an actual function (however types satisfying this concept will provide an implementation).

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