mailr27635 - /trunk/test_suite/system_tests/structure.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on February 12, 2015 - 19:42:
Author: bugman
Date: Thu Feb 12 19:42:34 2015
New Revision: 27635

URL: http://svn.gna.org/viewcvs/relax?rev=27635&view=rev
Log:
Created new system tests for implementing new functionality for the 
structure.mean user function.

This includes the Structure.test_mean_models and 
Structure.test_mean_molecules.  The idea is to
convert the user function to the new pipes/models/molecules/atom_id design.  
This will allow
molecules with non-identical sequences and atomic compositions to be 
averaged.  The set_mol_name and
set_model_num arguments from the structure.read_pdb, structure.read_gaussian, 
and structure.read_xyz
user functions will also be implemented to allow the mean structure to be 
stored alongside the other
molecules.


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=27635&r1=27634&r2=27635&view=diff
==============================================================================
--- trunk/test_suite/system_tests/structure.py  (original)
+++ trunk/test_suite/system_tests/structure.py  Thu Feb 12 19:42:34 2015
@@ -3716,6 +3716,88 @@
         self.assertEqual(mol.z[1], 0.0)
 
 
+    def test_mean_models(self):
+        """Test the structure.mean user function for different models.
+
+        This checks the molecules argument of the U{structure.mean user 
function<http://www.nmr-relax.com/manual/structure_mean.html>}.
+        """
+
+        # Set up 3 models.
+        self.interpreter.structure.add_model(model_num=1)
+        self.interpreter.structure.add_model(model_num=2)
+        self.interpreter.structure.add_model(model_num=4)
+
+        # Check that the models were correctly created.
+        self.assert_(hasattr(cdp, 'structure'))
+        self.assert_(hasattr(cdp.structure, 'structural_data'))
+        self.assertEqual(len(cdp.structure.structural_data), 3)
+
+        # Create a structure with some atoms.
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=1, pos=[[1., 0., -1.], [0., 0., 0.], [-1., 0., 1.]], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=2, pos=[[1., 2., -1.], [0., 2., 0.], [-1., 2., 1.]], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=3, pos=[[1., 20., -1.], [0., 20., 0.], [-1., 20., 1.]], element='S')
+
+        # Calculate the mean structure and store it as model 3.
+        self.interpreter.structure.mean(models=[1, 2, 4], set_model_num=3)
+
+        # Check the internal atomic info.
+        self.assertEqual(cdp.structure.structural_data[0].num, 1)
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].x, [1., 1., 
1.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].z, [-1., 
-1., -1.])
+        self.assertEqual(cdp.structure.structural_data[1].num, 2)
+        self.assertEqual(cdp.structure.structural_data[1].mol[0].x, [0., 0., 
0.])
+        self.assertEqual(cdp.structure.structural_data[1].mol[0].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[1].mol[0].z, [0., 0., 
0.])
+        self.assertEqual(cdp.structure.structural_data[2].num, 4)
+        self.assertEqual(cdp.structure.structural_data[2].mol[0].x, [-1., 
-1., -1.])
+        self.assertEqual(cdp.structure.structural_data[2].mol[0].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[2].mol[0].z, [1., 1., 
1.])
+        self.assertEqual(cdp.structure.structural_data[3].num, 3)
+        self.assertEqual(cdp.structure.structural_data[3].mol[0].x, [0., 0., 
0.])
+        self.assertEqual(cdp.structure.structural_data[3].mol[0].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[3].mol[0].z, [0., 0., 
0.])
+
+
+    def test_mean_molecules(self):
+        """Test the structure.mean user function for different molecules in 
one pipe.
+
+        This checks the molecules argument of the U{structure.mean user 
function<http://www.nmr-relax.com/manual/structure_mean.html>}.
+        """
+
+        # Create three molecules 'X', 'Y', and 'Z' with a some atoms.
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=1, mol_name='X', pos=[1., 0., -1.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=1, mol_name='Y', pos=[0., 0., 0.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=1, mol_name='Z', pos=[-1., 0., 1.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=2, mol_name='X', pos=[1., 2., -1.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=2, mol_name='Y', pos=[0., 2., 0.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=2, mol_name='Z', pos=[-1., 2., 1.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=3, mol_name='X', pos=[1., 20., -1.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=3, mol_name='Y', pos=[0., 20., 0.], element='S')
+        self.interpreter.structure.add_atom(atom_name='A', res_name='UNK', 
res_num=3, mol_name='Z', pos=[-1., 20., 1.], element='S')
+
+        # Calculate the mean structure.
+        self.interpreter.structure.mean(molecules=[['X', 'Y', 'Z']], 
set_mol_name='A')
+
+        # Check the internal atomic info.
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].name, 'X')
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].x, [1., 1., 
1.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[0].z, [-1., 
-1., -1.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[1].name, 'Y')
+        self.assertEqual(cdp.structure.structural_data[0].mol[1].x, [0., 0., 
0.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[1].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[1].z, [0., 0., 
0.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[2].name, 'Z')
+        self.assertEqual(cdp.structure.structural_data[0].mol[2].x, [-1., 
-1., -1.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[2].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[2].z, [1., 1., 
1.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[3].name, 'A')
+        self.assertEqual(cdp.structure.structural_data[0].mol[3].x, [0., 0., 
0.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[3].y, [0., 2., 
20.])
+        self.assertEqual(cdp.structure.structural_data[0].mol[3].z, [0., 0., 
0.])
+
+
     def test_metadata_xml(self):
         """Test the storage and loading of metadata into an XML state 
file."""
 




Related Messages


Powered by MHonArc, Updated Fri Feb 13 17:20:03 2015