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