<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <title>
    Gibbs free energies of formation
  </title>
<!--   <script language="JavaScript" src="javascript/script.js">
  </script> -->
<!--   uncomment for use on cms (typo3) of uni-konstanz cms.uni-konstanz.de/typo3/backend.php -->
  <script language="JavaScript" src="fileadmin/biologie/ag-schink/dG_calculator/javascript/script.js">
  </script>
</head>
<body onload = "loadData()">

<h1>Choose up to ten reactants and up to ten products</h1>
<h2>E.g. 1 CO<sub>2</sub> + 4 H<sub>2</sub> (Reactants) &#8596 1 CH<sub>4</sub> + 2 H<sub>2</sub>O (Products)</h2>
<p>For non-standard reaction conditions change the concentration c of the compounds (or pressure P for gases, respectively).
Note that the pressure is shown in bar where 1 bar equals 100,000 Pa.
  Please also note that for liquid water an activity of 1 is used instead of a concentration. This activity is constant in highly diluted solutions and hence cannot be changed.
  In the result table, you can also adjust the temperature T. If the reaction involves H<sup>+</sup> or OH<sup>-</sup> you can also adjust the pH. In case you provide the number
  of tranfered electrons n, the &#916E-value will be calculated as well.</p>

<table border = "1" id="mastertable">  <!-- Master table 2x3, main headers, reagent, reaction, product -->
  <caption align="bottom">
    <p align="justify">Gibbs free energies of formation are based on Thauer et al., 1977.  
    The physical state of each compound is indicated as crystalline solid (c), liquid (liq), or gaseous (g).
    Solutions in water are listed as aqueous (aq). Compounds marked with (ac) point to values that have been obtained
    by approximate calculation. For Gibbs free energies of formation at temperatures other than 298.15 K please
    refer to Amend and Schock, 2001. Full references are provided below.</p>
  </caption>
  <tr>  <!-- headers of master table in first row -->
    <th>Reactants</th>
    <th></th>
    <th>Products</th>
  </tr>
  <tr>  <!-- first data row of master table with two other tables included -->
    <td>
      <table id="reactantstable">  <!-- table of reactants (11x3) in first column, second row of master table -->
        <tr>  <!-- reactants headers -->
          <th>n [mol]</th>
          <th>Compound</th>
          <th>&#916G&#8304'[kJ/mol]</th>
          <th>c [M] or P [bar]</th>  
        </tr>
        <tr>  <!-- reactants 1. row -->
          <td><input id="mol_reactant_01" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_01" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_01" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_01" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 2. row -->
          <td><input id="mol_reactant_02" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_02" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_02" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_02" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 3. row -->
          <td><input id="mol_reactant_03" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_03" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_03" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_03" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 4. row -->
          <td><input id="mol_reactant_04" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_04" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_04" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_04" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 5. row -->
          <td><input id="mol_reactant_05" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_05" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_05" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_05" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 6. row -->
          <td><input id="mol_reactant_06" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_06" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_06" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_06" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 7. row -->
          <td><input id="mol_reactant_07" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_07" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_07" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_07" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 8. row -->
          <td><input id="mol_reactant_08" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_08" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_08" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_08" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 9. row -->
          <td><input id="mol_reactant_09" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_09" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_09" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_09" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- reactants 10. row -->
          <td><input id="mol_reactant_10" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="reactant_10" size="1" onchange="selectChanged(this.id)" class="reactant"></select></td>
          <td><input id="energy_reactant_10" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_reactant_10" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
      </table>
    </td>
    <td>
      <font size="7">&#8596</font>
    </td>
    <td>
      <table id="productstable">  <!-- table of products (11x3) in first column, second row of master table -->
        <tr>  <!-- products headers -->
          <th>n [mol]</th>
          <th>Compound</th>
          <th>&#916G&#8304'[kJ/mol]</th>
          <th>c [M] or P [bar]</th>
        </tr>
        <tr>  <!-- products 1. row -->
          <td><input id="mol_product_01" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_01" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_01" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_01" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 2. row -->
          <td><input id="mol_product_02" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_02" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_02" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_02" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 3. row -->
          <td><input id="mol_product_03" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_03" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_03" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_03" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 4. row -->
          <td><input id="mol_product_04" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_04" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_04" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_04" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 5. row -->
          <td><input id="mol_product_05" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_05" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_05" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_05" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 6. row -->
          <td><input id="mol_product_06" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_06" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_06" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_06" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 7. row -->
          <td><input id="mol_product_07" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_07" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_07" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_07" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 8. row -->
          <td><input id="mol_product_08" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_08" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_08" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_08" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 9. row -->
          <td><input id="mol_product_09" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_09" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_09" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_09" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>  <!-- products 10. row -->
          <td><input id="mol_product_10" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><select id="product_10" size="1" onchange="selectChanged(this.id)" class="product"></select></td>
          <td><input id="energy_product_10" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
          <td><input id="concentration_product_10" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>


<p>
<!-- <input type="button" value="calculate" onclick="calculate()"> -->
<table border="1">
  <caption>
    <input type="button" value="calculate" onclick="calculate()">
  </caption>
  <tr>
    <th>Standard conditions at pH7</th>
    <th>Non-standard conditions</th>
  </tr>
  <tr>
    <td>
      <table id="results">
        <tr>
          <td>Temperature T</td>
          <td><input id="T" type="text" size="10" maxlength="30" align="right" value="25" disabled="true">&#176C</td>
        </tr>
        <tr>
          <td>pH</td>
          <td><input id="pH" type="text" size="10" maxlength="30" align="right" value="7" disabled="true"></td>
        </tr>
        <tr>
          <td><b>&#916G&#8304'</b></td>
          <td><b><input id="dG" type="text" size="10" disabled="true"> kJ/mol</b></td>
        </tr>
        <tr>
          <td>n (No. of e<sup>-</sup>)</td>
          <td><input id="n" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>
          <td><b>&#916E&#8304'</b></td>
          <td><b><input id="dE" type="text" size="10" disabled="true"> mV</b></td>
        </tr>
      </table>
    </td>
    <td>
      <table id="ns_results">
        <tr>
          <td>Temperature T</td>
          <td><input id="ns_T" type="text" size="10" maxlength="30" align="right" value="25" onkeyup="valueChanged(this.id)">&#176C</td>
        </tr>
        <tr>
          <td>pH</td>
          <td><input id="ns_pH" type="text" size="10" maxlength="30" align="right" value="7" disabled="true" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>
          <td><b>&#916G</b></td>
          <td><b><input id="ns_dG" type="text" size="10" disabled="true"> kJ/mol</b></td>
        </tr>
        <tr>
          <td>n (No. of e<sup>-</sup>)</td>
          <td><input id="ns_n" type="text" size="10" maxlength="30" align="right" onkeyup="valueChanged(this.id)"></td>
        </tr>
        <tr>
          <td><b>&#916E</b></td>
          <td><b><input id="ns_dE" type="text" size="10" disabled="true"> mV<b></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</p>
            
If you use the obtained values for a scientific publication or patent, please verify them by manual calculation.
 
            <p>References:<br>
Thauer RK, Jungermann K, Decker K. 1977. Energy-conservation in chemotrophic anaerobic bacteria. Bacteriological Reviews 41:100–180.<br>
Amend JP, Shock EL. 2001. Energetics of overall metabolic reactions of thermophilic and hyperthermophilic Archaea and Bacteria. FEMS Microbiol. Rev. 25:175-243.</p>        

<p>Designed by Ralf Mueller, Dominik Montag, Nick Mueller and Michael Pester.</p>

</body>
</html>