SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
output.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 
20 
21 namespace seqan3
22 {
24 template <detail::fields_specialisation selected_field_ids_ =
25  fields<field::seq,
26  field::id,
38  detail::type_list_of_sam_file_output_formats valid_formats_ = type_list<format_sam, format_bam>,
39  typename ref_ids_type = ref_info_not_given>
40 #if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201907L
41 using alignment_file_output SEQAN3_DEPRECATED_310 = sam_file_output<selected_field_ids_, valid_formats_, ref_ids_type>;
42 #else // defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201907L
43 // This is a workaround for pre-c++20 as CTAD don't work on type aliases.
45  public sam_file_output<selected_field_ids_, valid_formats_, ref_ids_type>
46 {
49  using sam_file_output_t::sam_file_output_t;
50  using sam_file_output_t::operator=;
52 };
53 
55 template <typename ...args_t>
56 alignment_file_output(args_t && ...args) ->
57  alignment_file_output<typename decltype(sam_file_output{std::forward<args_t>(args)...})::selected_field_ids,
58  typename decltype(sam_file_output{std::forward<args_t>(args)...})::valid_formats,
59  typename decltype(sam_file_output{std::forward<args_t>(args)...})::ref_ids_type_t>;
61 #endif // defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201907L
62 
63 } // namespace seqan3
64 
65 SEQAN3_DEPRECATED_HEADER("This header is deprecated and will be removed in SeqAn-3.1.0 Please #include <seqan3/io/sam_file/output.hpp> instead.")
[DEPRECATED] Provides the seqan3::alignment_file_header class.
[DEPRECATED] Provides seqan3::sam_file_output_options.
A class for writing alignment files, e.g. SAM, BAL, BLAST, ...
Definition: output.hpp:173
@ flag
The alignment flag (bit information), uint16_t value.
@ ref_offset
Sequence (seqan3::field::ref_seq) relative start position (0-based), unsigned value.
@ 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.
@ 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.
@ 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.
Provides seqan3::sam_file_output and corresponding traits classes.
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
Definition: output.hpp:46