统计真实数据不同测序位置碱基的错误率,引入到DNA片段中,从而模拟生成DNA测序数据。
参考 ART: a next-generation sequencing read simulator - PMC
#include <iostream>
#include <random>
#include <string>
#include <cassert>using namespace std;#define SEQ_LEN 36inline double r_prob(){return rand()/(double)RAND_MAX;
}static char rand_base(){short base=(short)ceil(r_prob()*4);//std::cout << "r_prob()*4 " << r_prob()*4 << std::endl;//std::cout << "ceil(r_prob()*4) " << ceil(r_prob()*4) << std::endl;switch(base){case 1:return 'A';case 2:return 'C';case 3:return 'G';case 4:return 'T';default: