SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
seqan3 Namespace Reference

The main SeqAn3 namespace. More...

Namespaces

 align_cfg
 A special sub namespace for the alignment configurations.
 
 custom
 A namespace for third party and standard library specialisations of SeqAn customisation points.
 
 list_traits
 Namespace containing traits for working on seqan3::type_list.
 
 pack_traits
 Namespace containing traits for working on type packs.
 
 search_cfg
 A special sub namespace for the search configurations.
 
 views
 The SeqAn namespace for views.
 

Classes

class  aa10li
 The reduced Li amino acid alphabet. More...
 
class  aa10murphy
 The reduced Murphy amino acid alphabet. More...
 
class  aa20
 The canonical amino acid alphabet. More...
 
class  aa27
 The twenty-seven letter amino acid alphabet. More...
 
class  algorithm_result_generator_range
 An input range over the algorithm results generated by the underlying algorithm executor. More...
 
class  aligned_allocator
 Allocates uninitialized storage whose memory-alignment is specified by alignment. More...
 
class  alignment_coordinate
 Represents the begin/end of the pairwise alignment in the respective sequences. More...
 
class  alignment_file_header
 Stores the header information of alignment files. More...
 
class  alignment_file_input
 A class for reading alignment files, e.g. SAM, BAM, BLAST ... More...
 
struct  alignment_file_input_default_traits
 The default traits for seqan3::alignment_file_input. More...
 
struct  alignment_file_input_options
 The options type defines various option members that influence the behaviour of all or some formats. More...
 
class  alignment_file_output
 A class for writing alignment files, e.g. SAM, BAL, BLAST, ... More...
 
struct  alignment_file_output_options
 The options type defines various option members that influence the behavior of all or some formats. More...
 
class  alignment_result
 Stores the alignment results and gives access to score, alignment and the front and end positionss. More...
 
class  alphabet_base
 A CRTP-base that makes defining a custom alphabet easier. More...
 
class  alphabet_base< derived_type, 1ul, char_t >
 Specialisation of seqan3::alphabet_base for alphabets of size 1. More...
 
class  alphabet_proxy
 A CRTP-base that eases the definition of proxy types returned in place of regular alphabets. More...
 
class  alphabet_tuple_base
 The CRTP base for a combined alphabet that contains multiple values of different alphabets at the same time. More...
 
class  alphabet_variant
 A combined alphabet that can hold values of either of its alternatives. More...
 
class  aminoacid_base
 A CRTP-base that refines seqan3::alphabet_base and is used by the amino acids. More...
 
struct  aminoacid_empty_base
 This is an empty base class that can be inherited by types that shall model seqan3::aminoacid_alphabet. More...
 
class  aminoacid_scoring_scheme
 A data structure for managing and computing the score of two amino acids. More...
 
class  argument_parser
 The SeqAn command line parser. More...
 
class  argument_parser_error
 Argument parser exception that is thrown whenever there is an error while parsing the command line arguments. More...
 
struct  argument_parser_meta_data
 Stores all parser related meta information of the seqan3::argument_parser. More...
 
class  arithmetic_range_validator
 A validator that checks whether a number is inside a given range. More...
 
class  bi_fm_index
 The SeqAn Bidirectional FM Index. More...
 
class  bi_fm_index_cursor
 The SeqAn Bidirectional FM Index Cursor. More...
 
struct  bin_count
 A strong type that represents the number of bins for the seqan3::interleaved_bloom_filter. More...
 
struct  bin_index
 A strong type that represents the bin index for the seqan3::interleaved_bloom_filter. More...
 
struct  bin_literal
 A strong type of underlying type uint64_t that represents the shape in binary representation. More...
 
struct  bin_size
 A strong type that represents the number of bits for each bin in the seqan3::interleaved_bloom_filter. More...
 
class  bitcompressed_vector
 A space-optimised version of std::vector that compresses multiple letters into a single byte. More...
 
class  cigar
 The cigar semialphabet pairs a counter with a seqan3::cigar_op letter. More...
 
class  cigar_op
 The (extended) cigar operation alphabet of M,D,I,H,N,P,S,X,=. More...
 
class  concatenated_sequences
 Container that stores sequences concatenated internally. More...
 
class  configuration
 Collection of elements to configure an algorithm. More...
 
struct  const_reference
 Exposes the const_reference of another type. More...
 
class  counting_vector
 A data structure that behaves like a std::vector and can be used to consolidate the results of multiple calls to seqan3::interleaved_bloom_filter::membership_agent::bulk_contains. More...
 
class  debug_stream_type
 A "pretty printer" for most SeqAn data structures and related types. More...
 
class  design_error
 Argument parser exception that is thrown whenever there is an design error directed at the developer of the application (e.g. Reuse of option). More...
 
struct  difference_type
 Exposes the difference_type of another type. More...
 
class  dna15
 The 15 letter DNA alphabet, containing all IUPAC smybols minus the gap. More...
 
class  dna3bs
 The three letter reduced DNA alphabet for bisulfite sequencing mode (A,G,T(=C)). More...
 
class  dna4
 The four letter DNA alphabet of A,C,G,T. More...
 
class  dna5
 The five letter DNA alphabet of A,C,G,T and the unknown character N. More...
 
class  dot_bracket3
 The three letter RNA structure alphabet of the characters ".()". More...
 
class  dssp9
 The protein structure alphabet of the characters "HGIEBTSCX". More...
 
