James McDonald Stewart




Response to Fankuchen Award 2001


James McDonald Stewart


O wad some power the giftie gie us

To see oursels as others see us!

It would frae monie a blunder free us,

                                    And foolish notion:

What airs in dress an' gait wad lea'e us,

                                    And ev'n devotion!


—R.Burns, "To a Louse, on seeing one on a Lady's Bonnet at Church"


Since my father was born in Scotland, I was raised with Burn's pithy observations ringing in my ears. Therefore, when I read John Clardy's announcement published in the ACA newsletter with nothing about my blunders or my foolish notions I was as nonplused as when, earlier, a call came from Connie Chidester and Winnie Wong-Nu that I was to appear here today. Not withstanding all the kind words I'm sure there are those out there who see me as the louse.


It is a totally unexpected pleasure for me to be at this ACA meeting here in Los Angeles in the year 2001. I am deeply grateful for the opportunity to participate again in a society whose activities I truly believed I had left forever. My thanks go to all those who have honored me by remembering activities of long ago.


Professor Isadore Fankuchen


However, before I say any more about that, I wish to remind you of the man for whom this award is given: Isadore Fankuchen. Professor Fankuchen lived from 1904 until 1964. (Figure 1. Professor Fankuchen) In that time crystallography advanced from concept to application. One of his greatest contributions was destined to be that of introducing and teaching the use of crystallography to many students from around the world. I was not privileged to know him. I studied under E. C. Lingafelter at the University of Washington in Seattle. One of Lingafelter's graduate students in the early fifties was Bruce Brown. Bruce came to UW from Brooklyn Polytechnic Institute. He recalls Fankuchen having both Braggs on campus to give lectures. He also recalls "Fan's" enthusiasm for telling that Dorothy Hodgkin was able to resolve the penicillin structure while the organic chemists were still contemplating their tarry residues.




Chapter XVIII in Physical Methods in Organic Chemistry, page 1073-1108 (1949) provides an excellent example of Fankuchen's eclectic grasp of diffraction methods and illustrate his determination to include as many workers as possible in the correct use of X-ray diffraction for the determination of structure. In this concise summary he lucidly covers from powder diffraction to proteins. Working with Professor J. D. Bernal before the second world war (1937) he pursued the characterization of proteins by diffraction. He published on a "concentrating" monochrometer made from a crystal of pentaerythritol in that same year. Right up until the time of his death he applied his talents and enthusiasm to the subject he loved. It is with this daunting remembrance that I have come here today to tell you something of my own contributions to crystallography and those events, those mentors, colleagues, and students who made it possible.


A powerful influence in all our endeavors is the application of the work of the Braggs, of Ewald, of von Laue, and of all the others who come before us in our discipline. In the case of crystallography the availability of computers was key to making possible larger and larger scale calculations and the automation of data gathering. The excitement of seeing the application of these techniques in solving structures is a powerful motivating force. It represents a small step toward satisfying the wish expressed in Tennyson's Flower in the Crannied Wall:


Flower in the crannied wall,

I pluck you out of the crannies,

I hold you here, root and all, in my hand,

Little flower — but if I could understand

What you are, root and all, and all in all,

I would know what God and man is.


It makes us all want to share, just as Fankuchen wanted to share, those insights that crystallography can provide.


Grace, a difficult concept in the world of science


The events that I will detail in this lecture are imbedded in an extensive human matrix, namely all the people who so generously supported the effort that brings me here today. First, was the blessing of coming into the Lingafelter group. (Figure 2. Professor Lingafelter circa 1956)



Figure 2.  Edward C. Lingafelter (1914-2003), ~1956.



Second, was being "led" into crystallography. To be given the blessing of playing a small supporting role in the development of crystal structure analysis is a gift that I prize. It led to many other opportunities and has given me a wonderful life. Third, was the privilege of being able to have many interpersonal relationships while "doing" science and making a living. (Figure 3. Lingafelter group circa 1956)


Figure 3.  Lingafelter group circa 1956.  Luther Smithson, (an undergraduate), Bruce Brown, Rose Stogsdill, Barbara Tews,
Edward Lingafelter, James M. Stewart, Jerry Simmons, and Henry "Monte" Montgomery.



