#jsDisabledContent { display:none; } My Account |  Register |  Help

# Transition state theory

Article Id: WHEBN0009217017
Reproduction Date:

 Title: Transition state theory Author: World Heritage Encyclopedia Language: English Subject: Collection: Publisher: World Heritage Encyclopedia Publication Date:

### Transition state theory

Figure 1: Reaction coordinate diagram for the bimolecular nucleophilic substitution (SN2) reaction between bromomethane and the hydroxide anion

Transition state theory (TST) explains the reaction rates of elementary chemical reactions. The theory assumes a special type of chemical equilibrium (quasi-equilibrium) between reactants and activated transition state complexes.[1]

TST is used primarily to understand qualitatively how chemical reactions take place. TST has been less successful in its original goal of calculating absolute reaction rate constants because the calculation of absolute reaction rates requires precise knowledge of potential energy surfaces,[2] but it has been successful in calculating the standard enthalpy of activation (ΔHɵ), the standard entropy of activationSɵ), and the standard Gibbs energy of activation (ΔGɵ) for a particular reaction if its rate constant has been experimentally determined. (The notation refers to the value of interest at the transition state.)

This theory was developed simultaneously in 1935 by Henry Eyring, then at Princeton University, and by Meredith Gwynne Evans and Michael Polanyi of the University of Manchester.[3][4] TST is also referred to as "activated-complex theory," "absolute-rate theory," and "theory of absolute reaction rates."[5]

Before the development of TST, the Arrhenius rate law was widely used to determine energies for the reaction barrier. The Arrhenius equation derives from empirical observations and ignores any mechanistic considerations, such as whether one or more reactive intermediates are involved in the conversion of a reactant to a product.[6] Therefore, further development was necessary to understand the two parameters associated with this law, the pre-exponential factor (A) and the activation energy (Ea). TST, which led to the Eyring equation, successfully addresses these two issues; however, 46 years elapsed between the publication of the Arrhenius rate law, in 1889, and the Eyring equation derived from TST, in 1935. During that period, many scientists and researchers contributed significantly to the development of the theory.

## Theory

The basic ideas behind transition state theory are as follows:

1. Rates of reaction can be studied by examining activated complexes which lie near the saddle point of a potential energy surface. The details of how these complexes are formed are not important. The saddle point itself is called the transition state.
2. The activated complexes are in a special equilibrium (quasi-equilibrium) with the reactant molecules.
3. The activated complexes can convert into products, and kinetic theory can be used to calculate the rate of this conversion.

## Development

In the development of TST, three approaches were taken as summarized below

### Thermodynamic treatment

In 1884, Jacobus van't Hoff proposed the Van 't Hoff equation describing the temperature dependence of the equilibrium constant for a reversible reaction:

A B
\frac{d\ln K}{dT} = \frac{\Delta U}{RT^{2}}

where ΔU is the change in internal energy, K is the equilibrium constant of the reaction, R is the universal gas constant, and T is thermodynamic temperature. Based on experimental work, in 1889, Svante Arrhenius proposed a similar expression for the rate constant of a reaction, given as follows:

\frac{d\ln k}{dT} = \frac{\Delta E}{RT^{2}}

Integration of this expression leads to the Arrhenius equation

k = Ae^{-E_a/RT}

A was referred to as the frequency factor (now called the pre-exponential coefficient), and Ea is regarded as the activation energy. By the early 20th century many had accepted the Arrhenius equation, but the physical interpretation of A and Ea remained vague. This led many researchers in chemical kinetics to offer different theories of how chemical reactions occurred in an attempt to relate A and Ea to the molecular dynamics directly responsible for chemical reactions.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
local j1 = false -- whether Cantonese Romanisations go first
local testChar
if (args["first"]) then
for testChar in mw.ustring.gmatch(args["first"], "%a+") do
if (testChar == "t") then
t1 = true
end
if (testChar == "j") then
j1 = true
end
end
end
if (t1 == false) then
local title = mw.title.getCurrentTitle()
t1 = t1st[title.text] == true
end


-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

In 1910, French chemist René Marcelin introduced the concept of standard Gibbs energy of activation. His relation can be written as

k\propto\exp\left(\frac{-\Delta^\ddagger G^\ominus}{RT}\right)

