Tuesday, May 8, 2012

Making Tris buffers by mixing

One of my least favorite lab activities is measuring pH. It dates back titrating buffers using burettes in chemistry lab-- drip dropping one droplet at a time, becoming impatient, and then overshooting. Barnacles!

I try to avoid making Tris buffers for the same reason-- it requires careful drip dropping of HCl. If you overshoot a little, you can bring the pH back using NaOH but then you have added NaCl to your buffer. I found out the hard way making TAE buffer this way-- the NaCl conducts electricity too well.

I need to make Tris pH 7.7 for protein purification and was wondering if there was a way to mix Tris base and Tris HCl to come close to the desired pH. It turns out you can using the Henderson Hasselbalch equation.

pH = pK + log([A-]/[HA])

pK for Tris is 8.1 at 25 deg C

[A-] = 0.285 and [HA] = 0.715 for a 1M solution when pH = 7.7

Using FW for Tris base and HCl that translates to 112.7g of Tris HCl and 34.5g Tris base.

Here is a python script I wrote to solve for the values. Save it as pH.py then make it executable using chmod u+x pH.py. To use it, type pH.py 7.7. Here is a sample output:

$ pH.py 7.7
For pH 7.7 Tris buffer at 25 deg
112.72 g of Tris-HCl for 1L of 1M soln
34.49 g of Tris-base for 1L of 1M soln

Here is the python script.

#!/usr/bin/python

import sys

ph = float(sys.argv[1])
pk = 8.1 ## at 25 deg
            ##N.B. per Sigma catalog, pH drops 0.03 to 0.05 per ten fold dilution
            ## also increases ~0.03 per deg C

mwb = 121.136   # FW of tris base
mwa = 157.59    # FW of tris HCl

# use henderson hasselbalch equation to solve for a and b
# pH = pKa +log10(b/a)

a = 1./(1+10**(ph-pk)) #solve for a and b
b=1.-a                  # for a+b =1, i.e. 1M soln
                        # math is your friend

print "For pH %2.1f Tris buffer at 25 deg" % (ph)

print "%.2f g of Tris-HCl for 1L of 1M soln" % (a*mwa)
print "%.2f g of Tris-base for 1L of 1M soln" % (b*mwb)

OK, this is high school chemistry, but that was a long time ago. Hope you find this useful.