Author: bugman
Date: Wed Jan 28 13:07:29 2015
New Revision: 27340
URL: http://svn.gna.org/viewcvs/relax?rev=27340&view=rev
Log:
Created the Structure.test_align_molecules_end_truncation system test.
This is to demonstrate a failure of the common residue detection algorithm
using multiple pairwise
alignments in the backend of the structure.align and other multiple structure
based user functions.
Modified:
trunk/test_suite/system_tests/structure.py
Modified: trunk/test_suite/system_tests/structure.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/structure.py?rev=27340&r1=27339&r2=27340&view=diff
==============================================================================
--- trunk/test_suite/system_tests/structure.py (original)
+++ trunk/test_suite/system_tests/structure.py Wed Jan 28 13:07:29 2015
@@ -354,6 +354,42 @@
# Add an atom that should not be superimposed.
self.interpreter.structure.add_atom(mol_name='CaM A', atom_name='Ti',
res_name='TST', res_num=1, pos=[1.0, 2.0, 3.0], element='Ti',
pdb_record='HETATM')
self.interpreter.structure.add_atom(mol_name='CaM B', atom_name='Ti',
res_name='TST', res_num=1, pos=[2.0, 3.0, 4.0], element='Ti',
pdb_record='HETATM')
+
+ # Superimpose the backbone heavy atoms.
+ self.interpreter.structure.align(method='fit to mean',
atom_id='@N,C,CA,O', displace_id=':82-5000')
+
+ # Check that the two structures now have the same atomic coordinates.
+ mol1 = cdp.structure.structural_data[0].mol[0]
+ mol2 = cdp.structure.structural_data[0].mol[1]
+ for i in range(len(mol1.atom_name)):
+ if mol1.res_num[i] == 1:
+ continue
+ self.assertAlmostEqual(mol1.x[i], mol2.x[i], 2)
+ self.assertAlmostEqual(mol1.y[i], mol2.y[i], 2)
+ self.assertAlmostEqual(mol1.z[i], mol2.z[i], 2)
+
+ # The last atom must be different - it is not displaced.
+ self.assertAlmostEqual(mol1.x[-1] - mol2.x[-1], -1.0, 2)
+ self.assertAlmostEqual(mol1.y[-1] - mol2.y[-1], -1.0, 2)
+ self.assertAlmostEqual(mol1.z[-1] - mol2.z[-1], -1.0, 2)
+
+
+ def test_align_molecules_end_truncation(self):
+ """Test of the structure.align user function, fitting to the mean
structure."""
+
+ # Path of the structure file.
+ path = status.install_path +
sep+'test_suite'+sep+'shared_data'+sep+'structures'
+
+ # Load the two rotated structures.
+ self.interpreter.structure.read_pdb('1J7O.pdb', dir=path,
read_model=1, set_model_num=1, set_mol_name='CaM A')
+ self.interpreter.structure.read_pdb('1J7O.pdb', dir=path,
read_model=1, set_model_num=1, set_mol_name='CaM B')
+ self.interpreter.structure.read_pdb('1J7O.pdb', dir=path,
read_model=1, set_model_num=1, set_mol_name='CaM C')
+
+ # Delete some end residues.
+ self.interpreter.structure.delete(atom_id="#CaM A:1-4")
+ self.interpreter.structure.delete(atom_id="#CaM A:60-100")
+ self.interpreter.structure.delete(atom_id="#CaM C:1-3")
+ self.interpreter.structure.delete(atom_id="#CaM C:75-100")
# Superimpose the backbone heavy atoms.
self.interpreter.structure.align(method='fit to mean',
atom_id='@N,C,CA,O', displace_id=':82-5000')
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits