1  from os import mkdir, chmod 
  2  from re import match 
  3  from string import split 
  4  import sys 
  5   
  8                  "Class containing the file operations" 
  9   
 10                  self.mf = mf 
  11   
 12   
 14                  "Close the mfin, mfdata, mfmodel, mfpar, and run files, and make the run file executable." 
 15   
 16                  self.mf.mfin.close() 
 17                  self.mf.mfdata.close() 
 18                  self.mf.mfmodel.close() 
 19                  self.mf.mfpar.close() 
 20                  self.mf.run.close() 
 21                  chmod(dir + '/run', 0777) 
  22                   
 23           
 25                  "Initialize the log file." 
 26                   
 27                  self.mf.log = open('log.stage' + self.mf.data.stage, 'w') 
 28                  self.mf.log.write(title) 
  29   
 30   
 32                  "Open the file 'file' and return all the data." 
 33                   
 34                  file = open(file_name, 'r') 
 35                  lines = file.readlines() 
 36                  data = [] 
 37                  i = 0 
 38                  for line in lines: 
 39                          if i != 0: 
 40                                  j = i - 1 
 41                                  row = split(line) 
 42                                  data.append([]) 
 43                                  data[j].append(row[0]) 
 44                                  data[j].append(row[1]) 
 45                                  for k in range(len(row)): 
 46                                          if k > 1: 
 47                                                  data[j].append(float(row[k])) 
 48                          i = i + 1 
 49                  return data 
  50   
 51   
 62   
 63   
 65                  "Create the given directory, or exit if the directory exists." 
 66   
 67                  self.mf.log.write("Making directory " + dir + "\n") 
 68                  try: 
 69                          mkdir(dir) 
 70                  except OSError: 
 71                          print "Directory ./" + dir + " already exists, quitting script.\n" 
 72                          sys.exit() 
  73   
 74   
 76                  "Open the mfin, mfdata, mfmodel, mfpar, and run files for writing." 
 77   
 78                  self.mf.mfin = open(dir + '/mfin', 'w') 
 79                  self.mf.mfdata = open(dir + '/mfdata', 'w') 
 80                  self.mf.mfmodel = open(dir + '/mfmodel', 'w') 
 81                  self.mf.mfpar = open(dir + '/mfpar', 'w') 
 82                  self.mf.run = open(dir + '/run', 'w') 
  83           
 84           
 86                  "Attempt to read the file, or quit the script if it does not exist." 
 87   
 88                  try: 
 89                          open(file_name, 'r') 
 90                  except IOError: 
 91                          print "The file '" + file_name + "' does not exist, quitting script.\n\n" 
 92                          sys.exit() 
 93                  file = open(file_name, 'r') 
 94                  return file 
  95   
 96   
 98                  """Open the relaxation data in the file 'file' and return all the data. 
 99                   
100                  It is assumed that the file has four columns separated by whitespace.  The columns should be: 
101                          0 - Residue numbers 
102                          1 - Residue names 
103                          2 - R1, R2, or NOE values 
104                          3 - The errors 
105                  """ 
106                   
107                  lines = open(file, 'r') 
108                  lines = lines.readlines() 
109                  data = [] 
110                  i = 0 
111                  for line in lines: 
112                          if i != 0: 
113                                  j = i - 1 
114                                  row = split(line) 
115                                  data.append([]) 
116                                  data[j].append(row[0]) 
117                                  data[j].append(row[1]) 
118                                  data[j].append(float(row[2])) 
119                                  data[j].append(float(row[3])) 
120                          i = i + 1 
121                  return data