Computational Kinetic Analysis Project Brian Baker Dr. Graham Palmer, Mentor W.M. Keck Summer Undergraduate Fellowship (Summer 1995) Final Report We have developed three programs to be used in analyzing kinetic data from complex chemical reaction systems. The first program takes an MxN raw data matrix (absorbance vs. time and wavelength, for example) and performs Singular Value Decomposition. This decomposition is based on the following theorem of linear algebra: Any MxN matrix A, whose number of rows M is greater than or equal to its number of columns N, can be written as the product of an MxN column-orthogonal matrix U, an NxN diagonal matrix S with positive or zero elements, and the transpose of an NxN orthogonal matrix V. The decomposition can always be done, no matter how singular the matrix is. The equation A=USV' can be rewritten to express A as a sum of products of the columns of U and rows of V', with the diagonal elements of S used as weighting factors: N --- \ A = > S(k,k) * U(:,k) * V'(k,:) / --- k=1 The diagonal elements of S are called "Singular Values". If most of the singular values of a matrix A are very small, then A can be well-appoximated by only a few terms in the summation shown above. In this case, only a few columns of U and V are needed to reproduce A with good accuracy. After performing Singular Value Decomposition, our program allows the user to view the resulting components and select the few components which are necessary to represent the data set. The second program we developed is an adaptation of separable nonlinear least-squares fitting. In a complex chemical system where all reactions are first-order interconversions, a "Master Equation" can be written to describe the changes in the system over time. The master equation is given as: dC/dt = K*C In this equation, C is a column vector containing the concentrations of all the species, and K is the "Kinetic Matrix" which contains the individual first-order rate constants. If the initial concentrations and the kinetic matrix are known, the master equation can be easily solved using the eigenvalues and eigenvectors of K. In an experiment, however, the rate constants, mechanism and even the number of species might not be known. In this case, the master equation must be solved backwards. The eigenvalues (relaxation times) and eigenvectors (b-spectra) of the system are found numerically through least-squares fitting. Our second program fits the decomposed data matrix to a model of one static background spectrum and Q-1 spectra whose concentrations are undergoing simultaneous first-order decay. The third program we developed allows the user to propose a specific mechanism for the reaction system. Once the mechanism is chosen, linear combinations of the b-spectra and relaxation times yield the true intermediate spectra and rate constants for the proposed mechanism. Examination of the mechanism-dependent results might allow the user to disprove certain mechanisms due to impossible absorbance spectra. We have encountered several problems during our research this summer. First, if the chemical system in question has two relaxation times (eigenvalues) which are very close, the nonlinear least-squares fitter will not work. It is possible to adapt the fitting model to this degenerate scenario if needed. Second, it is difficult to match the modes of relaxation from the least-squares fit with the appropriate reaction system modes. If these modes are not paired up correctly, then the linear combinations used to calculate intermediate spectra and true rate constants will be incorrect. Also, for complex mechanisms containing back-reactions, the number of true rate constants is greater than the number of relaxation times and the Kinetic Matrix is underdetermined. In these cases, one or more of the true rate constants must be guessed. We plan to continue developing these kinetic analysis programs. We are developing tools to help the user pair up least-squares relaxation modes and reaction system modes. Also, we are combining the three analysis programs into one large program and improving the user interface through better menus, graphics and file systems.