-import prettyformat\r
-\r
-DEFAULT_COLOR = 'orange'\r
-DEFAULT_DECIMAL = 2\r
-DEFAULT_STYLE = 'plot'\r
-\r
-class Result:\r
- def __init__(self):\r
- self.color = DEFAULT_COLOR\r
- self.result = {}\r
- self.style = DEFAULT_STYLE\r
- self.visible = True\r
- self.x = []\r
- self.y = []\r
-\r
-class Results:\r
- def __init__(self):\r
- self.columns = []\r
- self.decimals = {}\r
- self.has_multipliers = False\r
- self.multipliers = {}\r
- self.results = []\r
- self.separator='\t'\r
- self.units = {}\r
-\r
- def get_pretty_value(self, column, value):\r
- if self.has_multipliers and self.has_results():\r
- multiplier = self.multipliers[column]\r
- decimals = self.decimals[column]\r
- return prettyformat.pretty_format(value, '', decimals, multiplier, True)\r
- return str(value)\r
-\r
- #def get_fit_result(self):\r
- #if not(self.has_multipliers):\r
- #self.set_multipliers()\r
-\r
- #sResult = 'Contour length ['+prettyformat.get_prefix(self.multiplierContourLength) + 'm]' + self.separator\r
- #sResult += prettyformat.pretty_format(self.contourLength[0], '', self.decimals, self.multiplierContourLength, True) + '\n'\r
- #sResult += 'Persistence length ['+prettyformat.get_prefix(self.multiplierPersistenceLength) + 'm]' + self.separator\r
- #sResult += prettyformat.pretty_format(self.persistenceLength[0], '', self.decimals, self.multiplierPersistenceLength, True) + '\n'\r
- #sResult += 'Rupture force ['+prettyformat.get_prefix(self.multiplierRuptureForce) + 'N]' + self.separator\r
- #sResult += prettyformat.pretty_format(self.ruptureForces[0], '', self.decimals, self.multiplierRuptureForce, True) + '\n'\r
- #sResult += 'Loading rate ['+prettyformat.get_prefix(self.multiplierSlope) + 'N/m]' + self.separator\r
- #sResult += prettyformat.pretty_format(self.slopes[0], '', self.decimals, self.multiplierSlope, True)+'\n'\r
- #sResult += 'Sigma contour ['+prettyformat.get_prefix(self.multiplierContourLength) + 'm]' + self.separator\r
- #sResult += prettyformat.pretty_format(self.contourLengthSigma[0], '', self.decimals, self.multiplierContourLength, True) + '\n'\r
- #sResult += 'Sigma persistence ['+prettyformat.get_prefix(self.multiplierPersistenceLength) + 'm]' + self.separator\r
- #sResult += prettyformat.pretty_format(self.persistenceLengthSigma[0], '', self.decimals, self.multiplierPersistenceLength, True)\r
-\r
- #return sResult\r
-\r
- #def get_fit_results(self, index):\r
- #if index >= 0 and index < len(self.contourLength):\r
- #if not(self.has_multipliers):\r
- #self.set_multipliers()\r
- #sLine = prettyformat.pretty_format(self.contourLength[index], '', self.decimals, self.multiplierContourLength, True) + self.separator\r
- #sLine += prettyformat.pretty_format(self.persistenceLength[index], '', self.decimals, self.multiplierPersistenceLength, True) + self.separator\r
- #sLine += prettyformat.pretty_format(self.ruptureForces[index], '', self.decimals, self.multiplierRuptureForce, True) + self.separator\r
- #sLine += prettyformat.pretty_format(self.slopes[index], '', self.decimals, self.multiplierSlope, True) + self.separator\r
- #sLine += prettyformat.pretty_format(self.contourLengthSigma[index], '', self.decimals, self.multiplierContourLength, True) + self.separator\r
- #sLine += prettyformat.pretty_format(self.persistenceLengthSigma[index], '', self.decimals, self.multiplierPersistenceLength, True)\r
-\r
- #return sLine\r
- #else:\r
- #return ''\r
-\r
- def has_results(self):\r
- return self.results\r
-\r
- def header_as_list(self):\r
- header = []\r
- if self.has_results():\r
- if not self.has_multipliers:\r
- self.set_multipliers()\r
- for column in self.columns:\r
- #result will contain the results dictionary for 'column'\r
- #result = self.results[0][0][column]\r
- #result[1] contains the unit\r
- unit_str = ''.join([prettyformat.get_prefix(self.multipliers[column]), self.units[column]])\r
- header_str = ''.join([column, ' [', unit_str, ']'])\r
- header.append(header_str)\r
- return header\r
-\r
- #def header_as_str(self):\r
- #if self.has_results():\r
- #if not self.has_multipliers:\r
- #self.set_multipliers()\r
- #header_str = ''\r
- #for column in self.columns:\r
- ##result will contain the results dictionary for 'column'\r
- #result = self.results[0][0][column]\r
- ##result[1] contains the unit\r
- #unit_str = ''.join([prettyformat.get_prefix(self.multipliers[column]), result[1]])\r
- #header_str = ''.join([header_str, result_str, ' [', unit_str, ']', self.separator])\r
- #return header_str\r
- #else:\r
- #return None\r
-\r
- def set_decimal(self, column, decimal=DEFAULT_DECIMAL):\r
- if self.decimals.has_key(name):\r
- self.decimals[name] = decimal\r
-\r
- def set_decimals(self, decimals=DEFAULT_DECIMAL):\r
- if decimals < 0:\r
- #set default value if necessary\r
- decimals = DEFAULT_DECIMAL\r
- for column in self.columns:\r
- self.decimals[column] = decimals\r
-\r
- def set_multipliers(self, index=0):\r
- if self.has_results():\r
- if index >= 0 and index < len(self.results):\r
- for column in self.columns:\r
- #result will contain the results dictionary at 'index'\r
- result = self.results[index][0]\r
- #in position 0 of the result we find the value\r
- self.multipliers[column] = prettyformat.get_multiplier(result[column][0])\r
- self.has_multipliers = True\r
- else:\r
- self.has_multipliers = False\r
-\r
-\r
-class ResultsWLC(Results):\r
- def __init__(self):\r
- Results.__init__(self)\r
- self.columns = ['Contour length', 'sigma contour length', 'Persistence length', 'sigma persistence length', 'Rupture force', 'Loading rate']\r
- self.units['Contour length'] = 'm'\r
- self.units['sigma contour length'] = 'm'\r
- self.units['Persistence length'] = 'm'\r
- self.units['sigma persistence length'] = 'm'\r
- self.units['Rupture force'] = 'N'\r
- self.units['Loading rate'] = 'N/m'\r
- self.set_decimals(2)\r
-\r
- def set_multipliers(self, index=0):\r
- if self.has_results():\r
- if index >= 0 and index < len(self.results):\r
- for column in self.columns:\r
- #result will contain the results dictionary at 'index'\r
- result = self.results[index].result\r
- #in position 0 of the result we find the value\r
- if column == 'sigma contour length':\r
- self.multipliers[column] = self.multipliers['Contour length']\r
- elif column == 'sigma persistence length':\r
- self.multipliers[column] = self.multipliers['Persistence length']\r
- else:\r
- self.multipliers[column] = prettyformat.get_multiplier(result[column])\r
- self.has_multipliers = True\r
- else:\r
- self.has_multipliers = False\r
+import prettyformat
+
+DEFAULT_COLOR = 'orange'
+DEFAULT_DECIMAL = 2
+DEFAULT_STYLE = 'plot'
+
+class Result:
+ def __init__(self):
+ self.color = DEFAULT_COLOR
+ self.result = {}
+ self.style = DEFAULT_STYLE
+ self.visible = True
+ self.x = []
+ self.y = []
+
+class Results:
+ def __init__(self):
+ self.columns = []
+ self.decimals = {}
+ self.has_multipliers = False
+ self.multipliers = {}
+ self.results = []
+ self.separator='\t'
+ self.units = {}
+
+ def get_pretty_value(self, column, value):
+ if self.has_multipliers and self.has_results():
+ multiplier = self.multipliers[column]
+ decimals = self.decimals[column]
+ return prettyformat.pretty_format(value, '', decimals, multiplier, True)
+ return str(value)
+
+ #def get_fit_result(self):
+ #if not(self.has_multipliers):
+ #self.set_multipliers()
+
+ #sResult = 'Contour length ['+prettyformat.get_prefix(self.multiplierContourLength) + 'm]' + self.separator
+ #sResult += prettyformat.pretty_format(self.contourLength[0], '', self.decimals, self.multiplierContourLength, True) + '\n'
+ #sResult += 'Persistence length ['+prettyformat.get_prefix(self.multiplierPersistenceLength) + 'm]' + self.separator
+ #sResult += prettyformat.pretty_format(self.persistenceLength[0], '', self.decimals, self.multiplierPersistenceLength, True) + '\n'
+ #sResult += 'Rupture force ['+prettyformat.get_prefix(self.multiplierRuptureForce) + 'N]' + self.separator
+ #sResult += prettyformat.pretty_format(self.ruptureForces[0], '', self.decimals, self.multiplierRuptureForce, True) + '\n'
+ #sResult += 'Loading rate ['+prettyformat.get_prefix(self.multiplierSlope) + 'N/m]' + self.separator
+ #sResult += prettyformat.pretty_format(self.slopes[0], '', self.decimals, self.multiplierSlope, True)+'\n'
+ #sResult += 'Sigma contour ['+prettyformat.get_prefix(self.multiplierContourLength) + 'm]' + self.separator
+ #sResult += prettyformat.pretty_format(self.contourLengthSigma[0], '', self.decimals, self.multiplierContourLength, True) + '\n'
+ #sResult += 'Sigma persistence ['+prettyformat.get_prefix(self.multiplierPersistenceLength) + 'm]' + self.separator
+ #sResult += prettyformat.pretty_format(self.persistenceLengthSigma[0], '', self.decimals, self.multiplierPersistenceLength, True)
+
+ #return sResult
+
+ #def get_fit_results(self, index):
+ #if index >= 0 and index < len(self.contourLength):
+ #if not(self.has_multipliers):
+ #self.set_multipliers()
+ #sLine = prettyformat.pretty_format(self.contourLength[index], '', self.decimals, self.multiplierContourLength, True) + self.separator
+ #sLine += prettyformat.pretty_format(self.persistenceLength[index], '', self.decimals, self.multiplierPersistenceLength, True) + self.separator
+ #sLine += prettyformat.pretty_format(self.ruptureForces[index], '', self.decimals, self.multiplierRuptureForce, True) + self.separator
+ #sLine += prettyformat.pretty_format(self.slopes[index], '', self.decimals, self.multiplierSlope, True) + self.separator
+ #sLine += prettyformat.pretty_format(self.contourLengthSigma[index], '', self.decimals, self.multiplierContourLength, True) + self.separator
+ #sLine += prettyformat.pretty_format(self.persistenceLengthSigma[index], '', self.decimals, self.multiplierPersistenceLength, True)
+
+ #return sLine
+ #else:
+ #return ''
+
+ def has_results(self):
+ return self.results
+
+ def header_as_list(self):
+ header = []
+ if self.has_results():
+ if not self.has_multipliers:
+ self.set_multipliers()
+ for column in self.columns:
+ #result will contain the results dictionary for 'column'
+ #result = self.results[0][0][column]
+ #result[1] contains the unit
+ unit_str = ''.join([prettyformat.get_prefix(self.multipliers[column]), self.units[column]])
+ header_str = ''.join([column, ' [', unit_str, ']'])
+ header.append(header_str)
+ return header
+
+ #def header_as_str(self):
+ #if self.has_results():
+ #if not self.has_multipliers:
+ #self.set_multipliers()
+ #header_str = ''
+ #for column in self.columns:
+ ##result will contain the results dictionary for 'column'
+ #result = self.results[0][0][column]
+ ##result[1] contains the unit
+ #unit_str = ''.join([prettyformat.get_prefix(self.multipliers[column]), result[1]])
+ #header_str = ''.join([header_str, result_str, ' [', unit_str, ']', self.separator])
+ #return header_str
+ #else:
+ #return None
+
+ def set_decimal(self, column, decimal=DEFAULT_DECIMAL):
+ if self.decimals.has_key(name):
+ self.decimals[name] = decimal
+
+ def set_decimals(self, decimals=DEFAULT_DECIMAL):
+ if decimals < 0:
+ #set default value if necessary
+ decimals = DEFAULT_DECIMAL
+ for column in self.columns:
+ self.decimals[column] = decimals
+
+ def set_multipliers(self, index=0):
+ if self.has_results():
+ if index >= 0 and index < len(self.results):
+ for column in self.columns:
+ #result will contain the results dictionary at 'index'
+ result = self.results[index][0]
+ #in position 0 of the result we find the value
+ self.multipliers[column] = prettyformat.get_multiplier(result[column][0])
+ self.has_multipliers = True
+ else:
+ self.has_multipliers = False
+
+
+class ResultsWLC(Results):
+ def __init__(self):
+ Results.__init__(self)
+ self.columns = ['Contour length', 'sigma contour length', 'Persistence length', 'sigma persistence length', 'Rupture force', 'Loading rate']
+ self.units['Contour length'] = 'm'
+ self.units['sigma contour length'] = 'm'
+ self.units['Persistence length'] = 'm'
+ self.units['sigma persistence length'] = 'm'
+ self.units['Rupture force'] = 'N'
+ self.units['Loading rate'] = 'N/m'
+ self.set_decimals(2)
+
+ def set_multipliers(self, index=0):
+ if self.has_results():
+ if index >= 0 and index < len(self.results):
+ for column in self.columns:
+ #result will contain the results dictionary at 'index'
+ result = self.results[index].result
+ #in position 0 of the result we find the value
+ if column == 'sigma contour length':
+ self.multipliers[column] = self.multipliers['Contour length']
+ elif column == 'sigma persistence length':
+ self.multipliers[column] = self.multipliers['Persistence length']
+ else:
+ self.multipliers[column] = prettyformat.get_multiplier(result[column])
+ self.has_multipliers = True
+ else:
+ self.has_multipliers = False