Much faster coordinate building from angles. fastbuild is more than 300 times faster with autograd on than the default routines for a 437 residue protein (and scales better). It uses parallel matrix operations and a logarithmic building of the backbone. Should be straightforward to define alternative sidechain geometries.
This is a pure python implementation. A C++ implementation only improved speed about 10% and I decided that wasn't worth the extra complexity and opacity to pytorch tools.
Todos
[ ] Need to implement backward pass of MakeSCCoords. Once this is done, switching to use this custom autograd function should improve speed by an additional 3X
[ ] Need to fill in all the necessary information to build sidechain hydrogens in sc_all_atom_build_info. This is essential in order to get the desired orders of magnitude speed ups when constructing full protein for openmm
[ ] Need to deal with terminal atoms (e.g. OXT). In theory this can be implemented in the existing framework by creating C and N terminal residue types with their own sidechain definitions, but since it's only a couple residues a manual solution is probably acceptable, if less elegant.
[ ] Tests need to be written.
[ ] Batched versions of these functions might provide some additional performance benefit.
Questions
[ ] Why can't sidechainnet angles be appropriately oriented to begin with (instead of having to shift by pi?)
Status
[ ] Ready to go. Seriously, swap this in ASAP (need hydrogens) so training can be that much faster.
Description
Much faster coordinate building from angles. fastbuild is more than 300 times faster with autograd on than the default routines for a 437 residue protein (and scales better). It uses parallel matrix operations and a logarithmic building of the backbone. Should be straightforward to define alternative sidechain geometries.
This is a pure python implementation. A C++ implementation only improved speed about 10% and I decided that wasn't worth the extra complexity and opacity to pytorch tools.
Todos
Questions
Status