/* * Constructor */ GT_INLINE gt_dna_read* gt_dna_read_new(void) { gt_dna_read* read = gt_alloc(gt_dna_read); read->tag = gt_string_new(GT_DNA_READ_TAG_INITIAL_LENGTH); read->read = gt_string_new(GT_DNA_READ_INITIAL_LENGTH); read->qualities = gt_string_new(GT_DNA_READ_INITIAL_LENGTH); read->attributes = gt_attributes_new(); return read; }
END_TEST START_TEST(gt_test_template_copy) { // test no maps no mmaps fail_unless(gt_input_map_parse_template( "ID\tACGT\t####\t1\tchr1:-:20:4",source)==0); gt_template* copy = gt_template_copy(source, false, false); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check char * line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t0\t-\n")); gt_template_delete(copy); // test maps no mmaps gt_string_clear(string); copy = gt_template_copy(source, true, false); string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t1\tchr1:-:20:4\n")); gt_template_delete(copy); // test maps no mmaps with multi map string fail_unless(gt_input_map_parse_template( "ID\tACGT\t####\t2\tchr1:-:20:4,chr2:-:40:4",source)==0); gt_string_clear(string); copy = gt_template_copy(source, true, false); string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t2\tchr1:-:20:4,chr2:-:40:4\n")); gt_template_delete(copy); // test maps and mmaps gt_string_clear(string); copy = gt_template_copy(source, true, true); string = gt_string_new(1024); gt_output_map_sprint_template(string, copy, output_attributes); // convert to string for simple check line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t2\tchr1:-:20:4,chr2:-:40:4\n")); gt_template_delete(copy); }
GT_INLINE gt_string* gt_qualities_dup__adapt_offset64_to_offset33(gt_string* const qualities) { gt_string* qualities_dst = gt_string_new(gt_string_get_length(qualities)+1); gt_string_set_length(qualities_dst,gt_string_get_length(qualities)+1); char* const qualities_dst_buf = gt_string_get_string(qualities_dst); GT_STRING_ITERATE(qualities,qualities_buf,pos) { qualities_dst_buf[pos] = qualities_buf[pos]-64+33; }
/* * SegmentedSEQ Constructor */ GT_INLINE gt_segmented_sequence* gt_segmented_sequence_new(void) { gt_segmented_sequence* sequence = gt_alloc(gt_segmented_sequence); sequence->blocks = gt_vector_new(GT_SEQ_ARCHIVE_NUM_BLOCKS,sizeof(gt_compact_dna_string*)); sequence->sequence_total_length = 0; sequence->seq_name = gt_string_new(10); return sequence; }
END_TEST START_TEST(gt_test_template_merge_inconsistent) { fail_unless(gt_input_map_parse_template( "ID/1\t" "GAGAGAACAGGCCTCTGAGCCCAAGCCAAGCCATCGCATCCCCTGTGACTTGCCCGTATATATGCCCAGATGGCCTGAAGTAACTGAAGAATCACAAAAGA\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:1:4+27:46:45:34:12:16:3:0:1\t" "chr7:+:24435865:1T>5-46A8C38,chr2:+:64479547:>1-1T>1-1T>1-94,chr4:+:16999371:1T>5-35>2-9A8C38,chr9:+:90025610:1T>5-28A17A8C38,chr11:-:130623749:2>1-1T1T46A2>2-43",source)==0); fail_unless(gt_input_map_parse_template( "ID/1\t" "GAGAGAACAGGCCTCTGAGCCCAAGCCAAGCCATCGCATCCCCTGTGACTTGCCCGTATATATGCCCAGATGGCCTGAAGTAACTGAAGAATCACAAAAGA\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:1:0:0:0:0:1:3\t" "chr2:+:64479108:10>436*91,chr2:+:64479544:TTC1TGT94,chr13:+:91496959:1GA1TGT27T18A47,chr2:+:216792393:1GA1TGT46A8C38,chr2:+:64478959:AG1T1G1TT1>585*91",target)==0); // merge into source gt_template_recalculate_counters(source); gt_template_merge_template_mmaps(source,target); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char* line = gt_string_get_string(string); fail_unless(gt_streq(line, "ID/1\t" "GAGAGAACAGGCCTCTGAGCCCAAGCCAAGCCATCGCATCCCCTGTGACTTGCCCGTATATATGCCCAGATGGCCTGAAGTAACTGAAGAATCACAAAAGA\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:1:0:0:1:4+1:3\t" "chr2:+:64479108:10>436*91,chr7:+:24435865:1T>5-46A8C38,chr2:+:64479547:(1)1T>1-1T>1-94," "chr4:+:16999371:1T>5-35>2-9A8C38,chr9:+:90025610:1T>5-28A17A8C38,chr11:-:130623749:2>1-1T1T46A2>2-43," "chr2:+:64479544:TTC1TGT94,chr13:+:91496959:1GA1TGT27T18A47,chr2:+:216792393:1GA1TGT46A8C38," "chr2:+:64478959:AG1T1G1TT1>585*91\n")); }
END_TEST START_TEST(gt_test_template_merge_error) { fail_unless(gt_input_map_parse_template( "HISEQ8_0071:3:1101:19107:2010#TGACCA/1\t" "NGTCATGAGTGCAAAATGCAAATGCAAGTTTGGCCAGAAGTCCGGTCACCATCCAGGGGAGACTCCACCTCTCATCACCCCAGGCTCAGCCCAAAGCTGAT\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:1\t" "chr19:+:35613736:C7>78*37>316*38>132*18",source)==0); fail_unless(gt_input_map_parse_template( "HISEQ8_0071:3:1101:19107:2010#TGACCA/1\t" "NGTCATGAGTGCAAAATGCAAATGCAAGTTTGGCCAGAAGTCCGGTCACCATCCAGGGGAGACTCCACCTCTCATCACCCCAGGCTCAGCCCAAAGCTGAT\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:1+0:1\t" "chr19:+:35613741:(5)3>78*37>316*36(20),chr19:+:35613819:(5)CAG37>316*36(20)", target)==0); // merge into source gt_template_merge_template_mmaps(source,target); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line, "HISEQ8_0071:3:1101:19107:2010#TGACCA/1\t" "NGTCATGAGTGCAAAATGCAAATGCAAGTTTGGCCAGAAGTCCGGTCACCATCCAGGGGAGACTCCACCTCTCATCACCCCAGGCTCAGCCCAAAGCTGAT\t" "BPYcceeegegggiiiiiiiiiiiiiiighhhfgghhiiihhhifhfhhhfhhdghhiiihfbggedddeabbcdcccb`ZaW[^^abbcGW[`^`R]`BB\t" "0:0:0:0:2+0:1\t" "chr19:+:35613736:C7>78*37>316*38>132*18,chr19:+:35613741:(5)3>78*37>316*36(20),chr19:+:35613819:(5)CAG37>316*36(20)\n")); }
GT_INLINE gt_sam_headers* gt_sam_header_new(void) { gt_sam_headers* sam_headers = gt_alloc(gt_sam_headers); sam_headers->header = gt_string_new(50); // @HD sam_headers->read_group = gt_vector_new(GT_ATTR_SAM_INIT_ELEMENTS,sizeof(gt_string*)); // @RG sam_headers->program = gt_vector_new(GT_ATTR_SAM_INIT_ELEMENTS,sizeof(gt_string*)); // @PG sam_headers->comments = gt_vector_new(GT_ATTR_SAM_INIT_ELEMENTS,sizeof(gt_string*)); // @ CO sam_headers->sequence_archive = NULL; // @SQ return sam_headers; }
GT_INLINE gt_sam_attribute_func_params* gt_sam_attribute_func_params_new() { gt_sam_attribute_func_params* const func_params = gt_alloc(gt_sam_attribute_func_params); /* String (gt_string) buffer */ func_params->return_s = gt_string_new(GT_SAM_ATTR_FUNC_PARAMS_RETURN_S_INIT_LENGTH); /* Attributes */ func_params->attributes = gt_attributes_new(); /* Reset defaults */ gt_sam_attribute_func_params_clear(func_params); return func_params; }
END_TEST START_TEST(gt_test_loosing_alignments) { // test no maps no mmaps fail_unless(gt_input_map_parse_template( "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16",source)==0); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line, "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16\n" )); gt_string_clear(string); // try parsing the alignment fail_unless(gt_input_map_parse_alignment( "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16",alignment)==0); gt_output_map_sprint_alignment(string, alignment, output_attributes); // convert to string line = gt_string_get_string(string); fail_unless(gt_streq(line, "67999,0\t" "CAAAAATGAAGTAAAACTCTCACTCTTCACAGATGACATGATATTTTTATGTGGGAAACCCAAAAGAGTTCAACAGAAAACTGCTAGAACTGATACGTGAATTCAGCAAAGTTGCAAGATATAAAATCAATGTACAGATCGGTTGCATTTCTAGACACCAATAATGAAGCAGCAGAAAGAGATACCAAGAAATCGATCCTATTTACAATTGCACCCAAAACTGTCAGATACCAAGGAATAAACCTCACCAAAGAGGTATGCTGAAAACTATCGAAAGCTTAATGAAAGAAATTGAAGAAGATACAAAGAAATAGAAAAGCATGCCATGTTCATGGATTGGAAGAACAAATATTGTTAAAATGTCGATAGTACCCAAAGCAGTCTACACATTCAGTGCAATCCCTATCAAAATAACACCAGCATTCTTCATAGAGCTAGAACAAACAATTCTAAAATTTGTATGGAACCACGAAAGACCCCGAATAGCCGAGGTAATGTTTAAAAGGAAATCCAAAGATGGAGGCATCACAATTCCAGACTTCAAGCTGTATTACAAAGCTGTAATCATCAAACAAAAGGGTACTGGCACAAAACTAGAGACAGAGATCAATGGAACAGAATAGAGAACCCACAAATGGACTCACAAATGTATGGCCAACTAATCTTCAACAAAGCAGGAAAGAATATCCAATGGGAAAGAGTCTTCACAAATGGTATTGGCAAAACGGGACAACAACATGCAGAAGAATGAGCCTGGACCACTTTCTTACACCGTACACAAAAATGTATTCAAAATGGATGGAAGACCTAAATGTAAGACAGAAAACCATCAAAAATCCTAGAAGAGAACAGAAGCAGTAACTTCTTTGATTTTGGCCTTAGCAACTTCTTTCTAGACATGTATCCTGAGGCAAGCAAAAAAAACACAAAAATAAACTATTGGGACTACATCAAAACAAAAAGCTTCTGCACAGTGAAAGAAATAATCAACAAAACTAAA\t" "\t" "2:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:1\t" "267999:+:1:1000,302802:+:1:1000,283693:-:311:184T116C50C45C11G589,308701:+:1:37G9>1-6A14C114T116C50C45C11G589,302802:-:7693:773A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16,267998:+:1:773A52T2A5>1-7G3>1+2>1+3>2-3CC3C7C5TTGC11A9CC2>1-2>1+7>1+G3C4>1-8G12>1+1>1-6G1T17C>1-4>1+3C16,283521:-:317:184T116C50C45C11G362A52T2A1>1-11G2>1+1>1+5>2-3CC3C7C5>2-2>2+11A9CC1>1-2>1+7>1+1G3C4>1-8G11>1+2>1-6G1T17>1-C3>1+4C16\n" )); gt_string_clear(string); gt_alignment *alignment_dst; alignment_dst = gt_alignment_copy(alignment,false); GT_ALIGNMENT_ITERATE(alignment,map) { gt_alignment_insert_map(alignment_dst,gt_map_copy(map)); }
END_TEST START_TEST(gt_test_template_to_string) { fail_unless(gt_input_map_parse_template( "ID\tACGT\t####\t1\tchr1:-:20:4",source)==0); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line,"ID\tACGT\t####\t1\tchr1:-:20:4\n")); }
GT_INLINE gt_string* gt_options_adaptor_getopt_short(const gt_option* const options) { const uint64_t num_options = gt_options_get_num_options(options); gt_string* const options_short = gt_string_new(2*num_options); // Adapt all the short options uint64_t i = 0; for (i=0;i<num_options;++i) { const char short_option = options[i].option_id; if (options[i].option_id<128 && gt_is_alphanumeric(short_option)) { gt_string_append_char(options_short,short_option); if (options[i].option_type==GT_OPT_REQUIRED || options[i].option_type==GT_OPT_OPTIONAL) { gt_string_append_char(options_short,COLON); } } } gt_string_append_eos(options_short); return options_short; }
END_TEST START_TEST(gt_test_template_merge_hang) { fail_unless(gt_input_map_parse_template( "HWI-962:71:D0PEYACXX:4:1101:18640:2354/2\tCGCGCGGGAGCCAGCAGGAGCACCAGCTGCGCAGGCAGGTTGAACTGCTGGCTTATAAAGTAGAGCAGGAGAAGT\t" "@CCFFFFFHHHHHIJIJJIJJJJJJJIIJGIDGIHHHFF6>CCCDEDDDDCBDD>CCDCC>CCCCCDDDDDBDC>\t0:0:0:0:0:0\t-",source)==0); fail_unless(gt_input_map_parse_template( "HWI-962:71:D0PEYACXX:4:1101:18640:2354/2\tCGCGCGGGAGCCAGCAGGAGCACCAGCTGCGCAGGCAGGTTGAACTGCTGGCTTATAAAGTAGAGCAGGAGAAGT\t" "@CCFFFFFHHHHHIJIJJIJJJJJJJIIJGIDGIHHHFF6>CCCDEDDDDCBDD>CCDCC>CCCCCDDDDDBDC>\t0:1\tchr21:+:47848466:39>1419*36",target)==0); // merge into source gt_template_merge_template_mmaps(source,target); gt_string* string = gt_string_new(1024); gt_output_map_sprint_template(string, source, output_attributes); // convert to string char * line = gt_string_get_string(string); fail_unless(gt_streq(line,"HWI-962:71:D0PEYACXX:4:1101:18640:2354/2\tCGCGCGGGAGCCAGCAGGAGCACCAGCTGCGCAGGCAGGTTGAACTGCTGGCTTATAAAGTAGAGCAGGAGAAGT\t" "@CCFFFFFHHHHHIJIJJIJJJJJJJIIJGIDGIHHHFF6>CCCDEDDDDCBDD>CCDCC>CCCCCDDDDDBDC>\t0:1+0:0:0:0\tchr21:+:47848466:39>1419*36\n")); }
#include "gt_template.h" #include "gt_sam_attributes.h" #define GT_TEMPLATE_TAG_INITIAL_LENGTH 100 #define GT_TEMPLATE_NUM_INITIAL_COUNTERS 10 #define GT_TEMPLATE_NUM_INITIAL_BLOCKS 2 #define GT_TEMPLATE_NUM_INITIAL_MMAPS 20 /* * Setup */ GT_INLINE gt_template* gt_template_new() { gt_template* template = gt_alloc(gt_template); template->template_id = UINT32_MAX; template->in_block_id = UINT32_MAX; template->tag = gt_string_new(GT_TEMPLATE_TAG_INITIAL_LENGTH); template->alignment_end1=NULL; template->alignment_end2=NULL; template->counters = gt_vector_new(GT_TEMPLATE_NUM_INITIAL_COUNTERS,sizeof(uint64_t)); template->mmaps = gt_vector_new(GT_TEMPLATE_NUM_INITIAL_MMAPS,sizeof(gt_mmap)); template->attributes = gt_attributes_new(); template->alg_dictionary = NULL; return template; } GT_INLINE void gt_template_clear_handler(gt_template* const template) { GT_TEMPLATE_CHECK(template); gt_string_clear(template->tag); gt_attributes_clear(template->attributes); } GT_INLINE void gt_template_clear(gt_template* const template,const bool delete_alignments) { GT_TEMPLATE_CHECK(template);