class  dynamic_bitset
 A constexpr bitset implementation with dynamic size at compile time. More...
 
struct  fields
 A class template that holds a choice of seqan3::field. More...
 
struct  file_open_error
 Thrown if there is an unspecified filesystem or stream error while opening, e.g. permission problem. More...
 
class  file_validator_base
 An abstract base class for the file and directory validators. More...
 
class  fm_index
 The SeqAn FM Index. More...
 
class  fm_index_cursor
 The SeqAn FM Index Cursor. More...
 
class  format_bam
 The BAM format. More...
 
class  format_embl
 The EMBL format. More...
 
struct  format_error
 Thrown if information given to output format didn't match expectations. More...
 
class  format_fasta
 The FastA format. More...
 
class  format_fastq
 The FastQ format. More...
 
class  format_genbank
 The GenBank format. More...
 
class  format_sam
 The SAM format (tag). More...
 
class  format_vienna
 The Vienna format (dot bracket notation) for RNA sequences with secondary structure. More...
 
struct  function_traits< std::function< return_t(args_t...)> >
 A traits class to provide a uniform interface to the properties of a function type. More...
 
class  gap
 The alphabet of a gap character '-'. More...
 
class  gap_decorator
 A gap decorator allows the annotation of sequences with gap symbols while leaving the underlying sequence unmodified. More...
 
class  gap_erase_failure
 Thrown in function seqan3::erase_gap, if a position does not contain a gap. More...
 
struct  gap_open_score
 A strong type of underlying type score_type that represents an additional score (usually negative) that is incurred once additionaly per stretch of consecutive gaps. More...
 
class  gap_scheme
 A scheme for representing and computing scores against gap characters. More...
 
struct  gap_score
 A strong type of underlying type score_type that represents the score of any character against a gap character. More...
 
struct  hash_function_count
 A strong type that represents the number of hash functions for the seqan3::interleaved_bloom_filter. More...
 
class  input_directory_validator
 A validator that checks if a given path is a valid input directory. More...
 
class  input_file_validator
 A validator that checks if a given path is a valid input file. More...
 
class  interleaved_bloom_filter
 The IBF binning directory. A data structure that efficiently answers set-membership queries for multiple bins. More...
 
class  invalid_alignment_configuration
 Thrown if the configuration of the alignment algorithm is invalid. More...
 
struct  invalid_char_assignment
 An exception typically thrown by seqan3::alphabet::assign_char_strict. More...
 
struct  io_error
 Thrown if there is an io error in low level io operations such as in std::basic_streambuf operations. More...
 
struct  is_constexpr_default_constructible
 Whether a type std::is_default_constructible in constexpr-context. More...
 
struct  is_constexpr_default_constructible< t >
 Whether a type std::is_default_constructible in constexpr-context (unary_type_trait specialisation). More...
 
struct  is_execution_policy
 Test whether a class represents an execution policy. More...
 
struct  lower_bound
 Type for a lower boundary. More...
 
class  mask
 Implementation of a masked alphabet to be used for tuple composites. More...
 
class  masked
 Implementation of a masked composite, which extends a given alphabet with a mask. More...
 
struct  match_score
 A strong type of underlying type score_type that represents the score of two matching characters. More...
 
struct  mismatch_score
 A strong type of underlying type score_type that represents the score two different characters. More...
 
class  nucleotide_base
 A CRTP-base that refines seqan3::alphabet_base and is used by the nucleotides. More...
 
class  nucleotide_scoring_scheme
 A data structure for managing and computing the score of two nucleotides. More...
 
class  option_declared_multiple_times
 Argument parser exception thrown when a non-list option is declared multiple times. More...
 
class  output_directory_validator
 A validator that checks if a given path is a valid output directory. More...
 
class  output_file_validator
 A validator that checks if a given path is a valid output file. More...
 
class  overflow_error_on_conversion
 This class is deprecated. More...
 
class  parallel_policy
 Parallel execution policy. More...
 
class  parallel_unsequenced_policy
 Parallel and unsequenced execution policy. More...
 
struct  parse_error
 Thrown if there is a parse error, such as reading an unexpected character from an input stream. More...
 
class  parser_design_error
 This class is deprecated. More...
 
class  parser_invalid_argument
 This class is deprecated. More...
 
class  phred42
 Quality type for traditional Sanger and modern Illumina Phred scores (typical range). More...
 
class  phred63
 Quality type for traditional Sanger and modern Illumina Phred scores (full range). More...
 
class  phred68legacy
 Quality type for Solexa and deprecated Illumina formats. More...
 
class  pipeable_config_element< derived_t >
 Adds pipe interface to configuration elements. More...
 
struct  pod_tuple
 cond More...
 
struct  pod_tuple< type0 >
 Recursion anchor for pod_tuple. More...
 
struct  pod_tuple< type0, types... >
 Behaves like std::tuple but is an aggregate PODType. More...
 
class  qualified
 Joins an arbitrary alphabet with a quality alphabet. More...
 
class  quality_base
 A CRTP-base that refines seqan3::alphabet_base and is used by the quality alphabets. More...
 
struct  range_innermost_value
 Recursively determines the value_type on containers and/or iterators. More...
 
struct  record
 The class template that file records are based on; behaves like an std::tuple. More...
 
struct  ref_info_not_given
 Type tag which indicates that no reference information has been passed to the alignment file on construction. More...
 
struct  reference
 Exposes the reference of another type. More...
 
class  regex_validator
 A validator that checks if a matches a regular expression pattern. More...
 
