Manipulating reflection files (CHKMDF)

Introduction.

This is an option only useful to crystallographers.

A crystallographer often wanders if something strange is going on with the reflections. The option CHKMDF allows for a visual inspection of a set of reflections. The reflections should be stored in the form of an MDF. One can read up to four columns from such a file, and put a subset of the reflections, coloured as function of any property, at the screen. These reflections can be picked if wanted.

When working with MDF's one should keep a few things in mind. The first thing is that WHAT IF internally generates column 0. This is the column in which WHAT IF works. If you type LSTMDF you get a listing of all relections that are read from the MDF. In this list you will see the miller indices, the (maximally four) columns you read in, and the internal column zero. This column contains column worked on after an option that works on one column, the difference of the two columns in case of the usage of an option that uses such a difference, etc. WHAT IF then holds internally two extra columns, one column is called the trigger column. If this column is set to true, the reflection will be used the next time all reflections are sent to the screen. The last column is the colour column. Whenever you use any of the COL*** options, this column will (partly) be overwritten. So the command GRAMDF will send one dot to the screen for every reflection in the MDF for which the trigger is true, in the colour as set in the colour column.

WHAT IF allows you to give general commands, colouring commands, and triggering commands from the CHKMDF menu.

If something strange happens, you migth try one of the following things:

Read the columns in in a different order.

Try to read the first column of the MDF as the first column for WHAT IF.

General chkmdf commands

Reading an mdf (GETMDF)

The command GETMDF will cause WHAT IF to prompt you for a file name. Be aware that the program might crash if the file you give is not an MDF. It will thereafter promt you for a resolution limit. This is the highest resolution that will be read from the MDF. WHAT IF generates all possible reflections up to that resolution. If the reflection is not found in the MDF, it will be marked by WHAT IF as absent. Finally you will be prompted for the column number(s). You can give up to four column numbers to be read. Thereafter you can work only with these columns, although you can of course always read the MDF again, and then take other columns.

In case of strange errors, try reading the MDF with a lower resolution limit. WHAT IF can only hold 32000 (?) reflections, and does not check for overflow.

Putting reflections at the screen (GRAMDF)

The command GRAMDF will send all reflections for which the trigger is set to TRUE to the graphics screen. They will get the colour last given to them with one of the COL*** options. You will be promted for the number of the mol-object, and the name of the mol-item.

Statistics on column differences (DIFSTS)

The command DIFSTS will cause WHAT IF to prompt you for two columns. For every reflection present in both columns the difference (value in second column) - (value in first column) will be calculated. Thereafter the average difference, the mean linear deviation from the average, the mean quadratic deviation from the average (=standard deviation), the mean third power of the deviation from the average (=skewness), and the mean fourth power of the deviation of the average (=curtosis) and the variance will be calculated, and printed. See chapter 13 of 'Numerical Recipes'.

Wilson plot (WILSON)

The command WILSON will cause WHAT IF to prompt you for a column number. A Wilson plot will be generated for the data in this column. You will be prompted for a mol-object number, and a mol-item name, and the Wilson plot will show up at the screen.

Mdf colouring commands

Giving one colour to all reflections (COLALL)

After the command COLALL you will be promted for a colour. Give, as usual, a number between 1 and 360. All reflections will now get this colour. Be aware that reflections already send to the graphics window earlier will keep their colour at the screen, but they will get the new colour the next time they are displayed.

Colouring as function of size (COLSIZ)

The command COLSIZ will cause WHAT IF to prompt you for a column number, a colour, and a size range. It will then colour all reflections in the given column that have their value in the given range as requested. If you give only one value when the range is requested, all reflections larger than that value will be coloured. Also those with value 1E10.

Colour as function of difference (COLDIF)

The command COLDIF will cause WHAT IF to prompt you for two columns. It will then calculate the difference (value of second column) - (value of first column). You will thereafter be promted for a range and a colour. All calculated differences that fall within the given range will get the requested colour.

Colour as function of presence (COLABS)

The command COLABS will cause WHAT IF to prompt you for a column number, and the colour for present and the colour for absent reflections. All reflections will be coloured as function of their absence or presence in the requested column.

Set colouring bins (SETBIN)

If you want to change the default bin ranges that WHAT IF uses in the COLBIN option, you can use SETBIN. WHAT IF will then first show the present bins, and then prompt you for the new bin boundaries. You should give AT LEAST TWO numbers. All bin boundaries should be type on one line, separated by comma's or by blanks. The bins will be coloured from 0 (=blue) to 200 (=yellowish green) in equal steps.

Mdf triggering commands

Triggering all reflections (TRGALL)

The command TRGALL will switch the trigger on for all reflections. That means that the next time you send the reflections to the graphics window (with the GRAMDF command) all reflections will be shown.

Triggering as function of size (TRGSIZ)

The command TRGSIZ will cause WHAT IF to prompt you for a column number and a size range. It will then switch the trigger on for all reflections in the given column that have their value in the given range. If you give only one value when the range is requested, all reflections larger than that value will be switched on. Also those with value 1E10.

Trigger as function of H, K, and L (TRGHKL)

If you want to switch on or off a block of reflections limited by h, k, and l boundaries, you should use the option TRGHKL. You will be promted for the limits on h, the limits on k, and the limits on l. Thereafter you will be ask if you want to switch them on. If you answer YES, the requested block of reflections will all be switched on. If you answer NO, they will be switched off. If you want to see just one plate of reflections (eg. h=0), you can give the values 0,0 if promted for the limits on h.

Trigger as function of resolution (TRGRES)

The command TRGRES allows you to switch reflections on or off as function of their resolution. WHAT IF will prompt you for a resolution range (in Angstroms), and it will ask you whether you want to switch this range on. If you answer this question wit YES the requested range will be switched on. If you give NO, the requested range will be switched off.

Trigger as function of difference (TRGDIF)

The command TRGDIF will cause WHAT IF to prompt you for two columns. It will then calculate the difference (value of second column) - (value of first column). You will thereafter be promted for a range. All calculated differences that fall within the given range will get the ir trigger switched on.

Trigger as function of presence (TRGABS)

The command TRGABS will cause WHAT IF to prompt you for a column number. It will then ask if you want to switch the present reflection on. If you say YES then all present reflections will be switched on, and the absent reflections will be switched off. If you answer NO, this will be done the other way around.