Extraction of Hydrogen Exchange Rates from pH Titrations of Amides

DESCRIPTION

	This notebook will fit pH (x-variable)-induced changes in NMR amide peak intensity (y-variable) to an equation yielding base (b) and acid (a) catalyzed exchange rate constants, and statistics on the goodness of the fit. It will also generate graphs of the data and the fitted curve. 
    																						                              INSTRUCTIONS

	The user must enter data in the form of {pH,NHintensity} pairs. The longitudinal relaxation rate constant (T1) must also be entered in units of seconds. 
    	Hit the down arrow to move from cell to cell and press "enter" (not return!) to execute each calculation. Follow the examples below to see the fitting results for 3 sets of data.

NHintensity:=(1/(1+(b (10^(x-14))+a (10^(-x))) T1))

Clear[a,b,T1,NLR,param]

Users: Replace the value below with the T1 for your molecule.

T1=1.1

<<"NonlinearRegression`"

Information["NonlinearRegress",LongForm->False]

Users: Enter your {pH, NHintensity} pairs below:

data1={{7.41,0},{6.83,.0976},{6.25,.305},{5.3,.744},{5.06,.927},{4.57,1},{4.12,.793},{3.55,.439},{2.46,0}}

data2={{7.41,0},{6.83,.152},{6.25,.391},{5.3,.739},{5.06,.913},{4.57,.978},{4.12,1},{3.55,.978},{2.46,.848}}

data3={{7.41,0},{6.83,.131},{6.25,.396},{5.3,.692},{5.06,.890},{4.57,1},{4.12,.989},{3.55,.956},{2.46,.659}}

dp1=ListPlot[data1,PlotStyle -> {PointSize[0.02]}, FrameStyle->{Thickness[0.01]},PlotRange->{{0,10},{-0.1,1.1}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","NH Intensity"}]

dp2=ListPlot[data2,PlotStyle -> {PointSize[0.02]}, FrameStyle->{Thickness[0.01]},PlotRange->{{0,10},{-0.1,1.1}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","NH Intensity"}]

dp3=ListPlot[data3,PlotStyle -> {PointSize[0.02]}, FrameStyle->{Thickness[0.01]},PlotRange->{{0,10},{-0.1,1.1}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","NH Intensity"}]

NLR=NonlinearRegress[data1,NHintensity,{a,b},{x},ShowProgress->True]

param=BestFitParameters/.NLR

a=a/.param
b=b/.param

Plot[NHintensity,{x,0,10},PlotStyle -> {Thickness[0.01]}, FrameStyle->{Thickness[0.010]},PlotRange->{{0,10},{-0.1,1.1}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","NH Intensity"}]

Show[%,dp1]

Plot[Log[10,(b)*10^(x-14)+a*10^(-x)],{x,0,10},PlotStyle -> {Thickness[0.01]}, FrameStyle->{Thickness[0.010]},PlotRange->{{0,10},{-2.5,2}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","log k"}]

Clear[a,b,T1,param2,NLR2]

Users: Replace the value below with the T1 for your molecule.

T1=1.3

NLR2=NonlinearRegress[data2,NHintensity,{a,b},{x},ShowProgress->False]

param2=BestFitParameters/.NLR2

a=a/.param2
b=b/.param2

Plot[NHintensity,{x,0,10},PlotStyle -> {Thickness[0.01]}, FrameStyle->{Thickness[0.010]},PlotRange->{{0,10},{-0.1,1.1}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","NH Intensity"}]

Show[%,dp2]

Plot[Log[10,(b)*10^(x-14)+a*10^(-x)],{x,0,10},PlotStyle -> {Thickness[0.01]}, FrameStyle->{Thickness[0.010]},PlotRange->{{0,10},{-2.5,2}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","log k"}]

Clear[a,b,T1,param3,NLR3]

Users: Replace the value below with the T1 for your molecule.

T1=1.1

NLR3=NonlinearRegress[data3,NHintensity,{a,b},{x},ShowProgress->False]

param3=BestFitParameters/.NLR3

a=a/.param3
b=b/.param3

Plot[NHintensity,{x,0,10},PlotStyle -> {Thickness[0.01]}, FrameStyle->{Thickness[0.010]},PlotRange->{{0,10},{-0.1,1.1}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","NH Intensity"}]

Show[%,dp3]

Plot[Log[10,(b)*10^(x-14)+a*10^(-x)],{x,0,10},PlotStyle -> {Thickness[0.01]}, FrameStyle->{Thickness[0.010]},PlotRange->{{0,10},{-2.5,2}}, Frame->True, RotateLabel->False,BaseStyle->{14,FontFamily->"Times"},FrameLabel->{"pH","log k"}]

END