SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
input.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2021, Knut Reinert & MPI für molekulare Genetik
4 // This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5 // shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6 // -----------------------------------------------------------------------------------------------------
7 
14 #pragma once
15 
17 
19 
20 namespace seqan3
21 {
23 template <typename ref_sequences_t = ref_info_not_given, typename ref_ids_t = std::deque<std::string>>
26 
28 template <
30  detail::fields_specialisation selected_field_ids_ = fields<field::seq,
31  field::id,
46  detail::type_list_of_sam_file_input_formats valid_formats_ = type_list<format_sam, format_bam>>
47 #if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201907L
49 #else // defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201907L
50 // This is a workaround for pre-c++20 as CTAD don't work on type aliases.
52  public sam_file_input<traits_type_, selected_field_ids_, valid_formats_>
53 {
56  using sam_file_input_t::sam_file_input_t;
57  using sam_file_input_t::operator=;
59 };
60 
62 template <typename ...args_t>
63 alignment_file_input(args_t && ...args) ->
64  alignment_file_input<typename decltype(sam_file_input{std::forward<args_t>(args)...})::traits_type,
65  typename decltype(sam_file_input{std::forward<args_t>(args)...})::selected_field_ids,
66  typename decltype(sam_file_input{std::forward<args_t>(args)...})::valid_formats>;
68 #endif // defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201907L
69 
70 } // namespace seqan3
71 
72 SEQAN3_DEPRECATED_HEADER("This header is deprecated and will be removed in SeqAn-3.1.0 Please #include <seqan3/io/sam_file/input.hpp> instead.")
[DEPRECATED] Provides seqan3::sam_file_input_options.
A class for reading alignment files, e.g. SAM, BAM, BLAST ...
Definition: input.hpp:357
@ flag
The alignment flag (bit information), uint16_t value.
@ ref_offset
Sequence (seqan3::field::ref_seq) relative start position (0-based), unsigned value.
@ ref_seq
The (reference) "sequence" information, usually a range of nucleotides or amino acids.
@ alignment
The (pairwise) alignment stored in an object that models seqan3::detail::pairwise_alignment.
@ cigar
The cigar vector (std::vector<seqan3::cigar>) representing the alignment in SAM/BAM format.
@ mapq
The mapping quality of the seqan3::field::seq alignment, usually a Phred-scaled score.
@ bit_score
The bit score (statistical significance indicator), unsigned value.
@ offset
Sequence (seqan3::field::seq) relative start position (0-based), unsigned value.
@ mate
The mate pair information given as a std::tuple of reference name, offset and template length.
@ header_ptr
A pointer to the seqan3::sam_file_header object storing header information.
@ ref_id
The identifier of the (reference) sequence that seqan3::field::seq was aligned to.
@ evalue
The e-value (length normalized bit score), double value.
@ id
The identifier, usually a string.
@ tags
The optional tags in the SAM format, stored in a dictionary.
@ seq
The "sequence", usually a range of nucleotides or amino acids.
@ qual
The qualities, usually in Phred score notation.
The requirements a traits_type for seqan3::sam_file_input must meet.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
#define SEQAN3_DEPRECATED_310
Deprecation message for SeqAn 3.1.0 release.
Definition: platform.hpp:203
#define SEQAN3_DEPRECATED_HEADER(message)
Deprecation message for deprecated header.
Definition: platform.hpp:213
Provides seqan3::sam_file_input and corresponding traits classes.
Definition: input.hpp:53
A class template that holds a choice of seqan3::field.
Definition: record.hpp:172
The default traits for seqan3::sam_file_input.
Definition: input.hpp:184
Type that contains multiple types.
Definition: type_list.hpp:29