74 -
A[
f->head->index][
g->head->index]);
78 double wf(
double lambda,
double D_LR,
double D_LU,
double D_LD,
79 double D_RU,
double D_RD,
double D_DU)
90 meEdge *left, *right, *sib;
143 g =
f->head->leftEdge;
144 h =
f->head->rightEdge;
247 double wf4(
double lambda,
double lambda2,
double D_AB,
double D_AC,
248 double D_BC,
double D_Av,
double D_Bv,
double D_Cv)
250 return(((1 -
lambda) * (D_AC + D_Bv) + (lambda2 - 1)*(D_AB + D_Cv)
251 + (
lambda - lambda2)*(D_BC + D_Av)));
287 printf(
"%lf ",
A[
i][j]);
306 printf(
"Adding %s.\n",v->
label);
325 sprintf(e->
label,
"E1");
343 e_min =
T->root->leftEdge;
370 meEdge *sib, *par, *left, *right;
454 sprintf(nodelabel,
"I%d",
T->size+1);
457 sprintf(edgelabel,
"E%d",
T->size);
458 newPendantEdge =
makeEdge(edgelabel,newNode,v,0.0);
460 sprintf(edgelabel,
"E%d",
T->size+1);
461 newInternalEdge =
makeEdge(edgelabel,newNode,e->
head,0.0);
464 printf(
"Inserting meNode %s on meEdge %s between nodes %s and %s.\n",
476 T->size =
T->size + 2;
480 newNode->
leftEdge = newInternalEdge;
485 newNode->
leftEdge = newInternalEdge;
506 meEdge *sib, *left, *right, *par;
void printDoubleTable(double **A, int d)
void assignAllSizeFields(meTree *T)
double wf4(double lambda, double lambda2, double D_AB, double D_AC, double D_BC, double D_Av, double D_Bv, double D_Cv)
void GMEsplitEdge(meTree *T, meNode *v, meEdge *e, double **A)
void OLSint(meEdge *e, double **A)
void assignTopsize(meEdge *e, int numLeaves)
meEdge * siblingEdge(meEdge *e)
void updateSubTreeAverages(double **A, meEdge *e, meNode *v, int direction)
void GMEupdateAveragesMatrix(double **A, meEdge *e, meNode *v, meNode *newNode)
void testEdge(meEdge *e, meNode *v, double **A)
void GMEcalcNewvAverages(meTree *T, meNode *v, double **D, double **A)
double wf(double lambda, double D_LR, double D_LU, double D_LD, double D_RU, double D_RD, double D_DU)
void GMEcalcDownAverage(meNode *v, meEdge *e, double **D, double **A)
void assignBottomsize(meEdge *e)
meTree * GMEaddSpecies(meTree *T, meNode *v, double **D, double **A)
void GMEcalcUpAverage(meNode *v, meEdge *e, double **D, double **A)
meEdge * depthFirstTraverse(meTree *T, meEdge *e)
meEdge * topFirstTraverse(meTree *T, meEdge *e)
void assignOLSWeights(meTree *T, double **A)
void updateSizes(meEdge *e, int direction)
void makeOLSAveragesTable(meTree *T, double **D, double **A)
void OLSext(meEdge *e, double **A)
void fillTableUp(meEdge *e, meEdge *f, double **A, double **D, meTree *T)
meEdge * makeEdge(const char *label, meNode *tail, meNode *head, double weight)
meNode * makeNewNode(const char *label, int i)
#define NODE_LABEL_LENGTH
#define EDGE_LABEL_LENGTH
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
double lambda(size_t dimMatrix_, const Int4 *const *scoreMatrix_, const double *q_)
double f(double x_, const double &y_)
struct meEdge * rightEdge
struct meEdge * parentEdge
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)