ContextSV v1.0.0
Loading...
Searching...
No Matches
fasta_query.h
Go to the documentation of this file.
1// ReferenceGenome: A class for querying a reference genome FASTA file.
2
3#ifndef FASTA_QUERY_H
4#define FASTA_QUERY_H
5
7#include <string>
8#include <map>
9#include <unordered_map>
10#include <vector>
11// #include <mutex>
12#include <shared_mutex>
13#include <string_view>
15
17 private:
18 std::string fasta_filepath;
19 std::vector<std::string> chromosomes;
20 std::unordered_map<std::string, std::string> chr_to_seq;
21 std::map<std::string, uint32_t> chr_to_length;
22 std::shared_mutex& shared_mutex;
23
24 public:
25 ReferenceGenome(std::shared_mutex& shared_mutex) : shared_mutex(shared_mutex) {}
26
27 int setFilepath(std::string fasta_filepath);
28 std::string getFilepath() const;
29 std::string_view query(const std::string& chr, uint32_t pos_start, uint32_t pos_end) const;
30 bool compare(const std::string& chr, uint32_t pos_start, uint32_t pos_end, const std::string& compare_seq, float match_threshold) const;
31
32 // Get the chromosome contig lengths in VCF header format
33 std::string getContigHeader() const;
34
35 // Get the list of chromosomes, used for whole genome analysis
36 std::vector<std::string> getChromosomes() const;
37
38 // Get the length of a chromosome
39 uint32_t getChromosomeLength(std::string chr) const;
40};
41
42#endif // FASTA_QUERY_H
Definition fasta_query.h:16
std::string getFilepath() const
Definition fasta_query.cpp:82
int setFilepath(std::string fasta_filepath)
Definition fasta_query.cpp:18
std::vector< std::string > getChromosomes() const
Definition fasta_query.cpp:164
std::string getContigHeader() const
Definition fasta_query.cpp:140
uint32_t getChromosomeLength(std::string chr) const
Definition fasta_query.cpp:169
std::string_view query(const std::string &chr, uint32_t pos_start, uint32_t pos_end) const
Definition fasta_query.cpp:88
ReferenceGenome(std::shared_mutex &shared_mutex)
Definition fasta_query.h:25
bool compare(const std::string &chr, uint32_t pos_start, uint32_t pos_end, const std::string &compare_seq, float match_threshold) const
Definition fasta_query.cpp:105