Gamgee
You miserable little maggot. I'll stove your head in!
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
variant.h
Go to the documentation of this file.
1 #ifndef __gamgee__variant__
2 #define __gamgee__variant__
3 
4 #include "variant_header.h"
5 
6 #include "htslib/sam.h"
7 
8 #include <string>
9 #include <memory>
10 
11 namespace gamgee {
12 
16 class Variant {
17  public:
18  Variant() = default;
19  explicit Variant(const std::shared_ptr<bcf_hdr_t>& header, const std::shared_ptr<bcf1_t>& body) noexcept;
20  Variant(const Variant& other);
21  Variant(Variant&& other) noexcept;
22  Variant& operator=(const Variant& other);
23  Variant& operator=(Variant&& other) noexcept;
24 
25  VariantHeader header() const { return VariantHeader{m_header}; }
26 
27  uint32_t chromosome() const {return uint32_t(m_body->rid);}
28  uint32_t alignment_start() const {return uint32_t(m_body->pos+1);}
29  uint32_t qual() const {return uint32_t(m_body->qual);}
30  uint32_t n_samples() const {return uint32_t(m_body->n_sample);}
31  uint32_t n_alleles() const {return uint32_t(m_body->n_allele);}
32 
33  std::vector<uint8_t> genotype_quals() const;
34 
35  private:
36  std::shared_ptr<bcf_hdr_t> m_header;
37  std::shared_ptr<bcf1_t> m_body;
38 
39  friend class VariantWriter;
40 };
41 
42 } // end of namespace
43 
44 #endif /* defined(__gamgee__variant__) */
Variant & operator=(const Variant &other)
deep copy assignment of a Variant and it's header. Shared pointers maintain state to all other associ...
Definition: variant.cpp:40
VariantHeader header() const
Definition: variant.h:25
uint32_t n_samples() const
returns the number of samples in this Variant record
Definition: variant.h:30
uint32_t alignment_start() const
returns a 1-based alignment start position (as you would see in a VCF file).
Definition: variant.h:28
uint32_t qual() const
returns the Phred scaled site qual (probability that the site is not reference). See VCF spec...
Definition: variant.h:29
utility class to write out a SAM/BAM/CRAM file to any stream
Definition: variant_writer.h:16
uint32_t n_alleles() const
returns the number of alleles in this Variant record
Definition: variant.h:31
Utility class to manipulate a Variant record.
Definition: variant.h:16
Variant()=default
initializes a null Variant
Utility class to hold a variant header.
Definition: variant_header.h:18
uint32_t chromosome() const
returns the integer representation of the chromosome. Notice that chromosomes are listed in index ord...
Definition: variant.h:27
std::vector< uint8_t > genotype_quals() const
returns a vector with a copy of all the GQ values for all samples contiguously in memory...
Definition: variant.cpp:59