struct  remove_rvalue_reference
 Return the input type with && removed, but lvalue references preserved. More...
 
class  required_option_missing
 Argument parser exception thrown when a required option is missing. More...
 
class  rna15
 The 15 letter RNA alphabet, containing all IUPAC smybols minus the gap. More...
 
class  rna4
 The four letter RNA alphabet of A,C,G,U. More...
 
class  rna5
 The five letter RNA alphabet of A,C,G,U and the unknown character N. More...
 
struct  rvalue_reference
 Exposes the rvalue_reference of another type. More...
 
class  sam_dna16
 A 16 letter DNA alphabet, containing all IUPAC symbols minus the gap and plus an equality sign ('='). More...
 
class  sam_tag_dictionary
 The SAM tag dictionary class that stores all optional SAM fields. More...
 
struct  sam_tag_type
 The generic base class. More...
 
class  scoring_scheme_base
 A CRTP base class for scoring schemes. More...
 
class  search_result
 The result class generated by the seqan3::seach algorithm. More...
 
struct  seed
 strong_type for seed. More...
 
class  semialphabet_any
 A semi-alphabet that type erases all other semi-alphabets of the same size. More...
 
class  sequence_file_input
 A class for reading sequence files, e.g. FASTA, FASTQ ... More...
 
struct  sequence_file_input_default_traits_aa
 A traits type that specifies input as amino acids. More...
 
struct  sequence_file_input_default_traits_dna
 The default traits for seqan3::sequence_file_input. More...
 
struct  sequence_file_input_options
 The options type defines various option members that influence the behaviour of all or some formats. More...
 
class  sequence_file_output
 A class for writing sequence files, e.g. FASTA, FASTQ ... More...
 
struct  sequence_file_output_options
 The options type defines various option members that influence the behaviour of all or some formats. More...
 
class  sequenced_policy
 Sequenced execution policy. More...
 
class  shape
 A class that defines which positions of a pattern to hash. More...
 
struct  simd_traits
 seqan3::simd::simd_traits is the trait class that provides uniform interface to the properties of simd_t types.
 
struct  simd_traits< builtin_simd_t >
 This class specializes seqan3::simd::simd_traits for seqan3::detail::builtin_simd types.
 
struct  simd_type
 seqan3::simd::simd_type encapsulates simd vector types, which can be manipulated by simd operations.
 
struct  size_type
 Exposes the size_type of another type. More...
 
class  small_string
 Implements a small string that can be used for compile time computations. More...
 
class  small_vector
 A constexpr vector implementation with dynamic size at compile time. More...
 
class  static_band
 Data structure for a static band. More...
 
class  structure_file_input
 A class for reading structured sequence files, e.g. Stockholm, Connect, Vienna, ViennaRNA bpp matrix ... More...
 
struct  structure_file_input_default_traits_aa
 A traits type that specifies input as amino acids. More...
 
struct  structure_file_input_default_traits_rna
 The default traits for seqan3::structure_file_input. More...
 
struct  structure_file_input_options
 The options type defines various option members that influence the behaviour of all or some formats. More...
 
class  structure_file_output
 A class for writing structured sequence files, e.g. Stockholm, Connect, Vienna, ViennaRNA bpp matrix ... More...
 
struct  structure_file_output_options
 The options type defines various option members that influence the behaviour of all or some formats. More...
 
class  structured_aa
 A seqan3::alphabet_tuple_base that joins an aminoacid alphabet with a protein structure alphabet. More...
 
class  structured_rna
 A seqan3::alphabet_tuple_base that joins a nucleotide alphabet with an RNA structure alphabet. More...
 
class  too_few_arguments
 Argument parser exception thrown when too few arguments are provided. More...
 
class  too_many_arguments
 Argument parser exception thrown when too many arguments are provided. More...
 
class  type_conversion_failed
 This class is deprecated. More...
 
struct  unexpected_end_of_input
 Thrown if I/O was expecting more input (e.g. a delimiter or a new line), but the end of input was reached. More...
 
struct  ungapped
 A strong type of underlying type uint8_t that represents the ungapped shape size. More...
 
struct  unhandled_extension_error
 Thrown if there is no format that accepts a given file extension. More...
 
class  unknown_option
 Argument parser exception thrown when encountering unknown option. More...
 
class  unsequenced_policy
 Unsequenced execution policy. More...
 
struct  upper_bound
 Type for an upper boundary. More...
 
class  user_input_error
 Argument parser exception thrown when an incorrect argument is given as (positional) option value. More...
 
class  validation_error
 Argument parser exception thrown when an argument could not be casted to the according type. More...
 
class  validation_failed
 This class is deprecated. More...
 
class  value_list_validator
 A validator that checks whether a value is inside a list of valid values. More...
 
struct  value_type
 Exposes the value_type of another type. More...
 
struct  window_size
 strong_type for the window_size. More...
 
class  wuss
 The WUSS structure alphabet of the characters .<>:,-_~;()[]{}AaBbCcDd... More...
 

Typedefs

template<typename alphabet_type >
using alphabet_char_t = decltype(seqan3::to_char(std::declval< alphabet_type const >()))
 The char_type of the alphabet; defined as the return type of seqan3::to_char.
 
template<typename alphabet_type >
using alphabet_phred_t = decltype(seqan3::to_phred(std::declval< alphabet_type >()))
 The phred_type of the alphabet; defined as the return type of seqan3::to_phred.
 
