Heya,
I am new to Pyrosetta and attempting to implement the Cartesian delta detla G paper, however i am struggling a bit with it. There is already a tutorial on delta deltaG in the official tutorials, and from my understanding the differences to the Cartesian version are simply an initial relax with a different score function (ref2015_cart) and then backbone relaxes around the mutation site. This is kinda what i am struggling with.
How can i relax only a certain site + 2-5 sites around it?
thank you so much
Category:
Post Situation:
Hey!
I recently implemented the algorithm for the cartesian ddG (DiMaio, https://www.rosettacommons.org/docs/latest/cartesian-ddG), following the source code (https://github.com/RosettaCommons/main/blob/master/source/src/apps/public/ddg/cartesian_ddg.cc). In principle it does select the next sequential neighbors, allowing chi-relax and then the neighbors in space to do SC relax.
A note here: I didn't implement the interface mode which is in the original code. Also, this is the legacy version (see c++ code above) - but it should definitely solve your problem with the selection ;)
Another note: you can make the code a bit more easy and remove the repacking (which in the end is just a mutation) with this function (I just wanted to play a bit with ResfileCommandOperation: pyrosetta.toolbox.mutants.mutate_residue(repacked_pose, int(target_position), mutant, pack_radius=repack_radius, pack_scorefxn=sfxn)
Also, I did not compare the performance of it with the original C++ (this should def. be done) - so some errors might still be in the code - if you find them, I would appreciate a note!
Cheers,
Johanna
Hey Johanna,
thank you so much for your help! it is greatly appreciated. I looked over your code and the only thing i noticed was that
if max_iter:
fastrelax.max_iter(relax_iter)
you probably ment max_iter instead of relax_iter.
i also noticed that doing just 3 iterations is often not enough - at all for relax_iter. 100 gets me a much better and more reasonable score. do you see something similar? I am confused at to what the correct protocol is
also that github link doesnt work.
thank you!
cheers,
David
Hey David,
good catch! I copied the functions over and forgot to edit this one!
With the iteration of 3 (from the documentation), it is meant to call the mutate_repack_func4() function 3 times, in order to get statistics.
The max_iter value is with respect to the fastrelax cycles, so (as you mentioned) definitely more than 3! If you don't set the max_iter value, the default for fastrelax is used, which has been in our hands more than enough - but feel free to play around with it and vary it.
Yes, indeed, the github link only works if you are signed as Rosetta member in but you can see the origin of the file from the link and can check it out in your source code ;)
Hope it makes more sense now and reach out if it doesn't!
Cheers,
Johanna