This major menu is designed for looking at similar 3-D structures. It can determine the transformation operator between 2 structures either by explicitly defining pairs of atoms for a least squares calculation, or given a transformation, it can produce an improvement both in the matrix and in the set of matched atom pairs. Afterwards the transformation can be applied to an object or to the coordinates of a molecule in the database.
lsq_explicit <mol_A> <mol_B>
<<res1 res2 [atom]>A <res1 [atom]>B>i
< >
<result>
Least squares comparison of 2 structures via explicit atoms. The user must specify two molecules, for example, A and B. The transformation is then applied to B to bring it onto A. No wild cards are allowed when defining the atoms. If no atom name is specified for molecule A, then Ca is implied. If no atom name is specified for molecule B, then the atom name specified for molecule A is chosen. The number of atoms chosen must be identical in the two groups. The result of the comparison can be stored in the database. The user supplied name is appended to various names defined by the program, creating 4 datablocks for each comparison.
Lsq_improve <old_result>
<[mol_A]> <[res1 res2]>A
<[mol_B]> <[res1 res2]>B
<[atom]>
<new_result>
This command can improve on a given transformation. The command employs an algorithm involving a search for structure fragments that can be aligned within a given cutoff limit, and tries to improve the transformation and the matched atoms. The user must specify which transformation currently stored in the database is to be used as the start value that is to be improved. The user specifies which part of molecule A is being matched with B. The improved transformation operator can be stored in the database (with the same name as the start matrix or as a new entry). The algorithm cycles until either the same set of atoms are selected or until 10 cycles are made.
The algorithm used (developed by TAJ) has not been published yet. Roughly speaking, it works by locating the longest matching fragments between the two molecules where each pair of atoms in a fragment fits better than a set value.
Lsq_object <object> <transformation_name>
Apply a transformation to an existing molecular object. No changes are made to the coordinates of the atoms making up the object. Notice that if you try to move an atom occurring in a transformed object, the moving atom cross comes up at the actual coordinates of the atom. Typing just <cr> instead of the transformation, removes an operator that is being applied to the object. If a transformation is defined, a vector .lsq_rt_<transformation_name> must exist in the database.
Lsq_molecule <transformation_name> <mol>
Apply a transformation to a molecule or to part of a molecule. This option will change the coordinates of the atoms in the database. If you are frequently working with 2 or more molecules it might often be better to apply a transformation to the whole molecule, but remember to have a reverse transformation in the database to restore the coordinates to the correct place. Entering a <cr> at either prompt, terminates the option. If a transformation is defined, a vector .lsq_rt_<transformation_name> must exist in the database.
Lsq_paired_atoms <transformation> <on/off>
Display or remove vectors between a set of atoms that were used in a LSQ'ed operation. The Lsq_explicit / Lsq_improve commands create a data structure of the paired atoms used in the alignment. The command draws a vector from the one set in molecule A and the transformed set in molecule B.
Compare molecules A and B (P2 molecules M17a, M17b) in the database
O > lsq_ex
Lsq >Lsq definition defaults are taken.
Lsq >Least squares match by explicit definition of atoms.
Lsq >Given 2 molecules A,B the transformation rotates B onto A
Lsq >What is the name of A (the not rotated molecule) ? a
Lsq >What is the name of B (the rotated molecule) ? b
Lsq >Now define what atoms in A are to be matched to B.
Lsq >Defining 3 names in A implies a zone and an atom name.
Lsq >Defining 2 names in A implies a zone and CA atoms.
Lsq >Defining 1 name in A implies the CA of that residue.
Lsq >The B molecule requires just the start residue.
Lsq >A blank line terminates input.
Lsq >Define atoms from A (the not rotated molecule) : a1 a131
Lsq >Define atoms from B (the rotated molecule) : b1
Lsq >Define atoms from A (the not rotated molecule) :
Lsq >The 131 atoms have an r.m.s. fit of 0.614
Lsq >xyz(1) = 0.3866*x+ 0.0907*y+ 0.9178*z+ -16.9487
Lsq >xyz(2) = 0.1155*x+ 0.9826*y+ -0.1458*z+ 25.7526
Lsq >xyz(3) = -0.9150*x+ 0.1624*y+ 0.3694*z+ 66.9966
Lsq >The transformation can be stored in O.
Lsq >A blank is taken to mean do not store anything
Lsq >The transformation will be stored in .LSQ_RT_ b_to_a
O > lsq_obj
Lsq >Apply a transformation to an existing object.
Lsq >There is an alignment called B_TO_A
Lsq >Which alignment [<CR>=restore a transformed object] ? b_to_a
Lsq >There is an object called A
Lsq >There is an object called SPH_A
Lsq >There is an object called B
Lsq >Which object ? b
Now they are on top of each other, I can identify them
O > lsq_obj ; b
That removed them. Do a deliberate mistake in LSQ
O > lsq_e
Lsq >Lsq definition defaults are taken.
Lsq >Least squares match by explicit definition of atoms.
Lsq >Given 2 molecules A,B the transformation rotates B onto A
Lsq >What is the name of A (the not rotated molecule) ? a
Lsq >What is the name of B (the rotated molecule) ? b
Lsq >Now define what atoms in A are to be matched to B.
Lsq >Defining 3 names in A implies a zone and an atom name.
Lsq >Defining 2 names in A implies a zone and CA atoms.
Lsq >Defining 1 name in A implies the CA of that residue.
Lsq >The B molecule requires just the start residue.
Lsq >A blank line terminates input.
Lsq >Define atoms from A (the not rotated molecule) : a1 a125
Lsq >Define atoms from B (the rotated molecule) : b5
Lsq >Define atoms from A (the not rotated molecule) :
Lsq >The 125 atoms have an r.m.s. fit of 11.038
Lsq >xyz(1) = 0.2809*x+ 0.0037*y+ 0.9597*z+ -8.7543
Lsq >xyz(2) = 0.2134*x+ 0.9747*y+ -0.0662*z+ 16.6426
Lsq >xyz(3) = -0.9357*x+ 0.2234*y+ 0.2730*z+ 69.5881
Lsq >The transformation can be stored in O.
Lsq >A blank is taken to mean do not store anything
Lsq >The transformation will be stored in .LSQ_RT_ b_to_a
O > lsq_i
Lsq >Least squares match by Semi Automatic Alignment.
Lsq >There is an alignment called B_TO_A
Lsq >Given 2 molecules A,B the transformation rotates B onto A
Lsq >What is the name of molecule A [A ]?
Lsq >Zone to look for alignment [all molecule A] :
Lsq >What is the name of molecule B [B ]?
Lsq >Zone to look for alignment [all molecule B] :
Lsq >What atom [CA] ?
Lsq >Number of atoms in A/B to look for alignment 131 131
Lsq >Search for connected fragments.
Lsq >A fragment of 131 1 1 residues located.
Lsq >Loop = 1 ,r.m.s. fit = 0.614 with 131 atoms
Lsq >x(1) = 0.3866*x+ 0.0907*y+ 0.9178*z+ -16.9487
Lsq >x(2) = 0.1155*x+ 0.9826*y+ -0.1458*z+ 25.7526
Lsq >x(3) = -0.9150*x+ 0.1624*y+ 0.3694*z+ 66.9966
Lsq >Search for connected fragments.
Lsq >A fragment of 131 1 1 residues located.
Lsq >Loop = 2 ,r.m.s. fit = 0.614 with 131 atoms
Lsq >x(1) = 0.3866*x+ 0.0907*y+ 0.9178*z+ -16.9487
Lsq >x(2) = 0.1155*x+ 0.9826*y+ -0.1458*z+ 25.7526
Lsq >x(3) = -0.9150*x+ 0.1624*y+ 0.3694*z+ 66.9966
Lsq >The transformation can be stored in O.
Lsq >A blank is taken to mean do not store anything
Lsq >The transformation will be stored in .LSQ_RT_ b_to_a
Lsq >Here are the fragments used in the alignment
Lsq > A1 SNKFLGTWKLVSSENFDEYMKALGVGLATRKLGNLAKPRVIISKKGDIIT
Lsq > B1 SNKFLGTWKLVSSENFDEYMKALGVGLATRKLGNLAKPRVIISKKGDIIT
Lsq > A51 IRTESPFKNTEISFKLGQEFEETTADNRKTKSTVTLARGSLNQVQKWNGN
Lsq > B51 IRTESPFKNTEISFKLGQEFEETTADNRKTKSTVTLARGSLNQVQKWNGN
Lsq > A101 ETTIKRKLVDGKMVVECKMKDVVCTRIYEKV A131
Lsq > B101 ETTIKRKLVDGKMVVECKMKDVVCTRIYEKV B131
See it worked
O > lsq_pair
Lsq >There is an matched pair called B_TO_A
Lsq >Object state ([ON],OFF) : on
That shows some little arrows between matched atoms
@change_lsq_cutoff.omac: Enter the cutoff distance used in the Lsq_improve algorithm. This must be an integer, and 10* the real value. The default is 38, i.e. 3.8Å.
Datablocks for the LSQ commands
.lsq_integer
1 Defines a distance cutoff limit for Lsq_improve, default of 38 corresponds to 3.8Å.
2 Defines smallest fragment size for Lsq_improve, default 3.
3 Defines the colour of the vector between paired atoms, default red.
Each transformation saved by the program creates 4 data blocks. If the user saved a transformation under the name 'rbp_to_p2' then the following would be created:
.lsq_rt_rbp_to_p2 : the transformation matrix as the following 12 real numbers
x = R1 x + R4 y + R7 z + R10
y = R2 x + R5 y + R8 z + R11
z = R3 x + R6 y + R9 z + R12
This data block can be used to specify operators that are applied to 3-D objects such as maps (command Rot_tran_obj), objects (command Lsq_obj) or molecular coordinates (command Lsq_mol).
.lsq_mm_rbp_to_p2: Holds the names of the two molecules being compared.
.lsq_mn_rbp_to_p2: Holds the paired set of atoms from each molecule.
.lsq_vp_rbp_to_p2: A description of the vectors between paired atoms in the O graphics object descriptor language. This is a large entry and should be deleted if not needed