ATP Concentration to Energy Potential Estimator

Estimate the energy potential (in kJ) from ATP concentration using standard free energy values.

Error: Number of ATP concentrations must match number of volumes.

"; return; } let html = "

Batch Results:

"; atpValues.forEach((atp, i) => { const vol = volValues[i]; const molarity = atp * 1e-6; const liters = vol / 1000; const moles = molarity * liters; const molecules = moles * AVOGADRO; const energy_kj = molecules * ENERGY_PER_ATP_KJ; html += ``; }); html += "
#ATP (μM)Volume (mL)Energy (kJ)
${i + 1}${atp}${vol}${energy_kj.toExponential(6)}
"; document.getElementById("result-multiple").innerHTML = html; updateResultsSummary(); }; function updateResultsSummary() { const resultSingle = document.getElementById("result-single").textContent; const resultMultiple = document.getElementById("result-multiple").innerHTML; let summaryHTML = "

Calculation Results:

"; if (resultSingle) summaryHTML += `

${resultSingle}

`; if (resultMultiple) summaryHTML += resultMultiple; document.getElementById("results-summary").innerHTML = summaryHTML; } window.generatePDF = async function () { const { jsPDF } = window.jspdf; const doc = new jsPDF(); const resultSingle = document.getElementById("result-single").textContent; const resultMultiple = document.getElementById("result-multiple").innerText; doc.setFontSize(16); doc.text("ATP Energy Potential Estimator", 10, 20); doc.setFontSize(12); let y = 30; if (resultSingle) { doc.text(resultSingle, 10, y); y += 10; } if (resultMultiple) { const lines = resultMultiple.split('\n'); lines.forEach(line => { doc.text(line, 10, y); y += 10; }); } doc.save("ATP_Energy_Potential.pdf"); }; });
Scroll to Top