Manipulating map values (MASMAP)

Introduction.

Warning:

The MASMAP menu is only callable from the MAP menu. It allows you to do several things with maps which you actually better should NOT do, unless you are very certain about what you are doing.

I is important to note that most of the options in the MASMAP are highly experimental. The description in this chapter was most likely valid one day, but does not need to be so now. You should therefore run small testcases and check the result byte by byte to be sure that the options perform as promissed.

Several options in this menu can only work properly if the map contains ones and zeros only. No checking is done by these options to see if this is really the case.

Internal format

There are some things you should be aware of. First, maps are internally represented as bytes (ranging from -115 to plus 115). WHAT IF memorizes the scale factors needed to go back and forth between the real values (which may almost range from minus infinite till plus infinite) and these bytes. Many options in the MASMAP menu automatically set these scale factors to unity. Thus causing your map to range from -115 till 115, or from 0 till 100.

Strategie for usage of masmap menu.

The MASMAP menu holds several routines that do something with the map (values). Often there is some overlap between options. You will have to go through all possible options and select a sequence of commands that creates the answer to your question. Keep in mind that there are three kinds of gridpoints when you work with WHAT IF generated maps. Inside the protein all values are 100. The solvent has value 0. The zone inbetween protein and solvent (and in cavities) has values from 99 very close to the protein till 1 just next to the solvent. The thickness of the shell with values between 1 and 99 is set by the probe radius parameter that you use(d) in the SRFMAP option in the MAP menu.

Map representation

The basis for most options in this menu is the map created by the SRFMAP option in the map menu. This map is described in an article of which the reference is

R.Voorintholt et al. J. Mol. Graphics. (1990)

The general principle is that gridpoints that fall inside an atom get value 100, far away points get value 0, and points near an atom get a value inbetween that is a function of their distance to the nearest atom; 99 very close to the atom, and 1 just inside the user defined limit.

These maps are normally used to visualize surfaces and cavities at the PS300 screen. The MASMAP menu allows you to misuse these maps for all other kinds of purposes.

Nomenclature

Neighbours

WHAT IF assumes that maps entered in the MASMAP menu have 90 degree angles, and equal grid spacings in all directions. If this is not the case, the program will not crash, but results might come out slightly different from what you really wanted.

This is because many options in the MASMAP menu compare one grid point with its six direct neighbours. In these cases the grid points differing one in one of the three indices is meant. Especially for averaging oblique grids, this is not the best thing to do.

Gridpoints

Gridpoints with value 0 are called zero's. Gridpoints with value 100 are called 100's. Gridpoints with values in the range 1 - 99 are called the shell, or shell points.

Remove convex points (OUTER)

Convex points are gridpoints that form a sharp external protrusion in the map. They have more empty than filled points around them. In practice they are defined as points in the shell with three or more orthogonal neighbours that have the value zero.

The OUTER option will loop over all points in the map N times. You will be prompted for N; the default is 10. It will in every cycle determine all points that have three or more neighbours equal to zero, butt less than three neighbours that have the value 100, and put these points to zero if they were between 1 and 99.

In principle this boils down to removing the convex points from the outside of the shell, and from the inside of large cavities.

The option CONVEX does the same without limits on the number of 100's it has as a neighbour.

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the -115 till 115 range. Other maps will cause this option to produce strange error messages.

Cavity searching (REMOVE)

This option allows you to remove the shell created by the SRFMAP option in the MAP menu. If followed by the INV50 option the map can be made such as only to show completely internal cavities upon contouring.

This option is VERY time consuming. And besides, the PEEL option virtually does the same.

Make range 0 - 100 (RANGE)

This option scales the whole map such that the smallest value is zero, and the largest value is 100. All other points are scaled proportionally.

This is a good option to convert electron density maps into maps that can be used throughout the MASMAP menu.

Truncating at a range (URANGE)

This option will cause WHAT IF to prompt you for a lower and an upper limit of the byte values in the map. It will then put all grid values below the lower limit at the lower limit, and all points above the upper limit at the upper limit.

The extreme allowed lower limit is -115, the extreme upper limit 115. You should not give the lower limit larger or equal to the upper one.

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the -115 till 115 range. Other maps will cause this option to produce strange error messages.

Smoothing the map (SMOOTH)

The SMOOTH option will cause WHAT IF to prompt you for the number of cycles. Thereafter so often as asked every point in the map will be replaced by two times its own value plus the value of its six orthogonal neighbours divided by eigth. The edges of the map remain unaltered.

Remove convex points (CONVEX)

Convex points are gridpoints that form a sharp external protrusion in the map. They have more empty than filled points around them. In practice they are defined as points in the shell with three or more orthogonal neighbours that have the value zero.

The option CONVEX will loop over all points, and sets all points with a value between 1 and 99 to zero when they border at least 3 other zero points. The option got its name because it removes the points that are at a convex surface. See also the OUTER option.

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the 0 till 100 range. Other maps will cause this option to produce strange error messages.

Remove one layer from the shell (PEELIT)

