Next version of JABA
[jabaws.git] / binaries / src / tcoffee / t_coffee_source / fast_tree_header.h
1 /*!
2  * Node of a Tree
3  */
4 typedef struct
5 {
6         ///number of this node
7         int name;
8         ///left child
9         int left;
10         ///right child
11         int right;
12 //  ///weight of the node
13 //      double weight;
14         ///position of the leafs during construction
15         int *index;
16         ///position of...
17         int *index2;
18         ///number of leafes below this node
19         int num_leafs;
20 }
21 Tree_fastal;
22
23
24
25 /*!
26  * Saves all important paramters for the PartTree algorithm
27  *
28  */
29 typedef struct
30 {
31         ///Size of the ktup
32         short ktup;
33         ///power
34         short ng;
35         ///number of possible ktup
36         int tsize;
37         ///subgroup size
38         int subgroup;
39         ///File with the ktup tables
40         FILE *ktup_table_f;
41         ///Index of the positions in the ktup file
42         long *ktup_positions;
43         ///number of sequences
44         int num_sequences;
45         ///length of the sequences
46         int *seq_lengths;
47         ///threshold for filter
48         double threshold;
49         /*! \brief An Integer array to save the tree
50         *
51         * Always three fields in this array belong together. The first two denote the number of the children the third one the number of the current node.
52         */
53         Tree_fastal *tree;
54         /// Current position in the tree
55         int pos_tree;
56 }
57 PartTree_param;
58
59
60
61 //*******************************   METHODS   ***********************************
62
63
64 //*********** ktup-distance ***************
65 void makepointtable_fast(int *coded_seq, int ktup, int ng, int length);
66 int makecompositiontable_fastal(FILE* tables_f, int *table, int *pointt, int length);
67 void get_table(short *table, FILE *tables, long index);
68
69
70
71 void make_fast_tree(char *file_name, int n, int ktup);
72 int make_pos_len_index_of_file(char *file_name, char *ktable_f, long **file_positions, int **seq_lengths, int ktup, char* type);
73 // void ktup_one2all(FILE *seq_f, int* file_positions, int *least_similar);
74
75
76 int **make_distance_matrix(FILE *table_f, long *file_positions, int *sequence_group, int number, int **dist_mat);
77 int euclidean_dist(FILE* ktup_f, long pos1, long pos2, short *table1, short *table2, int length);
78 int euclidean_dist_half(FILE* ktup_f, long pos2, short *table1, short *table2, int length);
79
80 void partTree_r(PartTree_param *param_set);
81
82
83 int filter(int *sequence_group, int **dist_mat, int *seed_set_cleaned, PartTree_param *param_set);
84 /*********************************COPYRIGHT NOTICE**********************************/
85 /*© Centro de Regulacio Genomica */
86 /*and */
87 /*Cedric Notredame */
88 /*Tue Oct 27 10:12:26 WEST 2009. */
89 /*All rights reserved.*/
90 /*This file is part of T-COFFEE.*/
91 /**/
92 /*    T-COFFEE is free software; you can redistribute it and/or modify*/
93 /*    it under the terms of the GNU General Public License as published by*/
94 /*    the Free Software Foundation; either version 2 of the License, or*/
95 /*    (at your option) any later version.*/
96 /**/
97 /*    T-COFFEE is distributed in the hope that it will be useful,*/
98 /*    but WITHOUT ANY WARRANTY; without even the implied warranty of*/
99 /*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*/
100 /*    GNU General Public License for more details.*/
101 /**/
102 /*    You should have received a copy of the GNU General Public License*/
103 /*    along with Foobar; if not, write to the Free Software*/
104 /*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/
105 /*...............................................                                                                                      |*/
106 /*  If you need some more information*/
107 /*  cedric.notredame@europe.com*/
108 /*...............................................                                                                                                                                     |*/
109 /**/
110 /**/
111 /*      */
112 /*********************************COPYRIGHT NOTICE**********************************/