1 / 39

Andrew Leaver-Fay, PhD Baker Lab University of Washington

Andrew Leaver-Fay, PhD Baker Lab University of Washington. mini. Speed. Flexibility. Usability. O(N 2 ). Past. O(N) & O(N lg N). Present. O(k). Future. Speed. Flexibility. Usability. Speed. Flexibility. Usability. Speed. Flexibility. Usability. Speed. Flexibility. Usability.

Download Presentation

Andrew Leaver-Fay, PhD Baker Lab University of Washington

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Andrew Leaver-Fay, PhD Baker Lab University of Washington

  2. mini

  3. Speed. Flexibility. Usability. O(N2) Past O(N) & O(Nlg N) Present O(k) Future

  4. Speed. Flexibility. Usability.

  5. Speed. Flexibility. Usability.

  6. Speed. Flexibility. Usability.

  7. Speed. Flexibility. Usability. O(N2) Past O(N) & O(Nlg N) Present O(k) Future

  8. Model Protocol Pose pose; ScoreFunction * sfxn; Mover * mover; … MonteCarlo MC( sfxn ); … for i = 1 to X mover->apply( pose ); MC.boltzman( pose ); // 1 sfxn call, 1 pose copy

  9. Model Protocol Pose pose; ScoreFunctionOP sfxn; MoverOP mover; … MonteCarlo MC( sfxn ); … for i = 1 to X mover->apply( pose ); MC.boltzman( pose ); // 1 sfxn call, 1 pose copy

  10. a b a b O(N2)  O(NlgN) Scoring • Neighbor detection: O(N2)  O(N lg N) • NxN tables  sparse graph • Score terms left to themselves ScoreFunction evaluates terms for neighboring residue pairs* • O(N2) terms replaced with O(N) equivalents O(NlgN) O(N) O(N + k) O(N)

  11. EnergyMethod Hierarchy Count Range Context Dependcy

  12. Scoring Real ScoreFunction::operator()( Pose & pose ) const pose.update_residue_neighbors( info_ ); setup_for_scoring( pose ); for e = {u,v } pose.energy_graph() eval_cd_2b( pose.res(u), pose.res(v) ); if ( pose.moved_relative( u, v ) ) total += eval_ci_2b( pose.res(u), pose.res(v), e); else total += e; total += eval_cd_1b( pose ); total += eval_ci_1b( pose ); finalize( total ); return total;

  13. ScoreFunction as a Container • Holds EnergyMethods that the user wants evaluated • Input to • minimizer • pack_rotamers • rotamer_trials

  14. ScoreFunction as a Container • Holds EnergyMethods that the user wants evaluated • Input to • minimizer • pack_rotamers • rotamer_trials

  15. ScoreFunction as a Container • Holds EnergyMethods that the user wants evaluated • Input to • minimizer • pack_rotamers • rotamer_trials • OnTheFlyInteractionGraph • GreenPacker

  16. GreenPacker Reuses RPEs for groups of residues that aren’t moving wrt each other. For Example: Fixed-backbone ligand docking Fixed backbone protein docking

  17. GreenPacker Reuses RPEs for groups of residues that aren’t moving wrt each other. Prot/Prot CI 2B energies reused Prot/Prot CI 2B energies reused Prot/Prot CD 2B energies freshlycalculated Prot/Prot CD 2B energies freshlycalculated All Prot/Prot 2B energies freshly calculated

  18. GreenPacker Reuses RPEs for groups of residues that aren’t moving wrt each other. Prot/Prot CI 2B energies reused Prot/Prot CI 2B energies reused Prot/Prot CD 2B energies freshlycalculated Prot/Prot CD 2B energies freshlycalculated All Prot/Prot 2B energies freshly calculated

  19. GreenPacker Reuses RPEs for groups of residues that aren’t moving wrt each other.

  20. GreenPacker Reuses RPEs for groups of residues that aren’t moving wrt each other.

  21. GreenPacker Reuses RPEs for groups of residues that aren’t moving wrt each other.

  22. GreenPacker • User identifies residue groups that remain fixed wrt each other • 1st packing: • save rotamer internal geometry • save CI 2B energies • Subsequent packings: • Find correspondence between original rotamers and new rotamers based on internal geometry • Intra-group: • Reuse saved CI 2B energies for rotamers that have a correspondence • Compute fresh CI 2B energies for those that don’t • Compute CD 2B energies • Inter-group: • Compute all 2B energies

  23. ScoreFunction as a Container • Holds EnergyMethods that the user wants evaluated • Input to • minimizer • pack_rotamers • rotamer_trials • OnTheFlyInteractionGraph • GreenPacker

  24. ScoreFunction as a Container • Holds EnergyMethods that the user wants evaluated • Input to • minimizer • pack_rotamers • rotamer_trials • OnTheFlyInteractionGraph • GreenPacker • Enzyme Multi State Interaction Graph* • LoopScoreFunction* • LoopPacker* • Sidechain Minimizer*

  25. Minimization • update_domain_map: O(N) • setup_for_derivatives: O(N) • set_DOF + refold: O(N) • eval_atom_derivative: O(k) -- (Phil?) • score: O(N + k) Efficient to minimize all residues, inefficient to minimize one residue

  26. Output Sensitive Refold Problem: after m updates to the DOFs of an atom tree, refold. k = # atoms that move O(N+m): refold from root O(m2+k) (complicated) O(k+m): DFS -- Snoeyink set_chi

  27. Output Sensitive Refold DFS: Record each atom with a DOF change -- O(m) Mark each atom with a DOF change as “unreached” Start a DFS from each unvisited atom, stopping at atoms that have already been visited in the DFS. Mark reached atoms -- O(k) Refold from unreached atoms with DOF changes

  28. Output Sensitive Refold DFS: Record each atom with a DOF change -- O(m) Mark each atom with a DOF change as “unreached” Start a DFS from each unvisited atom, stopping at atoms that have already been visited in the DFS. Mark reached atoms -- O(k) Refold from unreached atoms with DOF changes

  29. Output Sensitive Refold DFS: Record each atom with a DOF change -- O(m) Mark each atom with a DOF change as “unreached” Start a DFS from each unvisited atom, stopping at atoms that have already been visited in the DFS. Mark reached atoms -- O(k) Refold from unreached atoms with DOF changes

  30. Output Sensitive Refold DFS: Record each atom with a DOF change -- O(m) Mark each atom with a DOF change as “unreached” Start a DFS from each unvisited atom, stopping at atoms that have already been visited in the DFS. Mark reached atoms -- O(k) Refold from unreached atoms with DOF changes

  31. Loop Modeling Example Step 33 Step 34

  32. O(k) minimization • “Sidechain minimizer” • Rotamer trials w/ minimization • Pre-minimize rotamers • Pre-minimize rotamer pairs* • Without modifying core::pack! • class RotamerOperation • class RotamerSetOperation

  33. When is mini done? • R++ functionality  mini functionality • Release?

  34. Plug for Roland Dunbrack’s Talk Tomorrow -0.2 0 0.4

  35. Acknowledgements Mini Community David Baker Brian Kuhlman Jeff Gray

More Related