next up previous contents
Next: Program output Up: Qs Previous: In more detail :   Contents

Interacting with the program

QS is definitely a non-interactive program. But there are two cases for which some interaction would have been useful.

The first is being able to watch the (slow) progress of the minimisations. This is easy : if you are saving a log file (as shown above), then you have everything you need for watching QS's progress. By far the easiest way for doing this is to use the program loggraph that comes as part of recent versions of the CCP4 suite of programs. If you have loggraph, then doing 13

loggraph LOG

should allow you to view graphs similar to those shown in all QS-related papers. A second (playful) way (for unix machines only) can be found in the Qs/extras/QsLOG directory of the QS distribution.

The second case that calls for some interaction with the program is best illustrated with an example : suppose that two hours after you've started your 18-dimensional minimisation the R-factor drops to 30%. But, alas, there are still 48,900,000 moves to go, which means that you will have to seat and wait for a couple of days (or weeks). Don't even think of killing the batch job and restarting the program with fewer steps : for the majority of annealing schedules this will lead to a different minimisation path, and the solution will be lost. So what do you do ? Here it goes : 14

killall -s TSTP Qs

What this will do is to instruct the program to (i) end the current minimisation, (ii) refine and save the best solution found up to the point that the signal was received, and, (iii) move-on to the next minimisation. If by any chance you want to do the same thing while running QS interactively (!), press CTRL-Z (which emits the TSTP signal).

If you do not have a unix machine, have patience.



Footnotes

... doing13
If you are on the ball, you must have noticed that redirecting the standard output definitely does not involve any interaction whatsoever with the program. But there you go.
... goes :14
NOTE WELL :
This command assumes that you run one and only one QS job. killall will send the signal to all running Qs processes that you own. If you are running more than one QS job, all of them will receive the signal, and all of them will end their current minimisation. In case of multiple QS processes, you have to use kill with a PID specification.

next up previous contents
Next: Program output Up: Qs Previous: In more detail :   Contents
NMG, January 2005