Author: bugman Date: Fri Jun 22 13:54:38 2012 New Revision: 17022 URL: http://svn.gna.org/viewcvs/relax?rev=17022&view=rev Log: Merged revisions 17017-17021 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r17017 | bugman | 2012-06-21 10:36:48 +0200 (Thu, 21 Jun 2012) | 3 lines The spin ID lookup table has been made private so that it is not included in the save files. ........ r17018 | bugman | 2012-06-21 21:49:43 +0200 (Thu, 21 Jun 2012) | 5 lines Fix for reading of BMRB CSA saveframe data - spin IDs generated from the data now have molecule info. This is problematic only in certain edge cases, for example a multi-molecule entry. ........ r17019 | bugman | 2012-06-21 22:05:06 +0200 (Thu, 21 Jun 2012) | 6 lines Removal of a hack from the generic_fns.bmrb.generate_sequence() function. This hack was for naming unnamed spins. But this is not needed as the generic_fns.mol_res_spin.create_spin() function already does this but with many more safety checks. ........ r17020 | bugman | 2012-06-21 22:18:14 +0200 (Thu, 21 Jun 2012) | 6 lines Removed a hack from the generic_fns.relax_data.pack_data() function for the BMRB support. This calls the generic_fns.bmrb.generate_sequence() function! As non-BMRB code paths access the pack_data() function, this is a nasty hack which would have caused problems in the future. ........ r17021 | bugman | 2012-06-22 13:41:40 +0200 (Fri, 22 Jun 2012) | 26 lines Creation of a fast molecule, residue and spin data lookup framework using private metadata. This consists of two elements: The already existing private lookup table now at cdp.mol._spin_id_lookup which is a dictionary with spin IDs as keys and a list of molecule, residue and spin indices as values; and a set of private variables within the molecule, residue and spin containers which identify the parent container names, numbers and indices. As all data is private, it will not be visible to the user or be saved in the XML results and save files and should be considered volatile. All this private metadata is kept up to date via the two new generic_fns.mol_res_spin functions metadata_prune() and metadata_update(). For fast operation, these methods can update specific container subsets via the mol_index, res_index and spin_index arguments. All parts of relax which modify the data pipe's molecule, residue and spin data structure (the generic_fns.mol_res_spin functions and test suite) call these two functions as needed. Two auxiliary functions spin_id_variants() and spin_id_variants_elim() have been added to create all possible matching spin ID strings for a given spin (the second created IDs strings which should no longer exist). The speed ups from this change are significant. On one system, the system and unit tests decrease from 492.8s/26.4s to 434.3s/25.1s. On another the decrease is from 330.7s/17.4s to 258.9s/15.4s. In addition, the pipe argument has been added to the generic_fns.mol_res_spin functions create_molecule(), create_residue(), create_pseudo_spin() and create_spin(). Also, the molecule name will now always be a string! Previously this was allowed to be an integer. This is needed for the private metadata functions to operate correctly. A number of unit tests have been updated for the changes. ........ Modified: branches/interatomic/ (props changed) branches/interatomic/data/__init__.py branches/interatomic/data/mol_res_spin.py branches/interatomic/generic_fns/bmrb.py branches/interatomic/generic_fns/mol_res_spin.py branches/interatomic/generic_fns/relax_data.py branches/interatomic/generic_fns/sequence.py branches/interatomic/specific_fns/model_free/bmrb.py branches/interatomic/test_suite/unit_tests/_generic_fns/test_mol_res_spin.py branches/interatomic/test_suite/unit_tests/molecule_testing_base.py branches/interatomic/test_suite/unit_tests/spin_testing_base.py [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/interatomic/data/__init__.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/data/__init__.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/data/mol_res_spin.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/data/mol_res_spin.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/generic_fns/bmrb.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/generic_fns/bmrb.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/generic_fns/mol_res_spin.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/generic_fns/mol_res_spin.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/generic_fns/relax_data.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/generic_fns/relax_data.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/generic_fns/sequence.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/generic_fns/sequence.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/specific_fns/model_free/bmrb.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/specific_fns/model_free/bmrb.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/test_suite/unit_tests/_generic_fns/test_mol_res_spin.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/test_suite/unit_tests/_generic_fns/test_mol_res_spin.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/test_suite/unit_tests/molecule_testing_base.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/test_suite/unit_tests/molecule_testing_base.py?rev=17022&r1=17021&r2=17022&view=diff Modified: branches/interatomic/test_suite/unit_tests/spin_testing_base.py URL: http://svn.gna.org/viewcvs/relax/branches/interatomic/test_suite/unit_tests/spin_testing_base.py?rev=17022&r1=17021&r2=17022&view=diff