1 /****************************************************************\
2 * *
3 * Module for EST <-> genome alignments *
4 * *
5 * Guy St.C. Slater.. mailto:guy@ebi.ac.uk *
6 * Copyright (C) 2000-2009. All Rights Reserved. *
7 * *
8 * This source code is distributed under the terms of the *
9 * GNU General Public License, version 3. See the file COPYING *
10 * or http://www.gnu.org/licenses/gpl.txt for details *
11 * *
12 * If you use this code, please keep this notice intact. *
13 * *
14 \****************************************************************/
15
16 #include "est2genome.h"
17
18 #include "alignment.h"
19 #include "optimal.h"
20
Argument_main(Argument * arg)21 int Argument_main(Argument *arg){
22 register C4_Model *est2genome;
23 register C4_Score score;
24 register Alignment *alignment;
25 register Optimal *optimal;
26 register gchar *query_seq =
27 "CGATCGATCGNATCGATCGATC"
28 "CATCTATCTAGCGAGCGATCTA",
29 *target_seq =
30 "CGATCGATCGATCGATCGATC"
31 "GTNNNNNNNNNNNNNNNNNNNN"
32 "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
33 "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
34 "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
35 "NNNNNNNNNNNNNNNNNNNNNNNNNNNAG"
36 /* "CTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAC" */
37 "CATCTATCTANNNGCGAGCGATCTA";
38 register Alphabet *dna_alphabet = Alphabet_create(
39 Alphabet_Type_DNA, FALSE);
40 register Sequence *query = Sequence_create("query", NULL,
41 query_seq, 0, Sequence_Strand_UNKNOWN,
42 dna_alphabet),
43 *target = Sequence_create("target", NULL,
44 target_seq, 0, Sequence_Strand_UNKNOWN,
45 dna_alphabet);
46 /**/
47 register Region *region = Region_create(0, 0,
48 query->len, target->len);
49 register EST2Genome_Data *e2gd;
50 Match_ArgumentSet_create(arg);
51 Affine_ArgumentSet_create(arg);
52 Intron_ArgumentSet_create(arg);
53 Viterbi_ArgumentSet_create(arg);
54 Argument_process(arg, "est2genome.test", NULL, NULL);
55 est2genome = EST2Genome_create();
56 g_message("Has [%d] shadows", est2genome->shadow_list->len);
57 optimal = Optimal_create(est2genome, NULL,
58 Optimal_Type_SCORE|Optimal_Type_PATH,
59 FALSE);
60 e2gd = EST2Genome_Data_create(query, target);
61 score = Optimal_find_score(optimal, region, e2gd, NULL);
62 g_message("Score is [%d]", score);
63 g_assert(score == 157);
64 /**/
65 alignment = Optimal_find_path(optimal, region, e2gd,
66 C4_IMPOSSIBLY_LOW_SCORE, NULL);
67 g_message("Alignment score is [%d]", alignment->score);
68 Alignment_display(alignment, query, target,
69 EST2Genome_Data_get_submat(e2gd),
70 EST2Genome_Data_get_submat(e2gd),
71 NULL, stdout);
72 g_assert(score == alignment->score);
73 /**/
74 Alphabet_destroy(dna_alphabet);
75 C4_Model_destroy(est2genome);
76 Alignment_destroy(alignment);
77 Optimal_destroy(optimal);
78 EST2Genome_Data_destroy(e2gd);
79 Sequence_destroy(query);
80 Sequence_destroy(target);
81 Region_destroy(region);
82 return 0;
83 }
84
85