100 template <
typename t>
147 template <
typename _sequence_alphabet>
154 template <
typename _
id_alphabet>
161 template <
typename _quality_alphabet>
338 static_assert([] () constexpr
340 for (
field f : selected_field_ids::as_array)
345 "You selected a field that is not valid for sequence files, please refer to the documentation "
346 "of sequence_file_input::field_ids for the accepted values.");
348 static_assert([] () constexpr
354 "You may not select field::seq_qual and either of field::seq and field::qual at the same time.");
363 typename traits_type::sequence_alphabet>;
365 using id_type =
typename traits_type::template id_container<
366 typename traits_type::id_alphabet>;
369 typename traits_type::quality_alphabet>;
373 typename traits_type::quality_alphabet>>;
445 std::ios_base::in | std::ios::binary);
448 throw file_open_error{
"Could not open file " + filename.
string() +
" for reading."};
477 template <input_stream stream_t,
480 requires std::same_as<typename std::remove_reference_t<stream_t>::char_type,
stream_char_type>
483 file_format
const & SEQAN3_DOXYGEN_ONLY(format_tag),
486 format{detail::sequence_file_input_format_exposer<file_format>{}}
488 static_assert(list_traits::contains<file_format, valid_formats>,
489 "You selected a format that is not in the valid_formats of this file.");
496 template <input_stream stream_t,
499 requires std::same_as<typename std::remove_reference_t<stream_t>::char_type,
stream_char_type>
502 file_format
const & SEQAN3_DOXYGEN_ONLY(format_tag),
505 format{detail::sequence_file_input_format_exposer<file_format>{}}
507 static_assert(list_traits::contains<file_format, valid_formats>,
508 "You selected a format that is not in the valid_formats of this file.");
649 assert(!
format.valueless_by_exception());
682 template <input_stream stream_type,
691 template <input_stream stream_type,
700 template <input_stream stream_type,
711 template <input_stream stream_type,
Provides seqan3::aa27, container aliases and string literals.
Provides alphabet adaptations for standard char types.
The twenty-seven letter amino acid alphabet.
Definition: aa27.hpp:46
Input iterator necessary for providing a range-like interface in input file.
Definition: in_file_iterator.hpp:41
The 15 letter DNA alphabet, containing all IUPAC smybols minus the gap.
Definition: dna15.hpp:49
The five letter DNA alphabet of A,C,G,T and the unknown character N.
Definition: dna5.hpp:49
Quality type for traditional Sanger and modern Illumina Phred scores.
Definition: phred42.hpp:45
Joins an arbitrary alphabet with a quality alphabet.
Definition: qualified.hpp:59
Provides auxiliary data structures and functions for seqan3::record and seqan3::fields.
Provides seqan3::dna15, container aliases and string literals.
Provides seqan3::dna5, container aliases and string literals.
This header includes C++17 filesystem support and imports it into namespace std::filesystem (independ...
SEQAN3_CONCEPT type_list_of_sequence_file_input_formats
Auxiliary concept that checks whether a type is a seqan3::type_list and all types meet seqan3::sequen...
Definition: input_format_concept.hpp:155
field
An enumerator for the fields used in file formats.
Definition: record.hpp:62
void set_format(format_variant_type &format, std::filesystem::path const &file_name)
Sets the file format according to the file name extension.
Definition: misc.hpp:67
@ seq_qual
Sequence and qualities combined in one range.
@ seq
The "sequence", usually a range of nucleotides or amino acids.
@ qual
The qualities, usually in Phred score notation.
meta::list< types... > type_list
Type that contains multiple types, an alias for meta::list.
Definition: type_list.hpp:31
constexpr bool contains
Whether a type occurs in a type list or not.
Definition: traits.hpp:194
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:70
Provides the seqan3::detail::in_file_iterator class template.
Resolves to std::ranges::explicitly_convertible_to<type1, type2>(). <dl class="no-api">This entity i...
A more refined container concept than seqan3::container.
Refines seqan3::alphabet and adds assignability.
A concept that indicates whether a writable alphabet represents quality scores.
Provides exceptions used in the I/O module.
auto make_secondary_istream(std::basic_istream< char_t > &primary_stream, std::filesystem::path &filename) -> std::unique_ptr< std::basic_istream< char_t >, std::function< void(std::basic_istream< char_t > *)>>
Depending on the magic bytes of the given stream, return a decompression stream or forward the primar...
Definition: misc_input.hpp:79
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides algorithms for meta programming, parameter packs and seqan3::type_list.
Provides seqan3::phred42 quality scores.
Provides quality alphabet composites.
Provides seqan3::sequence_record.
A class template that holds a choice of seqan3::field.
Definition: record.hpp:163
static constexpr bool contains(field f)
Whether a field is contained in the parameter pack.
Definition: record.hpp:181
void clear() noexcept(noexcept(std::apply(expander, std::declval< record & >())))
Clears containers that provide .clear() and (re-)initialises all other elements with = {}.
Definition: record.hpp:267
Provides traits for seqan3::type_list.