GLnexus
Scalable datastore for population genome sequencing, with on-demand joint genotyping
 All Classes Functions Variables
service.h
1 #ifndef GLNEXUS_SERVICE_H
2 #define GLNEXUS_SERVICE_H
3 
4 #include <string>
5 #include <vector>
6 #include <map>
7 #include <set>
8 #include <memory>
9 #include "types.h"
10 #include "data.h"
11 #include "service_config.h"
12 
13 namespace GLnexus {
14 
15 class Service {
16  // pImpl idiom
17  struct body;
18  std::unique_ptr<body> body_;
19 
20  Service(BCFData& data);
21  Service(const Service&) = delete;
22 
23 public:
24  static Status Start(Metadata& metadata, BCFData& data, std::unique_ptr<Service>& svc);
25  ~Service();
26 
27 
30 
37  Status discover_alleles(const std::string& sampleset, const range& pos, discovered_alleles& ans);
38 
44  Status discover_alleles(const std::string& sampleset, const std::vector<range>& ranges,
45  std::vector<discovered_alleles>& ans);
46 
48  Status genotype_sites(const genotyper_config& cfg, const std::string& sampleset, const std::vector<unified_site>& sites, const std::string& filename, consolidated_loss& dlosses);
49 };
50 
51 }
52 
53 #endif
Genomic range (chromosome id, begin coordinate, end coordinate)
Definition: types.h:99
Definition: data.h:23
Definition: data.h:98
Status discover_alleles(const std::string &sampleset, const range &pos, discovered_alleles &ans)
Definition: service_config.h:15
Function status (return) codes.
Definition: types.h:30
Definition: service.h:15
Status genotype_sites(const genotyper_config &cfg, const std::string &sampleset, const std::vector< unified_site > &sites, const std::string &filename, consolidated_loss &dlosses)
Genotype a set of samples at the given sites, producing a BCF file.
Definition: service.cc:388
Definition: service.cc:20