I use IteratedConvergence in my Rosetta Script. Is there a convenient way to monitor the number of cycles that that passed before the convergence? Would it be possible to have this value for the individual models in the score file, together with total_score etc.?
This brings a more general question - how to monitor/debug Rosetta scripts, e.g. track energy values, behavior of filters etc.
Thank you for suggestions & best wishes,
The number of cycles isn't added to the score file, but information about the cycles will be printed to the tracer output:
The Iterated convergence Mover *could* be altered to also store the number of cycles such that it comes out in the scorefile, but that would involve changing the C++ code.
Regarding the general problem of debugging, the Tracer output is normally the main way to monitor Rosetta runs. You can control how "chatty" tracers are with the "-out:levels" option - just specify which tracers you wish to see, and how verbose you want them (error/warning/info/debug/trace). e.g. "-out:levels all:warning core.init:info protocols.moves.IteratedConvergenceMover:trace"
Depending on how the various parts of Rosetta are written, you'll get more/less information. (For example, IteratedConvergenceMover only has output at "info" level and above. Setting it to debug or trace won't get you any more information.) Some parts of Rosetta will give you way more information you need, others will give you very little, even on high settings.
Aside from that, there's various debugging Movers in RosettaScripts, e.g. the DumpPdb mover.
Adding Filters with thresholds set high also can help sometimes, if they're set such that they report results to the tracer. (don't do confidence=0, though, as that will turn off evaluation altogether.) - Note that the value for Filters reported in the scorefile is the value for the *final* structure, not the value that was calculated in the middle of the protocol.
... So unfortunately there really isn't a general case debugging, it's somewhat dependent on what info you want to obtain, and what Rosetta objects you want to obtain it from.
thank you for the reply. By grepping the log files I found that IterationConvergenceMover typically converges before maxcycles is reached (this is what I wanted to know).