At about the same time as Marcelin was working on his formulation, Dutch chemists Philip Abraham Kohnstamm, Frans Eppo Cornelis Scheffer, and Wiedold Frans Brandsma introduced standard entropy of activation and the standard enthalpy of activation. They proposed the following rate constant equation

k\propto\exp\left(\frac{\Delta^\ddagger S^\ominus}{R}\right)\exp\left(\frac{-\Delta^\ddagger H^\ominus}{RT}\right)

However, the nature of the constant was still unclear.

### Kinetic-theory treatment

In early 1900, Max Trautz and William Lewis studied the rate of the reaction using collision theory, based on the kinetic theory of gases. Collision theory treats reacting molecules as hard spheres colliding with one another; this theory neglects entropy changes, since it assumes that the collision between molecules are completely elastic.

Lewis applied his treatment to the following reaction and obtained good agreement with experimental result.

2HI → H2 + I2

However, later when the same treatment was applied to other reactions, there were large discrepancies between theoretical and experimental results.

### Statistical-mechanical treatment

Statistical mechanics played a significant role in the development of TST. However, the application of statistical mechanics to TST was developed very slowly given the fact that in mid-19th century, James Clerk Maxwell, Ludwig Boltzmann, and Leopold Pfaundler published several papers discussing reaction equilibrium and rates in terms of molecular motions and the statistical distribution of molecular speeds.

It was not until 1912 when the French chemist A. Berthoud used the Maxwell–Boltzmann distribution law to obtain an expression for the rate constant.

\frac{d\ln k}{dT} = \frac{a-bT}{RT^2}

where a and b are constants related to energy terms.

Two years later, René Marcelin made an essential contribution by treating the progress of a chemical reaction as a motion of a point in phase space. He then applied Gibbs' statistical-mechanical procedures and obtained an expression similar to the one which he had obtained earlier from thermodynamic consideration.

In 1915, another important contribution came from British physicist James Rice. Based on his statistical analysis, he concluded that the rate constant is proportional to the "critical increment". His ideas were further developed by Richard Chace Tolman. In 1919, Austrian physicist Karl Ferdinand Herzfeld applied statistical mechanics to the equilibrium constant and kinetic theory to the rate constant of the reverse reaction, k-1, for the reversible dissociation of a diatomic molecule.

\mathrm{AB} \overset{k_1}\underset{k_{-1}}{\begin{smallmatrix}\displaystyle\longrightarrow \\ \displaystyle\longleftarrow \end{smallmatrix}} \mathrm{A} + \mathrm{B}

He obtained the following equation for the rate constant of the forward reaction

k_1 = \frac{k_\mathrm{B}T}{h}\left(\frac{1}{1-\exp\left(\frac{-h\nu}{k_BT}\right)}\right)\exp\left(\frac{-E^\ominus}{RT}\right)

where \textstyle E^\ominus is the dissociation energy at absolute zero, kB is the Boltzmann constant, h is the Planck constant, T is thermodynamic temperature, υ is vibrational frequency of the bond. This expression is very important since it is the first time that the factor kBT/h, which is a critical component of TST, has appeared in a rate equation.

In 1920, the American chemist Richard Chace Tolman further developed Rice's idea of the critical increment. He concluded that critical increment (now referred to as activation energy) of a reaction is equal to the average energy of all molecules undergoing reaction minus the average energy of all reactant molecules.

### Potential energy surfaces

The concept of potential energy surface was very important in the development of TST. The foundation of this concept was laid by René Marcelin in 1913. He theorized that the progress of a chemical reaction could be described as a point in a potential energy surface with coordinates in atomic momenta and distances.

In 1931, Henry Eyring and Michael Polanyi constructed a potential energy surface for the reaction below. This surface is a three-dimensional diagram based on quantum-mechanical principles as well as experimental data on vibrational frequencies and energies of dissociation.

H + H2 → H2 + H

A year after the Eyring and Polanyi construction, Hans Pelzer and Eugene Wigner made an important contribution by following the progress of a reaction on a potential energy surface. The importance of this work was that it was the first time that the concept of col or saddle point in the potential energy surface was discussed. They concluded that the rate of a reaction is determined by the motion of the system through that col.

## Derivation of the Eyring equation

One of the most important features introduced by Eyring, Polanyi and Evans was the notion that activated complexes are in quasi-equilibrium with the reactants. The rate is then directly proportional to the concentration of these complexes multiplied by the frequency (kBT/h) with which they are converted into products.

