Difference between revisions of "Average b"

From PyMOLWiki
Jump to navigation Jump to search
(→‎code: adjusted string outputs to use string formatting instead of concatenation; adjusted whitespace around operators)
(Python3 syntax)
Line 18: Line 18:
 
cmd.iterate(selection, "stored.tempfactor = stored.tempfactor + b")
 
cmd.iterate(selection, "stored.tempfactor = stored.tempfactor + b")
 
cmd.iterate(selection, "stored.atomnumber = stored.atomnumber + 1")
 
cmd.iterate(selection, "stored.atomnumber = stored.atomnumber + 1")
print "Your selection: %s" % selection
+
print("Your selection: %s" % selection)
print "sum of B factors: %s" % stored.tempfactor
+
print("sum of B factors: %s" % stored.tempfactor)
print "number of atoms: %s" % stored.atomnumber
+
print("number of atoms: %s" % stored.atomnumber)
 
averagetempfactor = stored.tempfactor / stored.atomnumber
 
averagetempfactor = stored.tempfactor / stored.atomnumber
print "average B of '%s': %s" % (selection, averagetempfactor)
+
print ("average B of '%s': %s" % (selection, averagetempfactor))
 
cmd.extend("average_b", average_b)
 
cmd.extend("average_b", average_b)
 
</source>
 
</source>

Revision as of 13:38, 26 April 2023

average_b.py

  • calculate the average B-factor of a selection.

usage

  • copy code to text file and save as average_b.py. Install via Plugin>Install plugin from within PyMOL.
  • restart PyMOL and then type "average_b (selection)"

author

Gregor Hagelueken

code

from pymol import cmd,stored
def average_b(selection):
	stored.tempfactor = 0
	stored.atomnumber = 0
	cmd.iterate(selection, "stored.tempfactor = stored.tempfactor + b")
	cmd.iterate(selection, "stored.atomnumber = stored.atomnumber + 1")
	print("Your selection: %s" % selection)
	print("sum of B factors: %s" % stored.tempfactor)
	print("number of atoms: %s" % stored.atomnumber)
	averagetempfactor = stored.tempfactor / stored.atomnumber
	print ("average B of '%s': %s" % (selection, averagetempfactor))
cmd.extend("average_b", average_b)