uqrmaie1 / admixtools

https://uqrmaie1.github.io/admixtools
74 stars 14 forks source link

Zero drift edges #35

Open Agenetics opened 1 year ago

Agenetics commented 1 year ago

Hi,

Some of the drift edges after optimization (using GUI) show exactly 0 length drift edges. I know that in the classic qpgraph, such situations were to be avoided as it implied a non-existent edge. Setting the constraints in the shiny GUI to minimum drift length =1 for all edges does not change the outcome.

If qpgraph_multi_resampling is done with 100 bootstraps and it shows a range of say (0-3) for that particular edge, does it mean that the problem is irrelevant?

Is this important, and if yes how can it be fixed?

Thanks.

willright28 commented 1 year ago

Hi @Agenetics ,

I met the same question as yours. I found that this may occur when a geneticlly grouped population is separated into, say, several geographic populations for detailedly representing colonial/disperse history in a large spatiol scale, which means the several local populations lack of genetic divergence and then the edges we set that include these populations should not 'exsit'. I would like to know what kind of graphs did you set, or how did you solve this problem?

Thanks.

uqrmaie1 commented 8 months ago

Sorry, I missed that thread.

I don't think that a drift edge length of 0 is a problem, especially not after running the optimization over different topologies. If the optimization of branch lengths within a single topology results in a 0 branch length, it can indicate that a better fit would be achieved with a slightly different topology (maybe because the split order of three branches should be flipped around). The optimization across topologies takes advantage of that by making certain targeted changes to the topology around 0-length edges. If the resulting best fit still has 0-length edges, it suggests that there aren't any simple changes to the topology around that edge that would improve the fit.

I can't reproduce the problem in the shiny GUI unfortunately. Setting the minimum drift length for all edges works for me.