void get_coverage_on_panels(int* percentage_coverage,int* median_coverage, StrBuf** panel_file_paths, int max_branch_len, dBGraph *db_graph, int ignore_first, int ignore_last , int NUM_PANELS) { int i; FILE* fp; AlleleInfo* ai = alloc_allele_info(); int number_of_reads = 0; int number_of_covered_reads =0; int num_kmers=0; Covg tot_pos_kmers; Covg tot_kmers; Covg med; //---------------------------------- // allocate the memory used to read the sequences //---------------------------------- Sequence * seq = malloc(sizeof(Sequence)); if (seq == NULL) { die("Out of memory trying to allocate Sequence"); } alloc_sequence(seq,max_branch_len,LINE_MAX); //We are going to load all the bases into a single sliding window KmerSlidingWindow* kmer_window = malloc(sizeof(KmerSlidingWindow)); if (kmer_window==NULL) { die("Failed to malloc kmer sliding window"); } CovgArray* working_ca = alloc_and_init_covg_array(max_branch_len); dBNode** array_nodes = (dBNode**) malloc(sizeof(dBNode*)*max_branch_len); Orientation* array_or =(Orientation*) malloc(sizeof(Orientation)*max_branch_len); kmer_window->kmer = (BinaryKmer*) malloc(sizeof(BinaryKmer)*(max_branch_len-db_graph->kmer_size+1)); if (kmer_window->kmer==NULL) { die("Failed to malloc kmer_window->kmer"); } kmer_window->nkmers=0; //create file readers int file_reader_fasta(FILE * fp, Sequence * seq, int max_read_length, boolean new_entry, boolean * full_entry) { long long ret; int offset = 0; if (new_entry == false) { offset = db_graph->kmer_size; } ret = read_sequence_from_fasta(fp,seq,max_read_length,new_entry,full_entry,offset); return ret; }
void test_get_next_gene_info() { uint16_t kmer_size = 31; int number_of_bits = 10; int bucket_size = 100; int max_retries = 10; dBGraph *db_graph= hash_table_new(number_of_bits, bucket_size, max_retries, kmer_size); int max_gene_len = 1500; uint64_t* kmer_covg_array = calloc(150, sizeof(uint64_t)); uint64_t* readlen_array = calloc(max_gene_len, sizeof(uint64_t)); StrBuf* list = strbuf_create("../data/test/myKrobe/predictor/gene_presence/sample1.fa.list"); unsigned long long num_bases = build_unclean_graph(db_graph, list, true, kmer_size, readlen_array, max_gene_len, kmer_covg_array, 150, false, 0); FILE* fp = fopen("../data/test/myKrobe/predictor/gene_presence/panel1.fasta", "r"); if (fp==NULL) { die("Cannot open this file: ../data/test/myKrobe/predictor/gene_presence/panel1.fasta"); } GeneInfo* gi = alloc_and_init_gene_info(); //---------------------------------- // allocate the memory used to read the sequences //---------------------------------- Sequence * seq = malloc(sizeof(Sequence)); if (seq == NULL){ die("Out of memory trying to allocate Sequence"); } alloc_sequence(seq,max_gene_len,LINE_MAX); //We are going to load all the bases into a single sliding window KmerSlidingWindow* kmer_window = malloc(sizeof(KmerSlidingWindow)); if (kmer_window==NULL) { die("Failed to malloc kmer sliding window"); } kmer_window->kmer = (BinaryKmer*) malloc(sizeof(BinaryKmer)*(max_gene_len-db_graph->kmer_size+1)); if (kmer_window->kmer==NULL) { die("Failed to malloc kmer_window->kmer"); } kmer_window->nkmers=0; // int max_gene_len = 5000; CovgArray* working_ca = alloc_and_init_covg_array(max_gene_len); //end of intialisation //create file readers int file_reader_fasta(FILE * fp, Sequence * seq, int max_read_length, boolean new_entry, boolean * full_entry){ long long ret; int offset = 0; if (new_entry == false){ offset = db_graph->kmer_size; } ret = read_sequence_from_fasta(fp,seq,max_read_length,new_entry,full_entry,offset); return ret; }