I attach a list of the names of those that I can recall at this time who gave me the ability to facilitate putting together XRAY and XTAL for use in the crystallographic community. (Figure 4. List of facilitators) The obvious ones are my mentors and teachers who had the patience to see that I got it right. Then there were the colleagues who contributed programs and increased the scope of the "library." Those who used the programs and documentation and then critiqued them so that they could be improved were also of great help, as were graduate students who suffered the slow development and rejoiced in the excitement of the successes, and the bright undergraduates who helped with much of the maintenance, bookkeeping, and distribution work. During the various stages of my activity, the support that I received from several universities, many government agencies, and the people who worked in those places was phenomenal. Because of people's interest in XRAY and XTAL I was privileged to travel the world and learn more about what was needed to do crystallographic computations. However, without a doubt, for me, it was the interactions with the people who built and used the system that I treasure most. It was through their effort that "it" all came together. It is through their effort that I am privileged to speak to you today. In effect I am the spokesman, singled out, to acknowledge this award for all of us who contributed to the effort.


Figure 4. Listing of some of those who helped in some ways, large and small, in the

production of XRAY and XTAL.


Alden, R.

Ammon, H. L.

Appleman, D.

Baldwin, J.

Barton, R. J.

Bartsch, U.

Blanc, E.

Boonstra, E.

Braun, R.

Brown, B.

Busing, W. R.

Carson, M.

Chastain, R.

Collins, D. M.

Davenport, G.

DeCamp, W.

Dickinson, C.

Doherty, Ruth

Dreissig, W.

Du Boulay, D.

Egert, E.

Engelhardt, L.

Flack, H. D.

Freer, S.

Furey, W. F.

Glanville, J.

Hall, S. R.

Hawkins, Eleanor

Hendrickson, W.

Hermans, J.

Hester, J.

High, D.

Holden, J. R.

Holland, Debra

Jarski, Mary Ann

Jensen, L. H.

Keefe, W.

King, G.

Konnert, J.

Konnert, Judith

Kraut, J.

Kruger, G.

Kundell, F. A.

Le Page, Y.

Levy, H. A.

Lingafelter, E. C.

Machin, Pella

Marr, H.

Martin, K. O.

Maslen, T.

Mauer, F. A.

Merom, Rina

Mighell, A.

Morosin, B.

Munn, R. J.

Norden, Amy

Norden, Trina

Nucci, Anne

Nucchi-Vogel, Stefanie

Olthof-Hazekamp, Roeli

Pagoaga, K.

Plastas, H.

Plastas, Linda

Preston, H.

Prince, E.

Robertson, B. E.

Santoro, A.

Schenk, H.

Schwarzenbach, D.

Spackman, M.

Spadacinni, N.

Stewart, J. M.

Subramanian, V.

Takeda, H.

Wald, J.

Wang, H.

Watts, P.

Watenpaugh, K.

Willis, Jean

Zhang, Y. M.

Zocchi, M.






A focus of this presentation is the anecdotal history of the XRAY and then XTAL system of crystallographic computer programs. These computer codes served many crystallographers around the world over the years. The XTAL system is still extant at as a Free Software Foundation offering by the Crystallographic group, led by Professor Syd Hall at the University of Western Australia. XTAL3.7, edited by S. R. Hall, Roeli Olthof-Hazekamp, and D. J. du Boulay can be downloaded from the internet!


Since forgetting is reputed to be a simple first order kinetics phenomena, I will say essentially nothing about the details of the collection of earlier programs, their structure and function. If the half life of our memories is six months then a quick calculation shows that I now remember 6 X 10-8 of what I learned in 1953! So it would be foolhardy to try to impress an audience currently immersed in the science with how to "do" crystallographic computing today. Moreover, it will be interesting to see if I can coherently compress 48 years into this short presentation.


The beginnings


For me the development of crystallographic computer codes began in 1953 at the University of Washington in Seattle. When I came to UW from Western Washington College of Education in Bellingham it was my intention to be an analytical chemist. To say that I was naive, is to understate an understatement. I chose UW because it was only 90 miles from Bellingham. Offers from U. Chicago and Syracuse and the prospect of crossing the Cascade mountains was too daunting. In fact, at that time, I thought of Spokane as a major eastern city. When I met with Professor Paul Cross, the head of the chemistry department I announced that I would like to be an "analyticker." To which he replied: "We have enough analytical chemists. Professor Lingafelter has a job for you as a micell chemist." Being born in the year 1931, being fully aware of the Calvinist concept of being "led," having just married Bernice Dorren the Saturday before, and hearing the word "job," I willingly signed on with the Lingafelter group.


After a stint of work on an apparatus to measure the vapor pressure lowering of soaps, I began to insinuate myself into the, to me, vastly more interesting activity of crystal structure analysis. Not only was the idea of "finding atoms" appealing but there was also the opportunity to see how one could use the UW Business Office tabulating machines to do Fourier transforms. Professor Lyle Jensen, Professor Joe Kraut, and their groups from the medical school were in close contact with Professor Lingafelter's group in the chemistry department and had an arrangement which allowed the use of the IBM 604 calculating punch and the IBM 402/407 accounting machines. Once I saw these machines I asked to be allowed to wash my hands of colligative properties of soaps and instead do structure determination on transition metal chelates. These structures were particularly nice to do since very often the heavy atom lay on the center of symmetry in a space group such as P21/c. As I remember (10-8) I managed one projection by Beevers-Lipson strips before the university acquired an IBM 650 drum machine. Lyle Jensen became the master programmer of this machine, at that time, a wonderful computer. This machine gave me my first real opportunity to be included in some of the crystallographic programming for the group. Upon graduation I went east to do post doctoral work with Professor Preston Harris at The Ohio State University of Agriculture and The Mechanical Arts in Columbus. There I worked on the structure of explosives such as RDX. At OSU we had access to a 650 on which to use the Washington programs and a new IBM 704 which was completely void of any crystallographic software. It seems ludicrous, in this day and time, to remember how many hours I spent writing machine code to read a card, nines edge first, face down, into the machine and translate the punches therein into binary numbers stored in memory. It was on the IBM 704 that STARTX, the first program of XRAY was coded. For those of you who like the history of crystallographic computing, I recommend Professor Durward W. J. Cruickshank's Reminiscences of X-Ray Structure Analysis in Advances in Molecular Structure Research, Volume 6, pages 1-47 (2000). The description of the use of a teakettle for a carriage return repair will please your mind. That paper lays out many of the serious considerations that we, eight time zones away in Seattle, were contemplating and applying in the development of the XRAY system.


The conception of the XRAY system


The actual details of XRAY and XTAL development can be seen in articles from a series of books on crystallographic computing that resulted from computing schools sponsored by the International Union of Crystallography, the IUCr. For instance: Crystallographic Computing Procedings of an International Summer School organized by The Commission on Crystallographic Computing of The International Union of Crystallography and held in Ottawa, 4 to 11 August 1969. Edited by F. R. Ahmed with co-editors S. R. Hall and C. P. Huber.


After completing my work at OSU I needed to find a "real" job. A post doctoral appointment is not the most secure way to keep shoes on the baby, and by this time there were two of them requiring the cobbler's product. My good fortune was that I was given a one year appointment back at UW. It was in the year 1960. By that time UW had an IBM 709; the tube version of the IBM 7094. It put me back in contact with the Lingafelter/Jensen/Kraut groups. One of the members of the Kraut group was Darrell High. He is a programmer's programmer who finally finished a degree in biochemistry but has spent his working life on programming for Burroughs and Compaq. He and I began first philosophizing, then programming a systematic set of programs all interconnected by common file formats to supersede the ones originated by the combined groups as well as some other codes imported from groups in the greater crystallographic community. We were also determined that all the codes must be space group and setting independent.


The basic plan was to set up a consistent method of delivering data to the programs in cards of specified formats, to store the data in a "binary data file" on magnetic tape that was to be accessed by all programs, to make the binary data file cumulative so that card data input was minimized as a structure was solved and refined, and to build a library of mutually interdependent, well documented, programs to be used for the solution and publication of structures determined by diffraction. Stated like this in the year 2001 it seems so trivial that you may wonder what in the world brings me here today. Moreover, John Rollett at Oxford, Busing and Levy at Oak Ridge, and others in other places were setting out on the same track. However, to appreciate the fundamental problem of building such systems I ask you to think for a moment about computing conditions in the present. The word processor upon which I'm typing the draft of this presentation offers 23 different ways to store the document; starting with "ANSI (Windows) Delimited Text" and ending with "WordPerfect Compound File." Standards are hard to make and harder to enforce, especially so on Turing machines being used by individuals whose "good sound reasoning" dictates that it be done their way!


The problem of hardware and operating system differences