Quasi-Equilibrium Assumption[5]

It should be noted that quasi-equilibrium is different from classical chemical equilibrium, but can be described using the same thermodynamic treatment. Consider the reaction below

\mathrm{A} + \mathrm{B} \rightleftharpoons [\mathrm{AB}]^\ddagger \to \mathrm{P}
Figure 2: Potential energy diagram

where complete equilibrium is achieved between all the species in the system including activated complexes, [AB] . Using statistical mechanics, concentration of [AB] can be calculated in terms of the concentration of A and B.

TST assumes that even when the reactants and products are not in equilibrium with each other, the activated complexes are in quasi-equilibrium with the reactants. As illustrated in Figure 2, at any instant of time, there will be a few activated complexes, and some were reactant molecules in the immediate past, which are designated [ABl] (since they are moving from left to right). The remainder of them were product molecules in the immediate past ([ABr]). Since the system is in complete equilibrium, the concentrations of [ABl] and [ABr] are equal, so that each concentration is equal to one-half of the total concentration of activated complexes:

[AB_\mathrm{r}]^{\ddagger} = [AB_\mathrm{l}]^{\ddagger} = \frac{1}{2}[AB]^{\ddagger}

In TST, it is assumed that the flux of activated complexes in the two directions are independent of each other. That is, if all the product molecules were suddenly removed from the reaction system, the flow of [ABr] will stop, but there will still be a flow from left to right. Hence, to be technically correct, the reactants are in equilibrium only with [ABl], the activated complexes that were reactants in the immediate past.

The activated complexes do not follow a Boltzmann distribution of energies, but an "equilibrium constant" can still be derived from the distribution they do follow. The equilibrium constant K‡ɵ for the quasi-equilibrium can be written as

K^{\ddagger\ominus} = \frac

So, the concentration of the transition state AB is

[\mathrm{AB}]^{\ddagger} = K^{\ddagger\ominus}[\mathrm{A}][\mathrm{B}]

Therefore, the rate equation for the production of product is

\frac{d[P]}{dt} = k^{\ddagger\ominus}[\mathrm{AB}]^{\Dagger} = k^{\ddagger}K^{\Dagger }[A][B] = k[A][B]

Where the rate constant k is given by

k = k^{\Dagger}K^{\Dagger}

k is directly proportional to the frequency of the vibrational mode responsible for converting the activated complex to the product; the frequency of this vibrational mode is \nu. Every vibration does not necessarily lead to the formation of product, so a proportionality constant \kappa, referred to as the transmission coefficient, is introduced to account for this effect. So k can be rewritten as

k^{\Dagger } = \kappa\nu

For the equilibrium constant K , statistical mechanics leads to a temperature dependent expression given as

