25 template <
typename field_types,
typename field_
ids>
36 using field_constant =
typename base_t::template field_constant<f>;
38 using base_t::get_impl;
57 decltype(
auto)
id() &&
59 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t &&
>(*this));
62 decltype(
auto)
id() const &&
64 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t
const &&
>(*this));
69 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t &
>(*this));
72 decltype(
auto)
id() const &
74 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t
const &
>(*this));
82 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t &&
>(*this));
87 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t
const &&
>(*this));
92 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t &
>(*this));
97 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t
const &
>(*this));
105 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t &&
>(*this));
110 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t
const &&
>(*this));
115 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t &
>(*this));
120 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t
const &
>(*this));
134 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t &&
>(*this));
139 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t
const &&
>(*this));
144 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t &
>(*this));
149 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t
const &
>(*this));
157 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t &&
>(*this));
162 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t
const &&
>(*this));
167 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t &
>(*this));
172 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t
const &
>(*this));
181 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t &&
>(*this));
186 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t
const &&
>(*this));
191 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t &
>(*this));
196 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t
const &
>(*this));
210 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t &&
>(*this));
215 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t
const &&
>(*this));
220 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t &
>(*this));
225 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t
const &
>(*this));
235 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t &&
>(*this));
240 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t
const &&
>(*this));
245 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t &
>(*this));
250 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t
const &
>(*this));
258 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t &&
>(*this));
263 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t
const &&
>(*this));
268 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t &
>(*this));
273 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t
const &
>(*this));
285 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
290 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
295 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
300 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
308 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
313 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
318 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
323 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
331 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
336 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
341 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
346 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
354 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t &&
>(*this));
359 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t
const &&
>(*this));
364 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t &
>(*this));
369 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t
const &
>(*this));
377 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t &&
>(*this));
382 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t
const &&
>(*this));
387 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t &
>(*this));
392 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t
const &
>(*this));
400 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t &&
>(*this));
405 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t
const &&
>(*this));
410 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t &
>(*this));
415 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t
const &
>(*this));
428 template <
typename field_types,
typename field_
ids>
429 struct tuple_size<
seqan3::sam_record<field_types, field_ids>>
430 : tuple_size<typename seqan3::sam_record<field_types, field_ids>::base_type>
438 template <
size_t elem_no,
typename field_types,
typename field_
ids>
439 struct tuple_element<elem_no,
seqan3::sam_record<field_types, field_ids>>
440 : tuple_element<elem_no, typename seqan3::sam_record<field_types, field_ids>::base_type>
The record type of seqan3::alignment_file_input.
Definition: record.hpp:27
sam_record & operator=(sam_record &&)=default
Defaulted.
decltype(auto) mate_reference_id() &&
The identifier of the (reference) sequence of the mate. (SAM Column ID: RNEXT)
Definition: record.hpp:283
decltype(auto) cigar_sequence() &&
The cigar vector representing the alignment. (SAM Column ID: CIGAR)
Definition: record.hpp:375
decltype(auto) sequence_position() &&
Sequence (seqan3::sam_record::sequence) relative start position (0-based), unsigned value....
Definition: record.hpp:132
decltype(auto) header_ptr() &&
A pointer to the seqan3::sam_file_header object storing header information.
Definition: record.hpp:233
decltype(auto) mapping_quality() &&
The mapping quality of the alignment, usually a Phred-scaled score. (SAM Column ID: MAPQ)
Definition: record.hpp:352
decltype(auto) reference_position() &&
(Reference) Sequence (seqan3::sam_record::reference_sequence) relative start position (0-based),...
Definition: record.hpp:208
sam_record(sam_record const &)=default
Defaulted.
decltype(auto) reference_id() &&
The identifier of the (reference) sequence that seqan3::sam_record::sequence was aligned to....
Definition: record.hpp:179
decltype(auto) flag() &&
The alignment flag (bit information), uint16_t value. (SAM Column ID: FLAG)
Definition: record.hpp:256
sam_record & operator=(sam_record const &)=default
Defaulted.
decltype(auto) base_qualities() &&
The qualities, usually in Phred score notation. (SAM Column ID: QUAL)
Definition: record.hpp:103
decltype(auto) tags() &&
The optional tags in the SAM format.
Definition: record.hpp:398
sam_record()=default
Defaulted.
sam_record(sam_record &&)=default
Defaulted.
decltype(auto) mate_position() &&
(Reference) Sequence relative start position (0-based) of the mate. (SAM Column ID: PNEXT)
Definition: record.hpp:306
decltype(auto) reference_sequence()=delete
The (reference) "sequence" information, usually a range of nucleotides or amino acids....
~sam_record()=default
Defaulted.
decltype(auto) alignment() &&
The (pairwise) alignment stored in an object that models seqan3::detail::pairwise_alignment.
Definition: record.hpp:155
decltype(auto) template_length() &&
The observed template length. (SAM Column ID: TLEN)
Definition: record.hpp:329
decltype(auto) id() &&
The identifier, usually a string. (SAM Column ID: QNAME)
Definition: record.hpp:57
The generic concept for a (biological) sequence.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
SeqAn specific customisations in the standard namespace.
Definition: affine_cell_proxy.hpp:438
Provides the seqan3::record template and the seqan3::field enum.
The class template that file records are based on; behaves like an std::tuple.
Definition: record.hpp:235
detail::transfer_template_args_onto_t< field_types, std::tuple > base_type
A specialisation of std::tuple.
Definition: record.hpp:259