RosettaCommons / PyRosetta.notebooks

Jupyter Notebooks for learning the PyRosetta platform for biomolecular structure prediction and design
https://rosettacommons.github.io/PyRosetta.notebooks/
MIT License
469 stars 151 forks source link

added loop modeling chapter + accompanying files #28

Open kathyle9 opened 4 years ago

vmullig commented 4 years ago

GenKIC should be fully configurable from PyRosetta. I know that @weitzner has done it. The current GenKIC tutorials (https://www.rosettacommons.org/demos/latest/tutorials/GeneralizedKIC/generalized_kinematic_closure_1, https://www.rosettacommons.org/demos/latest/tutorials/GeneralizedKIC/generalized_kinematic_closure_2, https://www.rosettacommons.org/demos/latest/tutorials/GeneralizedKIC/generalized_kinematic_closure_3, https://www.rosettacommons.org/demos/latest/tutorials/GeneralizedKIC/generalized_kinematic_closure_4) are for RosettaScripts, but there's an almost 1:1 correspondence between how you configure GenKIC there and how you configure it in PyRosetta.

jwillis0720 commented 4 years ago

Here is genkic in pyrosetta. I have pythonized GenKic into a class (https://github.com/jwillis0720/PyRosetta_helper/blob/master/pyrosetta_helper/GenKic.py) in my small library called PyRosetta_helper. I'm not sure where to put just pyrosetta code that may be helpful that acts as an independent library so I just have my own libraries. Would it ever be worth integrating those somewhere @jadolfbr ?

Here is a GK demo replicating vikram's tutorial. I'm not sure it would be described as an easy 1:1 mapping but the code base in c++ has a ton of getters and setters so it's not so bad.

https://github.com/jwillis0720/PyRosetta_helper/blob/master/tutorial/GK_Demo.ipynb https://github.com/jwillis0720/PyRosetta_helper/blob/master/tutorial/GK_Demo.ipynb

On Dec 24, 2019, at 11:58 AM, Jared Adolf-Bryfogle notifications@github.com wrote:

@jadolfbr requested changes on this pull request.

So - no one really makes a loop foldtree from scratch anymore. I would preface that section with this info. That we are reviewing how to manually create a loop foldtree to help the user understand fold trees, but generally one would use the foldtree_from_loops function that takes a loop object, a pose, and an empty foldtree:

protocols::loops::fold_tree_from_loops(pose, *loops, ft); pose.fold_tree(ft); protocols::loops::add_cutpoint_variants(pose);

The loops need cutpoint variants - in your notebook, you do this manually, which is fairly error prone. If you create the FT first, and then use the variants function, this is done automatically.

The rest of it looks OK - but fairly out of date. There has been much in the way of GenKIC from @vmullig https://github.com/vmullig and Next-Gen kic from the Kortemme lab. I'm not sure how to use them in PyRosetta, but they should at least be mentioned. I believe NGK is a mover, while the general setup of GenKIC is through PyRosetta scripts. There is documentation for these on the doc wiki, and I would add that to the bottom of the page. I would also add the NGK paper reference to the top and if @vmullig https://github.com/vmullig has a reference for GenKIC. Other than that, it looks good. I'll be able to go through it line by line after Christmas.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/RosettaCommons/PyRosetta.notebooks/pull/28?email_source=notifications&email_token=AAF5OKJKERIKLM27ELJVLQTQ2JEVVA5CNFSM4J63CKFKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCQFNLXA#pullrequestreview-336254428, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAF5OKMZH77AFR4CUMK4W3TQ2JEVVANCNFSM4J63CKFA.

vmullig commented 4 years ago

Nice! Thanks, Jordan!

On Wed, Dec 25, 2019, 4:09 AM Jordan Willis, notifications@github.com wrote:

Here is genkic in pyrosetta

https://github.com/jwillis0720/PyRosetta_helper/blob/master/tutorial/GK_Demo.ipynb < https://github.com/jwillis0720/PyRosetta_helper/blob/master/tutorial/GK_Demo.ipynb

On Dec 24, 2019, at 11:58 AM, Jared Adolf-Bryfogle < notifications@github.com> wrote:

@jadolfbr requested changes on this pull request.

So - no one really makes a loop foldtree from scratch anymore. I would preface that section with this info. That we are reviewing how to manually create a loop foldtree to help the user understand fold trees, but generally one would use the foldtree_from_loops function that takes a loop object, a pose, and an empty foldtree:

protocols::loops::fold_tree_from_loops(pose, *loops, ft); pose.fold_tree(ft); protocols::loops::add_cutpoint_variants(pose);

The loops need cutpoint variants - in your notebook, you do this manually, which is fairly error prone. If you create the FT first, and then use the variants function, this is done automatically.

The rest of it looks OK - but fairly out of date. There has been much in the way of GenKIC from @vmullig https://github.com/vmullig and Next-Gen kic from the Kortemme lab. I'm not sure how to use them in PyRosetta, but they should at least be mentioned. I believe NGK is a mover, while the general setup of GenKIC is through PyRosetta scripts. There is documentation for these on the doc wiki, and I would add that to the bottom of the page. I would also add the NGK paper reference to the top and if @vmullig https://github.com/vmullig has a reference for GenKIC. Other than that, it looks good. I'll be able to go through it line by line after Christmas.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub < https://github.com/RosettaCommons/PyRosetta.notebooks/pull/28?email_source=notifications&email_token=AAF5OKJKERIKLM27ELJVLQTQ2JEVVA5CNFSM4J63CKFKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCQFNLXA#pullrequestreview-336254428>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAF5OKMZH77AFR4CUMK4W3TQ2JEVVANCNFSM4J63CKFA .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RosettaCommons/PyRosetta.notebooks/pull/28?email_source=notifications&email_token=ABACZUHQQUZ7FMZNEK2WZJDQ2MPKLA5CNFSM4J63CKFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHUEPWI#issuecomment-568870873, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABACZUHFWFDZW6ETEPGOBCLQ2MPKLANCNFSM4J63CKFA .

jadolfbr commented 4 years ago

@kathyle9 - are you still wanting to add a section for loop modeling?

kathyle9 commented 4 years ago

@jadolfbr Hi. I'm sorry-- this fell off my radar recently. Yes, I think we should still have this section. I'll push some changes later today

kathyle9 commented 4 years ago

@jadolfbr Do you mind taking another look at the most recent version and see if there's anything else I should change? Hopefully the "FoldTree" section is more clear and informative now.

kathyle9 commented 4 years ago

These are really good points! Thanks for the feedback