This is a test version of Biostars. For the public version, visit https://www.biostars.org.
I need to understand this image

http://www.sciencedirect.com/science/article/pii/S0303264798000331#FIG1

i need to understand Fig 1 in this paper please ... Can anyone help me ??

phylogenies

There's no image in your post.

i can't add an image here but i put paper link it is fig 1 in this paper .. please help me

Where is the image ???????

i can't add an image here but i put paper link it is fig 1 in this paper .. please help me

It's behind a paywall..

You've posted a link to the paper as an answer to your own question. Please refrain from doing so, as it A) Isn't an answer to your question (it's not at answer at all), B) Belongs in your question, C) Already is posted in your question and several comments and D) Makes it appear as this question has an upvoted (i.e. good) answer, which makes it a lot less likely for people to view your question.

I moved it to a comment.

Perhaps you should put a bit of a description of what the image is about in your question and title. That way people know straight away if they might be able to help you, rather than having to click through your question and into the paper.

The text explains it pretty well so it would be useful if you could precise what it is that you don't understand.

well , i need to understand it what is the difference between original distance Matrix,calculated distance Matrix ??

deeply .. what is the meaning of fig 1 in this paper ??

1 answer

The goal is to optimize the tree topology and the criterion used by the algorithm is the error between the distance matrix derived from the tree and the original distance matrix. The working distance matrix used to build the tree is derived from the original distance matrix plus a correction matrix as explained in figure 2. This correction matrix is obtained by the genetic algorithm described in the paper. So the process is:

  1. Generate a working distance matrix using genetic algorithm (either directly or as original + correction)
  2. Build a tree with the working distance matrix
  3. Calculate a new distance matrix according to Fitch and Margoliash (making use of the original distance matrix)
  4. Compute error between new distance matrix and original one.

1.Can i generate working distance directly from original distance ?? deeply ... generate random numbers and make

converge to original distance according to fitness function in this paper ??

  1. can i build a tree with the working distance matrix by neighbor-joining algorithm by PHYLIP ?

  2. How can i calculate a new distance matrix according to Fitch and Margoliash ??

You can initialize the working distance to a random matrix or by adding random perturbations to the original one and use the root mean squared deviation as fitness. The PHYLIP package allows you to compute several distance measures including Fitch and Margoliash and to build neighbour joining trees. Just read the documentation.

according to your indication, you said i will deduce new distance Matrix as output according to Fitch and Margolish(make use of original distance matrix) ... how can i do this ?? i know distance matrix used as input to fitch and Margolish or neighbor joining and output tree.

The topology of the tree is determined by the neighbour-joining method using the working distance matrix then the branch lengths of this tree are calculated using the original distance matrix according to the Fitch-Margoliash criterion.

Ok , i understood but i need only one other question ...

Do you mean i will construct the tree again by fitch Margolish using original distance ??

How to convert branches obtained from fitch Margolish to distance Matrix ??

well , i will do this task

please keep in touch ..... i will sure need your help again

i am so happy about your help

Thanks :)

please i need your help again i have my tree file using neighbor joining by working distance and other tree file using fitch Margolish by original distance How can i allocate branch lengths of fitch margolish to tree constructed by neighbor joining ?? to deduce new distance matrix according to your indication .

Once you have your tree from the Fitch Margoliash step, read it into R with the ape package and use the cophenetic.phylo() function or you can calculate it yourself from the new branch lengths.

So , what is his benefits from working distance now ??

i have constructed tree file using fitch Marglish by original distance

your previous indication was to construct tree using working distance by neighbor joining then construct tree using original distance using fitch Margolish then allocate fitch branches on neighbor topology .

The working distance matrix is used to define a tree topology. Given that topology, the branch lengths are calculated using the original distance matrix according to the Fitch-Margoliash criterion. Put another way: You don't build another tree. You use the tree from the first step and set its branch lengths using the original distance matrix while optimizing the Fitch-Margoliash criterion.
Once you've got these new branch lengths, you get the calculated distance matrix which you compare to the original one to determine its fitness in the genetic algorithm.

How can i calculate branch lengths using the original distance matrix according to the Fitch-Margoliash ?? what are the steps ??

Use the Fitch program from PHYLIP. If using R and have the PHYLIP programs installed, you can use the R interface from the Rphylip package. One of the options is to pass a tree to the program in addition to the distance matrix. If you do so, the branch lengths of that tree will be optimized according to the criterion selected.

Thanks so much i passed all steps and compute error between new distance matrix(according to fitch Margoliash) and original distance matrix , then optimized working distance (50 iteration ) and repeat the same steps, but found the same new distance matrix , surely the same error percentage where is my wrong ?? please answer me ... i really need your help.

Are you using a genetic algorithm like in the paper ? In a genetic algorithm, each generation (~ iteration) is a population of matrices from which you select some for producing the next generation. Here is a tutorial on GA. Unfortunately, the paper you started from doesn't give implementation details, only parameters used but it mentions the software they used.

i am using the same process but not genetic algorithm , i am using differential evolution algorithm written in Matlab and this is my code in differential evolution please tell me if i have any mistakes in DE implementation i am beginner in this part :

function [working_distance_after_50_itr] = working_distance_Matrix()

n = 5; %number of species

u = importdata('original distance.txt');

d = u(~~tril(u));

t = importdata('initial working distance.txt'); x = t(~~tril(t));

itr=input('Enter no. of generations: ');

F = 0.01; %Mutation factor

for j = 1 : itr

for i = 1 : length(x)

    %y = x;

    b = x(i);

    s = setdiff(x,b);

    r1 = s(randi(numel(s),1,1));

    b = [x(i),r1];

    s = setdiff(x,b);

    r2 = s(randi(numel(s),1,1));

    %b = [x(i),r1,r2];

    %s = setdiff(x,b);

    %r3 = s(randi(numel(s),1,1));

    c(i) = x(i) + (F * (r1 - r2)); %Mutant vector

end        





if fitness(c)>= fitness(x)    %selection step

    x = c;

end

end

g = tril(ones(n),-1);

g(~~g)=x;

working_distance_after_50_itr =tril(g,-1)+tril(g)';

function fitness_value = fitness(N)%fitness function

for k = 1 : length(N)

r(k)=((N(k)- d(k))/d(k))^2;

end

z = sum(r);

a = (n*(n-1))/2;

h = 1/(a-1);

fitness_value = 1/(100 * sqrt(h*z));

end

end

Sorry I am familiar neither with this kind of algorithm nor with Matlab.

Ok, but where is my wrong (in your opinion ) ??

I need your help in other thing ... please i need recent paper(2015-2016) that use optimization algorithm on phylogenetic tree(Distance Method) to compare my results ... i search many times but i only found methods like (Likelihood or Parsimony). please i really need it .

A quick look at the wikipedia article on differential evolution makes me think that this is not what you're implementing. For example, I don't see your starting population nor any crossover operator. I am sorry but I don't have time now to try and understand your code and understand the type of algorithm you want to implement. Also I am not following the literature on phylogeny anymore.

Are you sure i have to optimize working distance in (50,100,200,300,....) iterations and repeat the previous process ??

Log in to answer this question.