Author: bugman
Date: Thu Feb 12 18:41:55 2015
New Revision: 27633
URL: http://svn.gna.org/viewcvs/relax?rev=27633&view=rev
Log:
Merged revisions 27612,27614,27616-27618,27620-27629 via svnmerge from
svn+ssh://[email protected]/svn/relax/trunk
........
r27612 | bugman | 2015-02-10 12:05:01 +0100 (Tue, 10 Feb 2015) | 10 lines
Huge speed up for the assembly of atomic coordinates from a large number of
structures.
The internal structural object validate_models() method was being called once
for each structure
when assembling the atomic coordinates. This resulted in the _translate()
internal structural
object method, which converts all input data to formatted strings, being
called hundreds of millions
of times. The problem was in
lib.structure.internal.coordinates.assemble_atomic_coordinates(), in
that the one_letter_codes() method, which calls validate_models(), was called
for each molecule
encountered. The solution was not to validate models in one_letter_codes().
........
r27614 | bugman | 2015-02-10 12:54:17 +0100 (Tue, 10 Feb 2015) | 8 lines
Huge speed up of the internal structural object validate_models() method.
The string formatting to create pseudo-PDB records and the large number of
calls to the _translate()
method for atomic information string formatting has been shifted to only be
called when atomic
information does not match. Instead the structural information is directly
compared within a large
if-else statement.
........
r27616 | bugman | 2015-02-10 13:08:00 +0100 (Tue, 10 Feb 2015) | 6 lines
Created the Structure.test_atomic_fluctuations_no_match system test.
This demonstrates a failure in the operation of the
structure.atomic_fluctuations user function when
the supplied atom ID matches no atoms.
........
r27617 | bugman | 2015-02-10 13:15:55 +0100 (Tue, 10 Feb 2015) | 6 lines
Fixes for the lib.structure.internal.coordinates.assemble_coord_array()
function.
The problem was uncovered by the Structure.test_atomic_fluctuations_no_match
system test. The
function can now handle no data being passed in.
........
r27618 | bugman | 2015-02-10 13:19:26 +0100 (Tue, 10 Feb 2015) | 8 lines
Fixes for the pipe_control.structure.main.assemble_structural_coordinates()
function.
The function will now raise a RelaxError if no structural data matching the
atom ID can be found.
The problem was uncovered by the Structure.test_atomic_fluctuations_no_match
system test. The fix
affects the structure.atomic_fluctuations, structure.displacement,
structure.find_pivot,
structure.rmsd, structure.superimpose, and structure.web_of_motion user
functions.
........
r27620 | bugman | 2015-02-10 13:24:55 +0100 (Tue, 10 Feb 2015) | 6 lines
Fix for the Structure.test_atomic_fluctuations_no_match system test.
The structure.atomic_fluctuations user function will now raise a RelaxError
when no data
corresponding to the atom ID can be found, so the test now checks for this.
........
r27621 | bugman | 2015-02-11 09:25:58 +0100 (Wed, 11 Feb 2015) | 3 lines
Created the unit test infrastructure for the lib.structure.internal.object
module.
........
r27622 | bugman | 2015-02-11 09:55:57 +0100 (Wed, 11 Feb 2015) | 8 lines
Created the Test_object.test_add_atom_sort unit test.
This is from the _lib._structure._internal.test_object unit test module. The
test will be used to
implement the sorting of input data by residue number in the add_atom()
internal structural object
method. This will mean that added atoms will be placed in residue sequence
order, so that output
PDB files are correctly ordered.
........
r27623 | bugman | 2015-02-11 10:17:07 +0100 (Wed, 11 Feb 2015) | 9 lines
Implementation of methods for sorting sequence data in the internal
structural object.
The information is sorted in the molecule container level using the new
MolContainer._sort() private
method. This uses the _sort_key() helper method which determines what the
new order should be.
This is used as the 'key' argument for the Python sort() method. Instead of
list shuffling, new
lists in the correct order are created. Although not memory efficient, this
might be faster than
shuffling.
........
r27624 | bugman | 2015-02-11 10:23:45 +0100 (Wed, 11 Feb 2015) | 6 lines
The loading of structural data now sorts the data if the merge flag is True.
The pack_structs() method for sorting the data will now call the new
MolContainer._sort() function
is the data is being merged. This is to ensure that the final structural
data is correctly ordered.
........
r27625 | bugman | 2015-02-11 10:29:27 +0100 (Wed, 11 Feb 2015) | 3 lines
Fixes for a number of Structure system tests for the sorted structural data
changes.
........
r27626 | bugman | 2015-02-11 10:48:24 +0100 (Wed, 11 Feb 2015) | 7 lines
Modified the structure.read_pdb user function backend to skip water molecules.
All residues with the name 'HOH' are now skipped when loading PDB files.
This is implemented in the
MolContainer.fill_object_from_pdb() method, and a RelaxWarning is printed
listing the residue
numbers of all skipped waters.
........
r27627 | bugman | 2015-02-11 10:49:57 +0100 (Wed, 11 Feb 2015) | 6 lines
Modified the Structure.test_read_pdb_1UBQ system test for the new water
skipping feature.
As the structure.read_pdb user function will now skip waters, the last atom
in the structural object
will now be the last ubiquitin atom and not the last water atom.
........
r27628 | bugman | 2015-02-11 11:25:41 +0100 (Wed, 11 Feb 2015) | 7 lines
Modified the Test_object.test_add_atom_sort unit test to check atom
connectivities.
This is from the _lib._structure._internal.test_object unit test module. The
problem is that the
MolContainer._sort() method for sorting the structural data currently does
not correctly update the
bonded data structure.
........
r27629 | bugman | 2015-02-11 11:28:15 +0100 (Wed, 11 Feb 2015) | 6 lines
Completed the implementation of the sorting of structural data in the
internal structural object.
The MolContainer._sort() private method now changes the connect atom indices
in the bonded data
structure to the new sorted indices.
........
Added:
branches/nmrglue/test_suite/unit_tests/_lib/_structure/_internal/test_object.py
- copied unchanged from r27629,
trunk/test_suite/unit_tests/_lib/_structure/_internal/test_object.py
Modified:
branches/nmrglue/ (props changed)
branches/nmrglue/lib/structure/internal/coordinates.py
branches/nmrglue/lib/structure/internal/molecules.py
branches/nmrglue/lib/structure/internal/object.py
branches/nmrglue/pipe_control/structure/main.py
branches/nmrglue/test_suite/system_tests/structure.py
branches/nmrglue/test_suite/unit_tests/_lib/_structure/_internal/__init__.py
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: branches/nmrglue/lib/structure/internal/coordinates.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/lib/structure/internal/coordinates.py?rev=27633&r1=27632&r2=27633&view=diff
Modified: branches/nmrglue/lib/structure/internal/molecules.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/lib/structure/internal/molecules.py?rev=27633&r1=27632&r2=27633&view=diff
Modified: branches/nmrglue/lib/structure/internal/object.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/lib/structure/internal/object.py?rev=27633&r1=27632&r2=27633&view=diff
Modified: branches/nmrglue/pipe_control/structure/main.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/pipe_control/structure/main.py?rev=27633&r1=27632&r2=27633&view=diff
Modified: branches/nmrglue/test_suite/system_tests/structure.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/test_suite/system_tests/structure.py?rev=27633&r1=27632&r2=27633&view=diff
Modified:
branches/nmrglue/test_suite/unit_tests/_lib/_structure/_internal/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/test_suite/unit_tests/_lib/_structure/_internal/__init__.py?rev=27633&r1=27632&r2=27633&view=diff
_______________________________________________
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