99 requires detail::is_char_adaptation_v<typename t::sequence_alphabet>
144 template <
typename _sequence_alphabet>
151 template <
typename _
id_alphabet>
158 template <
typename _quality_alphabet>
231 for (
field f : selected_field_ids::as_array)
236 "You selected a field that is not valid for sequence files, please refer to the documentation "
237 "of sequence_file_input::field_ids for the accepted values.");
247 using id_type =
typename traits_type::template id_container<typename traits_type::id_alphabet>;
249 using quality_type =
typename traits_type::template quality_container<typename traits_type::quality_alphabet>;
318 ->open(filename, std::ios_base::in | std::ios::binary);
327 using format_variant_t =
328 typename detail::variant_from_tags<valid_formats, detail::sequence_file_input_format_exposer>::type;
329 format_variant_t format_variant{};
333 [&](
auto && selected_format)
336 format = std::make_unique<selected_sequence_format<format_t>>();
361 template <input_stream stream_t, sequence_file_input_format file_format>
362 requires std::same_as<typename std::remove_reference_t<stream_t>::char_type,
stream_char_type>
364 file_format
const & SEQAN3_DOXYGEN_ONLY(format_tag),
367 format{
std::make_unique<selected_sequence_format<file_format>>()}
369 static_assert(list_traits::contains<file_format, valid_formats>,
370 "You selected a format that is not in the valid_formats of this file.");
377 template <input_stream stream_t, sequence_file_input_format file_format>
378 requires std::same_as<typename std::remove_reference_t<stream_t>::char_type,
stream_char_type>
380 file_format
const & SEQAN3_DOXYGEN_ONLY(format_tag),
383 format{
std::make_unique<selected_sequence_format<file_format>>()}
385 static_assert(list_traits::contains<file_format, valid_formats>,
386 "You selected a format that is not in the valid_formats of this file.");
583 template <
typename format_t>
631template <input_stream stream_type, sequence_file_input_format file_format>
639template <input_stream stream_type, sequence_file_input_format file_format>
647template <input_stream stream_type,
658template <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:43
Input iterator necessary for providing a range-like interface in input file.
Definition in_file_iterator.hpp:38
The 15 letter DNA alphabet, containing all IUPAC smybols minus the gap.
Definition dna15.hpp:48
The five letter DNA alphabet of A,C,G,T and the unknown character N.
Definition dna5.hpp:48
Quality type for traditional Sanger and modern Illumina Phred scores.
Definition phred42.hpp:44
Auxiliary concept that checks whether a type is a specialisation of seqan3::fields.
Definition detail/record.hpp:32
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.
field
An enumerator for the fields used in file formats.
Definition record.hpp:60
void set_format(format_variant_type &format, std::filesystem::path const &file_name)
Sets the file format according to the file name extension.
Definition io/detail/misc.hpp:65
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:77
Provides the seqan3::detail::in_file_iterator class template.
Checks whether from can be explicitly converted to to.
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.
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
SeqAn specific customisations in the standard namespace.
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:125
static constexpr bool contains(field f)
Whether a field is contained in the parameter pack.
Definition record.hpp:146
Thrown if there is an unspecified filesystem or stream error while opening, e.g. permission problem.
Definition io/exception.hpp:36
void clear() noexcept(noexcept(std::apply(expander, std::declval< record & >().as_base())))
Clears containers that provide .clear() and (re-)initialises all other elements with = {}.
Definition record.hpp:242
Type that contains multiple types.
Definition type_list.hpp:26
Provides traits for seqan3::type_list.