44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
/*
|
||
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);
|
||
}
|
||
}; |