I'm at a loss of how to switch DockingProtocol().setup_foldtree to DockingProtocol().set_autofoldtree in the DDG script. A simple substitution clearly doesn't work; stating that it does not match the C++ signature.
Can someone post how to overcome this?
Many thanks,
Brett
Post Situation:
Try this:
dock = DockingProtocol()
dock.set_autofoldtree( True )
More generally, to get a better idea of how to use a particular function, you can use the ? operator in ipython. For example:
dock.set_autofoldtree?
Type: instancemethod
Base Class:
String Form: >
Namespace: Interactive
Docstring:
set_autofoldtree( (DockingProtocol)arg1, (bool)autofoldtree) -> None :
protocols/docking/DockingProtocol.hh:140
C++ signature :
void set_autofoldtree(protocols::docking::DockingProtocol {lvalue},bool)
This shows that the set_autofoldtree method requires a DockingProtocol instance (python takes care of this) and a boolean.
You can also try a very similar method in PyRosetta from rosetta.protocols.docking.setup_foldtree which requires a Vector1 argument containing the movable jumps. For example, using test_dock.pdb:
rosetta.protocols.docking.setup_foldtree( pose , "E_I" , Vector1(1) )