FastBQSR/src/bqsr/recal_tables.h

44 lines
1.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
Description: 保存bqsr计算的各种数据根据这些数据生成bqsr table
Copyright : All right reserved by ICT
Author : Zhang Zhonghai
Date : 2025/12/24
*/
#pragma once
#include "covariate.h"
#include "nested_array.h"
#include "recal_datum.h"
struct RecalTables {
int qualDimension = 94; // MAX_SAM_QUAL_SCORE(93) + 1
int eventDimension = EventType::EVENT_SIZE;
int numReadGroups;
// These two tables are special
Array2D<RecalDatum> readGroupTable;
Array3D<RecalDatum> qualityScoreTable;
// additional tables
Array4D<RecalDatum> contextTable;
Array4D<RecalDatum> cycleTable;
// NestedArray<int> testArr;
RecalTables() {}
RecalTables(int _numReadGroups) { init(_numReadGroups); }
void init(int _numReadGroups) {
numReadGroups = _numReadGroups;
// 初始化readgroup和quality两个table
readGroupTable.init(numReadGroups, eventDimension);
qualityScoreTable.init(numReadGroups, qualDimension, eventDimension);
// 初始化context和cycle两个table
contextTable.init(numReadGroups, qualDimension, ContextCovariate::MaximumKeyValue() + 1, eventDimension);
cycleTable.init(numReadGroups, qualDimension, CycleCovariate::MaximumKeyValue() + 1, eventDimension);
}
};