K^{\Dagger } = \frac{k_BT}{h\nu} K^{\Dagger '}

where

K^{\Dagger '} = e^{\frac{- \Delta G^{\Dagger }}{RT}}

Combining the new expressions for k and K, a new rate constant expression can be written, which is given as

k = k^{\Dagger }K^{\Dagger } =\kappa\frac{k_BT}{h}e^{\frac{- \Delta G^{\Dagger }}{RT}}

Since ΔG = ΔH –TΔS, the rate constant expression can be expanded, giving the Eyring equation

k = \kappa\frac{k_BT}{h}e^{\frac{\Delta S^{\Dagger }}{R}}e^{\frac{- \Delta H^{\Dagger }}{RT}}

TST's rate constant expression can be used to calculate the ΔGɵ, ΔHɵ, ΔSɵ, and even ΔV (the volume of activation) using experimental rate data.

## Limitations of Transition State Theory

In general, TST has provided researchers with a conceptual foundation for understanding how chemical reactions take place. Even though the theory is widely applicable, it does have limitations. For example, when applied to each elementary step of a multi-step reaction, the theory assumes that each intermediate is long-lived enough to reach a Boltzmann distribution of energies before continuing to the next step. When the intermediates are very short-lived, however, then TST fails. In such cases, the momentum of the reaction trajectory from the reactants to the intermediate can carry forward to affect product selectivity (an example of such a reaction is the thermal decomposition of diazaobicyclopentanes, presented by Anslyn and Dougherty).

Transition state theory is also based on the assumption that atomic nuclei behave according to classic mechanics.[7] It is assumed that unless atoms or molecules collide with enough energy to form the transition structure, then the reaction does not occur. However, according to quantum mechanics, for any barrier with a finite amount of energy, there is a possibility that particles can still tunnel across the barrier. With respect to chemical reactions this means that there is a chance that molecules will react even if they do not collide with enough energy to traverse the energy barrier.[8] While this effect is expected to be negligible for reactions with large activation energies, it becomes a more important phenomenon for reactions with relatively low energy barriers, since the tunneling probability increases with decreasing barrier height.

Transition state theory fails for some reactions at high temperature. The theory assumes the reaction system will pass over the lowest energy saddle point on the potential energy surface. While this description is consistent for reactions occurring at relatively low temperatures, at high temperatures, molecules populate higher energy vibrational modes; their motion becomes more complex and collisions may lead to transition states far away from the lowest energy saddle point. This deviation from transition state theory is observed even in the simple exchange reaction between diatomic hydrogen and a hydrogen radical.[9]

Given these limitations, several alternatives to transition state theory have been proposed. A brief discussion of these theories follows.

## Generalized Transition state theory

Any form of TST, such as microcanonical variational TST, canonical variational TST, and improved canonical variational TST, in which the transition state is not necessarily located at the saddle point, is referred to as generalized transition state theory.

Microcanonical Variational TST

A development of transition state theory in which the dividing surface is varied so as to minimize the rate calculated for a fixed energy. The rate expressions obtained in a microcanonical treatment can be integrated over the energy, taking into account the statistical distribution over energy states, so as to give the canonical, or thermal rates.

Canonical Variational TST

A development of transition state theory in which the position of the dividing surface is varied so as to minimize the rate constant at a given temperature.

Improved Canonical Variational TST

A modification of canonical variational transition state theory in which, for energies below the threshold energy, the position of the dividing surface is taken to be that of the microcanonical threshold energy. This forces the contributions to rate constants to be zero if they are below the threshold energy. A compromise dividing surface is then chosen so as to minimize the contributions to the rate constant made by reactants having higher energies.

## Applications of TST: enzymatic reactions

Enzymes catalyze chemical reactions at rates that are astounding relative to uncatalyzed chemistry at the same reaction conditions. Each catalytic event requires a minimum of three or often more steps, all of which occur within the few milliseconds that characterize typical enzymatic reactions. According to transition state theory, the smallest fraction of the catalytic cycle is spent in the most important step, that of the transition state. The original proposals of absolute reaction rate theory for chemical reactions defined the transition state as a distinct species in the reaction coordinate that determined the absolute reaction rate. Soon thereafter, Linus Pauling proposed that the powerful catalytic action of enzymes could be explained by specific tight binding to the transition state species [10] Because reaction rate is proportional to the fraction of the reactant in the transition state complex, the enzyme was proposed to increase the concentration of the reactive species.

This proposal was formalized by Wolfenden and coworkers at University of North Carolina at Chapel Hill, who hypothesized that the rate increase imposed by enzymes is proportional to the affinity of the enzyme for the transition state structure relative to the Michaelis complex.[11] Because enzymes typically increase the non-catalyzed reaction rate by factors of 1010-1015, and Michaelis complexes often have dissociation constants in the range of 10−3-10−6 M, it is proposed that transition state complexes are bound with dissociation constants in the range of 10−14 -10−23 M. As substrate progresses from the Michaelis complex to product, chemistry occurs by enzyme-induced changes in electron distribution in the substrate.

Enzymes alter the electronic structure by protonation, proton abstraction, electron transfer, geometric distortion, hydrophobic partitioning, and interaction with Lewis acids and bases. These are accomplished by sequential protein and substrate conformational changes. When a combination of individually weak forces are brought to bear on the substrate, the summation of the individual energies results in large forces capable of relocating bonding electrons to cause bond-breaking and bond-making. Analogs that resemble the transition state structures should therefore provide the most powerful noncovalent inhibitors known, even if only a small fraction of the transition state energy is captured.

All chemical transformations pass through an unstable structure called the transition state, which is poised between the chemical structures of the substrates and products. The transition states for chemical reactions are proposed to have lifetimes near 10−13 seconds, on the order of the time of a single bond vibration. No physical or spectroscopic method is available to directly observe the structure of the transition state for enzymatic reactions, yet transition state structure is central to understanding enzyme catalysis since enzymes work by lowering the activation energy of a chemical transformation.

It is now accepted that enzymes function to stabilize transition states lying between reactants and products, and that they would therefore be expected to bind strongly any inhibitor which closely resembles such a transition state. Substrates and products often participate in several enzyme reactions, whereas the transition state tends to be characteristic of one particular enzyme, so that such an inhibitor tends to be specific for that particular enzyme. The identification of numerous transition state inhibitors supports the transition state stabilization hypothesis for enzymatic catalysis.

Currently there is a large number of enzymes known to interact with transition state analogs, most of which have been designed with the intention of inhibiting the target enzyme. Examples include HIV-1 protease, racemases, β-lactamases, metalloproteinases, cyclooxygenases and many others.

Purine Nucleoside Phosphorylase

Purine nucleoside phosphorylase (PNP) is an enzyme involved in the catabolism and recycling of nucleosides and is a target for the development of novel therapeutic agents for T-cell apoptosis in leukemia and in autoimmune diseases.[12] Inosine, guanosine, and 2’-deoxyguanosine are the major substrates for this enzyme (Figure 3 shows a representative PNP catalyzed reaction with inosine substrate).

Figure 3: Purine nucleoside phosphorylase reaction with inosine substrate

Vern Schramm and colleagues at Albert Einstein College of Medicine have determined the transition state structure of PNP and used it to develop exquisitely tight binding transition state analogs to inhibit this enzyme.[13] The PNP inhibitor Immucillin-H closely resembles the structure of the putative transition state (Figure 4) but is chemically stable due to substitution of the reactive C–N glycosidic bond with a C-C bond. The transition state of PNP bears an oxacarbenium ion in the sugar ring, and this is mimicked by the iminoribitol moiety of Immucillin-H.

Figure 4: PNP transition state and immucillin-H transition state analog

Many transition state analogs exhibit properties of slow-binding inhibitors, where the inhibitor initially binds to form a weaker EI complex prior to a slow conformational change that leads to a very tight EI* complex.

E + I \overset{k_1}\underset{k_{2}}{\begin{smallmatrix}\displaystyle\longrightarrow \\ \displaystyle\longleftarrow \end{smallmatrix}}EI \overset{k_3}\underset{k_{4}}{\begin{smallmatrix}\displaystyle\longrightarrow \\ \displaystyle\longleftarrow \end{smallmatrix}}EI^{*}
K_i = \frac{k_2}{k_1} and K_i^{*} = \frac{K_ik_4}{k_3+k_4}

Ki was determined by titrating Immucillin-H and measuring its effect on PNP initial rates vo, and this value was 41 nM. Ki* was calculated from the same velocity measurements, but instead of using initial rates, second steady-state rates vs were used, which corresponded to the steady-state inhibited rates following attainment of equilibrium for the slow-onset step when all of E has formed EI.

Stoichiometry and structural studies[14] have revealed that one molecule of Immucillin-H binds to each subunit of the PNP trimer. However, inhibition assays indicated that occupancy of only one of the three is sufficient for complete inhibition of the trimer.[13]

The design of Immucillin-H from an enzymatic transition-state analysis exemplifies a powerful approach for developing high-affinity enzyme inhibitors with pharmacological activity.

## Notes

-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --

local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}

-- Helper functions

local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end

-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end

-- Hatnote -- -- Produces standard hatnote text. Implements the template.

function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --

local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}

-- Helper functions

local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end

-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end

-- Hatnote -- -- Produces standard hatnote text. Implements the template.

function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
1. ^ IUPAC, Compendium of Chemical Terminology, 2nd ed. (the "Gold Book") (1997). Online corrected version:  (2006–) "transition state theory".
2. ^
3. ^
4. ^
5. ^ a b
6. ^
7. ^
8. ^
9. ^
10. ^
11. ^
12. ^
13. ^ a b
14. ^

## References

• Anslyn, Eric V.; Doughtery, Dennis A., Transition State Theory and Related Topics. In Modern Physical Organic Chemistry University Science Books: 2006; pp 365–373
• Cleland, W.W., Isotope Effects: Determination of Enzyme Transition State Structure. Methods in Enzymology 1995, 249, 341-373
• Laidler, K.; King, C., Development of transition-state theory. The Journal of physical chemistry 1983, 87, (15), 2657
• Laidler, K., A lifetime of transition-state theory. The chemical intelligencer 1998, 4, (3), 39