Research Experience for Teachers (RET) Summer 2002
Small-angle x-ray scattering (SAXS) is a means
of extracting low-resolution molecular structure
information from protein solutions. Though
having less detail than conventional crystal diffraction
experiments, SAXS does not require growth of protein
crystals, a significant advantage. SAXS is a method
of growing importance in structural biology, especially
in combination with other methods.
Michael Barclay, a high-school math teacher from
Detroit worked with Richard Gillilan (MacCHESS)
on customizing 3D graphics software for processing
SAXS data and for viewing molecular structures. The
OpenDX scientific visualization system is a
freely-available software package which has been used
extensively in both research and education (www.opendx.org).
In addition to creating graphics tools useful to research
operations at CHESS and MacCHESS, Michael has gained experience
with a general graphics package that can be used for instructional purposes.
Michael Barclay - Mathematics Teacher
Detroit Cody Hich School.
Here is what I, Michael Barclay, worked on this year:
We worked on 3D graphics and processing of Small Angle X-Ray Solution Sacttering (SAXS) Data for Protein Complexes. Richard has
created a suite of add-on modules for the free OpenDx graphics package
which provide molecular modeling and X-Ray diffraction Data processing Capabilities.
Richard has numerous modules that need to be written, fixed, and/or document including a host of modules with
mathematical algorithms. The idea here is to process X-Ray Diffraction Data in real-time while the users actually collect it.
We worked with a free, open-source program developed by IBM called OpenDx which is a system of tools and user interfaces for
visualizing data. In general terms, the visualization of data can be considered a 3-stage process:
- Describing and importing data
- Processing the data through a visualization program
- Presenting the resulting image.

A visual program looks like a flowchart with categories of modules, tools to operate on
scientific data. Here we can drag and drop modules and connect them with wires. When the program runs, you get the beautiful
diagrams below.

The Mathematics of the model:The pattern you get is radially symmetrical. You could
rotate the picture at the center point by any angle and, in principle, get the same picture back.
We are only interested in how the brightness of the x-rays fall as you go away from the center so
we add together everything at the same radius to generate a profile curve.
You can think of any point on the curve as being the sum total brighness as you
run along the arc of a circle at that radius. This generates an output plot which you see above.
We use formulas to run over a bunch of angles(k) and add together the intensity. We go from an angle and radius to an (i,j)
which we add up and placed in data element (L). We use the transformation from plain polar coordinates to Cartesian coordinates
to move along the arc of the circle to do the sum.
Process I went through to help build the modules: I had to learn some C-Programming and use GNU Auto Tools to
automatically compile and install...we would do a series of tests which includes modifying the C-code.
Future plans for the project are to make the modules run faster and write a module align known structures
with the protein envelope we get after processing the profile. Stuff I
had to get familiar with:
- Linux (computer operating system, editor etc.)
- C programming language (variables, arrays and looping)
- creating an OpenDX visual program using Richard's examples
- compiling the module with configure/make/make install
- testing the new module