Vague Planning¶
Implementation¶
motivation¶
increase our ability to have technical collaborations. open science. spread the use of the rosetta energy model. fun and profit.
arbitrary reweighting. spatial, etc… rosetta can’t do that, and it would be hard to add. easy with everything more transparent and array based.
primitives¶
should be as simple as possible, arrays of primitives (atom, dipole, stub? Other?). For connectivity, simple, gpu friendly fixed-size adjacency lists? Are we ok with max 4 connections? If not, maybe boost graph. Easy to map to numpy - eigen homogeneous coordinates, could bitpack meta-data (atom type, etc…) in redundant fields like in rif.
nblist¶
Count pair ruins vectorizability? Maybe nblist needs to be baked in early…. Nonissue once nblist is there. Otherwise, do homogeneous calc then subtract? How bad would precision issues be? Could mitigate some by “softening” some atom pairs – eg N vs CA never generates too bad a clash. By res: ragged array style
Nblist Use getneighbors template func? BVH? Capsules? Make updatable within bounds like rosetta nblist? Would be efficient for mostly rigid bodies. For folding, talk to Rasmus Fonseca about chaintrees.
smart updating¶
Smart updates - at some point, will want a general purpose caching api for precalc data. Want to keep basic model as simple as possible, nblist, “domainmap”. Don’t need right away, but keep in mind. Precalc grids/etable could be part of this.
approximations¶
grid-based, interpolated and not. etables. reduced atom-type sets (fa-elec). FFT wtih dima
vectorization / GPU¶
should look into upcoming c++ parallelism TS… if there’s an early implementation, should probably use it. supposed to handle vectorization.
derivs¶
RBDL seems good. implementation follows Roy Featherston’s book. Have to ignore all the inertia stuff?
community involvement¶
goal should be to eventually make rosetta use this API(?) use new, cool energy function developments as a carrot.
would need permission to use dunbrack libraries. or just make new ones? gotta be something in scikit learn that would help. Maybe Nathan Kutz would be into this. Call it multiscale discrete dimensionality reduction.
Jeff grey would buy into this project, esp. If the python interface is nice… pandas compatible energy tables. Might be able to get Sergey to help out.
vjay pande wants the rosette energy functuon