23 struct GenomicRegion {
33 struct PrimaryAlignment {
42 struct SuppAlignment {
51 struct SplitSignature {
62 PrimaryAlignment region;
65 std::unique_ptr<IntervalNode> left;
66 std::unique_ptr<IntervalNode> right;
68 IntervalNode(PrimaryAlignment r, std::string name)
69 : region(r), qname(name), max_end(r.end), left(
nullptr), right(
nullptr) {}
73 mutable std::shared_mutex shared_mutex;
75 std::vector<std::string> getChromosomes(
const std::string& bam_filepath);
77 void findSplitSVSignatures(std::unordered_map<std::string, std::vector<SVCall>>& sv_calls,
const InputData& input_data);
80 void processCIGARRecord(bam_hdr_t* header, bam1_t* alignment, std::vector<SVCall>& sv_calls,
const std::vector<uint32_t>& pos_depth_map);
82 std::pair<int, int> getAlignmentReadPositions(bam1_t* alignment);
84 void processChromosome(
const std::string& chr, std::vector<SVCall>& combined_sv_calls,
const InputData& input_data,
const std::vector<uint32_t>& chr_pos_depth_map,
double mean_chr_cov);
86 void findCIGARSVs(samFile* fp_in, hts_idx_t* idx, bam_hdr_t* bamHdr,
const std::string& region, std::vector<SVCall>& sv_calls,
const std::vector<uint32_t>& pos_depth_map);
89 int readNextAlignment(samFile *fp_in, hts_itr_t *itr, bam1_t *bam1);
91 void runSplitReadCopyNumberPredictions(
const std::string& chr, std::vector<SVCall>& split_sv_calls,
const CNVCaller &cnv_caller,
const CHMM &hmm,
double mean_chr_cov,
const std::vector<uint32_t> &pos_depth_map,
const InputData &input_data);
93 void saveToVCF(
const std::unordered_map<std::string, std::vector<SVCall>> &sv_calls,
const InputData &input_data,
const ReferenceGenome &ref_genome,
const std::unordered_map<std::string, std::vector<uint32_t>> &chr_pos_depth_map)
const;
97 int getReadDepth(
const std::vector<uint32_t>& pos_depth_map, uint32_t start)
const;
106 void findOverlaps(
const std::unique_ptr<IntervalNode>& root,
const PrimaryAlignment& query, std::vector<std::string>& result);
108 void insert(std::unique_ptr<IntervalNode>& root,
const PrimaryAlignment& region, std::string qname);
void insert(std::unique_ptr< IntervalNode > &root, const PrimaryAlignment ®ion, std::string qname)
Definition sv_caller.cpp:988
void findOverlaps(const std::unique_ptr< IntervalNode > &root, const PrimaryAlignment &query, std::vector< std::string > &result)
Definition sv_caller.cpp:972