Function Description ******************** Name: XY2 Function: Chemical Shift X+Y <-> XY + Y <+> XY2 Parameters: S_LM1, Kd1, S_LM2, Kd2 Notes ***** This function expects 3 column data. Use to fit chemical shift or linebroadening for binding equilibrium such as P + L <-> P:L + L <-> P:L2 when observing P and varying L. Kd1 = [P][L]/[PL] Kd2 = [PL][L]/[PL2] S_LM1 = dPL - dFree S_LM2 = dPL2 - dFree Try holding Kd2 constant to achieve convergence. Reference ********* 141. Williams, T.C., J.G. Shelling and B.D. Sykes. NMR approaches to the characterization of the interaction of metal ions with proteins. In: NMR in the Life Sciences (Ed. E.M. Bradbury and C. Nicolini) Plenum Publishing Co., New York-London NATO-ASI Series A Life Sciences 107:93-103 (1986). C-code for the function *********************** b = Kd2 - 4 * Kd1; c = Kd2 * Kd2; d = (c - (4 * Kd1 * Kd2) - (2 * x2 * Kd2)) / b; e = ((x * Kd2 * (2*x2 - x)) - (c * (x2 + Kd1 + x))) / b; f = -(2*d*d*d - 9*d*e + (27 * ((x*x2*c) / b))) / 54.0; g = (3*e - d*d) / 3.0; if (g > 0) return(FALSE); w = f / sqrt(-(g*g*g) / 27.0); if ((w > 1.0) || (w < -1.0)) return(FALSE); h = TO_DEG * acos(w); x3 = (2 * sqrt(-g/3.0) * cos(((h/3.0)+240)*TO_RAD) - (d/3.0)); answer = ((S_LM1*x3) + (S_LM2*x3 * (x-x3)/(2*x3+Kd2))) / x2;