
On 3/13/23 1:00 PM, Tom Goddard wrote:
I don't understand why the coordinate transform is slow. Are you doing it with a Python loop, one coordinate at a time?
Short answer: yes. Longer answer: RMF stores frames in a tree. A given node in that tree might have local coordinates. It might also have a transformation. So to get the global coordinates of a particular node we may have to apply multiple transformations, from multiple parent nodes. Currently in ChimeraX (and also in Chimera) we do a tree traversal in Python and apply the coordinate transform(s) one node at a time. We might be able to speed that up (e.g. cache lists of nodes that all get the same transformation, or make tree traversal in RMF faster, because that's pretty slow by itself) and that's something I'm looking at in the meantime. Ben -- ben@salilab.org https://salilab.org/~ben/ "It is a capital mistake to theorize before one has data." - Sir Arthur Conan Doyle