template<typename semi_alphabet_type >
using alphabet_rank_t = decltype(seqan3::to_rank(std::declval< semi_alphabet_type >()))
 The rank_type of the semi-alphabet; defined as the return type of seqan3::to_rank.
 
using common_pair = ::ranges::common_pair
 A common pair type that behaves like a regular std::pair, but can be used as a reference type proxy for output iterators. More...
 
using common_tuple = ::ranges::common_tuple
 A common tuple type that behaves like a regular std::tuple, but can be used as a reference type proxy for output iterators. More...
 
template<typename t >
using const_reference_t = typename detail::const_reference_t< t >
 Shortcut for seqan3::const_reference (transformation_trait shortcut). More...
 
using default_sdsl_index_type = sdsl_wt_index_type
 The default FM Index Configuration. More...
 
template<typename t >
using difference_type_t = typename detail::difference_type_t< t >
 Shortcut for seqan3::difference_type (transformation_trait shortcut). More...
 
using dna15q = qualified< dna15, phred42 >
 An alphabet that stores a seqan3::dna15 letter and an seqan3::qualified letter at each position.
 
using dna4q = qualified< dna4, phred42 >
 An alphabet that stores a seqan3::dna4 letter and an seqan3::phred42 letter at each position.
 
using dna5q = qualified< dna5, phred42 >
 An alphabet that stores a seqan3::dna5 letter and an seqan3::phred42 letter at each position.
 
template<typename alphabet_t >
using gapped = alphabet_variant< alphabet_t, gap >
 Extends a given alphabet with a gap character. More...
 
template<typename t >
using range_innermost_value_t = typename range_innermost_value< t >::type
 Shortcut for seqan3::range_innermost_value (transformation_trait shortcut). More...
 
template<typename t >
using reference_t = typename detail::reference_t< t >
 Shortcut for seqan3::reference (transformation_trait shortcut). More...
 
template<typename t >
using remove_cvref_t = std::remove_cv_t< std::remove_reference_t< t > >
 Return the input type with const, volatile and references removed (type trait). More...
 
template<typename t >
using remove_rvalue_reference_t = typename remove_rvalue_reference< t >::type
 Return the input type with && removed, but lvalue references preserved (transformation_trait shortcut). More...
 
using rna15q = qualified< rna15, phred42 >
 An alphabet that stores a seqan3::rna15 letter and an seqan3::qualified letter at each position.
 
using rna4q = qualified< rna4, phred42 >
 An alphabet that stores a seqan3::rna4 letter and an seqan3::phred42 letter at each position.
 
using rna5q = qualified< rna5, phred42 >
 An alphabet that stores a seqan3::rna5 letter and an seqan3::phred42 letter at each position.
 
template<typename t >
using rvalue_reference_t = typename detail::rvalue_reference_t< t >
 Shortcut for seqan3::rvalue_reference (transformation_trait shortcut). More...
 
template<uint16_t tag_value>
using sam_tag_type_t = typename sam_tag_type< tag_value >::type
 Short cut helper for seqan3::sam_tag_type::type.
 
using sdsl_wt_index_type = sdsl::csa_wt< sdsl::wt_blcd< sdsl::bit_vector, sdsl::rank_support_v<>, sdsl::select_support_scan<>, sdsl::select_support_scan< 0 > >, 16, 10 '000 '000, sdsl::sa_order_sa_sampling<>, sdsl::isa_sampling<>, sdsl::plain_byte_alphabet >
 The FM Index Configuration using a Wavelet Tree. More...
 
using semiregular_box = ::ranges::semiregular_box
 Utility wrapper that behaves like std::optional but makes the type conform with the std::semiregular concept. Imported from ranges::semiregular_box. More...
 
using semiregular_box_t = ::ranges::semiregular_box_t
 Utility transformation trait to get a wrapper type that models std::semiregular. Imported from ranges::semiregular_box_t. More...
 
template<typename t >
using size_type_t = typename detail::size_type_t< t >
 Shortcut for seqan3::size_type (transformation_trait shortcut). More...
 
template<typename ... types>
using type_list = meta::list< types... >
 Type that contains multiple types, an alias for meta::list.
 
template<typename t >
using type_reduce_view = decltype(views::type_reduce(std::declval< t >()))
 Deduces the return value of seqan3::views::type_reduce.
 
template<typename t >
using value_type_t = typename detail::value_type_t< t >
 Shortcut for seqan3::value_type (transformation_trait shortcut). More...
 

Enumerations

enum  aminoacid_similarity_matrix { aminoacid_similarity_matrix::BLOSUM30, aminoacid_similarity_matrix::BLOSUM45, aminoacid_similarity_matrix::BLOSUM62, aminoacid_similarity_matrix::BLOSUM80 }
 Identifiers for amino acid similarity matrixes. More...
 
enum  data_layout : bool { uncompressed, compressed }
 Determines if the Interleaved Bloom Filter is compressed. More...
 
