37 template <std::ranges::forward_range rng1_type, std::ranges::forward_range rng2_type>
38 constexpr bool operator()(rng1_type && rng1, rng2_type && rng2)
const
53 char const cigar_operation,
54 uint32_t
const cigar_count)
56 switch (cigar_operation)
61 ref_length += cigar_count, seq_length += cigar_count;
65 ref_length += cigar_count;
68 seq_length += cigar_count;
97 uint32_t cigar_count{};
98 char const * ptr = cigar_str.
data();
99 char const *
const end = ptr + cigar_str.
size();
125 [&result](
auto & cig)
165template <seqan3::aligned_sequence ref_seq_type, seqan3::aligned_sequence query_seq_type>
167 query_seq_type && query_seq,
168 uint32_t
const query_start_pos = 0,
169 uint32_t
const query_end_pos = 0,
170 bool const extended_cigar =
false)
180 template <
typename chr_t>
183 throw std::logic_error{
"Access is not allowed because there is no sequence information."};
Provides the seqan3::cigar alphabet.
The <charconv> header from C++17's standard library.
The actual implementation of seqan3::cigar::operation for documentation purposes only....
Definition: cigar_operation.hpp:48
constexpr auto assign_char_strictly_to
Assign a character to an alphabet object, throw if the character is not valid.
Definition: alphabet/concept.hpp:734
std::string get_cigar_string(std::vector< cigar > const &cigar_vector)
Transforms a vector of cigar elements into a string representation.
Definition: io/sam_file/detail/cigar.hpp:121
void update_alignment_lengths(int32_t &ref_length, int32_t &seq_length, char const cigar_operation, uint32_t const cigar_count)
Updates the sequence lengths by cigar_count depending on the cigar operation op.
Definition: io/sam_file/detail/cigar.hpp:51
constexpr std::vector< cigar > parse_cigar(std::string_view const cigar_str)
Parses a cigar string into a vector of operation-count pairs (e.g. (M, 3)).
Definition: io/sam_file/detail/cigar.hpp:90
@ ref_seq
The (reference) "sequence" information, usually a range of nucleotides or amino acids.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::detail::pairwise_alignment and seqan3::detail::writable_pairwise_alignment.
Provides character predicates for tokenisation.
A functor that always throws when calling operator() (needed for the alignment "dummy" sequence).
Definition: io/sam_file/detail/cigar.hpp:178
chr_t operator()(chr_t) const
Always throws a std::logic_error when called.
Definition: io/sam_file/detail/cigar.hpp:181
Comparator that is able two compare two views.
Definition: io/sam_file/detail/cigar.hpp:35
constexpr bool operator()(rng1_type &&rng1, rng2_type &&rng2) const
Compares to ranges by delegating to std::ranges::equal.
Definition: io/sam_file/detail/cigar.hpp:38
Provides seqan3::views::take_until and seqan3::views::take_until_or_throw.
Auxiliary for pretty printing of exception messages.
Provides seqan3::tuple_like.
Provides seqan3::views::zip.