A WORKSHOP ON GRAPHICAL USER INTERFACES
FOR SYNCHROTRON PROTEIN CRYSTALLOGRAPHY
Brookhaven National Laboratory 19-21 March 1995
------------------------------------------------------------------------
Welcome and opening remarks
Denis Mc Whan, Associate Director Basic Energy Sciences, BNL
------------------------------------------------------------------------
Interface Design: Guidelines, Practices, and Questions to Ask
Brad Blumenthal, Elec. Eng. and Comp. Sci. Dept., Univ. Ill. at Chicago
brad@eecs.uic.edu
Subtitle: HBI human-beamline interaction
Outline:
Fundamentals
Literature
Standards and consistency
Human-computer techniques
prototyping and evaluation
Suggestions for beamline interfaces
Design outside the box. design for the environment
Design for the handicapped
Ignore the experts
Literature
Schneiderman Smith and Moiser Making it macintosh
Wruman: Information and anxiety: organizing and understanding
Norman: Psych of everyday things: affordances and feedback
Laurel, Brenda: specifics of design
Will focus on how to present information
Define affordance
Approach a multidisciplinary audience
The Literature --
Wurman: Information Anxiety
Five ways of organizing information
category
location
continuum for comparisons
alphabetical
temporal finite duration
Information vs. understanding
An acre is .... Can you pace out an acre?
Norman: psychology of everyday things.
Gulf of execution and affordances
Gulf of evaluation an feedback
Execution
form a goal: get something in you head
find an affordance: find a handle on accomplishing the goal.
vertical vs horizontal handle. (jj gibson)
two hands separated to provide safety
perform an action:
Evaluation
perceive a change
interpret your perception
match interpretation to goal.
Brenda Laurel Art of human-computer interface design.
Prototyping and evaluation technique examples.
"whole-product interface"
multi-disciplinary cooperation.
There are two disciplines: operators, experimenters.
Maybe even subsets of each.
Standards
These are religious wars
There to establish consistency within a context.
Define the community of users: operators, users, chemists, x-
tallographers.
Consistency:
This is the root of guidelines. Carry one into unfamiliar
circumstances.
Example: He can program his mac to look like emacs or like photoshop.
Choose whichever based on the context.
Highly dependent on context.
HCI technique.
Observe: need to know community of practice, what they are like.
Design and prototype: Use paper -- easy to throw away.
Evaluate: again and again!
Implement: put into code, try it and refine.
Evaluate
Refine
Repeat....
Evaluation techniques:
User observations
PNAMBC studies -- "pay no attention to that man behind the curtain".
You play the role of the computer.
Observational
With friends in vitro
In situ -- after 4 days on the beamline. Test on a
certified idiot.
Longitudinal studies -- see how they become expert.
Evaluation tools:
Don't use introspection -- don't think about what YOU do. Test negative
stuff!!
Notes: Write down what you see.
Audio/video tape. See how they use it. Video is better.
Write logging software -- meter it. record every user click and time-
stamp it.
Think-aloud protocols. make the user tell you what he's thinking about
as he uses it.
Problem -- these all degrade performance. One could do post-hoc
analysis -- debrief the user from video record.
Evaluation set-up:
Make it realistic -- tired, stressed
In situ, if possible
Video
Running a study:
Smile and nod!
NEVER explain. (enough said)
Write canned prompts: "What else did you expect to see."
Remember -- the software is being tested, not the user.
Prototyping techniques
Lightweight prototyping (sequencing)
Write a scenario, storyboard, screen design.
Paper prototype PNAMBC interactivity.
Middleweight prototyping (interactivity)
SuperCard, Director, ToolBook, etc
If it's useful, scan in your paper design
Development (bullet-proofing)
Refinement of a scheme:
Specify (implement) prototype (evaluate) problems (think) specify again.
Hartson and Hix:
During analysis, figure out what was missing, where it should go,
then do it.
Keep track of design decisions (good notebook).
Summary of HCI technique
Evaluate-implement cycle often
Identify users by community.
The user is always right!!
No user error, just bad design.
Make fast lightweight cycles of testing.
Suggestions for beamline interfaces
Design outside the "box" (computer)
What is the BEST solution; don't be limited by available software
or hardware.
Design for handicapped
Ignore experts.
Design the whole experimental environment!
Answers are not always on line!!! (For example, a checklist on computer
isn't good -- one needs paper)
Connect on-line world to off-line world.
Make interface reflect the structure -- blue book <=> blue panels in
GUI.
Communication with the user:
Design should communicate affordance and feedback
Designs could facilitate experimenter/operator communication
(communication between two distinct communities of user).
Let operator and experimenter communicate on their own terms.
Design for handicapped:
Newell's handicapped soldier -- deaf, blind, mobility impaired -- scared
Sleep deprivation -- short-term mem., longterm, inaccuracy,
irritability.
People running expts have Alzheimer's.
Techniques for handicapped:
Front-load cognitive tasks
Color code things that need to be done together.
Constraints -- make sure necessary steps are done in order.
Fill in the blank -- make each blank show what's required and
which is optional.
Ritual
Ritual vs Habit: Thoughtful repetition of unnecessary vs.
thoughtless repetition of necessary.
Ignore the experts
Bad news
They have techniques, but not answers.
They don't understand the beamline. Make them use it.
Good news
The beamline comm. of practice has the answers. Do what is
necessary and what works.
Summary
Skim Wurman, Read Norman, Pick and choose from Laurel
Observe, prototype, test, refine, evaluate, repeat,...
Design the "environment" Reflect this in the interface. Acknowledge
the handicaps of the interface.
------------------------------------------------------------------------
Statement of the problem, Charge to the workshop
Steve Ealick, Cornell
SR Beamtime is a limited resource. The quality of synchrotron data is often
compromised by unfamiliar procedures.
Solution: Create a standard GUI that allow the user to design, preform and
evaluate a crystallographic expt. Allow traveling scientists to see similar
thing each place.
Considerations for GUI design
Reduce training effort
Increase beamtime efficiency
Increase flexibility
Standardize GUI appearance
Minimize user errors
Produce better data
Expand opportunities for non-specialists
Functions
Control station alignment
Create exptl. strategies
Setup and control expts.
Evaluate data
View images
Assign hkl indices
Integrate data
Tabulate statistics
Calc and display eln' density
Monitor progress of expt.
Trouble shoot
Questions
What functions from GUI?
What is minimum set of truly common features?
What info. to pas on mmCIF?
What is final product data: hkl F sig?
Who will do the work?
How do we incorp. existing software?
What do we do next?
------------------------------------------------------------------------
Jim Pflugrath, Molecular Structure Corp.;
Go back to EEC workshops. Bricogne got a eureka grant.
Goal was to get programs to look and act the same.
On commercial side -- ideas are different.
Users span wide range of expertise Best sol'n: don't let user collect his own
data!!
There should be 2-3 people per beamline to do the work.
The GUI becomes a real person.
If you need a GUI, can it be just one button?
Tower of Babel syndrome -- Experiences from one facility didn't transfer to
another one.
Get rid of it by working on making things the same. Think of driving a rental
car: You expect to find certain things in certain places.
Once we get standards, do we write our own, do we write pieces? Will
everything be one-off? How can we share?
Cooperation or competition -- neither is bad!
Do we talk about beamline operator or user? He (MSC) focusses on the user!
Even though beamlines ar different, could define similarities and put
components together.
At old EEC workshop -- had haves and have-nots (Those with programs and those
who wanted them).
Details -- do we make a slits widget, a monochromator widget, or do we each do
these in his own way?
Can we see how to reuse code?
I've used WordPerfect must use MSWord now. They're not the same! It's like
using different synchrotrons. We want our code to distill to what users can
use.
------------------------------------------------------------------------
Bob Sweet, BNL
We notice a dichotomy:
X-ray beams are getting hotter and the equipment to use them is becoming
more complicated.
But, potential users are becoming both more numerous and less
experienced.
There is a tremendous need to make the user interface to these facilities as
easy to use as possible.
We want to build GUIs to drive the entire expt. The chief motive is to assure
first the quality and then the quantity of the data that are produced.
The experimenter must be able to control the measurements and to assess the
merit of the results in ways he can understand and control.
We want to consider the function that the user wants to perform and the sort
of software that these fucntions demand:
THE GRID OF CONTROL!
FUNCTION --> BEAMLINE DATA DATA
| CONTROL ACQUISITION REDUCTION
v
Check status Check crystal Check the start
INTERFACE TO Fix problems Choose strategy Monitor
USER Choose wave- Take the data progress
length Check the result
Alignment Setup (etc!) Generic data
CENTRAL CONTROL Monitoring Iterate reduction
Monochromator Monitor
Goniometer
DRIVERS/ Motors Shutter Disk
DEVICES Counters Detector Network
FAST Disk
Then these must be integrated into an accessible package. Can we define
common themes and establish standards for beamline interfaces?
------------------------------------------------------------------------
The MARMAD/OptiX GUI at NSLS X12-C
John Skinner, Biology Dept. BNL
The Fundamental Concept:
These were all command-line-driven programs; we have produced a GUI that
simply constructs text commands and pipes them to the program. In every case
the original programs can still be run on their own -- with no GUI!
The Data-collection System:
Beamline Hardware:
A MAR Research 300mm imaging-plate scanner mounted on the theta arm of
an Enraf-Nonius FAST (CAD-4-style) Diffractometer.
Standard beam-line stuff -- alignment table, counters, monochromator
drive.
The diffractometer is controlled by a many-process system, all under control
of a GUI:
MAR detector drive -- MARdc
Diffractometer drive -- madnes
Image transformation process -- IPXform
Our GUI forks off madnes; communicates with pipes that link standard i/o
channels.
The layout of the GUI matches the tree structure of madnes.
Each level relates to different parts of data collection and analysis.
There is a "standard" menubar to give file control and to direct to other
levels.
Other features:
Scrolled text window for text output, including an adjustable paned
window.
Command line for conventional text input.
Levels that are most used are DET and COLLECT. Both show Datum parameters and
status of MAR scanner --
Sliding bar to time exposures, erasures, etc.
Color coding to show step in the process.
DET (immediate control)
Set Diffractometer
Test exposures -- either oscillation images or stills. Choose
detector size: 180mm or 300mm
COLLECT (Programmed image recording -- Most users use denzo and mosflm
for data analysis.)
Chart to set up multiple sweeps of data
Useful to distribute data to several disks
Can do "Friedel Flip" data collection automatically
Will eventually program for multi-wavelength.
Data collection in progress: Io is being measured by Optix as an exposure is being taken.

Other sections -- mostly "charts" for examination and input of parameters:
Find reflections for indexing
Index
Refine parameters
Predict a pattern
Display of images and predictions with Daresbury graphics routine.
Beamline Control Program -- OptiX and Ace/GUI
OptiX is a subset of a larger prgram used by beamline personnel for all
motors: The Ace/GUI -- GUI controlling the motor-control program ACE.
The Ace/GUI program is similar to madnes GUI in layout and architecture:
Scrolled text output
Command-line window.
Menubar to direct control
The GUI is general and can be used at any beamline that uses Ace. Ace has a
macro facility.
OptiX is an interface to macros written specifically for X12C.
It gives users only what they need: minimize errors by limiting capabilities
Two main operations at X12C
Realign after reinjection = adjust slits and table
Can use scans with optimization or our invention: the Tweak Box
There's a "Realign" button that does 4 linked scans.
Realignment in progress with a vertical scan being performed.
Change wavelength
Direct move
Do scans
Analyze absorption spectra for inflection and peak.
Analysis of a scan of wavelength showing fluorescence from a heavy atom.

Another important feature is that OptiX communicates with madnes directly:
When the wavelength changes, this is recorded by madnes.
OptiX can control the x-ray shutter that is ultimately under madnes
control.
We have all our beamline documentation on the WWW. It's especially useful for
users to look at before coming to BNL.
Lessons learned over the last couple of years:
-- Use a builder = BuilderXccessory = BX
-- Try to watch the users use the program
-- Don't expect users to follow instructions or read documentation!
-- Anticipate and protect against errors -- for example, an attempt to
realign w/o the beam
All this is well worth the effort. Users are more confident and relaxed and
things are more reliable.
------------------------------------------------------------------------
The Daresbury user interface PXGEN and the use of UIM/X
Steve Kinder, Daresbury Laboratory
Hardware at their beamline -- 4-circle goniometer, MAR scanner, indigo, vme
crate for expt. control, a file/compute server, 4gb of disk, backup tape. All
this bridged to network.
PXGEN
Designed to be general xtallog data-acquis.
Motif-based GUI
Build using uim/x
Uses BNL modified madnes and ADSC MAR control software
Client-server (BNL) model
Development reasons
Wanted to move from single-process data acquis. and expt. control. But,
in multi-process platform, need something to hide complexity.
Wanted to drive everything from the one mode.
Has separate windows for each control and status function.
They're able to iconize their command/scroll portion of the interface
Lots of use of grey-outs to turn off useless commands.
Extensive use of pop-up menus rather than a table.
Has a slider to show how many exposures have been taken.
Lots of choice of units -- mm, cm, m (maybe too many choices).
Has some functions password protected.
Future
Auto table align
Auto x-tal align
Control of 2theta
Display of images
Exafs scan
Improve status interface
Improve mar control interface feedback
Temp control
Allow gaps in data
Take a still
Auto. mono calib.
More intuitive interfaces for mirror posit., x-tal align, beampipe
adjust
VME control of Enraf goniometer
Dose-mode data
Drive MAR base and rot'n axis with this gui
------------------------------------------------------------------------
X-GEN and the Cirius2 Environment
Andy Howard, Molecular Simulations, Inc.
Cirius2 application environment
Integrate scientific methods
Modular for extensibility and prototyping
Client/server support in heterogeneous networks.
Complete development environment
algorithm
user-interface tools
interactive graphics
system services
Modality vs. amodal -- First - timing defined by events, latter,
determined by user.
They try to be amodal to give user control.
User view -- look at 3 or 2-d data in several ways
The Application-view user interface talks to external and internal stuff.
Cerius 2 user interface
Natural separation of algorithms and interface
Appearance controlled through ascii def. file
Command-mediate interaction with application - script loggin and replay.
This is a dialect of TCL.
Amodal env. puts user in control
Network support
Client/server links -- not just x-windows
Fully heterogeneous networking
Detach / reattach application tasks
User-selectable server nodes at run-time
X-acquire GUI
Work: a total of 9 hours writing this.
Shows gui-def language file -- lots of obscure text
Application def. language file equally obscure
Various panels for each process.
Uses a "card deck" to choose panels.
Choose detector/goniometer type with pop-ups.
Lots of possibilities.
Fonts rescale with panel rescaling!!!
------------------------------------------------------------------------
The MAR Research/ADSC Software
Chris Nielsen, ADSC, San Diego
MARDC, IPXFORM, etc.
There are two GUIS for controlling the expt. and taking data. Two more for
handling data-reduction.
Made with BX
Andy Arbeit wrote one. The processing GUIs are new motif-based software to
control denzo and mosflm.
There's an overall control box with 4 buttons to choose step in the process.
There's a status box, including prediction of completion times, etc. How much
disk space.
There's a manual control window.
There's a snapshot window with a dummy file name that prevents file overwrite.
The setup window can be saved. Chose anything you want, including comment.
The Image-display stuff is like xvip: very nice! arbitrary cuts. nice grey-
scale adjustment.
Data reduction:
Denzo interface -- documentation at the bottom. Uses Properties boxes like
BNL.
Captures stuff from output and puts it into a table.
There's a refinement-scheme table too.
The scaling routine provides push buttons for control of which paramaters
should be varied, again like BNL's MADNES.
Can run interactively or batch -- Gui helps for both!
------------------------------------------------------------------------
Plans at ESRF for a common data-acquisition software
Francis Epaud, ESRF Experiments Division Programming Group (EXPG)
Device-server model
Unified model to access devices
Object oriented
Each device is an entity with its own data and behavior and a unique
name
Classes written in C
Classes are derived from a root class and can be combined
Class contains descriptions of the device and the methods to apply to it
Classes are accessed by a single APE
Device
Can be a physical component (motor, encoder,..) ensemble of components,
or logical device (linac, )
Has a unique name: /domain/family/member
ex. ids/slit/1
Resources to define setting (static database)
device_name/res_name
ids/slit/1/hgap = 12.5 ..
Controlled by commands devstop, demove ,
Has its own state handler
Server
Handles the device
Process that offers services for clients who want to access the served
devices
Acts as a daemon waiting for command
Uses rpc for client/server commun.
At startup the server exports names of devices it serves and also the IP
number of the host where it runs to a manager called "network manager"
Client
High level process for user interface and to access the server
At startup the client imports devices it wants then communicates
directly with the server
Communication is nicely organized. Each device defines itself from databases.
Conclusion:
Advantages
Unified API (?), easy to understand
Not necessary to know rpc programming
Fully distributed architecture
Runs on a lot of platforms
Well adapted for slow control
Problems:
Not deterministic ( > 10 ms)
Client/server = master/slave
No asynchronous call from server to client -- must poll!
Some clients :
Slits control (x11/motif gui_)
Vacuum control
Beam shutter control
Ipc (image acquisition)
SPEC
KHOROS image-processing freeware
can be used for control
glyph development
Main control panel
synopsis of the beamlines
some controllable ares
cal other applications - slits, attenuator, spec
display main params of beamline.
Nice icons to describe functions in the GUI
Graphics to show beam status and hook into beam steering, tuning, etc.
Modular data-acquisition system
This avoids rewriting all the software for each acquisition system
One has a scalable architecture
Easily increase functionalities -- data reduction, transfer
Easily increase performance (cpu, number of cpu's
Hardware independent
Uses standards:
unix, posix, os9
C
x11/motif
psd sockit , tcp/ip, rpc, nfs
vme vxi
motif style guide.
Acquisition memory structure
Try to structure it for collection of images of various sizes.
Data access still has to be hardware dependent.
ONLINE display
Visualize raw data in the Acq. Mem.
2D integer data only
Use x11/motif
Complete control over generalized image.
Want to approach 1 image/per sec.
------------------------------------------------------------------------
EPICS and beamline control at the APS
Harvey Rarback, CARS, U. Chicago
EPICS: Experimental Physics Industrial Control System
A bunch of people are using it -- telescopes have adopted it.
Has a lot in common with ESRF system: Inherently distributed.
Based on a distributed run-time database.
A set of objects(records) with associated fields.
Database runs on real-time unix kernel -- autonomous.
Can control expt. without external control.
Beamline user drives it.
Although control of the accelerator is pretty much fixed, expt. is diferent --
may change rapidly.
Components that come with EPICS:
display manager
alarm manager
archiver
sequencer
C applications.
There is no polling -- when data change, everyone is told.
Database resides on server - now only motorola crate computers.
Client machines can be anything almost.
Advantages
Distributed
Many work stations talk to same ioc (?) and devices
Only one cable to expt.
Scale: add cpus easily
Share development with CATs and facilities
APS accel, APS beamline, LANA accel, CEBAF accel, DESY accel
Good tools for creating simple displays (MEDM)
Can download time-critical code into VME crate
Can easily run other applications (IDL, SUPER, SPEC, WINGZ) on work-
station and talk to crates.
Disadvantages
Big hump in learning curve -- not trivial to learn.
Attributes
EPICS is not the aps control system Just tools.
Minimizes custom coding
Uniform operator interface
Event driven, no polling
High performance
Process >5000 records per second
------------------------------------------------------------------------
Data reduction: What do we need, a GUI or a Text Editor?
Wladek Minor, Purdue University
A problem for most crystallographic expts:
Make software solve hardware questions
Make hardware solve software problems
What is the point -- a Graphical User Interface is really an i/o tool that
allows the user to concentrate on the expt. with little concern about how to
run software
We need a better judgement of the data -- what is good and how do we fix it if
it's not?
Need to verify that everything is working ok
Experiment
alignment
strategy
feedback-> processing: this processing guides the experiment
automatic processing requires a "header"
Tried auto processing -- got 3.8% on 1.7Ang data. It was wrong -- the key was
that there were lots of rejections.
The GUI (image-display program) was misleading, except that it confirmed that
the data-red'n had done the best it could.
------------------------------------------------------------------------
GUI Construction with AVS: Integration of CCP4
David Wild, The Salk Inst.
This discussion is of the use a data-flow visualization environment: AVS
(application visualization system). The example shown will be in the use of
xtallog. data.
He likes it because it has to do with passing data between packages without
intermediate visualization of the data.
CCP4 is useful -- standard data formats.
Help provide visualization tools for 3d 2d, 1d data
GUI for stand alone programs
GUI for network programs.
He sketches out many of the steps in the structure solving and analysis
problem.
There are defined formats for atoms, reflections, density maps.
Formats are portable across platforms by use of HDF type methods.
He uses pipes to handle communication between gui and command-line driven
programs.
GUI sends strings to characters for control to algorithmic programs.
AVS has network editor (coding network) to set these things up.
Uses AVS own widget set -- will become motif widgets.
Provides graphical (dial) or type-in input.
A sequence of procedures really appears as a big chart of one quick GUI for
each module -- example is watpeak -- 4- 5 steps.
So far he's just writing output to text window. This can be filtered, he's
not done it.
------------------------------------------------------------------------
Program Interfaces with the World-Wide Web
Dave Stampf, PDB, BNL
Look at the man behind the curtain.
He is using various WWW Clients as as a "super" front end for programs to run
at BNL.
Describes how the PDB uses WWW for browsing through the data-bank.
What technologies underlie the www (http, html, mime)
What's in the future?
What is "Mosaic"?
One of many instances of a prog. to work the WWW
Display formatted text
Access net resources
surf hypertext links (url)
execution cycles
retrieve files
Spin off "safe" programs on our system" (xpsview, rasmol)
The PDB
Growth: 3500 entries, doubling every 2 years
2000 access/day, factor of 6 eery two.
Staff
1 programmer working on user interface
User community requirements
Universal access
Simple access
Complete access
There must be a gateway program to drive stuff at the pdb
Provides access to database search engines.
Right now it's used to search a long list; very soon will have
sybase file.
There will be CPU servers accessible for various user functions:
structure validation, etc.
Documentation in hypertext
There's a file server for export of files.
SCOP is a utility to browse through to find structures.
PDB browser -- 1000 lines of perl is the gateway prog.
It does stuff at pdb.
Can also do stuff at home (rasmol to view in 3d)
Underlying technology
http: similar to ftp but without overhead
data with embedded links
transaction based. you ask for, we send, that's it.
sneaky uses -- telnet to port 80
html: hypertext markup language
think structure, not form (primitive)
advantages -- runs everywhere, looks reasonable everywhere
disadvantages -- "" "
MIME
Specify file type in file
advantages -- unlimited use
disadvantage -- ""
content-type: chemical/x-pdb
vs content-type:text/plain
Can Mosaic be a super front end?
good for on-line documentation
can run programs locally and remotely
diagnostic uses
quick and dirty access to information
back-door access to the data
Future
CCI and other technologies are aimed at interactive question
a long way off and unproven
you may want to extend basic protocol yourself
Frustration may set in with user community.
The network is a living lab -- there will be more and better protocols
ahead.
------------------------------------------------------------------------
D2AM and the Control of the IBS beamlines at the ESRF
Eric Fanchon, IBS, Grenoble
Outline:
overview of beamline
principle of the control software
architecture of the scripts
beamline procedures
data-acquis.
GUI development
D2AM Dedicated for MAD.
Double x-tal after cylindrical mirror -- second x-tal sagitally bent for
focussing
Shared between PX and MS. Requires some flexibility.
Two types of graphics - dedicated graphics, then GUI for spec and "nemo"
NEMO is high-level interpreted lang.
No distinction between beamline control and data-acquisition.
General features
flow control
for and while loops
if-else etc.
can define types
can define functions
can run compiled user libraries for x-tallog calculations.
beamline control
simulation mode
other standard things to interact with esrf client/server system.
A simple script will define the functions of the process.
Has a complex script for mad data
Interaction from madnes back to the data-collection prog. to control orienta-
tion, etc.
GUI is two-process system. Stdin gui-pipe
nemo msgs. designed for gui updates.
Continual update of progress -- sliders that move, for example.
Have Xnemo for operators and Bionemo for users.
------------------------------------------------------------------------
Some GUI-development tools we use at the ESRF (with some example applications)
Peter Daly, ESRF EXPG
TKL is a useful tool. Doesn't take much to learn.
Several subgroups within their software group --
control of instruments, using spec
gui group
Have a phase-space application. Generated by student in 2 weeks.
has it linked directly to mathematica -- plot windows come from there.
Second tool - made with UIM/X
Done with Image Magic - (on the net)
Lots of tools for analysis of a pattern -- sections, 3d plots, etc.
------------------------------------------------------------------------
IDL as a Builder for Beamline GUIs
Harvey Rarback, CARS, U. Chicago
IDL and PVWave used to be the same except for the widget sets. Sold by
research systems inc.
Interpretive language, but it's quasi compiled.
supports a basic sets of widgets common to all platforms -- mac, sgi, sun....
has ordinary motif set
Can draw graphs.
Can write you own compound widgets that can be instanced.
Lots of output devices.
Has z-buffer output. Will support SGL later (SGI graphics)
Can do external calls to C or fortran routines that call idl stuff.
He wrote a demo. that reads fuji imaging-plate scanner data. Took 4 hours to
do this.
Out of the box: lots of nice widgets -- allows one to do stuff quickly.
Nice image display!!
He wrote a quick row/column display.
Lots of other stuff -- 2-3 pages of code do it.
------------------------------------------------------------------------
Construction of a GUI for an ISA-based MCA system
Kate Feng-Berman, BNL
Initially wrote something under ACE to run the mca
Old MCA pkg. provides enough functionality from keyboard, But not user-
friendly. Developed GUI package.
Build fundamental gui with bx
Added ISA?
Then tuned it up in C-code to make it fast
------------------------------------------------------------------------
Data tranfer and management associated with a CCD-based area detector
Dan Thiel, Cornell
One needs one system to accumulate data, one to process.
How do we avoid bottlenecks?
How do we store (for processing) and archived (for safety) the data?
How do we manage to process the data?
Detector on line for 18 months. 20 sec for 8mb
Can't transfer until no data are being collected.
Needs three different computers.
Correction of images is slow -- 3 min for 8mb image
Data processing requires user intervention.
Data archiving is slow.
Have to transfer from PC to faster machines -- often use the machine fill
times to deal with it.
Will try various fast network options -- FDI, ATM, etc.
Need to speed up the frame-correction process.
------------------------------------------------------------------------
Siemens graphics-based software for control and analysis of diffraction
experiments.
James Phillips, Siemens Analytical Instruments
Frambo -- indexing and data collection for wire detector
Smart -- same thing for ccd detectors.
Support histar -- wire detector
and SMART -- the CCD detector.
6.5 cm diam circle-- square inscribed in it.
Indexing, bravais lattice, real-time display (mwpc), etc.
Nice plotting tools (a la Minor) to analyze patterns.
Has a simulation tool for testing of strategy.
------------------------------------------------------------------------
Report of the Data-Acquisition GUI Working group
Thomas Earnest, LBL
Not able to decide on the question of whether there should be multiple vs
single windows. The goal should be to allow user to focus without having
superfluous windows
Vert. vs. horizontal orientation? No answer.
Leading user through process
But there are two classes of user, should have a choice
Might have a graphical flow-chart of the stage in the process.
At ALS there is a single terminal dedicated to describe status of optical
elements.
Possibility of tutorials -- put something on the WWW Actually work through
data-collection.
Strategy programs will be useful.
Major subdivisions
Check beamline -- current, alignment
Mount x-tal, check camera, gonio
Take test images and display
Index and check bravais lattice and laue group
Pick strategy
Collect data
Process
Balance between subjectivity and detail. Output from data-collection should
go straight into processing.
Archiving -- Keep data for 100 days at esrf! Users could process completely
so there's no need to keep on line.
Remote login for data reduction.
How about validation of quality control? Acquisition software needs to be
validated. Crucial because there's no second chance.
------------------------------------------------------------------------
Report of the Beamline-control working group
Carl Cork, LBL
Novice -- two buttons: align, set wavelength
Beamline control
No single standard for device control
No single std. for GUI interface
The group promises to search for a connection program that will facilitate
communications between GUIs and algorithmic (command-line-driven) programs.
Group will set up a mailer for communication.
------------------------------------------------------------------------
Report of the Image-file formats working group
Andy Howard, Molecular Simulations, Inc.
Conclusions.
File will have ascii header followed by binary data
Compression will be
encouraged
not required
defined later
Can we use gif, tiff, etc? Probably not -- this is all grey-scale
Header
1. ASCII values: keyword value
2. Maybe should follow HDF, and external standard. Out of court because we
want header to be ascii!!
3. CIF or CIF-like
4. Where CIF items are defined, use them.
5. Add our own CIF dictionary entries elsewhere.
Use multiples of 512 bytes -- look at end of each block to see if the header
is finished.
Contents of header
Obligatory:
entries necessary for processing
_# dimensions (2?)
_numb pixels in dim 1
_numb in dim2
_ number planes in third dim, etc.
_ data_type (in the binary part -- i*8, f(ieee), etc.
_ compression (none, type, ...)
Optional
Lots of stuff...
Source
lambda/E
bandwidth
Crystal goniostat
Labels on motors
Formal description of geometry -- use of vectorial representation
Values of these during the image
Detector(s) (Detector goniostat)
Detector geom phi, psi, omega, delx delz
Nonlinearity of position (spat. distor.)
Px dimensions
Sensitivity
Variations in sensitivity
Expt'l info
time stamp
symbol to describe where this image sits in the whole xpt.
expt:run:image
Maybe hdf will do -- check with ncsa.
------------------------------------------------------------------------