biomcmclib
0.1
low level library for phylogenetic analysis

distance matrix, that can be used in alignments and trees, and patristicdistance based species distances More...
#include "hashtable.h"
Go to the source code of this file.
Data Structures  
struct  distance_matrix_struct 
struct  spdist_matrix_struct 
Typedefs  
typedef struct distance_matrix_struct *  distance_matrix 
typedef struct spdist_matrix_struct *  spdist_matrix 
Functions  
distance_matrix  new_distance_matrix (int nseqs) 
creates new matrix of pairwise distances  
void  zero_lower_distance_matrix (distance_matrix dist) 
specially in gene/sptree distance methods (GLASS, STEAC, etc.) lower is used for means and upper for min. This function resets matrix elements  
void  transpose_distance_matrix (distance_matrix dist) 
invert lower and upper diagonals of matrix (since some functions like upgma expect upper, etc.)  
void  del_distance_matrix (distance_matrix dist) 
releases memory allocated to distance_matrix (this structure has no smart ref_counter)  
spdist_matrix  new_spdist_matrix (int n_species) 
void  zero_all_spdist_matrix (spdist_matrix dist) 
void  finalise_spdist_matrix (spdist_matrix dist) 
void  finalise_spdist_matrix_with_rescaling (spdist_matrix dist, double scale) 
void  complete_missing_spdist_from_global_spdist (spdist_matrix local, spdist_matrix global) 
void  copy_spdist_matrix_to_distance_matrix_upper (spdist_matrix spd, distance_matrix dist, bool use_means) 
void  del_spdist_matrix (spdist_matrix dist) 
void  fill_species_dists_from_gene_dists (distance_matrix spdist, distance_matrix gendist, int *sp_id, bool use_upper_gene) 
updates distances between species based on genes and genetospecies mapping, with min on upper and mean on lower diagonal  
void  update_species_dists_from_spdist (distance_matrix global, distance_matrix local, int *spexist) 
update global (over loci) species distances besed on local (within locus) species distances  
int  prepare_spdistmatrix_from_gene_species_map (spdist_matrix spdist, int *sp_id, int n_sp_id) 
void  fill_spdistmatrix_from_gene_dists (spdist_matrix spdist, distance_matrix gendist, int *sp_id, bool use_upper_gene) 
void  fill_spdistmatrix_from_gene_dist_vector (spdist_matrix spdist, double *gdist, int n_gdist, int *sp_id) 
initialise spdist_matrix with patristic distances from gdist vector of size n_gdist (1D)  
void  update_spdistmatrix_from_spdistmatrix (spdist_matrix global, spdist_matrix local) 
distance matrix, that can be used in alignments and trees, and patristicdistance based species distances
These functions don't know about trees/topologies: topology_common.c creates the actual patristic distances, and downstream software or genetree.h should decide how to use this information
void zero_all_spdist_matrix  (  spdist_matrix  dist  ) 
zero both mean[] and min[] since we only look at average (never min) across loci