27template <
typename field_types,
typename field_
ids>
38 using field_constant =
typename base_t::template field_constant<f>;
40 using base_t::get_impl;
60 decltype(
auto)
id() &&
62 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t &&
>(*this));
65 decltype(
auto)
id()
const &&
67 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t
const &&
>(*this));
72 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t &
>(*this));
75 decltype(
auto)
id()
const &
77 return get_impl(field_constant<seqan3::field::id>{},
static_cast<tuple_base_t
const &
>(*this));
85 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t &&
>(*this));
90 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t
const &&
>(*this));
95 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t &
>(*this));
100 return get_impl(field_constant<seqan3::field::seq>{},
static_cast<tuple_base_t
const &
>(*this));
108 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t &&
>(*this));
113 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t
const &&
>(*this));
118 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t &
>(*this));
123 return get_impl(field_constant<seqan3::field::qual>{},
static_cast<tuple_base_t
const &
>(*this));
138 return static_cast<int32_t
>(0);
143 return static_cast<int32_t
>(0);
148 return static_cast<int32_t
>(0);
153 return static_cast<int32_t
>(0);
178 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t &&
>(*this));
183 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t
const &&
>(*this));
188 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t &
>(*this));
193 return get_impl(field_constant<seqan3::field::ref_id>{},
static_cast<tuple_base_t
const &
>(*this));
207 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t &&
>(*this));
212 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t
const &&
>(*this));
217 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t &
>(*this));
222 return get_impl(field_constant<seqan3::field::ref_offset>{},
static_cast<tuple_base_t
const &
>(*this));
232 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t &&
>(*this));
237 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t
const &&
>(*this));
242 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t &
>(*this));
247 return get_impl(field_constant<seqan3::field::header_ptr>{},
static_cast<tuple_base_t
const &
>(*this));
255 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t &&
>(*this));
260 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t
const &&
>(*this));
265 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t &
>(*this));
270 return get_impl(field_constant<seqan3::field::flag>{},
static_cast<tuple_base_t
const &
>(*this));
282 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
287 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
292 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
297 return std::get<0>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
305 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
310 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
315 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
320 return std::get<1>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
328 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &&
>(*this)));
333 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &&
>(*this)));
338 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t &
>(*this)));
343 return std::get<2>(get_impl(field_constant<seqan3::field::mate>{},
static_cast<tuple_base_t
const &
>(*this)));
351 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t &&
>(*this));
356 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t
const &&
>(*this));
361 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t &
>(*this));
366 return get_impl(field_constant<seqan3::field::mapq>{},
static_cast<tuple_base_t
const &
>(*this));
374 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t &&
>(*this));
379 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t
const &&
>(*this));
384 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t &
>(*this));
389 return get_impl(field_constant<seqan3::field::cigar>{},
static_cast<tuple_base_t
const &
>(*this));
397 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t &&
>(*this));
402 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t
const &&
>(*this));
407 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t &
>(*this));
412 return get_impl(field_constant<seqan3::field::tags>{},
static_cast<tuple_base_t
const &
>(*this));
425template <
typename field_types,
typename field_
ids>
426struct tuple_size<
seqan3::sam_record<field_types, field_ids>> :
427 tuple_size<typename seqan3::sam_record<field_types, field_ids>::base_type>
435template <
size_t elem_no,
typename field_types,
typename field_
ids>
436struct tuple_element<elem_no,
seqan3::sam_record<field_types, field_ids>> :
437 tuple_element<elem_no, typename seqan3::sam_record<field_types, field_ids>::base_type>
The record type of seqan3::sam_file_input.
Definition: sam_file/record.hpp:29
decltype(auto) reference_position() const &
(Reference) Sequence (seqan3::sam_record::reference_sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:220
decltype(auto) header_ptr() const &&
A pointer to the seqan3::sam_file_header object storing header information.
Definition: sam_file/record.hpp:235
SEQAN3_DEPRECATED_340 decltype(auto) sequence_position() &
[DEPRECATED] Sequence (seqan3::sam_record::sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:146
SEQAN3_DEPRECATED_340 decltype(auto) sequence_position() const &&
[DEPRECATED] Sequence (seqan3::sam_record::sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:141
decltype(auto) flag() const &
The alignment flag (bit information), uint16_t value. (SAM Column ID: FLAG)
Definition: sam_file/record.hpp:268
SEQAN3_DEPRECATED_340 decltype(auto) alignment() &
[DEPRECATED] The (pairwise) alignment stored in an object that models seqan3::detail::pairwise_alignm...
Definition: sam_file/record.hpp:166
decltype(auto) cigar_sequence() &
The cigar vector representing the alignment. (SAM Column ID: CIGAR)
Definition: sam_file/record.hpp:382
decltype(auto) mate_reference_id() &&
The identifier of the (reference) sequence of the mate. (SAM Column ID: RNEXT)
Definition: sam_file/record.hpp:280
decltype(auto) cigar_sequence() &&
The cigar vector representing the alignment. (SAM Column ID: CIGAR)
Definition: sam_file/record.hpp:372
SEQAN3_DEPRECATED_340 decltype(auto) sequence_position() const &
[DEPRECATED] Sequence (seqan3::sam_record::sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:151
decltype(auto) reference_id() const &&
The identifier of the (reference) sequence that seqan3::sam_record::sequence was aligned to....
Definition: sam_file/record.hpp:181
decltype(auto) base_qualities() const &
The qualities, usually in Phred score notation. (SAM Column ID: QUAL)
Definition: sam_file/record.hpp:121
decltype(auto) header_ptr() &&
A pointer to the seqan3::sam_file_header object storing header information.
Definition: sam_file/record.hpp:230
decltype(auto) base_qualities() const &&
The qualities, usually in Phred score notation. (SAM Column ID: QUAL)
Definition: sam_file/record.hpp:111
decltype(auto) template_length() const &
The observed template length. (SAM Column ID: TLEN)
Definition: sam_file/record.hpp:341
decltype(auto) mate_reference_id() const &&
The identifier of the (reference) sequence of the mate. (SAM Column ID: RNEXT)
Definition: sam_file/record.hpp:285
decltype(auto) sequence() &
The "sequence", usually a range of nucleotides or amino acids. (SAM Column ID: SEQ)
Definition: sam_file/record.hpp:93
decltype(auto) mapping_quality() &&
The mapping quality of the alignment, usually a Phred-scaled score. (SAM Column ID: MAPQ)
Definition: sam_file/record.hpp:349
decltype(auto) reference_id() &
The identifier of the (reference) sequence that seqan3::sam_record::sequence was aligned to....
Definition: sam_file/record.hpp:186
decltype(auto) sequence() const &&
The "sequence", usually a range of nucleotides or amino acids. (SAM Column ID: SEQ)
Definition: sam_file/record.hpp:88
decltype(auto) reference_position() &&
(Reference) Sequence (seqan3::sam_record::reference_sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:205
sam_record & operator=(sam_record &&)=default
Defaulted.
decltype(auto) template_length() const &&
The observed template length. (SAM Column ID: TLEN)
Definition: sam_file/record.hpp:331
decltype(auto) mate_position() &
(Reference) Sequence relative start position (0-based) of the mate. (SAM Column ID: PNEXT)
Definition: sam_file/record.hpp:313
sam_record(sam_record const &)=default
Defaulted.
decltype(auto) tags() const &
The optional tags in the SAM format.
Definition: sam_file/record.hpp:410
decltype(auto) reference_id() &&
The identifier of the (reference) sequence that seqan3::sam_record::sequence was aligned to....
Definition: sam_file/record.hpp:176
decltype(auto) flag() &&
The alignment flag (bit information), uint16_t value. (SAM Column ID: FLAG)
Definition: sam_file/record.hpp:253
decltype(auto) tags() &
The optional tags in the SAM format.
Definition: sam_file/record.hpp:405
decltype(auto) flag() const &&
The alignment flag (bit information), uint16_t value. (SAM Column ID: FLAG)
Definition: sam_file/record.hpp:258
decltype(auto) header_ptr() const &
A pointer to the seqan3::sam_file_header object storing header information.
Definition: sam_file/record.hpp:245
decltype(auto) base_qualities() &&
The qualities, usually in Phred score notation. (SAM Column ID: QUAL)
Definition: sam_file/record.hpp:106
decltype(auto) mapping_quality() &
The mapping quality of the alignment, usually a Phred-scaled score. (SAM Column ID: MAPQ)
Definition: sam_file/record.hpp:359
SEQAN3_DEPRECATED_340 decltype(auto) alignment() &&
[DEPRECATED] The (pairwise) alignment stored in an object that models seqan3::detail::pairwise_alignm...
Definition: sam_file/record.hpp:160
decltype(auto) template_length() &
The observed template length. (SAM Column ID: TLEN)
Definition: sam_file/record.hpp:336
decltype(auto) tags() const &&
The optional tags in the SAM format.
Definition: sam_file/record.hpp:400
decltype(auto) tags() &&
The optional tags in the SAM format.
Definition: sam_file/record.hpp:395
decltype(auto) flag() &
The alignment flag (bit information), uint16_t value. (SAM Column ID: FLAG)
Definition: sam_file/record.hpp:263
sam_record()=default
Defaulted.
sam_record(sam_record &&)=default
Defaulted.
decltype(auto) reference_position() &
(Reference) Sequence (seqan3::sam_record::reference_sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:215
decltype(auto) cigar_sequence() const &
The cigar vector representing the alignment. (SAM Column ID: CIGAR)
Definition: sam_file/record.hpp:387
decltype(auto) reference_id() const &
The identifier of the (reference) sequence that seqan3::sam_record::sequence was aligned to....
Definition: sam_file/record.hpp:191
SEQAN3_DEPRECATED_340 decltype(auto) sequence_position() &&
[DEPRECATED] Sequence (seqan3::sam_record::sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:136
decltype(auto) mate_position() &&
(Reference) Sequence relative start position (0-based) of the mate. (SAM Column ID: PNEXT)
Definition: sam_file/record.hpp:303
decltype(auto) reference_sequence()=delete
The (reference) "sequence" information, usually a range of nucleotides or amino acids....
sam_record & operator=(sam_record const &)=default
Defaulted.
decltype(auto) cigar_sequence() const &&
The cigar vector representing the alignment. (SAM Column ID: CIGAR)
Definition: sam_file/record.hpp:377
decltype(auto) sequence() const &
The "sequence", usually a range of nucleotides or amino acids. (SAM Column ID: SEQ)
Definition: sam_file/record.hpp:98
SEQAN3_DEPRECATED_340 decltype(auto) alignment() const &
[DEPRECATED] The (pairwise) alignment stored in an object that models seqan3::detail::pairwise_alignm...
Definition: sam_file/record.hpp:169
SEQAN3_DEPRECATED_340 decltype(auto) alignment() const &&
[DEPRECATED] The (pairwise) alignment stored in an object that models seqan3::detail::pairwise_alignm...
Definition: sam_file/record.hpp:163
decltype(auto) mate_position() const &
(Reference) Sequence relative start position (0-based) of the mate. (SAM Column ID: PNEXT)
Definition: sam_file/record.hpp:318
~sam_record()=default
Defaulted.
decltype(auto) header_ptr() &
A pointer to the seqan3::sam_file_header object storing header information.
Definition: sam_file/record.hpp:240
decltype(auto) mate_position() const &&
(Reference) Sequence relative start position (0-based) of the mate. (SAM Column ID: PNEXT)
Definition: sam_file/record.hpp:308
decltype(auto) mapping_quality() const &
The mapping quality of the alignment, usually a Phred-scaled score. (SAM Column ID: MAPQ)
Definition: sam_file/record.hpp:364
decltype(auto) mate_reference_id() &
The identifier of the (reference) sequence of the mate. (SAM Column ID: RNEXT)
Definition: sam_file/record.hpp:290
decltype(auto) mapping_quality() const &&
The mapping quality of the alignment, usually a Phred-scaled score. (SAM Column ID: MAPQ)
Definition: sam_file/record.hpp:354
decltype(auto) sequence() &&
The "sequence", usually a range of nucleotides or amino acids. (SAM Column ID: SEQ)
Definition: sam_file/record.hpp:83
decltype(auto) reference_position() const &&
(Reference) Sequence (seqan3::sam_record::reference_sequence) relative start position (0-based),...
Definition: sam_file/record.hpp:210
decltype(auto) base_qualities() &
The qualities, usually in Phred score notation. (SAM Column ID: QUAL)
Definition: sam_file/record.hpp:116
decltype(auto) template_length() &&
The observed template length. (SAM Column ID: TLEN)
Definition: sam_file/record.hpp:326
decltype(auto) mate_reference_id() const &
The identifier of the (reference) sequence of the mate. (SAM Column ID: RNEXT)
Definition: sam_file/record.hpp:295
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 a std::tuple.
Definition: record.hpp:193
detail::transfer_template_args_onto_t< field_types, std::tuple > base_type
A specialisation of std::tuple.
Definition: record.hpp:218