Changes

Jump to navigation Jump to search

Relax 2.2.5

1,011 bytes added, 14:59, 11 September 2014
User function HTML manual links.
<section begin=changes/>
* Added a comment to the output from value.display and value.write to describe the parameter. This idea is discussed at http://thread.gmane.org/gmane.science.nmr.relax.user/1428. The idea is to take the parameter description from the specific analysis API and add it to the top of the file or output. This is to help understand what the R<sub>ex</sub> value are. For example for the R<sub>ex</sub> parameter the first line would be: "# Parameter description: Chemical exchange relaxation (sigma_ex = Rex / omega**2)."
* Created the Structure.test_read_merge system test to test a new concept - merging of structures. The idea is to add the merge argument to the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] to allow two different structures in two PDB files to be merged. This is useful if structures of individual domains have have been solved separately and are located in two PDB files. Then with the merge flag, you will not need to use and external program or hand edit PDB files to join them.* Added the merge flag to the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. This currently does nothing.* The merge flag for the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] is now propagated to the pack_structs() method. This structure API method calls the ModelList.merge_item() method which is yet to be implemented.
* The MolList.add_item() structural API method now returns the added molecule container. This is used by the pack_structs() method to alias the molecule, and will be required when structure merging is implemented.
* Whitespace fixes - replaced many instances of the tab character '\t' with 4 spaces.
* Implemented the merging of structural objects. This allows the merge flag of the structure.read_pdb user function to work.
* The printouts from the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] are now different with the merge flag set. The text now says that the molecules are being merged rather than added.* Sections of molecules can now be deleted using the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function]. The atom ID argument has been added and this is now propagated into the internal structural object. This ID string can be used to delete subsets of the 3D structural data in the relax data store.* Created the Structure.test_read_write_pdb_1UBQ system test. This is for checking the use of the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function ] with the atom ID argument.
* The Structure.test_read_write_pdb_1UBQ system test now checks for HELIX and SHEET records. This is not implemented yet, but the idea is that the structure.read_pdb and structure.write_pdb should preserve the helix and sheet information present in the original PDB and that the internal structural object should store this information.
* Created the internal structural object _pdb_chain_id_to_mol_index() method. This will be used to convert PDB chain IDs, which are used to indicate different molecules in the PDB, into molecule indices for the internal structural object.
* HELIX PDB records are now read, stored, and written out by the internal structural object. This affects the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb ] and [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb ] user functions. The helix is stored as a metadata type object - its elements do not correspond to the atoms in the structural object.* SHEET PDB records are now read, stored, and written out by the internal structural object. This affects the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb ] and [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb ] user functions. The sheet is stored as a metadata type object - its elements do not correspond to the atoms in the structural object.
* Created 13 unit tests of the Internal._trim_helix() internal structural object method.
* Added the index_flag argument to all structural API atom_loop() methods.
* Implemented the internal structural object _trim_helix() method. This is used when the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function ] is called to trim and remove the helix metadata. For this to work, the additional method _residue_data() was written to create a dictionary with residue numbers as keys and the residue names as numbers. This dictionary is used by _trim_helix() to change the residue names in the helix metadata.
* Created 13 unit tests of the Internal._trim_sheet() internal structural object method. These are mirror the 13 unit tests of Internal._trim_helix().
* Implemented the Internal._trim_sheet() internal structural object method. This is also now used by the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function ] to remove sheet metadata for residues which no longer exist.
* Modified the ScientificPython structural object atom_loop() method to match the internal object. If only one element is returned from the atom_loop(), then this is returned as a single item rather than a tuple of length 1.
* Lots of fixes for the change to the structural API atom_loop() method. This method when returning a single item now returns a single item rather than a tuple of length 1.
* Created the Structure.test_metadata_xml system test. This is used to check that the structural metadata (currently helices and sheets) are stored in the relax XML save files and then can be read back into relax again.
* The helix and sheet metadata is now stored in and read from relax XML state files.
* Added the scaling argument to the [http://www.nmr-relax.com/manual/value_display.html value.display ] and [http://www.nmr-relax.com/manual/value_write.html value.write ] user functions. The idea comes from a suggestion by Angelo Figueiredo <am dott figueiredo att fct dott unl dott pt> and was discussed at http://thread.gmane.org/gmane.science.nmr.relax.user/1428/focus=1430. This allows the user to scale parameters to any value, for example scaling the R<sub>ex</sub> value to the field strength dependent value.* The model-free auto-analysis (the dauvergne_protocol) now generates field strength dependent R<sub>ex</sub> files. The idea comes from a suggestion by Angelo Figueiredo <am dott figueiredo att fct dott unl dott pt> and was discussed at http://thread.gmane.org/gmane.science.nmr.relax.user/1428/focus=1430. One file per field strength is generated and named 'rex_600' for 600 MHz, for example. The new scaling argument of the [http://www.nmr-relax.com/manual/value_write.html value.write user function ] is being used to scale the tiny field strength independent value used internally in relax to the R<sub>ex</sub> value in rad.s^-1 that you would see in an R2 data set.* Added the new 'comment' argument to the [http://www.nmr-relax.com/manual/value_write.html value.write user function]. This is used to add user comments to the top of the file.* The model-free auto-analysis (the dauvergne_protocol module) now adds comments to the R<sub>ex</sub> files. This is through the new comment argument of the [http://www.nmr-relax.com/manual/value_write.html value.write user function]. These comments explain that the R<sub>ex</sub> values are scaled to the stated field strength.
* Modified the Mf.test_dauvergne_protocol system test to check for all the files and directories created.
* Created the new lib.text.sectioning module for formatting titles, subtitles and other sectioning text. The two functions title() and subtitle() have been implemented.
* Converted links in all docstrings to use the Epydoc hyperlink notation. This will allow links to be clickable for the [http://www.nmr-relax.com/api/ API documentation].
* Added Epydoc hyperlink markup for the bug tracker in the system test docstring where missing. This is for a better [http://www.nmr-relax.com/api/ API documentation].
* The lib.structure.rotor.rotor_pdb() rotor_angle argument should now be in radians. This does not affect the [http://www.nmr-relax.com/manual/structure_create_rotor_pdb.html structure.create_rotor_pdb() user function ] as the generic_fns.structure.geometric.create_rotor_pdb() function converts the value to radians prior to calling the rotor_pdb() function.
* The lib.structure.rotor.rotor_pdb() function can now handle structural models. The model number argument has been added to allow the rotor structure to be added to a single model, or to all models if not supplied.
<section end=changes/>
Trusted, Bureaucrats
4,228

edits

Navigation menu