mirror of
https://github.com/soapingtime/diyhrt.git
synced 2026-03-23 07:36:38 +00:00
336 lines
16 KiB
HTML
336 lines
16 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Finasteride</title>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
||
<meta name="robots" content="noindex, noarchive, nosnippet">
|
||
<link rel="preload" as="font" type="font/woff2" href="../assets/css/fonts/inter-400.woff2" crossorigin>
|
||
<link rel="preload" as="font" type="font/woff2" href="../assets/css/fonts/inter-500.woff2" crossorigin>
|
||
<link rel="preload" as="font" type="font/woff2" href="../assets/css/fonts/inter-700.woff2" crossorigin>
|
||
<link rel="preload" as="font" type="font/woff2" href="../assets/css/fonts/inter-800.woff2" crossorigin>
|
||
<link rel="stylesheet" href="../assets/css/style.css?v=19"><link rel="stylesheet" href="../assets/css/jquery.tipsy.css?v=19"><link rel="stylesheet" href="../assets/css/dark.css?v=19"><link rel="stylesheet" href="../assets/css/icomoon.css?v=19"><link rel="stylesheet" href="../assets/css/jquery.dataTables.min.css?v=19"> <script>
|
||
if (typeof localStorage.darkmode === 'undefined') {
|
||
localStorage.darkmode = '0';
|
||
}
|
||
var darkmode = localStorage.darkmode;
|
||
if (darkmode == "1") {
|
||
document.documentElement.setAttribute("data-theme", "dark");
|
||
} else if (darkmode == "W98") {
|
||
document.documentElement.setAttribute("data-theme", "W98");
|
||
} else {
|
||
document.documentElement.setAttribute("data-theme", "light");
|
||
}
|
||
</script>
|
||
<script src="../assets/js/jquery-3.6.0.min.js?v=19"></script><script src="../assets/js/dark.js?v=19"></script><script src="../currency-converter/converter.js?v=19"></script><script src="../currency-converter/currencies.js?v=19"></script><script src="../assets/js/jquery.tipsy.min.js?v=19"></script><script src="../assets/js/jquery.dataTables.min.js?v=19"></script><script src="../assets/js/functions.js?v=19"></script><script src="../assets/js/init.js?v=19"></script><script src="../assets/js/search.js?v=19"></script> <link rel="icon" type="image/png" sizes="512x512" href="../assets/img/coffee-breaks.png?v=19"> <!-- LAST GENERATED: 2022-09-25T23:27:25p -->
|
||
<!-- Meta tags -->
|
||
<meta name="theme-color" content="#f5a9b8">
|
||
<meta name="author" content="hrt.cafe">
|
||
<meta name="url" content="https://diyhrt.cafe">
|
||
<meta name="og:url" content="https://diyhrt.cafe">
|
||
<meta name="og:see_also" content="https://diyhrt.cafe">
|
||
<meta name="twitter:url" content="https://diyhrt.cafe">
|
||
<meta name="og:site_name" content="diyhrt.cafe">
|
||
<meta name="name" content="diyhrt.cafe">
|
||
<meta name="og:title" content="diyhrt.cafe">
|
||
<meta name="twitter:title" content="diyhrt.cafe">
|
||
<meta name="image" content="https://diyhrt.cafe/assets/img/coffee-breaks.png?v=19">
|
||
<meta name="og:image" content="https://diyhrt.cafe/assets/img/coffee-breaks.png?v=19">
|
||
<meta name="twitter:image" content="https://diyhrt.cafe/assets/img/coffee-breaks.png?v=19">
|
||
<meta name="description" content="HRT resources for transgender people.">
|
||
<meta name="og:description" content="HRT resources for transgender people.">
|
||
<meta name="twitter:description" content="HRT resources for transgender people.">
|
||
</head>
|
||
<body id="top">
|
||
|
||
<div id="wrapper">
|
||
<nav class="navbar-left">
|
||
<a class="navbar-brand" href="../index.html">
|
||
<div class="navbar-brand-container">
|
||
<div class="sidebar-brand-icon">
|
||
<span class="icon-brand-hrtcafe"></span>
|
||
</div>
|
||
<div class="sidebar-brand-text"><span>HRT.CAFE</span></div>
|
||
</div>
|
||
</a>
|
||
|
||
<ul>
|
||
<li class="list-item top">
|
||
<a class="internal" href="../index.html"><span class="icon-fa4-home"></span><span class="text">Home</span></a>
|
||
</li>
|
||
<li class="list-item top">
|
||
<a class="internal" href="../donate/index.html"><span class="icon-fa5-donate"></span><span class="text">Donate</span></a>
|
||
</li>
|
||
<li class="list-item category estradiol">
|
||
<div class="spacecat">Estradiol</div>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../pills/index.html"><span class="icon-fa5-pills"></span><span class="text">Estradiol Pills</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../patches/index.html"><span class="icon-fa5-bandaid"></span><span class="text">Estradiol Patches</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../gel/index.html"><span class="icon-fa5-spray"></span><span class="text">Estradiol Gel</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../injections/index.html"><span class="icon-fa5-syringe"></span><span class="text">Estradiol Injections</span></a>
|
||
</li>
|
||
<li class="list-item category progesterone"><div class="spacecat">Progesterone</div></li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../progesterone/index.html"><span class="icon-fa5-capsules"></span><span class="text">Progesterone Capsules</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../progesterone/gel/index.html"><span class="icon-fa5-spray"></span><span class="text">Progesterone Gel</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../progesterone/injections/index.html"><span class="icon-fa5-syringe"></span><span class="text">Progesterone Injections</span></a>
|
||
</li>
|
||
<li class="list-item category antiandrogen"><div class="spacecat">Anti-Androgens</div></li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../cypro/index.html"><span class="icon-fa5-pills"></span><span class="text">Cyproterone Acetate</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../bicalutamide/index.html"><span class="icon-fa5-pills"></span><span class="text">Bicalutamide</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../spironolactone/index.html"><span class="icon-fa5-pills"></span><span class="text">Spironolactone</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../gnrh/index.html"><span class="icon-fa5-syringe"></span><span class="text">GnRH Agonists</span></a>
|
||
</li>
|
||
<li class="list-item category hairloss"><div class="spacecat">Hair Loss</div></li>
|
||
<li class="list-item active">
|
||
<a class="internal" href="index.html"><span class="icon-fa5-pills"></span><span class="text">Finasteride</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../dutasteride/index.html"><span class="icon-fa5-pills"></span><span class="text">Dutasteride</span></a>
|
||
</li>
|
||
<li class="list-item category serms"><div class="spacecat">SERMs</div></li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../raloxifene/index.html"><span class="icon-fa5-pills"></span><span class="text">Raloxifene</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../tamoxifen/index.html"><span class="icon-fa5-pills"></span><span class="text">Tamoxifen</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../clomifene/index.html"><span class="icon-fa5-pills"></span><span class="text">Clomifene</span></a>
|
||
</li>
|
||
<li class="list-item category misc"><div class="spacecat">Miscellaneous</div></li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../domperidone/index.html"><span class="icon-fa5-pills"></span><span class="text">Domperidone</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../pioglitazone/index.html"><span class="icon-fa5-pills"></span><span class="text">Pioglitazone</span></a>
|
||
</li>
|
||
<li class="list-item">
|
||
<a class="internal" href="../progesterone/injections/hydroxy/index.html"><span class="icon-fa5-syringe"></span><span class="text">HydroxyProg Injections</span></a>
|
||
</li>
|
||
|
||
<li class="list-item bottom top mobile">
|
||
<a class="internal" href="index.html#top"><span class="icon-fa5-angle-up"></span><span class="text">Scroll to Top<br><br></span></a>
|
||
</li>
|
||
</ul>
|
||
|
||
</nav>
|
||
<div id="content-wrapper">
|
||
<nav class="navbar-top">
|
||
<ul class="navbar-top">
|
||
<li class="nav-item"><a class="internal shadow" href="../resources/index.html">Resources</a></li>
|
||
<li class="nav-item"><a class="internal shadow" href="../contact/index.html">Contact</a></li>
|
||
<li class="nav-item"><a class="js shadow" id="dark-toggle" href="index.html#"><span class="icon-fa5-moon"></span></a></li>
|
||
</ul>
|
||
</nav>
|
||
<div id="main">
|
||
<p class="p1"><b>Free Estradiol Estimator</b></p>
|
||
<p class="p2"><br></p>
|
||
<p class="p3">Note: The results will be low if you are taking Boron. It will also be low if your T is a significant proportion of your SHBG.</p>
|
||
<p class="p2"><br></p>
|
||
<p class="p3">To use, enter your E2 and T in SI or US units and hit the calculate button.</p>
|
||
<p class="p2"><br></p>
|
||
<p class="p3"><span class="Apple-converted-space"> </span><i>The equations used come from here: https://cebp.aacrjournals.org/content/11/10/1065</i></p>
|
||
<p class="p3"><i><span class="Apple-converted-space"> </span>They are from the 1st set by Vermeulen et al</i></p>
|
||
<br/>
|
||
<table>
|
||
<tr>
|
||
<td>Estradiol (E2) pmol/L </td>
|
||
<td><input tabindex = 1 id= "E2SI" type="text" name="E2SI" value="0" onchange="E2SIChange(this.value)"></td>
|
||
<td>Estradiol (E2) pg/mL</td>
|
||
<td><input tabindex = 2 id="E2US" type="text" name="E2US" value="0" onchange="E2USChange(this.value)"></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Testosterone (T) nmol/L </td>
|
||
<td><input tabindex = 3 id="TSI" type="text" name="TSI" value="0" onchange="TSIChange(this.value)"></td>
|
||
<td>Testosterone (T) ng/dL</td>
|
||
<td><input tabindex = 4 id="TUS" type="text" name="TUS" value="0" onchange="TUSChange(this.value)"></td>
|
||
</tr>
|
||
<tr>
|
||
<td/>
|
||
<td>SHBG nmol/L </td>
|
||
<td><input tabindex = 5 id=SHBG type="text" name="SHBG" value="0"></td>
|
||
</tr>
|
||
<tr>
|
||
<td/>
|
||
<td colspan="2"><br/><input tabindex = 6 type="button" name="Calculate Free E2" value="Calculate Free E2" onclick="CalculateFreeE2()"></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Free E2 pmol/L </td>
|
||
<td id="FreeE2SI"/>
|
||
<td>Free E2 pg/mL</td>
|
||
<td id="FreeE2US"/>
|
||
</tr>
|
||
<tr>
|
||
<td>Free T pmol/L </td>
|
||
<td id="FreeTSI"/>
|
||
<td>Free T ng/dL</td>
|
||
<td id="FreeTUS"/>
|
||
</tr>
|
||
</table>
|
||
<br/>
|
||
<p class="p4"><i>For any issues, contact u/Ally-SR on Reddit</i><br></p>
|
||
<script>
|
||
function E2SIChange(newValue) {
|
||
E2US.value = (newValue * 0.2724).toFixed(2);
|
||
}
|
||
function E2USChange(newValue) {
|
||
E2SI.value = (newValue / 0.2724).toFixed(2);
|
||
}
|
||
function TSIChange(newValue) {
|
||
TUS.value = (newValue * 28.842).toFixed(2);
|
||
}
|
||
function TUSChange(newValue) {
|
||
TSI.value = (newValue / 28.842).toFixed(2);
|
||
}
|
||
|
||
function CalculateFreeE2() {
|
||
|
||
// This is a chunk of code to calculate Free E2 and Free T
|
||
// You are free to use it for whatever you want, just don't claim copyright over it.
|
||
//
|
||
// All quantities are normalised into mol/L as the various constants are in L/mol
|
||
//
|
||
// The equations used come from here: https://cebp.aacrjournals.org/content/11/10/1065
|
||
// They are from the 1st set by Vermeulen et al
|
||
//
|
||
// Following the reference to the linked paper, and extrapolating I also tried to calculate the Albumen bound E2
|
||
// Apparently around 60% of E2 is bound to Albumin and that's about the result I get so ...
|
||
//
|
||
|
||
E2 = E2SI.value;
|
||
E2 = E2 * 1e-12;
|
||
|
||
CSHBG = SHBG.value;
|
||
CSHBG = CSHBG * 1e-9;
|
||
|
||
fE2 = E2/100; // First cut estimate. The algorithm will refine this up or down until the require accuracy is reached.
|
||
|
||
T = TSI.value;
|
||
T = T * 1e-9;
|
||
|
||
|
||
KaE2 = 4.21e4; // L/mol - Affinity constant for E2 to bind to Albumin
|
||
Ca = 6.5e-4; // mol/L - Apparently Albumen is normally in this concentration in the blood (from the paper above)
|
||
// Looking back at my labs it is spot on for one test and off 2% for another. I figure close enough
|
||
// Vermeulen paper has this constant slightly lower at 6.2e-4
|
||
|
||
N2 = (KaE2 * Ca) + 1; // N2 from the equation in the reference. Albumen loves E2 even more than T
|
||
KsE2 = 3.14e8; // L/mol - Affinity constant for E2 to bind to SHBG
|
||
KaT = 4.06e4; // L/mol - Affinity constant to bind T to Albumin - lower than E2?
|
||
KsT = 1.0e9; // L/mol - Affinity constant to bind T to SHBG. It's a little over 3 x KsE2, but I thought I heard people say it was more
|
||
N1 = (KaT * Ca) + 1; // N1 calculation from the paper
|
||
|
||
fE2diff = 1; // can be any number to start off, gets refined each loop.
|
||
|
||
// My maths is too rusty to solve the equation properly, so I'm brute forcing it, trying values until I am
|
||
// within .01pmol/L of the answer. I figure that is accurate enough.
|
||
|
||
increment = 1e-12; // We start at 1% and step upwards at first trying to find a closer answer
|
||
fE2 = E2/100;
|
||
|
||
while (fE2diff > 1e-15) {
|
||
|
||
// The equation from the referenced paper for calculating fE2
|
||
// I start with a guessed value first and run the calculation.
|
||
//
|
||
fE2p = (E2 - N2 * fE2)/(KsE2 * (CSHBG - E2 + (N2*fE2)));
|
||
|
||
// See how close provisional and calculated values are
|
||
lastdiff = fE2diff; // how close were we last time
|
||
fE2diff = Math.abs(fE2p - fE2); // calculate how close we were this time
|
||
|
||
// If we are further away than last time, start moving in the other direction, but more slowly.
|
||
if (fE2diff > lastdiff) {
|
||
increment = -increment / 10;
|
||
}
|
||
// Neither of the values will be right,the right value will be somewhere in the middle.
|
||
// We iterate until we get something close enough
|
||
|
||
//# print fE2*1e12, fE2p*1e12, fE2diff*1e12
|
||
//# raw_input("Iter: ")
|
||
|
||
fE2 += increment; // move to a closer value;
|
||
// fE2 = (fE2 + fE2p)/2
|
||
}
|
||
|
||
// We have iterated to within .01 of a pmol/L so that is the answer we print out
|
||
// print "Free E2 pmol/L = {0:.2f}".format(fE2 * 1.0e12)
|
||
// print "Free E2 % = {0:.2f}".format(fE2/E2*100)
|
||
|
||
|
||
//# Not confident of this equation, but it is the E2 equivalent of the T equation in the Vermuelen paper
|
||
//AE2 = KaE2*Ca*fE2
|
||
//print "Albumin bound E2 = {0:.2f}".format(AE2 * 1.0e12)
|
||
|
||
// Same algorithm again, but this time for T
|
||
|
||
fTdiff = 1;
|
||
fT = T/100;
|
||
increment = 1.0e-9;
|
||
while (fTdiff > 1e-15) {
|
||
fTp = (T - N1 * fT)/(KsT * (CSHBG - T + (N1*fT)));
|
||
lastdiff = fTdiff;
|
||
fTdiff = Math.abs(fTp - fT);
|
||
if (fTdiff > lastdiff) {
|
||
increment = -increment / 10;
|
||
}
|
||
fT += increment;
|
||
}
|
||
|
||
|
||
AT = KaT*Ca*fT;
|
||
// print "Albumin bound T (nmol/L) = {0:.2f}".format(AT * 1.0e9)
|
||
SHBGT = (T-AT-fT);
|
||
// print "SHBG bound T (nmol/L) = {0:.2f}".format(SHBGT*1e9)
|
||
|
||
if (SHBGT > CSHBG / 20) {
|
||
alert ("T is stealing a lot of SHBG, so Free E value is probably a bit lower than it should be");
|
||
}
|
||
// calculations
|
||
fE2SIf = (fE2 * 1.0e12).toFixed(2);
|
||
fE2USf = (fE2 * 1.0e12 * 0.2724).toFixed(2);
|
||
fE2percent = (fE2 / E2 * 100).toFixed(2);
|
||
|
||
fTSIf = (fT * 1.0e12).toFixed(2);
|
||
fTUSf = (fT * 1.0e9 * 28.842).toFixed(2);
|
||
fTpercent = (fT / T * 100).toFixed(2);
|
||
|
||
window.document.getElementById('FreeE2SI').innerText = fE2SIf + " ("+fE2percent+"%)";
|
||
window.document.getElementById('FreeE2US').innerText = fE2USf + " ("+fE2percent+"%)";
|
||
window.document.getElementById('FreeTSI').innerText = fTSIf + " ("+fTpercent+"%)";
|
||
window.document.getElementById('FreeTUS').innerText = fTUSf + " ("+fTpercent+"%)";
|
||
}
|
||
|
||
</script>
|
||
<div class="footer">
|
||
<p class="small">Prices and exchange rates are for informational purposes only.
|
||
<br>They are not guaranteed to be accurate and are subject to change without notice.</p>
|
||
<p class="small">If you think you may have a medical emergency, please contact your doctor or emergency services.</p>
|
||
<p class="small"><span><a class="internal" href="../privacy/index.html">Privacy</a> • <a class="internal" href="../legal/index.html">Legal</a> • <a class="internal" href="../medical/index.html">Medical</a> • <a class="internal" href="../changelog/index.html">Changelog</a> • <a class="internal" href="../contact/index.html">Contact</a><br></span></p>
|
||
<p><a class="external" href="https://twitter.com/HrtCafe" target="_blank"><span class="icon-fa4-twitter"></span></a></p>
|
||
</div> </div>
|
||
|
||
<a id="bottom"></a>
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|