3-DIMENSIONAL HELICAL PROGRAMS
The programs described below were written by R.A Crowther (RAC) and are distributed
as part of the MRC image processing package. The Documentation here was formated from the file emhlx.doc
- HLXSEARCH Determine tilt and origin (RAC)
- HLXDUMP Dumps layer line data from transform (RAC)
- HLXFIT Orientations & origins of different particles (RAC)
- HLXAVG Averages data from different particles (RAC)
- HLXFOUR Fourier program (RAC)
- HLXPROJ 2D filtered image from layer line data (RAC)
- EM2FOLD Imposes twofold normal to axis (RAC)
- HLXSEPDAT Feeder for HLXSEPR (RAC)
- HLXSEPR Separates overlapping Bessel functions (RAC)
- HLXLLOUT Graphs standard layer line data (RAC)
- HLXSIMUL Simulates image of helix (RAC)
The purpose of this program is to determine the tilt angle of the
helix axis out of the plane normal to the direction of view and at the
same time to position the phase origin on the particle axis.
The user feeds the program with values of amplitude and phase for
pairs of peaks in the computed transform. It then computes the sum of
F*(phi1-phi2) over these pairs of related reflections. Values of
(phi1-phi2) are corrected to allow for odd Bessel orders. They are also
corrected for specified values of phase shift and tilt angle. The sum
for each combination of phase shift and tilt angles is normalised by
dividing by 360n and then scaled from 0 to 90. The normalised sums are
output as an array.
Different indexing schemes may be tested in a single run, as
described below. A separate residual array is output for each scheme.
Data Cards:
- TITLE (20A4)
- OMEGAM, DOMEGA, NOMEGA, EXM, DEX, NEX, NNLAY, NOP, IDIM1, IDIM2 (*)
- OMEGAM = Beginning value of tilt angle in degrees
- DOMEGA = Tilt angle increment in degrees
- NOMEGA = Number of points in tilt search (l.e. 25)
- EXM = Beginning value of x-shift
- DEX = x-shifts increment
- NEX = Number of points in x-shift search (le.25)
- NNLAY = Number of different selection rules to be tried (le.12)
- NOP = Number of pairs of reflections (le.50)
- IDIM1,IDIM2 X,Y transform dimensions
- Y, D, F, DPHI (*) One card for each pair of reflections
- Y = Layer line spacing in transform Y grid steps
- D = Spacing between reflection pair in transform X steps
- F = Average value of amplitude (arbitrary scale) for the pair of
reflections
- DPHI = (phase of left)-(phase of right) side reflection in degrees
- NLAY(I), I=1,NNLAY (8I5) One card for each pair of reflections
- NLAY = NNLAY Bessel orders for the layer line in question.
Pairs of cards 3 & 4 are repeated for each pair of reflections
Extracts lines of F and phi from transforms of helical particles
produced by FFTRANS. The user specifies the location of the layer line
in reciprocal space, its length and sampling frequency.
In general, the user will wish to have data at points in reciprocal
space which do not correspond to the grid points calculated by FFTRANS,
HLXDUMP assigns values to these points by bilinear interpolation. The
transform is phase-shifted to bring its origin to the geometric centre
of the box transformed (this position is stored on the disc area by
BOXIM) before any interpolation is carried out. The results of the
interpolation are of course only valid if the original sampling in
reciprocal space is fine enough for the phases of the centred array to
change slowly from point to point.
The program also corrects for tilts of the helix axis out of the
plane normal to the direction of view. The effect of such a tilt is to
intersect the cylindrical rings of Gn,l(R) on a chord not passing through
the origin. As a result, Gn,l(R) are missed for very small values of R
(this is called the eclipsed region). Gn,l(R) for larger values have the
correct amplitude but the wrong phase; in addition the radii have been
wrongly assigned. The program corrects the phase and reinterpolates along
the line at evenly spaced intervals (selected by the user).
It is often found that the layer lines do not have their symmetry
axis on the line through the origin which is normal to the layer lines.
This problem seems to arise from a shear deformation of the object which
manifests itself as a skewness of the transform. The user determines the
angle of skewness of the pattern and sets SHEAR. The program centres the
lines accordingly.
In addition, ORIGX, ORIGY often does not correspond to the projected
axis of the particle. The user can bring the phase origin to the axis by
adjusting XSHFT &/or YSHFT, which cause translations of the phase origin
parallel to &/or normal to the layer lines respectively.
Note:
Near side means side nearest to the observer of the densitometered
array. For this side, reflections from right-handed helices (positive n)
are in the top left quarter of the transform, reflections from left-handed
helices (negative n) in the top right quarter. Which side it corresponds
to physically depends on the orientation of the film during densitometry
By our conventions, the side of the particle next to the carbon support
film is nearest to the electron beam, and the e.m. film is printed and
densitometered emulsion up (same orientation as in the microscope during
exposure), so the observer is put in the position of the electron beam,
looking at the particle through the carbon.
Data Cards
- TITLE (10A4)
- TITLE identifies the particular choice of data.
- LLTOT,SAMPL,XSHFT,YSHFT,DELBR,ROT,SHEAR,TILT (*)
- LLTOT is the number of separate layer lines to be output.
- SAMPL real space sample size in angstroms
- XSHFT, YSHFT X & Y phase origin shift in real space steps.
- DELBR - the required spacing between points at which the layer line is
sampled, in reciprocal Angstroms. DELBR=0.0004 gives one sample/mm.
on graphical output on printer.
- ROT is the angle of the layer lines relative to the horizontal axes
(in degrees). The angle is positive if the layer lines slope up to the
right.
- TILT tilt of the helix axis (in degrees), calculated by HLXSEARCH
- SHEAR is the angle (in degrees) which the transform meridian makes
with vertical axes. (Positive if meridian to left of vertical).
N.B. Set equal to ROT if transform not sheared.
- RMIN,RMAX,IDUMP,MERID (*)
- RMIN, RMAX limits for layer line plotting in reciprocal angstroms.
Maximum range -0.05 to 0.05 rec Ang
- IDUMP = 0 output graphed only
= 1 output graphed & dumped to disc.
= 2 output dumped to disc only
- MERID = 0 both halves of meridional layer lines to both sides files
= 1 only one half of meridionals to each side
N.B. Set MERID=0 if you are going to use HLXSEPR to separate
overlapping Bessels.
- LLNO,NORD,YSP (*)
- LLNO layer line number
- NORD bessel order for the layer line.
- YSP Y intercept (in Y transform steps), where layer line crosses
vertical axis.
- NL1,NL2,NR1,NR2 (*) This record only read in if IDUMP.GE.1
- NL1, NL2, NR1, NR2 specify the region of the line to be output. They
are measured in units of DELBR from the layer line origin. NL1, NL2
are the nearest and furthest points from the origin, of the region
of layer line to be output from the left-hand side. NR1, NR2 are the
nearest and furthest points from the origin, of the region to be
selected from the right-hand half of the layer line.
Note that the meridian corresponds to NL1=NR1=0.
Items 4 (and 5 for IDUMP.NE.0) repeated for each layer line
FORMAT OF HLXDUMP OUTPUT:
HLXDUMP automatically separates the layer lines into halves and sorts
the halves out into near and far side data, according to the signs of
the NORD values. The output, which is read by HLXFOUR etc, has the
following format:
TITLE, LLINFO, WTFAC, NORD, LLNO (10A4,10A1,F10.3,2I5)
R, F, PHI (3E10.3)
The last record is repeated for each point along the layer line.
The list of points is terminated by a blank record (i.e. R=0.0)
However, R=0.0 is not a terminator if it is on the first record after
the title record.
Thus, if there are no points for a particular half layer line,the output
at this position will consist of three records; the title record,
followed by two blank records.
Program to determine the relative orientations of two different helical
particles, by comparing the phases of corresponding points along the
layer lines. The best relative radial scaling of the two images can also
be determined.
The 'residual' calculated is:
sqrt( sum(F*(phi1-phi2')2)/sum(F) )
where phi2' = phi2 - n dphi + 2pi Z dz
which is tabulated for each angle of rotation (dphi) about the z-axis,
each axial shift (dz) and each radial scaling factor applied to the data
for particle 2. Any data absent from the data set for particle 2, but
present in the reference data set (particle 1) adds a penalty of F1*(90)2
to the residual sum, if IMISS is set to 1 (otherwise, missing data is
simply ignored).
If particle 2 is thought to be upside-down relative to particle 1,
phi2 is negated.
Data Cards:
- FILREF (A)
- FILREF file name for the reference particle.
- LLMAX, CANG, DELBR, IPRINT, IMISS (*)
- LLMAX is the number of layer lines to be read in (le. 30)
- CANG (in Angstroms), is the axial repeat
- DELBR is the spacing of sample points along the layer lines (reciprocal
angstroms).
- IPRINT if = 1 layerline data printed ,if = 0 data not printed
- IMISS if = 1 missing data penalty imposed, if = 0 missing data ignored
- WT(L), L=1,LLMAX (*)
- WT(I) weighting factors applied to the layer lines..LLMAX of them
- FILIN (A)
- FILIN file name for dataset 2, 3 etc.
- TITLE (20A4)
- TITLE for output to line printer
- ISIDE, IPOLE (*)
- ISIDE = 0 if data 1 & data 2 both correspond to the same side (near or
far) of the helix.
= 1 if they differ.
- IPOLE is set to 0 if particles are to be compared in their initial polar
orientations. If particle 2 is to be turned upside-down, set IPOLE = 1.
Note that this inversion is carried out first, before any rotation about
the helical axis or translation along the axis.
- PHIMIN, PHIMAX, DPHI (*)
- PHIMIN, PHIMAX specify the range of angles through which particle 2 is
to be rotated about Z (anticlockwise rotation, when viewed down the axis
corresponds to positive rotation angle).
- DPHI the size of the steps between successive rotational orientations
in which particle 2 is to be compared with the reference.Up to 12 steps
- ZMIN, ZMAX, DZED (*)
- ZMIN, ZMAX, DZED specify (in Angstroms) the range and step size for the
translations parallel to z which are to be tried. Up to 12 steps allowed
- RSCMIN, RSCMAX, DRSC (*)
- RSCMIN, RSCMAX define the range of scaling factors to be applied to
distances along the layer lines of particle 2 data:
Items 4 to 9 may be repeated as many times as required, so that several
data sets may be compared with the same reference (particle 1).
Note that each data set should have the same number of layer lines, in
the same order. Dummy data should be inserted for missing layer lines
(Title record + 2 blank records - see specification for HLXDUMP output).
Program for averaging different sets of layer line data. (Note :
HLXFOUR is able to average the two sides of a single particle). The
relative orientations of different particles are first determined using
HLXFIT, which also supplies amplitude scaling factors if required.
Data for a difference Fourier can be produced, using scaling
factors of appropriate signs.
Data sets can be modified for various purposes, e.g. changing the
sampling distance (DELBR) of the layer lines, or changing the radial
scale.
Data Cards:
- TITLE (10A5)
- LLMAX, NSIDE, CANG, DELBR, IPRINT (*)
- LLMAX is the total number of layer lines to be averaged (le.40).
- NSIDE is the total number of data sets to be averaged.
- CANG (in angstroms) is axial repeat distance
- DELBR spacing of points sampled along the averaged layer lines -
usually the same as the spacing in the individual data sets.
- IPRINT if = 1 prints layer line data,otherwise does not
- FILIN (A)
- FILIN file name for input data set
- ISIDE, IPOLE, PHISHF, ZSHIFT, RSCALE (*)
- ISIDE is set to 0 for 'near-side' data, to 1 for 'far-side' data.
- IPOLE = 0 if data set is to be included in its initial orientation, = 1
it is to be turned upside-down before addition.
- ZSHIFT and PHISHF define the shift (in A) in the positive z-direction &
the rotation angle (in degrees) about the z-axis to be applied to the
data set to bring the particle into the required common orientation.
- RSCALE is a radial scaling factor to be applied to all radial distances
along the layer lines, to bring all the data sets to the same size scale
- FSCAL(L), L=1,LLMAX (*)
- FSCAL are relative scaling factors for the amplitudes on each layer line
in case different data sets are on different scales etc.
items 3 to 5 are repeated for each data set (half transforms ?) to be
included in the average.
Note that each data set should have layer lines in the same order, with
no gaps. Dummy data should be inserted for missing layer lines (Title
record, followed by 2 blank records - see specification for HLXDUMP
output).
Program to carry out a Fourier-Bessel transformation of layer line
data to produce a three-dimensional density map, which may be output as
sectiions of various types.
The transformation is described by Klug, Crick & Wyckoff (Acta
Cryst. 1968, 11, 199) and their conventions are adhered to - e.g. a
positive value of n corresponds to a right-handed helix.
rho(r,phi,z) = 1/c * Sum over l & n (gnl(r)*exp(i(n*phi-2pi*l*z/c))
where
gnl(r) = exp(-i*n(PHI+pi/2)) * integral (Fl(R) * Jn(2pi*R*r) 2pi*R*dR
The input values of the transform (HLXDUMP output) are implicitly
assigned to the plane PHI = +- pi/2 , where PHI is measured from the
X-axis.
Input-output streams:
- Input stream 1 layer line data
- Output stream 2 3-D map OUT1
- Output stream 3 Projection OUT2
- Output stream 4 File of g's for plotting GOUT
Data Cards:
- TITLE (10A4)
- C, DELBR, RMAX, DELSR (*)
- C is the axial repeat distance of the helix in Angstroms.
- DELBR is the spacing between samples along the layer lines, in
reciprocal angstroms.
- RMAX is the maximum radius for which little g's are calculated
- DELSR is the spacing of points in the map,in the y direction. Points in
the x direction are calculated at intervals of 2/3 DELSR, if IPLOT is
set to 2, to be compatible with PLOTFOUR. If IPLOT = 0, samples in the
x direction are at intervals of 5/6 * DELSR to give isometric output on
the line printer (8 lines per inch).
- LLMAX, ISIDE, KOUT (*)
- LLMAX total number of layer lines read in
- ISIDE = 0 for nearside data, = 1 for farside data
- KOUT
abs (KOUT)
- = 1 gives isometric line printer output only,
- = 2 gives output map in standard format for TONE etc
- = 3 gives output in standard format and line printer
If KOUT negative get listing of big G's
-
WT(L), L=1,LLMAX (*)
- WT(L) weighting applied to each layer line (LLMAX of them)
-
IHFH, IHFC, IHFV, IHFP, IHFZP, IQATOR, MAP, ITRFN (*)
Followed by one or more sets of output parameters, in the following
order :
- PHIMIN, PHIMAX (*) if IHFH = 1
- ZMIN, ZMAX, DELZED (*) horizontal sections, perpendicular to z-
----------------------------------
- RMIN, RMAX (*) if IHFC = 1
- PHIMIN, PHIMAX, DELPHI (*) cylindrical sections, parallel to z-axis.
- ZMIN, ZMAX, DELZED (*)
----------------------------------
- RMIN, RMAX (*) if IHFV = 1
- PHIMIN, PHIMAX, DELPHI (*) vertical central sections at successive
angles
- ZMIN, ZMAX, DELZED (*)
----------------------------------
- XMIN, XMAX, DELX (*) if IHFP = 1
- PHIMIN,PHIMAX (*) vertical parallel sections of constant x.
- ZMIN, ZMAX, DELZED (*)
----------------------------------
- PHIMIN, MIND, DMIN (*) if IHFZP = 1
- ZMIN, ZMAX, DELZED (*) single projection down z-axis.
--------------------------------------
- NSP input unit number (layer line data)
- ITRFN .ne. 0 is supposed to apply a transfer function correction. NOT CHECKED!
- RMIN,RMAX limits of radius in angstroms,RMAX must not exceed RMAX on
item 2.
- PHIMIN,PHIMAX limits in degrees of sector of map to be output
- DELPHI spacing in degrees over which PHI is stepped
- ZMIN, ZMAX are the axial limits for the map to be output
- DELZED is the spacing in the axial direction of points in the map.
if IHFC=1, RMIN & RMAX are the inner and outer radial limits of the map.
RMAX in this case should not be more than on card 2
Reverse transforms selected layer line data, output by HLXDUMP,
to synthesize a filtered projected image. The particle may be rotated
about the helix axis to obtain views different from the original. The
filtered images are output as numerical arrays on disc for plotting
Data Cards:
- TITLE (20A4)
- LLTOT, C, DELBR (*)
- LLTOT = number of separate layer lines in a single data set.
- C = axial repeat of helical particle
- DELBR = spacing (dR) of data points along layer lines.
- RMAX, DELSR, IRSTEP, IJUMP, NV (*)
- RMAX = maximum radius of particle
- DELSR = radial separation between calculated density points in real
space.
- IRSTEP = intervals (in steps of DELBR) at which data are to be included
the calculation.
- If = 1, every point along the layer line is used,
- if = 2, alternate points are included, etc.
The calculation may be very time-consuming if all the layer
line points are used to calculate points in a large filtered
image array, and layer lines are often sampled much more
finely than necessary, especially for this purpose.
- IJUMP = option control: outputs one-sided filtered images for negative
values,double-sided images for positive values.
- +-1, prog thinks it is receiving 'near-side' data,
- +-2, prog thinks data is 'far-side',
- +-3, prog expects 'near-side' followed by far-side, on 2
separate files.
- NV = number of different filtered images to be calculated from the data
set showing views from different angles around the helix axis.
- WT(L), L=1,LLTOT (*)
- WT(L) = weighting factors for each layer line.
- PHI(IV), IV=1,NV (*)
- PHI(IV)'s are the required view angles in degrees.
- ZMIN, ZMAX, DELZED, DMIN (*)
- ZMIN,ZMAX,DELZED = lower and upper values of axial distance z required
for the filtered image, and the interval between sample
points.
- FILIN (A)
- FILIN file name of layer line data set
Warning
Note : RMAX/DELSR * (ZMAX - ZMIN)/DELZED must not excced 50000
up to 40 layer lines
up to 200 steps / layer line
up to 20 views
not yet converted for VAX - IBM version
Searches for the orientation in which the particle appears to have
the best approximation to a 2-fold normal to the helix axis. Phases are
corrected to the nearest real value and the layer line data output on
to disc for HLXFOUR
Data cards:
- TITLE (7A4)
- LLMAX,RECC,DELBR,NSP1,NSP2,ILIST1,ILIST2 (*)
- LLMAX total number of layer lines read in
- RECC 1/C (in reciprocal angstroms) where C is axial repeat
- DELBR spacing between samples along the layer line in reciprocal angstro
- NSP1,NSP2 input & output unit numbers for layer line data
- ILIST1 NE 0 prints input layer line data
- ILIST2 NE 0 prints output layer line data
- ISIDE,IPOLE (*)
- ISIDE = 0 for nearside data = 1 for farside data
- IPOLE irrelevant, set to 0 for now
- PHIMIN,PHIMAX,DELPHI (*)
- PHIMIN,PHIMAX,DELPHI min max & step size of angles in degrees through wh
particle is to be rotated while searching
- ZMIN,ZMAX,DELZED (*)
- ZMIN,ZMAX,DELZED min max & step size in angstroms through which particle
is to be shifted while searching
This is a feeder program for HLXSEPR which copies layer line data
from different views in known orientations(found in HLXFIT) to a direct
access area. It assumes that the layer line data are sampled at the
same spacing in each view.
Inputs on stream 2 with filenames specified in data
Output to direct access area on stream 3
Data cards :
- NVIEW,LLMAX,DELBR,C,IREST (*)
- NVIEW No. of "sides" to be input for this run
- LLMAX No. of layer lines for each side
- DELBR Layer line sampling in rec. Ang.
- C Helical repeat in Angstroms
- IREST
- 0 Not restart ie Starting new direct access area
- 1 Restart ie Adding data to existing area
Then for each side :
- FILIN (A)
- FILIN Filename of data set containing layer line data for this
side.
- PHI,XSHIFT,YSHIFT,IPOLE (*)
- PHI
Angle of view in degrees For reference particle near
side has PHI=270, far side has PHI=90. Relative values
of PHI found in HLXFIT then add to these. e.g. If
HLXFIT gives a value -10 degrees for a second particle,
corresponding PHI values for near and far sides will
be 260 and 80 respectively.
- XSHIFT Extra x-shift of origin in angstroms. Generally zero.
- YSHIFT y-shift in angstroms. Used to refer all particles to
common origin. Use value given by HLXFIT
- IPOLE Used to invert particle in z-direction, if HLXFIT
indicates this is necessary.
Program to separate overlapping Bessels , using views of helix
in different orientations. Uses LINFIL least squares package. The
separated Bessel functions produced correspond to a "NEAR SIDE"
set of transform values, ready to go into HLXFOUR.
Input layer line data on direct access file 2 , created by
HLXSEPDAT program.
Output separated Bessel functions on stream 3 , in HLXFOUR
format. Plot graphs of separated Bessels on printer.
Data cards:
- TITLE (10A4)
- TITLE Title for separated data.
- NVIEW,LLMAX,RADIUS,IGRAPH (*)
- NVIEW No. of views (ie. sides)
- LLMAX No. of layer lines in each view
- RADIUS Radius of particle in angstroms - used for determining
where Bessel contribution starts in transform.
- IGRAPH Draw graphs of separated Bessels if non-zero
- (RSCAL(NV),NV=1,NVIEW) (*)
-
Radial scale factors for each view from HLXFIT.
Then for each layer line:
- NL,NORD,(IORD(NO),NO=1,NORD) (*)
- (FITWT(NV),NV=1,NVIEW) (*)
- NL Layer line no.
- NORD No. of different Bessel orders on layer line
- IORD(NO),NO=1,NORD Bessel orders on layer line
- FITWT(NV),NV=1,NVIEW Amplitude weight factors for each view
for this layer line. These are used to multiply the
amplitudes on each layer line in each view before the
separation is done.
Program to select and graph standard format layer line data either
with autoscaling for each layer line or on constant amplitude scale
Layer line input on stream 1 (IN)
Data cards:
- TITLE (10A4)
- TITLE Title for plots (up to 40 chars)
- LLMAX,FSCA,FMAX,RMIN,RMAX,CANG (*)
- LLMAX No. of layer lines to be input
- FSCA Multiplying amplitude scale factor applied when data read
from disc. Allows data set to be put on absolute scale.
- FMAX Maximum amplitude overall on layer lines to be plotted,
after FSCA has been applied.
If set to zero, then autoscaling used on each layerline.
- RMIN,RMAX Radial range for plotting box (rec Ang.)
- CANG Helical repeat (Angstroms) to set ZSTAR
- IPLOT(I),I=1,LLMAX (*)
- IPLOT(I) I=1,LLMAX Plot particular layer line if 1, not if 0
Program to simulate projected image of helix for testing helical
reconstruction programs. Subunits built from arbitrary numbers
of spherical blobs of different size, position and density.
Single start helix specified by helical parameters DZ,DPHI.
Multi-start helix produced by putting more blobs into subunit,
related by appropriate rotational symmetry. The generated piece of
helix is centered in the z direction, which is vertical in TONE.
y axis is horizontal in TONE and x axis comes out towards observer.
Back or front of helix can be cut off and a linear ramp weighting
applied in order to simulate one sided or partially one-sided images.
Output standard image on stream 1 (OUT)
Present dimensions of output image are 256 x 512
DATA CARDS
- NBLOB,NUNIT,AXIS,DZ,DPHI,PHIROT,TILT,PBACK,PFRNT,IRAMP (*)
- RADH,RADS,Z0,PHI0,WT (*)
(2) repeated NBLOB times(ie - for each blob in the subunit)
- NBLOB Number of blobs per subunit
- NUNIT Number of subunits to be generated
- AXIS Y position of helix axis pixels (.LE.25 at present)
- DZ Z rise per subunit pixels
- DPHI Phi twist per subunit degrees
- PHIROT Rotation of whole helix about z axis degrees
- TILT Tilt of helix axis out of plane degrees
Tilts about centre of helix about axis parallel to y.
Positive TILT tilts top of particle towards observer.
- PBACK,PFRNT Back and front planes for windowing in pixels.
Blobs lying outside these planes are omitted. If both set
to zero there is no windowing.
- IRAMP 0 Simple cut off by windowing planes
1 Cut off by window and linear ramp weighting of
densities from 1 at front to 0 at back of window
-1 Ramp weighting from 0 at front to 1 at back
- RADH Radius from axis pixels
- RADS Radius of blob pixels
- Z0 Z position of blob in first subunit pixels (generally zero)
- PHI0 phi position of blob in first subunit degrees
(measured from x-axis)
- WT Density weight
Author: Stephen Fuller
=======================>
Return to Top Virus Page
Last Updated: 26 July, 1995