ContextSV v1.0.0
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1// Utility functions
2
3#ifndef UTILS_H
4#define UTILS_H
5
6#include <htslib/sam.h>
7#include <htslib/synced_bcf_reader.h>
8
10#include <string>
11#include <mutex>
12#include <chrono>
14
15
16// Guard to close the BAM file
17// struct BamFileGuard {
18// samFile* fp_in;
19// hts_idx_t* idx;
20// bam_hdr_t* bamHdr;
21
22// BamFileGuard(samFile* fp_in, hts_idx_t* idx, bam_hdr_t* bamHdr)
23// : fp_in(fp_in), idx(idx), bamHdr(bamHdr) {}
24
25// ~BamFileGuard() {
26// if (idx) {
27// hts_idx_destroy(idx);
28// idx = nullptr;
29// }
30// if (bamHdr) {
31// bam_hdr_destroy(bamHdr);
32// bamHdr = nullptr;
33// }
34// if (fp_in) {
35// sam_close(fp_in);
36// fp_in = nullptr;
37// }
38// }
39
40// BamFileGuard(const BamFileGuard&) = delete; // Non-copyable
41// BamFileGuard& operator=(const BamFileGuard&) = delete; // Non-assignable
42// };
43
44// Print the progress of a task
45void printProgress(int progress, int total);
46
47// Run bcftools to determine the chr notation of a VCF file
48bool isChrNotation(std::string vcf_filepath);
49
50// Print a message to stdout in a thread-safe manner
51void printMessage(std::string message);
52
53// Print an error message to stderr in a thread-safe manner
54void printError(std::string message);
55
56std::string getElapsedTime(std::chrono::high_resolution_clock::time_point start, std::chrono::high_resolution_clock::time_point end);
57
58std::string removeChrPrefix(std::string chr);
59
60void printMemoryUsage(const std::string &functionName);
61
62bool fileExists(const std::string &filepath);
63
64bool isFileEmpty(const std::string &filepath);
65
66void closeJSON(const std::string & filepath);
67
68#endif // UTILS_H
void printMemoryUsage(const std::string &functionName)
Definition utils.cpp:114
std::string removeChrPrefix(std::string chr)
Definition utils.cpp:106
bool isChrNotation(std::string vcf_filepath)
Definition utils.cpp:44
void printMessage(std::string message)
Definition utils.cpp:81
bool fileExists(const std::string &filepath)
Definition utils.cpp:124
bool isFileEmpty(const std::string &filepath)
Definition utils.cpp:130
void printProgress(int progress, int total)
Definition utils.cpp:18
void printError(std::string message)
Definition utils.cpp:88
std::string getElapsedTime(std::chrono::high_resolution_clock::time_point start, std::chrono::high_resolution_clock::time_point end)
Definition utils.cpp:95
void closeJSON(const std::string &filepath)
Definition utils.cpp:135