The next factor that influenced the design of XRAY was that in the fall of 1961 I received a faculty appointment at the Department of Chemistry at the University of Maryland in College Park, UMCP. There was at that time no computer on the campus, but in the Washington, DC area there were many computers and crystallographers.Through contacts in the region and by returning to UW each winter break and summer session for about eight years the system continued to develop. During that time the UM also set up a Computer Science Center with an IBM 7094. However, there was another problem that became apparent to me in trying to help other labs with their calculations. That was the problem of transportability. In those early days, where every machine cycle and storage register was precious, there was great disparity in the structure of the various machines. Operating systems, bit patterns, word sizes, instruction sets, assemblers, compilers, character codes, and storage media all were different on most of the major makes and models of computers. This made for interesting challenges. XRAY was designed to look consistent to the crystallographer but it was not consistent as far as machines other than IBM were concerned. When Darrell High and I started, we wrote the "driving" routines in FORTRAN. But, because we believed that we must have optimum efficiency, we expended considerable time writing and checking some marvelous assembler language code for the IBM 709 which was still valid on the IBM 7094, but useless on the CDC, UNIVAC, Burroughs, and other machines. Moreover, during the time the people who wrote FORTRAN compilers were getting better and better at producing excellent optimizing compilers. The end of machine assembler code came one summer at Seattle. I gave Bob Braun, one of Ed Lingafelter's graduate students the assembler version of our structure factor program and asked him to translate it into FORTRAN. He came back shortly with a little deck that ran only 10% slower than the assembler version. That did it. From there on we used assembler code for just a few arcane subroutines such as getting times and dates from the local operating system. (Figure 5. Title page XRAY67 and Figure 6. Disclaimer page XRAY67)





The next problem to be dealt with was the very loose FORTRAN standards at that time. CDC FORTRAN looked a lot like IBM FORTRAN and simple programs usually worked well on either machine, but each vendor provided "interesting enhancements" to basic FORTRAN that were not transportable from platform to platform. To complicate the problem further, the vendors used different word sizes, e.g. 60 bits for CDC, 36 bits for IBM, and different internal character codes. In the beginning the various vendors either ignored or fought such things as ASCII.


PIDGIN FORTRAN as an aid to transportability


All these factors led us to code the crystallographic programs in what we called PIDGIN FORTRAN. This change meant that XRAY63 which was essentially written for the IBM machines had to be cleaned up and rewritten in PIDGIN FORTRAN. This of course meant that we sacrificed some efficient code for IBM in order to accommodate CDC, UNIVAC, Burroughs, etc. for codes that produced nearly identical results on all the vendor's machines, but required minimal modification to the symbolic codes. I do not wish to imply by this abandonment of assembly language and use of a "simplified language containing vocabulary from two or more languages" that we were unmindful of trying to produce the most efficient codes we could invent. However, we could already see that the machines were getting faster and faster and that there were computer scientists working on FORTRAN and other language standards and that writing in the lowest level languages cost too much time and effort when what we felt was needed was working, transportable codes for doing crystallography without every crystallographer needing to be a line by line programmer. Even though we wrote in PIDGIN FORTRAN we did expend considerable thought to the algorithms that would give us the most compact, best and quickest results. In addition we tried to write codes so that as more memory became available the codes would run for larger and larger structures without modification. Looking back to the IUCr sponsored book Crystallographic Computing Techniques which followed the summer school held in Prague in 1975, I find that I was talking, among many other things, on the efficiencies to be gained by using "one dimensional" arrays in writing FORTAN codes. Immediate access storage, what is now called RAM, was limited. The "really big" 5 M$ machines like the IBM 7094 or the UNIVAC 1108 had 32k of 36 bit words. In PC terms that amounts to roughly 0.2 MB of RAM so we struggled to make the best use we could of what we had available. For those of you who have been raised in this era of high security operating systems, you may be amused that the early operating system on the IBM 7094 required 100 words (600 bytes) of storage. The whole 32k words were so precious to us that we would roll the operating system to a tape, load XRAY from our tape, proceed to calculate our Fouriers or Fcs, ending by restoring the original OS from our scratch file. There were times when the machine operators were not amused by this use of "their" machine since none of their console commands short of a "cold start" would stop the hx + ky + lz from pressing forward. However, in defense, I'll tell you that, more often than my wife likes to recall, we were the second and third shift operators followed by being first shift chemistry instructors. (Figure 7. Computer cartoon)




RATMAC the next step in transportability


An example of our efforts at finding good algorithms is the way in which XRAY was metamorphosed into XTAL. At one of the IUCR summer schools I met Syd Hall. Each of us had been working on writing code to produce all the triplets for doing direct methods. My post doctoral student, Roger Chastain, had generated an excellent code that was very fast, Syd had generated a code that was equally fast but used an entirely different algorithm. On comparing how it was done in each case we realized that the methods were quite different, but could be used in combination. Thus began a long collaboration that lasted till I faded away at UMCP and Syd took up the care and feeding of XTAL from his base at UWA in Perth.


