CCP4 output Presentation of program output to users The problem: Nobody reads anything Developers can’t be bothered to explain (and don’t know about tools available) We don’t have the tools (we need more) Users want a brief indication of success or failure, and suggestions of what to do next (repeat or go on). When things have gone wrong, they want more details to diagnose the problem
CCP4 output Logfiles with markup, processed with Baubles For loggraph (& Baubles::JLogGraph) $Tables For Baubles: $TEXT:Result: $TEXT:Reference: $TEXT:Warning Others that I don’t know about? What do we have now? Issues: What should we present to the user & how? What should be the technical implementation? Marking-up the logfile keeps (most) everything in one place, as opposed to deriving information from say XML. Mark-up should be minimally obtrusive to reading of plain text.
CCP4 output Graphing output Loggraph is pretty good: now also draws some of the plots from Scala which were aimed at xmgrace loggraph xmgrace Probably good enough: could simplify the syntax to eliminate the peculiar xmgrace commands These are plotted from separate files since they have too many points to go in the logfile
CCP4 output Baubles generates graphs using a Java applet (JLogGraph) written by Kevin Is there a case for having a single graphing program? JLogGraph could be run stand-alone as well as a plug-in, but currently lacks some of the features of loggraph (editing of styles, printing, xmgrace emulation, etc): further developments are possible Loggraph depends on blt, which is a cause of some grief in installation. Is Java a safer long-term dependency than TCL/Tk/blt? Java is not without its problems: not always available
CCP4 output A Good Thing about tailored plotting tools is that loggraph can plot against resolution in Å I would like a similar smart scheme to plot against batch number, allowing for breaks
CCP4 output What else do we need? For complicated logfiles, eg from Scala, we need something between the Result or Summary and the full logfile, so that if there are problems the user can drill down the hierarchy to the details. One model is the Sharp output, but that is implemented by a blizzard of html files, which is perhaps undesirable (a typical Sharp run generates a directory of >100 files). A suggestion: collapsible sections. How can this be implemented?
CCP4 output Agreement by resolution Explanation Agreement by resolution By 4SINTH/LASQ bins (all statistics use Mn(I+),Mn(I-)etc) ______________________________________________________________ N 1/d^2 Dmin(A) Rmrg Rfull Rcum Ranom Nanom Av_I SIGMA I/sigma sd Mn(I/sd) Nmeas Nref Ncent FRCBIAS Nbias $$ $$ For inline graphs use a Java browser Overall: Rmrg Rfull Rcum Ranom Nanom Av_I SIGMA I/sigma sd Mn(I/sd) Nmeas Nref Ncent FRCBIAS Nbias Rcum :- R-merge up to this range, Ranom :- Sum |Mn(I+) - Mn(I-)| / Sum (Mn(I+) + Mn(I-)) Rfull :- R-merge for fulls only, Nref :- number of independent hkl's SIGMA :- rms scatter of observations sd :- average standard deviation derived from experimental SDs, after :- application of SDFAC SDADD FRCBIAS :- Mean( Mn(If) - Ip )/Mean( Mn(I) ) for Nbias mixed sets only (If is a full if present, else the partial with the smallest number of parts) By 4SINTH/LASQ bins (all statistics use Mn(I+),Mn(I-)etc) ______________________________________________________________ N 1/d^2 Dmin(A) Rmrg Rfull Rcum Ranom Nanom Av_I SIGMA I/sigma sd Mn(I/sd) Nmeas Nref Ncent FRCBIAS Nbias $$ $$ For inline graphs use a Java browser Overall: Rmrg Rfull Rcum Ranom Nanom Av_I SIGMA I/sigma sd Mn(I/sd) Nmeas Nref Ncent FRCBIAS Nbias Explanation Agreement by resolution Plot graph Mock up of what it might look like
CCP4 output Designing the best presentation of results needs testing with users: there are many questions How best to present to the user what to do next? Other things: links to documentation etc Results tables (“magic tables”) maybe need to be a bit more flexible || specified eg non-numeric items We need some extra mark-up tags