Gamgee
You miserable little maggot. I'll stove your head in!
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
variant_header_builder.h
Go to the documentation of this file.
1 #ifndef __gamgee__variant_header_builder__
2 #define __gamgee__variant_header_builder__
3 
4 #include "utils/utils.h"
5 #include "variant_header.h"
6 
7 #include "htslib/vcf.h"
8 
9 #include <memory>
10 
11 namespace gamgee {
12 
17  public:
18 
24  VariantHeaderBuilder() noexcept;
26  VariantHeaderBuilder(const VariantHeaderBuilder& other) = delete;
27 
28  void add_contig(const std::string& id, const std::string& length = "", const std::string& url = "", const std::string& extra = "");
29  void add_filter(const std::string& id, const std::string& description = "", const std::string& extra = "");
30  void add_info_field(const std::string& id, const std::string& number, const std::string& type, const std::string& description = "", const std::string& source = "", const std::string& version = "", const std::string& extra = "");
31  void add_format_field(const std::string& id, const std::string& number, const std::string& type, const std::string& description = "", const std::string& extra = "");
32  void add_sample(const std::string& sample);
33  void add_source(const std::string& source);
34 
35  void advanced_add_arbitrary_line(const std::string& line);
36 
37  VariantHeader build() const { return VariantHeader{m_header}; }
38 
39  private:
40  std::shared_ptr<bcf_hdr_t> m_header;
41 
42 };
43 
44 }
45 
46 #endif
void add_filter(const std::string &id, const std::string &description="", const std::string &extra="")
Definition: variant_header_builder.cpp:38
Utility class to build VariantHeader objects from scratch.
Definition: variant_header_builder.h:16
void add_format_field(const std::string &id, const std::string &number, const std::string &type, const std::string &description="", const std::string &extra="")
Definition: variant_header_builder.cpp:58
VariantHeader build() const
Definition: variant_header_builder.h:37
void add_source(const std::string &source)
Definition: variant_header_builder.cpp:68
void add_contig(const std::string &id, const std::string &length="", const std::string &url="", const std::string &extra="")
Definition: variant_header_builder.cpp:29
void add_info_field(const std::string &id, const std::string &number, const std::string &type, const std::string &description="", const std::string &source="", const std::string &version="", const std::string &extra="")
Definition: variant_header_builder.cpp:46
void add_sample(const std::string &sample)
Definition: variant_header_builder.cpp:73
Utility class to hold a variant header.
Definition: variant_header.h:18
void advanced_add_arbitrary_line(const std::string &line)
Definition: variant_header_builder.cpp:77
VariantHeaderBuilder() noexcept
initializes a variant header builder
Definition: variant_header_builder.cpp:21