angles = ff.create_angles(bonds)
dihedrals = ff.create_dihedrals(bonds)
Why is this last line so much slower than the others? It's sad, because
it takes up most of the time in the construction of a protein hierarchy.
It shouldn't be any slower than create_angles() - both iterate over all
bonds and extend them at one end (for angles) or both ends (for
dihedrals). How much is "so much slower"? Where does profiling say time
is being spent?