Open main menu

Changes

Relax 2.1.0

1,777 bytes added, 20:32, 13 September 2014
User function HTML manual links.
* Merger of the absolute RDC branch (absolute_rdc).
* Added support for the absolute or signless RDCs to the N-state model. This simply propagates the absolute flags into the maths_fns.rdc module functions whereby the absolute RDC values and gradients can be returned.
* The [http://www.nmr-relax.com/manual/rdc.read user function ] backend is now storing the absolute value flag in interatom.absolute_rdc.
* Converted the N-state model absolute_rdcs.py system test script to the interatomic data design.
* Created an absolute value version of the synthetic CaM RDC file for the test suite.
* The [http://www.nmr-relax.com/manual/rdc.read user function ] backend now accepts the 'absolute' argument. This is used to signal that the RDCs are signless absolute values.
* Created an initial system (and GUI) test for the absolute RDC concept.
* Added the 'absolute' keyword arg to the [http://www.nmr-relax.com/manual/rdc.read user function ] definition. This will be used to mark RDCs as being unsigned.
* Merger of the interatomic data container branch (interatomic).
* Added a new screenshot of the GUI model-free auto-analysis, as it is now quite different.
* Added a wizard graphic (SVG form) for the <sup>13</sup>C-<sup>1</sup>H dipole-dipole pair.
* A number of the generic_fns.mol_res_spin functions now accept the pipe argument. These include name_spin(), set_spin_element(), and set_spin_isotope() and this allows the functions to operate on any data pipe.
* The [http://www.nmr-relax.com/manual/dipole_pair.define user function ] backend now can handle the pipe argument. This allows it to operate on an alternative data pipe.
* The State.test_old_state_loading() GUI test now checks the loaded data to a small extent.
* Better backwards compatibility of old relax results and state XML files for the interatomic design. The MoleculeContainer._back_compat_hook() method has been shifted into the Relax_data_store._back_compat_hook() method. This allows the spin containers with attached protons to be converted (with new spin containers for the attached protons added) after loading of the XML state.
* A small speed up for the model-free duplicate_data() function. This is used in model selection.
* The generic_fns.mol_res_spin.index_molecule() function now handles no molecule name given. If no name is given and only a single molecule is in the current data pipe, then the index of 0 will be returned.
* The [http://www.nmr-relax.com/manual/sequence.attach_protons user function ] now ignores spins with pre-existing attached protons.
* Improvement for the generic_fns.interatomic.return_interatom_list() function. The spin ID matching is now through the id_match() function, allowing unique but different spin IDs to be used. This now matches the return_interatom() behaviour.
* The relax_io.read_spin_data() function can now handle spin IDs in quotes.
* The interatomic test suite scripts are now GUI tests as well.
* Created the new Interatomic system test class for testing out the interatomic data containers.
* The [http://www.nmr-relax.com/manual/rdc.read user function ] can now handle spin IDs in quotation marks.* Interatomic data containers can now be selected and deselected. The user functions [http://www.nmr-relax.com/manual/select.interatom .html select.interatom] and [http://www.nmr-relax.com/manual/deselect.interatom.html deselect.interatom ] have been created mimicking the equivalent [http://www.nmr-relax.com/manual/select.spin .html select.spin] and [http://www.nmr-relax.com/manual/deselect.spin.html deselect.spin ] functions. Each interatomic data container now has a select flag.
* Modified the interatomic_loop() function so that spin IDs can be used to restrict the looping.
* Modified InteratomContainer.id_match() to handle a single spin ID and to match to all unique IDs. This uses the spin container _spin_ids list private metadata structure.
* Split the return_interatom() function into two. The new return_interatom() function is used for returning single interatomic data containers for perfect matches, whereas the return_interatom_list() function is used to return a list of containers matching a given spin. This simplifies the behaviour of the module.
* The RelaxNucleusError and RelaxSpinTypeError can now have the spin ID supplied.
* Bug fix for the [http://www.nmr-relax.com/manual/dipole_pair.unit_vectors user function ] positional checking. The arg_check.is_float() function needs the raise_error flag turned off.
* dipole_pair.unit_vectors now raises a RelaxNoInteratomError if not interatomic data is present.
* The specific API base skip_function() method now returns False. This was previously raising a RelaxImplementError, but as Monte Carlo simulations now require this function, but returning always False, all analyses will be automatically supported.
* Eliminated all of the bond length and heteronucleus type value.set units tests. These are no longer specific analysis parameters.
* Removed all of the unit tests of the deleted [http://www.nmr-relax.com/manual/structure.vectors user function].
* The model-free data_init() method now sets boolean parameters to the default of False. This excludes the selection flag which is set to True. The data_init() method no longer uses the data_names() API method but the self.PARAMS.loop() method for returning the parameter names.
* Improvements for the reading of old 1.2 relax results files for the attached proton spin containers.
* Improvements and fixes for the generic_fns.relax_data.pack_data() function. This affects all the relaxation data reading user functions.
* The [http://www.nmr-relax.com/manual/structure.get_pos user function ] now prints out all data and fails if nothing was extracted. This is to prevent the user from going too far without realising that something is wrong.
* More print outs and better data loading checks in the dipole_pair user functions.
* The [http://www.nmr-relax.com/manual/relax_data.read user function ] now prints out all of the data read in. This is to better inform the user that something has happened.
* The return_spin_from_selection() function now lists all matching spins in RelaxMultiSpinIDError.
* The return_spin() and return_spin_from_selection() functions can now handle multiple spins. It the 'multi' flag is supplied, then lists of spins (and associated data) will be returned, rather than a RelaxMultiSpinIDError error raised.
* Improvements for the MoleculeContainer backwards compatibility hook for the creation of proton spins. The proton element and isotope type is now set to 'H' and '1H' respectively. This now means that the old XML files require less work by the user to convert to the new interatomic data design.
* Eliminated the RelaxProtonTypeError error and changed the RelaxSpinTypeError message.
* The [http://www.nmr-relax.com/manual/sequence.attach_protons user function ] now sets the proton element and isotope types. This reduces the amount of work required from the user.* Rearranged the [http://www.nmr-relax.com/manual/spin.element user function ] arguments.* Created the [http://www.nmr-relax.com/manual/sequence.attach_proton user function]. This will be useful for analyses which are missing structural data.* The dipole_pair user functions now fail if nothing could be done. This is for the [http://www.nmr-relax.com/manual/dipole_pair.define.html dipole_pair.define], [http://www.nmr-relax.com/manual/dipole_pair.read_dist.html dipole_pair.read_dist], and [http://www.nmr-relax.com/manual/dipole_pair.set_dist.html dipole_pair.set_dist ] user functions.
* The Monte Carlo select_all_sims() function is now using the specific skip_function(). This is needed for recreating model-free simulations as deselected proton spin containers now exist.
* The MoleculeContainer XML backwards compatibility hook now deletes the spin 'r_err' and 'r_sim' vars.
* Expanded the RelaxNoValueError to handle one or two spin IDs as arguments. This is to better identify which spins or interatomic data containers are deficient.
* The nuclear isotope is now defined via spin.isotope.
* Eliminated a number of the specific API parameters relating to dipole-dipole interactions. These are now provided by the [http://www.nmr-relax.com/manual/spin.isotope user function ] and the dipole_pair user functions. The eliminated parameters are: 'r' - replaced by dipole_pair.set_dist or dipole_pair.read_dist, 'xh_vect' - replaced by dipole_pair.unit_vectors, 'heteronuc_type' - replaced by spin.isotope, 'proton_type' - replaced by spin.isotope, and 'attached_proton' - replaced by dipole_pair.define.* Created the [http://www.nmr-relax.com/manual/spin.isotope user function]. This is designed to be a permanent replacement for the specific analysis API 'heteronuc_type' and 'proton_type' parameters.
* Added the nuclear symbol as a wizard graphic.
* Added a set of icons for nuclear or isotope related usage.
* Deletion of the [http://www.nmr-relax.com/manual/structure.vectors user function ] as it has been superseded by dipole_pair.unit_vectors. Only the user function definition has deleted - the backend code will remain so that it can be used internally.* Implemented the [http://www.nmr-relax.com/manual/dipole_pair.unit_vectors user function ] backend. This code originates from the generic_fns.structure.main.vectors() function (the [http://www.nmr-relax.com/manual/structure.vectors user function ] backend). The [http://www.nmr-relax.com/manual/dipole_pair.unit_vectors user function ] is designed to replace [http://www.nmr-relax.com/manual/structure.vectors.html structure.vectors].* Created the [http://www.nmr-relax.com/manual/dipole_pair.unit_vectors user function ] definition.* Created the backend of the [http://www.nmr-relax.com/manual/dipole_pair.read_dist user function].* Created the [http://www.nmr-relax.com/manual/dipole_pair.read_dist user function ] definitions. This new user function is for simplifying the loading of many different interatomic distances into relax.
* Created a set of icons for the dipole_pair user functions.
* Shifted the [http://www.nmr-relax.com/manual/relax_data.dipole_pair user function ] into the new dipole_pair user function class. This has also been split into two new user functions: [http://www.nmr-relax.com/manual/dipole_pair.define.html dipole_pair.define ] used to set up the magnetic dipole-dipole interactions, and [http://www.nmr-relax.com/manual/dipole_pair.set_dist.html dipole_pair.set_dist ] used to set up the r^-3 averaged interatomic distances.
* The relax_data.dipole_pair backend now uses the direct_bond flag.
* Added CONECT records to the sphere.pdb file to allow connectivities to be more easily determined. This is for the internal reader, as the current algorithm for finding attached atoms is distance based, and as all N atoms of all residues are at [0, 0, 0], this algorithm fails.
* Implemented the are_bonded() structural API method for the internal structural object.
* Created the structural API base are_bonded() method - this is for determining if 2 atoms are bonded. This is a method stub which raises a RelaxImplementError.
* Started to add the backend of the [http://www.nmr-relax.com/manual/relax_data.dipole_pair user function].
* Shifted the dipole-dipole graphics to the Wizard directory, as this is a wizard graphic.
* Created graphics for the magnetic dipole-dipole interaction.
* Removed the bond length from the model-free parameter list.
* The bond length setting via value.set has no been merged into relax_data.dipole_pair. This averaged length is dipole-dipole distance and does not need to be a model-free parameter.
* Added the definition for the new [http://www.nmr-relax.com/manual/relax_data.dipole_pair user function].
* Started to change the structure.vectors backend to handle two spin IDs.
* Expanded the description of the negative gyromagnetic ratio flag for the [http://www.nmr-relax.com/manual/rdc.read user function].
* Created the generic_fns.interatomic.interatomic_loop() generator function.
* The generic_fns.interatomic.create_interatom() function now returns the created container. This comes from the InteratomicContainer.add_item() method which now also returns the container.
* Renamed the interatomic function return_container() to return_interatom(). This is to make the name more unique.
* Shifted some code from InteratomList.add_item() to generic_fns.interatomic.create_interatom(). This is to break a circular import problem.
* The [http://www.nmr-relax.com/manual/rdc.read user function ] backend is now adding the RDCs to the interatomic data containers.
* Created the generic_fns.interatomic.create_interatom() function for creating interatomic data containers.
* Added checks to the InteratomList.add_item() method to make sure that the spin IDs already exist.
* The spin container hidden objects are now replicated when the object is copied. The old Prototype.__deepcopy__() method was skipping all hidden objects, but now only objects starting with '__' are skipped.
* Created a system test to replicate Romel Bobby's [https://gna.org/bugs/?19887 bug #19887].
* Modified the working of the [http://www.nmr-relax.com/manual/n_state_model.elim_no_prob.html n_state_model.elim_no_prob ] backend. This user function is not functional anyway and is not tested by the relax test suite, but will remain as it might be useful in the future.* Added the consistency testing documentation to the [http://www.nmr-relax.com/manual/grace.write.html grace.write ] and value.* user functions.
* Converted the consistency testing documentation strings to the Uf_tables and Desc_container design. This is needed to use the consistency testing documentation within the user function help system.
* The [http://www.nmr-relax.com/manual/sequence.read user function ] now fails with a RelaxError if no sequence data was loaded. This is for better user feedback.
* 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.
* 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.
* 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.
* Bug fox for the generic_fns.mol_res_spin.return_spin_indices() function. The selection object was using the wrong variable name, and the look up table fallback was always on.
* Bug fix for the [http://www.nmr-relax.com/manual/relax_data.copy user function ] - it can now handle spins without relaxation data.
* Bug fix for the grey about windows on MS Windows. All the about windows were grey. The temporary wxPython 2.9.3.1 fix was breaking the Windows GUI.
* Bug fix for the model-free analysis tab about window - sometimes a grey region would appear at the bottom. This is a problem in at least GTK+ as scrolling is in increments of 20.
* Bug fix for sizing of the GUI about dialogs - the virtual sizes are now accurately calculated. To do this, the window contents (a wx.BufferedDC instance) is created twice, with the virtual window size exactly calculated in the first pass, and then used to set up the device context in the second. A space is also now added to the end to ensure the border is there.
* Fixes for the [http://www.nmr-relax.com/manual/spin.create user function ] for GUI usage.
* Fixes for the J(w) mapping and consistency testings scripts so they can run as GUI tests.
* Fix for the [http://www.nmr-relax.com/manual/spin.copy user function ] for GUI use.
* Bug fix for the return_spin_from_selection() function for the 'multi' flag. This function needs to handle the case of no spins matching the selection!
* Bug fix - the spin_id arg for the [http://www.nmr-relax.com/manual/relax_data.read user function ] now actually does something. This argument is passed into the pack_data() function, where it is used to match against the spins matching each file line. Only if there is a match, is the relaxation data loaded for that spin.
* Fixes for the reading of relax 1.2 results files. The new 'H' spin containers are now deselected, and the simulation structure creation has been reverted.
<section end=bugfixes/>
Trusted, Bureaucrats
4,228

edits