Author: bugman
Date: Sat Jan 31 12:46:48 2015
New Revision: 27425
URL: http://svn.gna.org/viewcvs/relax?rev=27425&view=rev
Log:
Merged revisions 27377-27424 via svnmerge from
svn+ssh://[email protected]/svn/relax/trunk
........
r27377 | bugman | 2015-01-30 09:32:26 +0100 (Fri, 30 Jan 2015) | 6 lines
Small fix for the lib.structure.internal.coordinates.assemble_coord_array()
function.
The termination condition for determining the residues in common between all
structures was
incorrect.
........
r27378 | bugman | 2015-01-30 09:36:46 +0100 (Fri, 30 Jan 2015) | 7 lines
Modified the Structure.test_align_molecules_end_truncation system test.
The calmodulin bound calciums are now deleted prior to the structure.align
user function call. This
prevents these being labelled as '*' residues and aligning with real amino
acids via the central
star multiple sequence alignment (MSA) algorithm.
........
r27379 | bugman | 2015-01-30 09:59:25 +0100 (Fri, 30 Jan 2015) | 10 lines
Large speed up of the mol-res-spin selection object.
The Selection.contains_mol(), Selection.contains_res() and
Selection.contains_spin() methods of the
lib.selection module have been redesigned for speed. Instead of setting a
number of flags and
performing bit operations at the end of the method to return the correct
Boolean value, each of the
multiple checks now simply returns a Boolean value, avoiding all subsequent
checks. The check list
order has also been rearranged so that the least expensive checks are to the
top and the most time
intensive checks are last.
........
r27380 | bugman | 2015-01-30 10:30:34 +0100 (Fri, 30 Jan 2015) | 7 lines
Created the new relax data store object for saving sequence alignments.
This is in the new data_store.seq_align module via the Seqence_alignments
object, subclassed from
RelaxListType, for holding all alignments and the Alignment Element object,
subclassed from Element,
for holding each individual alignment. The objects are currently unused.
........
r27381 | bugman | 2015-01-30 11:03:38 +0100 (Fri, 30 Jan 2015) | 3 lines
Added the seq_align module to the data_store package __all__ list.
........
r27382 | bugman | 2015-01-30 11:04:02 +0100 (Fri, 30 Jan 2015) | 3 lines
Spelling mistake in the Sequence_alignments class name.
........
r27383 | bugman | 2015-01-30 11:33:40 +0100 (Fri, 30 Jan 2015) | 6 lines
Created the Test_seq_align.test_alignment_addition unit test.
This is in the _data_store.test_seq_align unit test module. This tests the
setup of the sequence
alignment object via the data_store.seq_align.Sequence_alignment.add() method.
........
r27384 | bugman | 2015-01-30 11:35:11 +0100 (Fri, 30 Jan 2015) | 6 lines
Fixes for the data_store.seq_align.Alignment.generate_id() method.
These problems were identified by the _data_store.test_seq_align module
Test_seq_align.test_alignment_addition unit test.
........
r27385 | bugman | 2015-01-30 11:45:54 +0100 (Fri, 30 Jan 2015) | 7 lines
Added the Test_seq_align.test_find_alignment and
Test_seq_align.test_find_missing_alignment unit tests.
These are in the _data_store.test_seq_align unit test module. They check the
functionality of the
currently unimplemented Sequence_alignment.find_alignment() method which will
be used to return
pre-existing alignments.
........
r27386 | bugman | 2015-01-30 11:57:38 +0100 (Fri, 30 Jan 2015) | 5 lines
Code rearrangement in the _data_store.test_seq_align unit test module.
The ID generation has been shifted into the generate_ids() method to be used
by multiple tests.
........
r27387 | bugman | 2015-01-30 11:58:44 +0100 (Fri, 30 Jan 2015) | 5 lines
Implemented the data_store.seq_align.Sequence_alignments.find_alignment()
method.
This will only return an alignment if all alignment input data and alignment
settings match exactly.
........
r27388 | bugman | 2015-01-30 12:23:40 +0100 (Fri, 30 Jan 2015) | 6 lines
Shifted the data_store.seq_align.Alignment.generate_id() method into the
relax library.
It has been converted into the
lib.structure.internal.coordinates.generate_id() function to allow
for greater reuse.
........
r27389 | bugman | 2015-01-30 12:35:35 +0100 (Fri, 30 Jan 2015) | 9 lines
Created the Sequence.test_align_molecules system test.
This will be used to implement the sequence.align user function which will be
used for performing
sequence alignments on structural data within the relax data store and
storing the data in the data
pipe independent sequence_alignments data store object (which will be an
instance of
data_store.seq_align.Sequence_alignments). The system test also checks the
XML saving and loading
of the ds.sequence_alignments data structure.
........
r27390 | bugman | 2015-01-30 12:46:23 +0100 (Fri, 30 Jan 2015) | 8 lines
Renamed the Sequence.test_align_molecules system test to
Structure.test_sequence_alignment_molecules.
As the sequence alignment is dependent on the structural data in the relax
data store, the user
function for sequence alignment would be better named as
structure.sequence_alignment. The
sequence.align user function is not appropriate as all other sequence user
functions relate to the
molecule, residue, and spin data structure of each data pipe rather than to
the structural data.
........
r27391 | bugman | 2015-01-30 14:46:12 +0100 (Fri, 30 Jan 2015) | 6 lines
Modified the Structure.test_sequence_alignment_molecules system test.
Changed and expanded the arguments to the yet to be implemented
structure.sequence_alignment user
function.
........
r27392 | bugman | 2015-01-30 15:40:38 +0100 (Fri, 30 Jan 2015) | 8 lines
Important formatting improvement for the description in the GUI user function
windows.
Previously lists, item lists, and prompt items were spaced with one empty
line at the top and two at
the bottom. The two empty lines at the bottom was an accident caused by how
the list text elements
were built up. Now the final newline character is stripped so that the top
and bottom of the lists
only consist of one empty line. The change can give a lot more room in the
GUI window.
........
r27393 | bugman | 2015-01-30 15:50:18 +0100 (Fri, 30 Jan 2015) | 7 lines
Created the frontend for the structure.sequence_alignment user function.
This is based on the structure.align user function with the 3D
superimposition arguments removed and
new arguments added for selecting the MSA algorithm and the pairwise
alignment algorithm (despite
only NW70 being currently implemented).
........
r27394 | bugman | 2015-01-30 16:27:19 +0100 (Fri, 30 Jan 2015) | 8 lines
Modified the assemble_coordinates() function of the
pipe_control.structure.main module.
The function has been renamed to assemble_structural_objects(). The call to
the
lib.structure.internal.coordinates.assemble_coord_array() function has also
been shifted out of
assemble_structural_objects() to simplify the logic and decrease the amount
of arguments passed
around.
........
r27395 | bugman | 2015-01-30 16:55:13 +0100 (Fri, 30 Jan 2015) | 7 lines
Spun out the atomic assembly code of the assemble_coord_array() function.
The code from the lib.structure.internal.coordinates.assemble_coord_array()
function has been
shifted to the new assemble_atomic_coordinates(). This is to simplify
assemble_coord_array() as
well as to isolate the individual functionality for reuse.
........
r27396 | bugman | 2015-01-30 17:20:04 +0100 (Fri, 30 Jan 2015) | 6 lines
Implemented the backend of the structure.sequence_alignment user function.
This checks some of the input parameters, assembles the structural objects
then the atomic
coordinate information, performs the multiple sequence alignment, and then
stores the results.
........
r27397 | bugman | 2015-01-30 17:31:48 +0100 (Fri, 30 Jan 2015) | 6 lines
Fixes for the sequence alignment objects for the relax data store.
The Sequence_alignments(RelaxListType) and Alignment(Element) classes were
not being set up
correctly. The container names and descriptions were missing.
........
r27398 | bugman | 2015-01-30 17:34:36 +0100 (Fri, 30 Jan 2015) | 5 lines
The data store ds.sequence_alignment object is now being treated as special
and is blacklisted.
The object is now explicitly recreated in the data store from_xml() method.
........
r27399 | bugman | 2015-01-30 17:42:54 +0100 (Fri, 30 Jan 2015) | 3 lines
Fix for a fatal bug introduced in the last commit (r27398).
........
r27400 | bugman | 2015-01-30 17:52:57 +0100 (Fri, 30 Jan 2015) | 6 lines
More advanced support for different numpy number types in the lib.xml relax
library module.
This allows numpy int16, int32, float32, and float64 objects to be stored and
retrieved from relax
XML save and results files.
........
r27401 | bugman | 2015-01-30 18:03:56 +0100 (Fri, 30 Jan 2015) | 3 lines
Fixes for handling the sequence_alignments data store object.
........
r27402 | bugman | 2015-01-30 18:04:44 +0100 (Fri, 30 Jan 2015) | 5 lines
Implemented the data store Sequence_alignments.from_xml() method.
This method is required for being able to read RelaxListType objects from the
XML file.
........
r27403 | bugman | 2015-01-30 18:52:30 +0100 (Fri, 30 Jan 2015) | 8 lines
Modified the data returned by
lib.structure.internal.coordinates.assemble_atomic_coordinates().
The function will now assemble simple lists of object IDs, model numbers and
molecule names with
each list element corresponding to a different structural model. This will
be very useful for
converting from the complicated pipes, models, and molecules user function
arguments into relax data
store independent flat lists.
........
r27404 | bugman | 2015-01-30 18:54:08 +0100 (Fri, 30 Jan 2015) | 7 lines
Updates for the structure.sequence_alignment user function.
This is for the changes to the
lib.structure.internal.coordinates.assemble_atomic_coordinates()
function return values. The new object ID, model, and molecule flat lists
are used directly for
storing the alignment results in the relax data store.
........
r27405 | bugman | 2015-01-30 19:46:14 +0100 (Fri, 30 Jan 2015) | 6 lines
Updates for the Structure.test_sequence_alignment_molecules system test.
This is required due to the changes in the backend of the
structure.sequence_alignment user
function.
........
r27406 | bugman | 2015-01-31 10:02:45 +0100 (Sat, 31 Jan 2015) | 11 lines
Merger of the structure.align and structure.superimpose user functions.
The final user function is called structure.superimpose. As the sequence
alignment component of the
structure.align user function has been shifted into the new
structure.sequence_alignment user
function and the information is now stored in ds.sequence_alignments relax
data store object, the
functionality of structure.align and structure.superimpose are now
essentially the same. The
sequence alignment arguments and documentation has also been eliminated. And
the documentation has
been updated to say that sequence alignments from
structure.sequence_alignment will be used for
superimposing the structures.
........
r27407 | bugman | 2015-01-31 10:03:50 +0100 (Sat, 31 Jan 2015) | 3 lines
Updated the Structure system tests for the structure.align and
structure.superimpose user function merger.
........
r27408 | bugman | 2015-01-31 10:13:27 +0100 (Sat, 31 Jan 2015) | 5 lines
Fix for the structure.sequence_alignment user function.
The alignment data should be stored in ds.sequence_alignments rather than
ds.sequence_alignment.
........
r27409 | bugman | 2015-01-31 10:17:58 +0100 (Sat, 31 Jan 2015) | 6 lines
Sequence alignments can now be retrieved without supplying the algorithm
settings.
This is in the data_store.seq_align.Sequence_alignments.find_alignment()
method. The change allows
for the retrieval of pre-existing sequence alignments at any stage.
........
r27410 | bugman | 2015-01-31 11:32:07 +0100 (Sat, 31 Jan 2015) | 15 lines
Added a function for assemble the common atomic coordinates taking sequence
alignments into account.
This is the new pipe_control.structure.main.assemble_structural_coordinates()
function. It takes
the sequence alignment logic out of the
lib.structure.internal.coordinates.assemble_coord_array()
function so that sequence alignments in the relax data store can be used.
The logic has also been
redefined as: 1, use a sequence alignment from the relax data store if
present; 2, use no sequence
alignment if coordinates only come from structural models; 3, fall back to a
residue number based
alignment. The residue number based alignment is yet to be implemented.
As a consequence, the
lib.structure.internal.coordinates.assemble_coord_array() function has been
greatly simplified. It no longer handles sequence alignments, but instead
expects the residue
skipping data structure, built from the alignment, as an argument. The
seq_info_flag argument has
also been eliminated in this function as well as the
pipe_control.structure.main module.
........
r27411 | bugman | 2015-01-31 11:36:34 +0100 (Sat, 31 Jan 2015) | 7 lines
Updated the structure.displacement user function for the changed atomic
assembly logic.
This now uses the assemble_structural_coordinates() function of the
pipe_control.structure.main
module to obtain the common coordinates based on pre-existing sequence
alignments, no-alignment, or
the default of a residue number based alignment.
........
r27412 | bugman | 2015-01-31 11:37:29 +0100 (Sat, 31 Jan 2015) | 7 lines
Updated the structure.find_pivot user function for the changed atomic
assembly logic.
This now uses the assemble_structural_coordinates() function of the
pipe_control.structure.main
module to obtain the common coordinates based on pre-existing sequence
alignments, no-alignment, or
the default of a residue number based alignment.
........
r27413 | bugman | 2015-01-31 11:38:34 +0100 (Sat, 31 Jan 2015) | 7 lines
Updated the structure.atomic_fluctuations user function for the changed
atomic assembly logic.
This now uses the assemble_structural_coordinates() function of the
pipe_control.structure.main
module to obtain the common coordinates based on pre-existing sequence
alignments, no-alignment, or
the default of a residue number based alignment.
........
r27414 | bugman | 2015-01-31 11:39:41 +0100 (Sat, 31 Jan 2015) | 7 lines
Updated the structure.rmsd user function for the changed atomic assembly
logic.
This now uses the assemble_structural_coordinates() function of the
pipe_control.structure.main
module to obtain the common coordinates based on pre-existing sequence
alignments, no-alignment, or
the default of a residue number based alignment.
........
r27415 | bugman | 2015-01-31 11:40:22 +0100 (Sat, 31 Jan 2015) | 7 lines
Updated the structure.web_of_motion user function for the changed atomic
assembly logic.
This now uses the assemble_structural_coordinates() function of the
pipe_control.structure.main
module to obtain the common coordinates based on pre-existing sequence
alignments, no-alignment, or
the default of a residue number based alignment.
........
r27416 | bugman | 2015-01-31 11:42:52 +0100 (Sat, 31 Jan 2015) | 5 lines
Fix for the structure.superimpose user function if no data pipes are supplied.
This reintroduces the pipes list construction.
........
r27417 | bugman | 2015-01-31 11:49:51 +0100 (Sat, 31 Jan 2015) | 6 lines
Fix for the new pipe_control.structure.main.assemble_structural_coordinates()
function.
The atom_id argument is now passed into the assemble_atomic_coordinates()
function of the
lib.structure.internal.coordinates module so that atom subsets are once again
recognised.
........
r27418 | bugman | 2015-01-31 11:54:29 +0100 (Sat, 31 Jan 2015) | 5 lines
Another fix for the new
pipe_control.structure.main.assemble_structural_coordinates() function.
The logic for determining if only models will be superimposed was incorrect.
........
r27419 | bugman | 2015-01-31 12:04:18 +0100 (Sat, 31 Jan 2015) | 7 lines
Implemented the residue number based alignment in the atomic assembly
function.
This is in the new
pipe_control.structure.main.assemble_structural_coordinates() function. The
code
for creating the residue skipping data structure is now shared between the
three sequence alignment
options.
........
r27420 | bugman | 2015-01-31 12:21:57 +0100 (Sat, 31 Jan 2015) | 8 lines
Implemented the multiple sequence alignment method based on residue numbers.
This is the new msa_residue_numbers() function in the
lib.sequence_alignment.msa module. The logic
is rather basic in that the alignment is based on a residue number range from
the lowest residue
number to the highest - i.e. it does not take into account gaps in common
between all input
sequences.
........
r27421 | bugman | 2015-01-31 12:24:09 +0100 (Sat, 31 Jan 2015) | 5 lines
The residue number based sequence alignment is now executed when assembling
atomic coordinates.
This is in the assemble_structural_coordinates() function of the
pipe_control.structure.main module.
........
r27422 | bugman | 2015-01-31 12:41:37 +0100 (Sat, 31 Jan 2015) | 6 lines
Modified the internal structural object one_letter_codes() method.
This now validates the models to make sure all models match, and the method
requires the selection
object so that residue subsets can be handled.
........
r27423 | bugman | 2015-01-31 12:42:39 +0100 (Sat, 31 Jan 2015) | 5 lines
The assemble_atomic_coordinates() function now calls one_letter_codes() with
the selection object.
This is the lib.structure.internal.coordinates module function.
........
r27424 | bugman | 2015-01-31 12:44:26 +0100 (Sat, 31 Jan 2015) | 6 lines
Fix for the residue number based sequence alignment when assembling
structural coordinates.
This is in the assemble_structural_coordinates() function of the
pipe_control.structure.main module.
The sequences of the different molecules can be of different lengths.
........
Added:
branches/frame_order_cleanup/data_store/seq_align.py
- copied unchanged from r27424, trunk/data_store/seq_align.py
branches/frame_order_cleanup/test_suite/unit_tests/_data_store/test_seq_align.py
- copied unchanged from r27424,
trunk/test_suite/unit_tests/_data_store/test_seq_align.py
Modified:
branches/frame_order_cleanup/ (props changed)
branches/frame_order_cleanup/data_store/__init__.py
branches/frame_order_cleanup/gui/uf_objects.py
branches/frame_order_cleanup/lib/selection.py
branches/frame_order_cleanup/lib/sequence_alignment/msa.py
branches/frame_order_cleanup/lib/structure/internal/coordinates.py
branches/frame_order_cleanup/lib/structure/internal/object.py
branches/frame_order_cleanup/lib/xml.py
branches/frame_order_cleanup/pipe_control/structure/main.py
branches/frame_order_cleanup/test_suite/system_tests/scripts/n_state_model/structure_align.py
branches/frame_order_cleanup/test_suite/system_tests/sequence.py
branches/frame_order_cleanup/test_suite/system_tests/structure.py
branches/frame_order_cleanup/test_suite/unit_tests/_data_store/__init__.py
branches/frame_order_cleanup/user_functions/structure.py
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: branches/frame_order_cleanup/data_store/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/data_store/__init__.py?rev=27425&r1=27424&r2=27425&view=diff
Modified: branches/frame_order_cleanup/gui/uf_objects.py
[... 35 lines stripped ...]
_______________________________________________
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