enum  field {
  field::seq, field::id, field::qual, field::seq_qual,
  field::offset, field::bpp, field::structure, field::structured_seq,
  field::energy, field::react, field::react_err, field::comment,
  field::alignment, field::ref_id, field::ref_seq, field::ref_offset,
  field::header_ptr, field::flag, field::mate, field::mapq,
  field::cigar, field::tags, field::bit_score, field::evalue,
  field::user_defined_0, field::user_defined_1, field::user_defined_2, field::user_defined_3,
  field::user_defined_4, field::user_defined_5, field::user_defined_6, field::user_defined_7,
  field::user_defined_8, field::user_defined_9, field::SEQ = seq, field::ID = id,
  field::QUAL = qual, field::SEQ_QUAL = seq_qual, field::OFFSET = offset, field::BPP = bpp,
  field::STRUCTURE = structure, field::STRUCTURED_SEQ = structured_seq, field::ENERGY = energy, field::REACT = react,
  field::REACT_ERR = react_err, field::COMMENT = comment, field::ALIGNMENT = alignment, field::REF_ID = ref_id,
  field::REF_SEQ = ref_seq, field::REF_OFFSET = ref_offset, field::HEADER_PTR = header_ptr, field::FLAG = flag,
  field::MATE = mate, field::MAPQ = mapq, field::CIGAR = cigar, field::TAGS = tags,
  field::BIT_SCORE = bit_score, field::EVALUE = evalue, field::USER_DEFINED_0 = user_defined_0, field::USER_DEFINED_1 = user_defined_1,
  field::USER_DEFINED_2 = user_defined_2, field::USER_DEFINED_3 = user_defined_3, field::USER_DEFINED_4 = user_defined_4, field::USER_DEFINED_5 = user_defined_5,
  field::USER_DEFINED_6 = user_defined_6, field::USER_DEFINED_7 = user_defined_7, field::USER_DEFINED_8 = user_defined_8, field::USER_DEFINED_9 = user_defined_9
}
 An enumerator for the fields used in file formats. More...
 
enum  fmtflags2 { none = 0, utf8 = 1, small_int_as_number = 1 << 1, default_ = small_int_as_number }
 Flags that change the behaviour of the seqan3::debug_stream. More...
 
enum  genetic_code : uint8_t { CANONICAL =1 }
 Genetic codes used for translation of nucleotides into amino acids. More...
 
enum  option_spec { DEFAULT = 0, REQUIRED = 1, ADVANCED = 2, HIDDEN = 4 }
 Used to further specify argument_parser options/flags. More...
 
enum  sam_flag : uint16_t {
  sam_flag::none = 0, sam_flag::paired = 0x1, sam_flag::proper_pair = 0x2, sam_flag::unmapped = 0x4,
  sam_flag::mate_unmapped = 0x8, sam_flag::on_reverse_strand = 0x10, sam_flag::mate_on_reverse_strand = 0x20, sam_flag::first_in_pair = 0x40,
  sam_flag::second_in_pair = 0x80, sam_flag::secondary_alignment = 0x100, sam_flag::failed_filter = 0x200, sam_flag::duplicate = 0x400,
  sam_flag::supplementary_alignment = 0x800
}
 An enum flag that describes the properties of an aligned read (given as a SAM record). More...
 
enum  text_layout : bool { single, collection }
 The possible text layouts (single, collection) the seqan3::fm_index and seqan3::bi_fm_index can support. More...
 
enum  translation_frames : uint8_t {
  translation_frames::FWD_FRAME_0 = 1, translation_frames::FWD_FRAME_1 = 1 << 1, translation_frames::FWD_FRAME_2 = 1 << 2, translation_frames::REV_FRAME_0 = 1 << 3,
  translation_frames::REV_FRAME_1 = 1 << 4, translation_frames::REV_FRAME_2 = 1 << 5, translation_frames::FWD_REV_0 = FWD_FRAME_0 | REV_FRAME_0, translation_frames::FWD_REV_1 = FWD_FRAME_1 | REV_FRAME_1,
  translation_frames::FWD_REV_2 = FWD_FRAME_2 | REV_FRAME_2, translation_frames::FWD = FWD_FRAME_0 | FWD_FRAME_1 | FWD_FRAME_2, translation_frames::REV = REV_FRAME_0 | REV_FRAME_1 | REV_FRAME_2, translation_frames::SIX_FRAME = FWD | REV
}
 Specialisation values for single and multiple translation frames. More...
 

Functions

template<typename sequence_t , typename alignment_config_t >
constexpr auto align_pairwise (sequence_t &&seq, alignment_config_t const &config)
 Computes the pairwise alignment for a pair of sequences or a range over sequence pairs. More...
 
template<typename char_t , char_t ... s>
constexpr uint16_t operator""_tag ()
 The SAM tag literal, such that tags can be used in constant expressions. More...
 
template<typename char_t , std::ranges::input_range alignment_matrix_t>
debug_stream_type< char_t > & operator<< (debug_stream_type< char_t > &s, alignment_matrix_t &&matrix)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename char_t >
debug_stream_type< char_t > & operator<< (debug_stream_type< char_t > &s, cigar const c)
 Overload for the seqan3::debug_stream's operator.
 
template<typename char_t , typename t >
debug_stream_type< char_t > & operator<< (debug_stream_type< char_t > &s, t &&v)
 Forwards to the underlying stream object.
 
template<typename char_t , typename alignment_t >
debug_stream_type< char_t > & operator<< (debug_stream_type< char_t > &stream, alignment_t &&alignment)
 Stream operator for alignments, which are represented as tuples of aligned sequences. More...
 
template<validator validator1_type, validator validator2_type>
auto operator| (validator1_type &&vali1, validator2_type &&vali2)
 Enables the chaining of validators. More...
 
template<typename base_t , std::unsigned_integral exp_t>
base_t pow (base_t base, exp_t exp)
 Computes the value of base raised to the power exp. More...
 
