lh3/hickit

Where can I find the algorithmic details?

renxwise opened this issue · 7 comments

3D reconstruction from contacts is nontrivial, so where can I find the algorithmic details behind hickit?

lh3 commented

Similar to nuc_dynamics, which is published.

The detailed design of nuc_dynamics can be found in the Supplementary Information (PDF) of Stevens et al. Nature 2017 (paper).

A major speed improvement of this repo is to use AVL tree to calculate repulsive forces (i.e. volume exclusion). This implementation can be found starting from this line in fdg.c. The nuc_dynamics counterpart can be found starting from this line of their code. As a result, 3D modeling is very fast in this repo.

Thanks for your replies. The speed acceleration is impressing.

Following your guide, I have gotten the main idea of the algorithm. But I still have a question. Is the repulsive force calculated for each pair of particles so that the replacement of AVL tree greatly accelerates the speed? Am I correct?

lh3 commented

Repulsive force is only calculated for particles close enough.

Thanks. I did not state clearly my point in the last comment. What I mean is that in nuc_dynamics each pair of particles are examined. But in hickit AVL tree is used to calculate only particles close enough. Is my guess correct?

lh3 commented

nuc_dynamics uses a kd-tree. I don't now why nuc_dynamics is slower.