Syd and I met on several occasions and decided that XRAY could be drastically improved upon by another rewriting. A colleague of mine at UMCP, Bob Munn, was a great fan of Brian Kernighan at Bell Labs in Murry Hill, NJ. Munn brought the book Software Tools by Brian W. Kernighan and P. J. Plauger Addison-Wesley (1976) to our attention. This book describes a preprocessor, RATFOR with a MACRO processor that allows programs to be written in a c like structured language. The programs thus written were then preprocessed by RATFOR into FORTRAN for compiling. In addition the MACROS could be used to hold all the unresolvable conflicts among the various machines available to us. We went to see Kernighan and he declared RATFOR and the MACRO processor "in the public domain." The computing group at Bell Labs developed UNIX and c among other things. We then set out to translate XRAY into what we named RATMAC and to add all new crystallographic programs in this dialect of FORTRAN. In his paper referred to earlier, Cruickshank mentions that the crystallographic community in Great Britain thought ALGOL was better than FORTRAN and that FORTRAN was probably not the best way to go. It may be that our enthusiasm for RATFOR was also short sighted. But it surely solved many of the transportability problems that PIDGIN FORTRAN left unresolved.


Crystallographic Computing 2001


In the present time I see and read and am amazed by what all of you are accomplishing in structure analysis. The advent of higher and higher speed machines with huge storage capacities programmed in more and more productive ways, the availability of synchrotron radiation sources, the automation of data gathering, the production of stunning graphics, and all the other advances since I left the field are beyond anything I would have predicted. The most wonderful accomplishment is what has happened in macromolecular crystallography. Keith Watenpaugh has told me that from the genome project it is now proposed to clone hundreds of proteins every year and determine their structures by diffraction. One path to achieve this remarkable goal is shown by workers following Wayne Hendrickson's use of selenomethionine in place of methionine in proteins. This can reduce the initial phasing problem to a direct methods solution for the heavy atoms, a problem solvable with programs such as George Sheldrick's SHELX system Perusal of the Protein Data Bank site shows that there are already thousands of determined macromolecular structures and many pieces of software to accomplish the goal. I believe Fankuchen approves.


Ozymandius and the Zen of Crystallographic computing


To conclude this presentation it is necessary for me to describe how Shelly's Ozymandius came into XRAY. (Figure 8. Ozymandius) For those of you who have not used XTAL, I need to explain that sometimes, on the unpropitious occasion of a user committing an error in using the system, the error exit to the programs will randomly produce a message from a file of messages which treat errors philosophically. This began on the IBM 709 at UW. It was my custom in those early days to head to Seattle from College Park as soon as finals were over in December in order to use the Christmas break for computing. On one New Years Eve I was sitting at a table, probably puzzling over why a hexagonal space group wasn't computing right, when I realized that I was all alone in the roar of the machine room. At that moment I had the revelation that what I was doing had a certain arrogance of ambition that reminded me of Ozymandius. I determined to find and reread Shelly's great commentary and moreover put a copy in the system so that when bad things happened in the course of a calculation, and depending on the time used and a random number generated, it would print out.




I met a traveller from an antique land who said...

Two vast and trunkless legs of stone

Stand in the desert... near them, on the sand,

Half sunk, a shattered visage lies, whose frown,

And wrinkled lip, and sneer of cold command,

Tell that its sculptor well those passions read

Which yet survive, stamped on these lifeless things,

The hand that mocked them, and the heart that fed:

And on the pedestal these words appear....



Nothing beside remains, round the decay

Of that colossal wreck, boundless and bare

The lone and level sands stretch far away.

—P. B. Shelley


Over the next years I found or was given more quotes that seemed appropriate to the collection. This was, of course, just a different kind of arrogance, but it gave some of us comic relief. Not always, however! Once a graduate student got Emerson's "One of the benefits of a college education is to teach the boy its little avail." He disappeared for three weeks! In another case an undergraduate wanted a little programming exercise and I gave him a "B.C." cartoon which showed a man setting out to dig a cave in a mountain. The cartoon character draws a doorway on the mountain, places his chisel on it, strikes the doorway, and with one onomatopoeic "ZAK" the whole mountain falls down leaving the doorway standing. This was in the days of output by line printer and all that got into the Ozy collection was a page size "ZAK!" Unfortunately, I was told later, zak is a very low Dutch word for a foolish person and a lady Dutch professor/crystallographer managed to draw the "lucky number" one day. It then became my turn to be Zak of the day. It is my prayer that this day has not been another.



Los Angeles, 24 July 2001