Author: bugman Date: Thu Dec 11 13:40:41 2014 New Revision: 27090 URL: http://svn.gna.org/viewcvs/relax?rev=27090&view=rev Log: Refactored the descriptions of a number of structure user functions. This includes the structure.align, structure.displacement, structure.find_pivot, structure.rmsd and structure.superimpose user functions. The paragraph_multi_struct and paragraph_atom_id module strings have been created and are shared as two paragraphs for each of these user function descriptions. This standardises the pipe/model/molecule/atom_id descriptions. The user function wizard page sizes have been updated for these changes. Modified: trunk/user_functions/structure.py Modified: trunk/user_functions/structure.py URL: http://svn.gna.org/viewcvs/relax/trunk/user_functions/structure.py?rev=27090&r1=27089&r2=27090&view=diff ============================================================================== --- trunk/user_functions/structure.py (original) +++ trunk/user_functions/structure.py Thu Dec 11 13:40:41 2014 @@ -43,6 +43,11 @@ from user_functions.wildcards import WILDCARD_STRUCT_GAUSSIAN_ALL, WILDCARD_STRUCT_PDB_ALL, WILDCARD_STRUCT_XYZ_ALL +# Text for the multi-structure paragraph. +paragraph_multi_struct = "Support for multiple structures is provided by the data pipes, model numbers and molecule names arguments. Each data pipe, model and molecule combination will be treated as a separate structure. As only atomic coordinates with the same residue name and number and atom name will be assembled, structures with slightly different atomic structures can be compared. If the list of models is not supplied, then all models of all data pipes will be used. If the optional molecules list is supplied, each molecule in the list will be considered as a separate structure for comparison between each other." +paragraph_atom_id = "The atom ID string, which uses the same notation as the spin ID, can be used to restrict the coordinates compared to a subset of molecules, residues, or atoms. For example to only use backbone heavy atoms in a protein, set the atom ID to '@N,C,CA,O', assuming those are the names of the atoms in the 3D structural file." + + # The user function class. uf_class = uf_info.add_class('structure') uf_class.title = "Class containing the structural related functions." @@ -221,9 +226,9 @@ uf.desc[-1].add_paragraph("This allows a set of related structures to be superimposed to each other. The current algorithm will only use atoms with the same residue name and number and atom name in the superimposition, hence this is not a true sequence alignment. Just as with the structure.superimpose user function two methods are currently supported:") uf.desc[-1].add_item_list_element("'fit to mean'", "All models are fit to the mean structure. This is the default and most accurate method for an ensemble description. It is an iterative method which first calculates a mean structure and then fits each model to the mean structure using the Kabsch algorithm. This is repeated until convergence.") uf.desc[-1].add_item_list_element("'fit to first'", "This is quicker but is not as accurate for an ensemble description. The Kabsch algorithm is used to rotate and translate each model to be superimposed onto the first model of the first data pipe.") -uf.desc[-1].add_paragraph("If the list of models is not supplied, then all models of all data pipes will be superimposed.") -uf.desc[-1].add_paragraph("The atom ID, which uses the same notation as the spin ID strings, can be used to restrict the superimpose calculation to certain molecules, residues, or atoms. For example to only superimpose backbone heavy atoms in a protein, use the atom ID of '@N,C,CA,O', assuming those are the names of the atoms from the structural file.") uf.desc[-1].add_paragraph("By supplying the position of the centroid, an alternative position than the standard rigid body centre is used as the focal point of the superimposition. The allows, for example, the superimposition about a pivot point.") +uf.desc[-1].add_paragraph(paragraph_multi_struct) +uf.desc[-1].add_paragraph(paragraph_atom_id) # Prompt examples. uf.desc.append(Desc_container("Prompt examples")) uf.desc[-1].add_paragraph("To superimpose all sets of models, exactly as in the structure.superimpose user function, type one of:") @@ -240,7 +245,7 @@ uf.backend = pipe_control.structure.main.align uf.menu_text = "&align" uf.wizard_apply_button = False -uf.wizard_height_desc = 450 +uf.wizard_height_desc = 400 uf.wizard_size = (1000, 750) uf.wizard_image = WIZARD_IMAGE_PATH + 'structure' + sep + '2JK4.png' @@ -641,17 +646,17 @@ # Description. uf.desc.append(Desc_container()) uf.desc[-1].add_paragraph("This user function allows the rotational and translational displacement between different models or molecules to be calculated. The information will be printed out in various formats and held in the relax data store. This is directional, so there is a starting and ending position for each displacement. Therefore the displacements in all directions between all models and molecules will be calculated.") -uf.desc[-1].add_paragraph("The atom ID, which uses the same notation as the spin ID strings, can be used to restrict the displacement calculation to certain molecules, residues, or atoms. This is useful if studying domain motions, secondary structure rearrangements, amino acid side chain rotations, etc.") uf.desc[-1].add_paragraph("By supplying the position of the centroid, an alternative position than the standard rigid body centre is used as the focal point of the motion. The allows, for example, a pivot of a rotational domain motion to be specified. This is not a formally correct algorithm, all translations will be zero, but does give an indication to the amplitude of the pivoting angle.") -uf.desc[-1].add_paragraph("If the optional molecules list is supplied, then the displacements will be calculated between the molecules in the list rather than the models. Therefore no models are allowed to be present in the current data pipe.") +uf.desc[-1].add_paragraph(paragraph_multi_struct) +uf.desc[-1].add_paragraph(paragraph_atom_id) # Prompt examples. uf.desc.append(Desc_container("Prompt examples")) uf.desc[-1].add_paragraph("To determine the rotational and translational displacements between all sets of models, type:") uf.desc[-1].add_prompt("relax> structure.displacement()") uf.backend = pipe_control.structure.main.displacement uf.menu_text = "displace&ment" -uf.wizard_height_desc = 400 -uf.wizard_size = (900, 700) +uf.wizard_height_desc = 450 +uf.wizard_size = (1000, 750) uf.wizard_image = WIZARD_IMAGE_PATH + 'structure' + sep + '2JK4.png' @@ -713,13 +718,13 @@ # Description. uf.desc.append(Desc_container()) uf.desc[-1].add_paragraph("This is used to find pivot point of motion between a set of structural models. If the list of models is not supplied, then all models will be used.") -uf.desc[-1].add_paragraph("The atom ID, which uses the same notation as the spin ID strings, can be used to restrict the search to certain molecules, residues, or atoms. For example to only use backbone heavy atoms in a protein, use the atom ID of '@N,C,CA,O', assuming those are the names of the atoms from the structural file.") uf.desc[-1].add_paragraph("By supplying the position of the centroid, an alternative position than the standard rigid body centre is used as the focal point of the superimposition. The allows, for example, the superimposition about a pivot point.") -uf.desc[-1].add_paragraph("If the optional molecules list is supplied, then the optimisation will be performed on molecules in the list rather than the models. Therefore no models are allowed to be present in the current data pipe.") +uf.desc[-1].add_paragraph(paragraph_multi_struct) +uf.desc[-1].add_paragraph(paragraph_atom_id) uf.backend = pipe_control.structure.main.find_pivot uf.menu_text = "&find_pivot" -uf.wizard_height_desc = 400 -uf.wizard_size = (900, 700) +uf.wizard_height_desc = 450 +uf.wizard_size = (1000, 750) uf.wizard_apply_button = False uf.wizard_image = WIZARD_IMAGE_PATH + 'structure' + sep + '2JK4.png' @@ -1087,15 +1092,16 @@ # Description. uf.desc.append(Desc_container()) uf.desc[-1].add_paragraph("This allows the root mean squared deviation (RMSD) between all models to be calculated.") -uf.desc[-1].add_paragraph("The atom ID, which uses the same notation as the spin ID strings, can be used to restrict the RMSD calculation to certain molecules, residues, or atoms.") -uf.desc[-1].add_paragraph("If the optional molecules list is supplied, then the RMSD calculation will be between the molecules in the list.") +uf.desc[-1].add_paragraph(paragraph_multi_struct) +uf.desc[-1].add_paragraph(paragraph_atom_id) # Prompt examples. uf.desc.append(Desc_container("Prompt examples")) uf.desc[-1].add_paragraph("To determine the RMSD of all models in the current data pipe, simply type:") uf.desc[-1].add_prompt("relax> structure.rmsd()") uf.backend = pipe_control.structure.main.rmsd uf.menu_text = "&rmsd" -uf.wizard_size = (800, 600) +uf.wizard_height_desc = 400 +uf.wizard_size = (900, 700) uf.wizard_image = WIZARD_IMAGE_PATH + 'structure' + sep + '2JK4.png' @@ -1194,7 +1200,7 @@ uf.desc[-1].add_item_list_element("'fit to mean'", "All models are fit to the mean structure. This is the default and most accurate method for an ensemble description. It is an iterative method which first calculates a mean structure and then fits each model to the mean structure using the Kabsch algorithm. This is repeated until convergence.") uf.desc[-1].add_item_list_element("'fit to first'", "This is quicker but is not as accurate for an ensemble description. The Kabsch algorithm is used to rotate and translate each model to be superimposed onto the first model.") uf.desc[-1].add_paragraph("If the list of models is not supplied, then all models will be superimposed.") -uf.desc[-1].add_paragraph("The atom ID, which uses the same notation as the spin ID strings, can be used to restrict the superimpose calculation to certain molecules, residues, or atoms. For example to only superimpose backbone heavy atoms in a protein, use the atom ID of '@N,C,CA,O', assuming those are the names of the atoms from the structural file.") +uf.desc[-1].add_paragraph(paragraph_atom_id) uf.desc[-1].add_paragraph("By supplying the position of the centroid, an alternative position than the standard rigid body centre is used as the focal point of the superimposition. The allows, for example, the superimposition about a pivot point.") # Prompt examples. uf.desc.append(Desc_container("Prompt examples"))