The PEELIT option allows you to remove the outside layer of density created by the SRFMAP option in the MAP menu. You can think of this option as peeling one layer from the shell. If one were to repeatedly peel layers of the shell, one would also remove the wall of tunnels into the protein; and indeed this is what the PEEL option does. However, by stopping the peeling process at the moment that the number of zero's added per cycle becomes smaller than for example 200 or so, one can maintain the tunnels into the protein as part of the shell.

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the 0 till 100 range. Other maps will cause this option to produce strange error messages.

Remove all but the shell (KPSHEL)

The option KPSHEL will set all points that are 100 (inside the protein) to zero. This way only the shell is kept. This option is for example useful when searching for cavities.

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the 0 till 100 range. Other maps will cause this option to produce strange error messages.

Remove island and almost-islands (KILISL)

The option KILISL goes over the whole map and removes all non-zero values that have at most one non-zero neighbour point. This way you can remove small islands in the density map, while at the same time cutting the very sharp spikes of larger islands. (Also points at value 100 will be removed by this option!).

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the -115 till 115 (but preferably between 0 and 100!) range. Other maps will cause this option to produce strange error messages.

Make radial density distribution gausian (LINER)

The option LINER is meant for usage with R2D2, it will set all density values such that a radial gausian density distribution is obtained. The option only works properly for perfect spheres and rods with rounded caps (like a mathematical bacillus or alfalfa virus). Otherwise it will only produce an approximate gausian distribution. This option is useful if you want to fourier transform the map later.

Make map average zero (AVER0)

The command AVER0 will cause WHAT IF to add a constant to every grid point in such a way that the average map value will become zero.

Truncate the map (FLATEN)

This option sets all grid values above a user given value (MAX) to another user given value (NEW). So all gridpoint larger than MAX will be set equal to NEW.

Show part of map at terminal (DENMAP)

If you want to see the actual density values rather then the derived contour lines, you can use the DENMAP option. You will be prompted for the number of points to average first. This number should at least be one. If you give for example 2, then in all three directions two grid points will be taken every time and averaged; so two means 2**3=8 points are averaged per point at the screen; 3 means 27 points go in to one number shown to you, etc. Thereafter you will be prompted for the lower bounds of the box in the map you want to see. These lower bounds should be given in grid points (and must therefore range between 1 and 100). You will have to do the conversion to Angstroms yourself if you need that. The last thing you are prompted for are the upper bounds. The number of gridpoints on every axis may not exceed 24 times the number of points you average over. If you choose the upper bounds to high, they will automatically be reset to their allowed maximum. Thereafter the density values (if requested locally averaged) will be shown plate by plate along the z axis.

Density distribution histogram (HISTOG)

This option only works well on WHAT IF generated maps, or maps scaled such that the values fall in the -99 till 115 range. Other maps will cause this option to produce strange error messages. The command HISTOG will count the frequency of occurrence of density values in the range 0 - 100. The most important statistics (zero's, shell and 100's) will be summarized.

Count the environment of 100's (CNT100)

In a map every gridpoint with a value 100 can have zero to six neighbours with value zero, zero to six shell gridpoints, and zero to siz other 100's. The sum must of course (except for the edges) always be six neighbours.

The CNT100 option will show you for every of the 216 possible and impossible distributions of zero, shell point and 100 neighbours the frequency of occurrence in the map.

Smoothen spikes in the map (SPIKER)

The command SPIKER will cause WHAT IF to prompt you for a maximal allowed absolute difference in value between two neighbouring gridpoints. It will also prompt you for an attenuation factor. Every gridpoint which value differs more than the given allowed maximum from all its neighbours, will get that difference attenuated with the attenuation factor. So if for example gridpoint A has value 100, and its largest neighbour has value 80, than with an attenuation factor of 0.25, the new value of A will become 100 - 0.25*(100-80) = 95. With attenuation factor 1.0 A would have become 80. At the low end of value range something similar happens. If A has the value 10, and its smallest neighbour has the value 30, then with attenuation factor 0.25 A will become 15.

Remove the shell from the map (PEEL)

PEEL removes recusively shellpoints that have at least one neighbouring zero. The CAVITY option in the MAP menu is very much based on this option. Because CAVITY first calls PEEL to peel of the shell. Thereafter KPSHEL is called to remove the 100's (protein). Now only cavities are left. Finally CAVITY uses INV50 to make the contouring smoother.

Update the disk copy of the map (UPDATE)

WHAT IF can hold ten maps in memory. That at least is what you are made to believe. In practice all maps are stored as files on disk, and whenever a map is needed, it will quickly be read. This implies that the map on disk should be the same as the one in memory at every moment. Therefore, if you have manipulated a map, and want to keep the new map for future reference, you must make sure that the map-file on disk gets updated. The command UPDATE does this for you.

Convolute maps (MAPAND)

The command MASMAP will prompt you for the number of the second map. Here you should give the number that the SHOMAP command in the MAP menu gives to the map you are interested in. All points that are zero in this second map will also be set to zero in the present default map. The second map may be the present default map if for whatever reason you want to choose so.