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;
55 decltype(
auto)
id() &&
57 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t &&
>(*this));
60 decltype(
auto)
id() const &&
62 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t
const &&
>(*this));
67 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t &
>(*this));
70 decltype(
auto)
id() const &
72 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t
const &
>(*this));
78 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t &&
>(*this));
83 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t
const &&
>(*this));
88 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t &
>(*this));
93 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t
const &
>(*this));
99 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t &&
>(*this));
104 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t
const &&
>(*this));
109 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t &
>(*this));
114 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t
const &
>(*this));
120 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t &&
>(*this));
125 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t
const &&
>(*this));
130 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t &
>(*this));
135 return get_impl(field_constant<seqan3::field::offset>{},
static_cast<tuple_base_t
const &
>(*this));
141 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t &&
>(*this));
146 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t
const &&
>(*this));
151 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t &
>(*this));
156 return get_impl(field_constant<seqan3::field::alignment>{},
static_cast<tuple_base_t
const &
>(*this));
162 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t &&
>(*this));
167 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t
const &&
>(*this));
172 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t &
>(*this));
177 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t
const &
>(*this));
183 return get_impl(field_constant<seqan3::field::ref_seq>{},
static_cast<tuple_base_t &&
>(*this));
188 return get_impl(field_constant<seqan3::field::ref_seq>{},
static_cast<tuple_base_t
const &&
>(*this));
193 return get_impl(field_constant<seqan3::field::ref_seq>{},
static_cast<tuple_base_t &
>(*this));
198 return get_impl(field_constant<seqan3::field::ref_seq>{},
static_cast<tuple_base_t
const &
>(*this));
204 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t &&
>(*this));
209 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t
const &&
>(*this));
214 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t &
>(*this));
219 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t
const &
>(*this));
225 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t &&
>(*this));
230 return get_impl(field_constant<seqan3::field::header_ptr>{},
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));
246 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t &&
>(*this));
251 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t
const &&
>(*this));
256 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t &
>(*this));
261 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t
const &
>(*this));
267 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
272 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
277 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
282 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
288 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
293 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
298 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
303 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
309 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
314 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
319 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
324 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
330 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t &&
>(*this));
335 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t
const &&
>(*this));
340 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t &
>(*this));
345 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t
const &
>(*this));
351 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t &&
>(*this));
356 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t
const &&
>(*this));
361 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t &
>(*this));
366 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t
const &
>(*this));
372 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t &&
>(*this));
377 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t
const &&
>(*this));
382 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t &
>(*this));
387 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t
const &
>(*this));
400 template <
typename field_types,
typename field_
ids>
401 struct tuple_size<
seqan3::sam_record<field_types, field_ids>>
402 : tuple_size<typename seqan3::sam_record<field_types, field_ids>::base_type>
410 template <
size_t elem_no,
typename field_types,
typename field_
ids>
411 struct tuple_element<elem_no,
seqan3::sam_record<field_types, field_ids>>
412 : 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 mate pair information with the reference name.
Definition: record.hpp:265
decltype(auto) cigar_sequence() &&
The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format.
Definition: record.hpp:349
decltype(auto) sequence_position() &&
Sequence (SEQ) relative start position (0-based), unsigned value.
Definition: record.hpp:118
decltype(auto) header_ptr() &&
A pointer to the seqan3::alignment_file_header object storing header information.
Definition: record.hpp:223
decltype(auto) reference_sequence() &&
The (reference) "sequence" information, usually a range of nucleotides or amino acids.
Definition: record.hpp:181
decltype(auto) mapping_quality() &&
The mate pair information given as a std::tuple of reference name, offset and template length.
Definition: record.hpp:328
decltype(auto) reference_position() &&
Sequence (REF_SEQ) relative start position (0-based), unsigned value.
Definition: record.hpp:202
sam_record(sam_record const &)=default
Defaulted.
decltype(auto) reference_id() &&
The identifier of the (reference) sequence that SEQ was aligned to.
Definition: record.hpp:160
decltype(auto) flag() &&
The alignment flag (bit information), uint16_t value.
Definition: record.hpp:244
sam_record & operator=(sam_record const &)=default
Defaulted.
decltype(auto) base_qualities() &&
The qualities, usually in phred-score notation.
Definition: record.hpp:97
decltype(auto) tags() &&
The optional tags in the SAM format, stored in a dictionary.
Definition: record.hpp:370
sam_record()=default
Defaulted.
sam_record(sam_record &&)=default
Defaulted.
decltype(auto) mate_position() &&
The mate pair information with the position.
Definition: record.hpp:286
~sam_record()=default
Defaulted.
decltype(auto) alignment() &&
The (pairwise) alignment stored in an seqan3::alignment object.
Definition: record.hpp:139
decltype(auto) template_length() &&
The mate pair information with the template length.
Definition: record.hpp:307
decltype(auto) id() &&
The identifier, usually a string.
Definition: record.hpp:55
The generic concept for a (biological) sequence.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
SeqAn specific customisations in the standard namespace.
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:223
detail::transfer_template_args_onto_t< field_types, std::tuple > base_type
A specialisation of std::tuple.
Definition: record.hpp:247