template<fm_index_specialisation index_t, std::ranges::forward_range queries_t, typename configuration_t = decltype(search_cfg::default_configuration)>
auto search (queries_t &&queries, index_t const &index, configuration_t const &cfg=search_cfg::default_configuration)
 Search a query or a range of queries in an index. More...
 
template<genetic_code gc = genetic_code::CANONICAL, nucleotide_alphabet nucl_type>
constexpr aa27 translate_triplet (nucl_type const &n1, nucl_type const &n2, nucl_type const &n3) noexcept
 Translate one nucleotide triplet into single amino acid (single nucleotide interface). More...
 
template<genetic_code gc = genetic_code::CANONICAL, std::ranges::input_range range_type>
constexpr aa27 translate_triplet (range_type &&input_range)
 Translate one nucleotide triplet into single amino acid (range interface). More...
 
template<genetic_code gc = genetic_code::CANONICAL, std::ranges::random_access_range rng_t>
constexpr aa27 translate_triplet (rng_t &&input_range)
 Translate one nucleotide triplet into single amino acid (range interface, input range allows random access). More...
 
template<genetic_code gc = genetic_code::CANONICAL, typename tuple_type >
constexpr aa27 translate_triplet (tuple_type const &input_tuple) noexcept
 Translate one nucleotide triplet into single amino acid (tuple interface). More...
 
Tuple interface
template<template< typename ... > class query_t, typename ... configs_t>
constexpr auto const & get (configuration< configs_t... > const &config) noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<template< typename ... > class query_t, typename ... configs_t>
constexpr auto && get (configuration< configs_t... > &&config) noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<template< typename ... > class query_t, typename ... configs_t>
constexpr auto const && get (configuration< configs_t... > const &&config) noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
Operations on characters
template<builtin_character char_type>
constexpr char_type to_lower (char_type const c) noexcept
 Converts 'A'-'Z' to 'a'-'z' respectively; other characters are returned as is. More...
 
template<builtin_character char_type>
constexpr char_type to_upper (char_type const c) noexcept
 Converts 'a'-'z' to 'A'-'Z' respectively; other characters are returned as is. More...
 
Formatted output overloads
Tuple utility functions

Helper functions for tuple like objects.

template<size_t pivot_c, template< typename ... > typename tuple_t, typename ... ts>
constexpr auto tuple_split (tuple_t< ts... > const &t)
 Splits a tuple like data structure at the given position. More...
 
template<size_t pivot_c, template< typename ... > typename tuple_t, typename ... ts>
constexpr auto tuple_split (tuple_t< ts... > &&t)
 Splits a tuple like data structure at the given position. More...
 
template<typename pivot_t , tuple_like tuple_t>
constexpr auto tuple_split (tuple_t &&t)
 Splits a tuple like data structure at the first position of the given type. More...
 
template<tuple_like tuple_t>
constexpr auto tuple_pop_front (tuple_t &&t)
 Removes the first element of a tuple. More...
 
Type deduction guides
template<size_t capacity2, typename value_type >
 small_vector (const value_type(&array)[capacity2]) -> small_vector< value_type, capacity2 >
 Deducts the size and value type from an built-in array on construction.
 
template<std::ranges::viewable_range urng_t>
 gap_decorator (urng_t &&range) -> gap_decorator< std::remove_reference_t< urng_t > const & >
 Ranges (not views!) always deduce to const & range_type since they are access-only anyway.
 
template<std::ranges::view urng_t>
 gap_decorator (urng_t range) -> gap_decorator< urng_t >
 Views always deduce to their respective type because they are copied.
 
Template argument type deduction guides
template<std::ranges::range text_t>
 bi_fm_index (text_t &&) -> bi_fm_index< range_innermost_value_t< text_t >, text_layout
 Deduces the dimensions of the text.
 
template<std::ranges::range text_t>
 fm_index (text_t &&) -> fm_index< range_innermost_value_t< text_t >, text_layout
 Deduces the alphabet and dimensions of the text.
 

Variables

template<typename t >
constexpr bool add_enum_bitwise_operators = false
 Set to true for a scoped enum to have binary operators overloaded. More...
 
template<>
constexpr bool add_enum_bitwise_operators< fmtflags2 > = true
 Overload bitwise operators for seqan3::fmtflags2.
 
template<>
constexpr bool add_enum_bitwise_operators< sam_flag > = true
 Enables bitwise operations for seqan3::sam_flags.
 
template<>
constexpr bool add_enum_bitwise_operators< translation_frames > = true
 Enable bitwise operators for enum translation_frames.
 
template<typename alph_t >
constexpr auto alphabet_size = detail::adl_only::alphabet_size_obj<alph_t>()
 A type trait that holds the size of a (semi-)alphabet. More...
 
debug_stream_type debug_stream {std::cerr}
 A global instance of seqan3::debug_stream_type.
 
template<typename t >
constexpr bool enable_aminoacid = detail::adl_only::enable_aminoacid_dispatcher::dispatch<std::remove_cvref_t<t>>()
 A trait that indicates whether a type shall model seqan3::aminoacid_alphabet. More...
 
constexpr parallel_policy par {}
 Global execution policy object for parallel execution policy. More...
 
constexpr parallel_unsequenced_policy par_unseq {}
 Global execution policy object for parallel and unsequenced execution policy. More...
 
template<typename t >
constexpr size_t range_dimension_v = 1
 Returns the number of times you can call seqan3::value_type_t recursively on t (type trait). More...
 
