Package prompt :: Module select
[hide private]
[frames] | no frames]

Source Code for Module prompt.select

  1  ############################################################################### 
  2  #                                                                             # 
  3  # Copyright (C) 2003, 2004 Edward d'Auvergne                                  # 
  4  #                                                                             # 
  5  # This file is part of the program relax.                                     # 
  6  #                                                                             # 
  7  # relax is free software; you can redistribute it and/or modify               # 
  8  # it under the terms of the GNU General Public License as published by        # 
  9  # the Free Software Foundation; either version 2 of the License, or           # 
 10  # (at your option) any later version.                                         # 
 11  #                                                                             # 
 12  # relax is distributed in the hope that it will be useful,                    # 
 13  # but WITHOUT ANY WARRANTY; without even the implied warranty of              # 
 14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               # 
 15  # GNU General Public License for more details.                                # 
 16  #                                                                             # 
 17  # You should have received a copy of the GNU General Public License           # 
 18  # along with relax; if not, write to the Free Software                        # 
 19  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   # 
 20  #                                                                             # 
 21  ############################################################################### 
 22   
 23  import sys 
 24   
 25  import help 
 26   
 27   
28 -class Select:
29 - def __init__(self, relax):
30 # Help. 31 self.__relax_help__ = \ 32 """Class for selecting residues.""" 33 34 # Add the generic help string. 35 self.__relax_help__ = self.__relax_help__ + "\n" + help.relax_class_help 36 37 # Place relax in the class namespace. 38 self.__relax__ = relax
39 40
41 - def all(self, run=None):
42 """Function for selecting all residues. 43 44 Keyword Arguments 45 ~~~~~~~~~~~~~~~~~ 46 47 run: The name of the run(s). By supplying a single string, array of strings, or None, a 48 single run, multiple runs, or all runs will be selected respectively. 49 50 51 Examples 52 ~~~~~~~~ 53 54 To select all residues for all runs type: 55 56 relax> select.all() 57 58 59 To select all residues for the run 'srls_m1', type: 60 61 relax> select.all('srls_m1') 62 relax> select.all(run='srls_m1') 63 """ 64 65 # Function intro test. 66 if self.__relax__.interpreter.intro: 67 text = sys.ps3 + "select.all(" 68 text = text + "run=" + `run` + ")" 69 print text 70 71 # The run argument. 72 if run != None and type(run) != str and type(run) != list: 73 raise RelaxNoneStrListError, ('run', run) 74 if type(run) == list: 75 for i in xrange(len(run)): 76 if type(run[i]) != str: 77 raise RelaxListStrError, ('run', run) 78 79 # Execute the functional code. 80 self.__relax__.generic.selection.sel_all(run=run)
81 82
83 - def read(self, run=None, file=None, dir=None, change_all=0):
84 """Function for selecting the residues contained in a file. 85 86 Keyword Arguments 87 ~~~~~~~~~~~~~~~~~ 88 89 run: The name of the run(s). By supplying a single string, array of strings, or None, a 90 single run, multiple runs, or all runs will be selected respectively. 91 92 file: The name of the file containing the list of residues to select. 93 94 dir: The directory where the file is located. 95 96 change_all: A flag specifying if all other residues should be changed. 97 98 99 Description 100 ~~~~~~~~~~~ 101 102 The file must contain one residue number per line. The number is taken as the first column 103 of the file and all other columns are ignored. Empty lines and lines beginning with a hash 104 are ignored. 105 106 The 'change_all' flag argument default is zero meaning that all residues currently either 107 selected or unselected will remain that way. Setting the argument to 1 will cause all 108 residues not specified in the file to be unselected. 109 110 111 Examples 112 ~~~~~~~~ 113 114 To select all residues in the file 'isolated_peaks', type: 115 116 relax> select.read('noe', 'isolated_peaks') 117 relax> select.read(run='noe', file='isolated_peaks') 118 """ 119 120 # Function intro test. 121 if self.__relax__.interpreter.intro: 122 text = sys.ps3 + "select.read(" 123 text = text + "run=" + `run` 124 text = text + ", file=" + `file` 125 text = text + ", dir=" + `dir` 126 text = text + ", change_all=" + `change_all` + ")" 127 print text 128 129 # The run argument. 130 if run != None and type(run) != str and type(run) != list: 131 raise RelaxNoneStrListError, ('run', run) 132 if type(run) == list: 133 for i in xrange(len(run)): 134 if type(run[i]) != str: 135 raise RelaxListStrError, ('run', run) 136 137 # File name. 138 if type(file) != str: 139 raise RelaxStrError, ('file name', file) 140 141 # Directory. 142 if dir != None and type(dir) != str: 143 raise RelaxNoneStrError, ('directory name', dir) 144 145 # Change all flag. 146 if type(change_all) != int or (change_all != 0 and change_all != 1): 147 raise RelaxBinError, ('change_all', change_all) 148 149 # Execute the functional code. 150 self.__relax__.generic.selection.sel_read(run=run, file=file, dir=dir, change_all=change_all)
151 152
153 - def res(self, run=None, num=None, name=None, change_all=0):
154 """Function for selecting specific residues. 155 156 Keyword Arguments 157 ~~~~~~~~~~~~~~~~~ 158 159 run: The name of the run(s). By supplying a single string, array of strings, or None, a 160 single run, multiple runs, or all runs will be selected respectively. 161 162 num: The residue number. 163 164 name: The residue name. 165 166 change_all: A flag specifying if all other residues should be changed. 167 168 169 Description 170 ~~~~~~~~~~~ 171 172 The residue number can be either an integer for selecting a single residue or a python 173 regular expression, in string form, for selecting multiple residues. For details about 174 using regular expression, see the python documentation for the module 're'. 175 176 The residue name argument must be a string. Regular expression is also allowed. 177 178 The 'change_all' flag argument default is zero meaning that all residues currently either 179 selected or unselected will remain that way. Setting the argument to 1 will cause all 180 residues not specified by 'num' or 'name' to become unselected. 181 182 183 Examples 184 ~~~~~~~~ 185 186 To select only glycines and alanines for the run 'm3', assuming they have been loaded with 187 the names GLY and ALA, type: 188 189 relax> select.res(run='m3', name='GLY|ALA', change_all=1) 190 relax> select.res(run='m3', name='[GA]L[YA]', change_all=1) 191 192 To select residue 5 CYS in addition to the currently selected residues, type: 193 194 relax> select.res('m3', 5) 195 relax> select.res('m3', 5, 'CYS') 196 relax> select.res('m3', '5') 197 relax> select.res('m3', '5', 'CYS') 198 relax> select.res(run='m3', num='5', name='CYS') 199 """ 200 201 # Function intro test. 202 if self.__relax__.interpreter.intro: 203 text = sys.ps3 + "select.res(" 204 text = text + "run=" + `run` 205 text = text + ", num=" + `num` 206 text = text + ", name=" + `name` 207 text = text + ", change_all=" + `change_all` + ")" 208 print text 209 210 # The run argument. 211 if run != None and type(run) != str and type(run) != list: 212 raise RelaxNoneStrListError, ('run', run) 213 if type(run) == list: 214 for i in xrange(len(run)): 215 if type(run[i]) != str: 216 raise RelaxListStrError, ('run', run) 217 218 # Residue number. 219 if num != None and type(num) != int and type(num) != str: 220 raise RelaxNoneIntStrError, ('residue number', num) 221 222 # Residue name. 223 if name != None and type(name) != str: 224 raise RelaxNoneStrError, ('residue name', name) 225 226 # Neither are given. 227 if num == None and name == None: 228 raise RelaxError, "At least one of the number or name arguments is required." 229 230 # Change all flag. 231 if type(change_all) != int or (change_all != 0 and change_all != 1): 232 raise RelaxBinError, ('change_all', change_all) 233 234 # Execute the functional code. 235 self.__relax__.generic.selection.sel_res(run=run, num=num, name=name, change_all=change_all)
236 237
238 - def reverse(self, run=None):
239 """Function for the reversal of the residue selection. 240 241 Keyword Arguments 242 ~~~~~~~~~~~~~~~~~ 243 244 run: The name of the run(s). By supplying a single string, array of strings, or None, a 245 single run, multiple runs, or all runs will be selected respectively. 246 247 248 Examples 249 ~~~~~~~~ 250 251 To unselect all currently selected residues and select those which are unselected type: 252 253 relax> select.reverse() 254 """ 255 256 # Function intro test. 257 if self.__relax__.interpreter.intro: 258 text = sys.ps3 + "select.reverse(" 259 text = text + "run=" + `run` + ")" 260 print text 261 262 # The run argument. 263 if run != None and type(run) != str and type(run) != list: 264 raise RelaxNoneStrListError, ('run', run) 265 if type(run) == list: 266 for i in xrange(len(run)): 267 if type(run[i]) != str: 268 raise RelaxListStrError, ('run', run) 269 270 # Execute the functional code. 271 self.__relax__.generic.selection.reverse(run=run)
272