/** * Allocate new recalibration data. */ ERROR_CODE recal_init_info(const int cycles, recal_info_t **out_data) { recal_info_t *data; int vector_size = MAX_QUALITY - MIN_QUALITY; data = (recal_info_t *)malloc(sizeof(recal_info_t)); //Struct initialization data->min_qual = MIN_QUALITY; data->num_quals = vector_size; data->num_cycles = cycles; data->num_dinuc = NUM_DINUC; //Total counters data->total_miss = 0; data->total_bases = 0; data->total_delta = 0; //Quality vectors new_vector(vector_size, SMOOTH_CONSTANT_MISS, &(data->qual_miss)); new_vector(vector_size, SMOOTH_CONSTANT_BASES, &(data->qual_bases)); new_vector_d(vector_size, 0.0, &(data->qual_delta)); //Qual-Cycle matrix new_vector(vector_size * cycles, SMOOTH_CONSTANT_MISS, &(data->qual_cycle_miss)); new_vector(vector_size * cycles, SMOOTH_CONSTANT_BASES, &(data->qual_cycle_bases)); new_vector_d(vector_size * cycles, 0.0, &(data->qual_cycle_delta)); //Qual-Dinuc matrix new_vector(vector_size * cycles, SMOOTH_CONSTANT_MISS, &(data->qual_dinuc_miss)); new_vector(vector_size * cycles, SMOOTH_CONSTANT_BASES, &(data->qual_dinuc_bases)); new_vector_d(vector_size * cycles, 0.0, &(data->qual_dinuc_delta)); *out_data = data; return NO_ERROR; }
eta_file* new_eta_file(int lp_rows) { eta_file* ef; int i; ef = my_malloc(sizeof(eta_file)); ef->lp_rows = lp_rows; ef->k = 0; ef->P = my_malloc(lp_rows*sizeof(int)); ef->L = my_malloc(lp_rows*sizeof(eta_matrix*)); for (i = 0; i < lp_rows; i ++) { ef->L[i] = new_eta_matrix(lp_rows); } ef->Ls = my_malloc(lp_rows*ETA_MAX*sizeof(eta_singleton*)); for (i = 0; i < lp_rows*ETA_MAX; i ++) { ef->Ls[i] = new_eta_singleton(); } ef->L_d = my_malloc(lp_rows*sizeof(eta_matrix_d*)); for (i = 0; i < lp_rows; i ++) { ef->L_d[i] = new_eta_matrix_d(lp_rows); } ef->Ls_d = my_malloc(lp_rows*ETA_MAX*sizeof(eta_singleton_d*)); for (i = 0; i < lp_rows*ETA_MAX; i ++) { ef->Ls_d[i] = new_eta_singleton_d(); } ef->U = new_matrix(lp_rows, lp_rows); /* とりあえずこんだけ */ ef->U_d = (EXLPvector_d**)my_malloc(lp_rows*sizeof(EXLPvector_d*)); for (i = 0; i < lp_rows; i ++) ef->U_d[i] = new_vector_d(lp_rows); ef->Q = new_permutation_matrix(lp_rows); ef->R = new_permutation_matrix(lp_rows); return ef; }