constexpr sequenced_policy seq {}
 Global execution policy object for sequenced execution policy. More...
 
std::string const seqan3_version
 The full version as std::string. More...
 
constexpr uint8_t seqan3_version_major = SEQAN3_VERSION_MAJOR
 The major version.
 
constexpr uint8_t seqan3_version_minor = SEQAN3_VERSION_MINOR
 The minor version.
 
constexpr uint8_t seqan3_version_patch = SEQAN3_VERSION_PATCH
 The patch version.
 
constexpr unsequenced_policy unseq {}
 Global execution policy object for unsequenced execution policy. More...
 
Function objects
constexpr auto to_rank = detail::adl_only::to_rank_fn{}
 Return the rank representation of a (semi-)alphabet object. More...
 
constexpr auto assign_rank_to = detail::adl_only::assign_rank_to_fn{}
 Assign a rank to an alphabet object. More...
 
constexpr auto to_char = detail::adl_only::to_char_fn{}
 Return the char representation of an alphabet object. More...
 
constexpr auto assign_char_to = detail::adl_only::assign_char_to_fn{}
 Assign a character to an alphabet object. More...
 
template<typename alph_t >
constexpr auto char_is_valid_for = detail::adl_only::char_is_valid_for_fn<alph_t>{}
 Returns whether a character is in the valid set of a seqan3::alphabet (usually implies a bijective mapping to an alphabet value). More...
 
constexpr auto assign_char_strictly_to = detail::adl_only::assign_char_strictly_to_fn{}
 Assign a character to an alphabet object, throw if the character is not valid. More...
 
Function objects (Nucleotide)
constexpr auto complement = detail::adl_only::complement_fn{}
 Return the complement of a nucleotide object. More...
 
Function objects (Quality)
constexpr auto to_phred = detail::adl_only::to_phred_fn{}
 The public getter function for the phred representation of a quality score. More...
 
constexpr auto assign_phred_to = detail::adl_only::assign_phred_to_fn{}
 Assign a phred score to a quality alphabet object. More...
 
Function objects (Structure)
constexpr auto is_pair_open = detail::adl_only::is_pair_open_fn{}
 Check whether the given character represents a rightward interaction in an RNA structure. More...
 
constexpr auto is_pair_close = detail::adl_only::is_pair_close_fn{}
 Check whether the given character represents a leftward interaction in an RNA structure. More...
 
constexpr auto is_unpaired = detail::adl_only::is_unpaired_fn{}
 Check whether the given character represents an unpaired nucleotide in an RNA structure. More...
 
template<typename alph_t >
constexpr auto max_pseudoknot_depth = detail::adl_only::max_pseudoknot_depth_obj<alph_t>()
 A type trait that holds the ability of the structure alphabet to represent pseudoknots, i.e. crossing interactions, up to a certain depth. More...
 
constexpr auto pseudoknot_id = detail::adl_only::pseudoknot_id_fn{}
 Retrieve an id for the level of a pseudoknotted interaction (also known as 'page number'). More...
 
Customisation Points
template<typename option_type >
auto const enumeration_names = detail::adl_only::enumeration_names_fn<option_type>{}()
 Return a conversion map from std::string_view to option_type. More...
 
Char predicates

Char predicates are function like objects that can be used to check if a character c fulfills certain constraints. SeqAn implements all predicates also available in the standard library and some more.

Disjunction and Negation

In contrast to the standard library (where the checks are implemented as functions), the functors in SeqAn can be joined efficiently, maintaining constant-time evaluation independent of the number of checks. Functors can be combined with the ||-operator or negated via the !-operator:

int main()
{
char chr{'1'};
auto constexpr my_cond = seqan3::is_char<'%'> || seqan3::is_digit;
bool is_percent = my_cond(chr); // is_percent == true
}

Defining complex combinations and using them in e.g. input/output can increase speed significantly over checking multiple functions: we measured speed-ups of 10x for a single check and speed-ups of over 20x for complex combinations.

Custom predicates

Standard library predicates

SeqAn offers the 12 predicates exactly as defined in the standard library except that we have introduced an underscore in the name to be consistent with our other naming.

The following table lists the predefined character predicates and which constraints are associated with them.

ASCII values characters

is_cntrl

is_print

is_space

is_blank

is_graph

is_punct

is_alnum

is_alpha

is_upper

is_lower

is_digit

is_xdigit

