--- /dev/null
+/******************************COPYRIGHT NOTICE*******************************/
+/* (c) Centro de Regulacio Genomica */
+/* and */
+/* Cedric Notredame */
+/* 12 Aug 2014 - 22:07. */
+/*All rights reserved. */
+/*This file is part of T-COFFEE. */
+/* */
+/* T-COFFEE is free software; you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation; either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* T-COFFEE is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with Foobar; if not, write to the Free Software */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+/*............................................... */
+/* If you need some more information */
+/* cedric.notredame@europe.com */
+/*............................................... */
+/******************************COPYRIGHT NOTICE*******************************/
+/*!
+ * Node of a Tree
+ */
+typedef struct
+{
+ ///number of this node
+ int name;
+ ///left child
+ int left;
+ ///right child
+ int right;
+// ///weight of the node
+// double weight;
+ ///position of the leafs during construction
+ int *index;
+ ///position of...
+ int *index2;
+ ///number of leafes below this node
+ int num_leafs;
+}
+Tree_fastal;
+
+
+
+/*!
+ * Saves all important paramters for the PartTree algorithm
+ *
+ */
+typedef struct
+{
+ ///Size of the ktup
+ short ktup;
+ ///power
+ short ng;
+ ///number of possible ktup
+ int tsize;
+ ///subgroup size
+ int subgroup;
+ ///File with the ktup tables
+ FILE *ktup_table_f;
+ ///Index of the positions in the ktup file
+ long *ktup_positions;
+ ///number of sequences
+ int num_sequences;
+ ///length of the sequences
+ int *seq_lengths;
+ ///threshold for filter
+ double threshold;
+ /*! \brief An Integer array to save the tree
+ *
+ * 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.
+ */
+ Tree_fastal *tree;
+ /// Current position in the tree
+ int pos_tree;
+}
+PartTree_param;
+
+
+
+//******************************* METHODS ***********************************
+
+
+//*********** ktup-distance ***************
+void makepointtable_fast(int *coded_seq, int ktup, int ng, int length);
+void makecompositiontable_fastal(FILE* tables_f, int *table, int *pointt, int length);
+void get_table(short *table, FILE *tables, long index);
+
+
+
+void make_fast_tree(char *file_name, int n, int ktup);
+int make_pos_len_index_of_file(char *file_name, char *ktable_f, long **file_positions, int **seq_lengths, int ktup, int is_dna);
+int make_pos_len_index_of_file_retree(char *file_name, long **file_positions, int **seq_lengths);
+// void ktup_one2all(FILE *seq_f, int* file_positions, int *least_similar);
+
+
+int **make_distance_matrix(FILE *table_f, long *file_positions, int *sequence_group, int number, int **dist_mat);
+int euclidean_dist(FILE* ktup_f, long pos1, long pos2, short *table1, short *table2, int length);
+int euclidean_dist_half(FILE* ktup_f, long pos2, short *table1, short *table2, int length);
+
+void partTree_r(PartTree_param *param_set);
+void partTree_retree(PartTree_param *param_set);
+void make_partTree(char *sequence_f, char *tree_f, int ktup, int subgroup, int is_dna, int retree);
+
+int filter(int *sequence_group, int **dist_mat, int *seed_set_cleaned, PartTree_param *param_set);
+int fast_aln2sim_mat2 (char *seq1, char *seq2);
+
+