decimal hexadecimal octal
0–8 \x0\x8 \0\10 control codes (NUL, etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 tab (\t) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA\xD \12\15 whitespaces (\n, \v, \f, \r) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE\x1F \16\37 control codes ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 space 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21\x2F \41\57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30\x39 \60\71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A\x40 \72\100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41\x46 \101\106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47\x5A \107\132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B\x60 \133\140 []^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61\x66 \141\146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67\x7A \147\172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B\x7E \172\176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 backspace character (DEL) ≠0 0 0 0 0 0 0 0 0 0 0 0


template<uint8_t interval_first, uint8_t interval_last>
constexpr auto is_in_interval
 Checks whether a given letter is in the specified interval. More...
 
template<alphabet alphabet_t>
constexpr auto is_in_alphabet
 Checks whether a given letter is valid for the specified seqan3::alphabet. More...
 
template<int char_v>
constexpr auto is_char
 Checks whether a given letter is the same as the template non-type argument. More...
 
constexpr auto is_eof = is_char<EOF>
 Checks whether a given letter is equal to the EOF constant defined in <cstdio>. More...
 
constexpr auto is_cntrl
 Checks whether c is a control character. More...
 
constexpr auto is_print = is_in_interval<' ', '~'>
 Checks whether c is a printable character. More...
 
constexpr auto is_space = is_in_interval<'\t', '\r'> || is_char<' '>
 Checks whether c is a space character. More...
 
constexpr auto is_blank = is_char<'\t'> || is_char<' '>
 Checks whether c is a blank character. More...
 
constexpr auto is_graph = is_in_interval<'!', '~'>
 Checks whether c is a graphic character. More...
 
constexpr auto is_punct
 Checks whether c is a punctuation character. More...
 
constexpr auto is_alnum
 Checks whether c is a alphanumeric character. More...
 
constexpr auto is_alpha = is_in_interval<'A', 'Z'> || is_in_interval<'a', 'z'>
 Checks whether c is a alphabetical character. More...
 
constexpr auto is_upper = is_in_interval<'A', 'Z'>
 Checks whether c is a upper case character. More...
 
constexpr auto is_lower = is_in_interval<'a', 'z'>
 Checks whether c is a lower case character. More...
 
constexpr auto is_digit = is_in_interval<'0', '9'>
 Checks whether c is a digital character. More...
 
constexpr auto is_xdigit
 Checks whether c is a hexadecimal character. More...
 

Detailed Description

The main SeqAn3 namespace.

Typedef Documentation

◆ common_pair

using seqan3::common_pair = typedef ::ranges::common_pair

A common pair type that behaves like a regular std::pair, but can be used as a reference type proxy for output iterators.

Alias definition of the ranges::common_pair.

◆ common_tuple

using seqan3::common_tuple = typedef ::ranges::common_tuple

A common tuple type that behaves like a regular std::tuple, but can be used as a reference type proxy for output iterators.

Alias definition of the ranges::common_tuple.

Enumeration Type Documentation

◆ genetic_code

enum seqan3::genetic_code : uint8_t
strong

Genetic codes used for translation of nucleotides into amino acids.

The numeric values of the enums correspond to the genbank transl_table values (see https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi).

◆ translation_frames

enum seqan3::translation_frames : uint8_t
strong

Specialisation values for single and multiple translation frames.

Enumerator
FWD_FRAME_0 

The first forward frame starting at position 0.

FWD_FRAME_1 

The second forward frame starting at position 1.

FWD_FRAME_2 

The third forward frame starting at position 2.

REV_FRAME_0 

The first reverse frame starting at position 0.

REV_FRAME_1 

The second reverse frame starting at position 1.

REV_FRAME_2 

The third reverse frame starting at position 2.

FWD_REV_0 

The first forward and first reverse frame.

FWD_REV_1 

The second forward and second reverse frame.

FWD_REV_2 

The first third and third reverse frame.

FWD 

All forward frames.

REV 

All reverse frames.

SIX_FRAME 

All frames.

Function Documentation

◆ operator""_tag()

template<typename char_t , char_t ... s>
constexpr uint16_t seqan3::operator""_tag ( )
constexpr

The SAM tag literal, such that tags can be used in constant expressions.

Template Parameters
char_tThe char type. Usually char. Parameter pack ...s must be of length 2, since SAM tags consist of two letters (char0 and char1).
Returns
The unique identifier of the SAM tag computed by char0 * 128 + char1.

A SAM tag consists of two letters, initialized via the string literal ""_tag, which delegate to its unique id. e.g.

using seqan3::operator""_tag;
// ...
uint16_t tag_id = "NM"_tag; // tag_id = 10061

The purpose of those tags is to fill or query the seqan3::sam_tag_dictionary for a specific key (tag_id) and retrieve the corresponding value.

See also
seqan3::sam_tag_dictionary

◆ to_lower()

template<builtin_character char_type>
constexpr char_type seqan3::to_lower ( char_type const  c)
constexprnoexcept

Converts 'A'-'Z' to 'a'-'z' respectively; other characters are returned as is.

Template Parameters
char_typeType of the parameter; must model seqan3::builtin_character.
Parameters
cThe parameter.
Returns
The character converted to lower case.

In contrast to std::tolower this function is independent of locale and can be evaluated in a constexpr context.

◆ to_upper()

template<builtin_character char_type>
constexpr char_type seqan3::to_upper ( char_type const  c)
constexprnoexcept

Converts 'a'-'z' to 'A'-'Z' respectively; other characters are returned as is.

Template Parameters
char_typeType of the parameter; must model seqan3::builtin_character.
Parameters
cThe parameter.
Returns
The character converted to upper case.

In contrast to std::to_upper this function is independent of locale and can be evaluated in a constexpr context.

Variable Documentation

◆ seqan3_version

std::string const seqan3::seqan3_version
sam_tag_dictionary.hpp
Provides the seqan3::sam_tag_dictionary class and auxiliaries.
std::to_string
T to_string(T... args)
seqan3::is_digit
constexpr auto is_digit
Checks whether c is a digital character.
Definition: predicate.hpp:287
seqan3::seqan3_version_patch
constexpr uint8_t seqan3_version_patch
The patch version.
Definition: version.hpp:39
seqan3::seqan3_version_major
constexpr uint8_t seqan3_version_major
The major version.
Definition: version.hpp:35
seqan3::seqan3_version_minor
constexpr uint8_t seqan3_version_minor
The minor version.
Definition: version.hpp:37
predicate.hpp
Provides character predicates for tokenisation.