nist-gov/abacus.nist.gov/index.html
2025-03-05 18:59:57 +00:00

1022 lines
57 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script type="application/shiny-singletons">12b42a8f0f7c798243d223ce8cf7a0d518f6c50a,3891ac171834ed25f436995ba40a47edd74e5169,45534f2c59c7069db5da7f5118dc12c792e86de5</script>
<script type="application/html-dependencies">jquery[3.6.0];shiny-css[1.7.5.1];shiny-javascript[1.7.5.1];font-awesome[6.4.2];shinyBS[0.61.1];bootstrap[3.4.1]</script>
<script src="jquery-3.6.0/jquery.min.js"></script>
<link href="shiny-css-1.7.5.1/shiny.min.css" rel="stylesheet" />
<script src="shiny-javascript-1.7.5.1/shiny.min.js"></script>
<link href="font-awesome-6.4.2/css/all.min.css" rel="stylesheet" />
<link href="font-awesome-6.4.2/css/v4-shims.min.css" rel="stylesheet" />
<link href="sbs/shinyBS.css" rel="stylesheet" />
<script src="sbs/shinyBS.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="bootstrap-3.4.1/css/bootstrap.min.css" rel="stylesheet" />
<link href="bootstrap-3.4.1/accessibility/css/bootstrap-accessibility.min.css" rel="stylesheet" />
<script src="bootstrap-3.4.1/js/bootstrap.min.js"></script>
<script src="bootstrap-3.4.1/accessibility/js/bootstrap-accessibility.min.js"></script> <link rel="stylesheet" type="text/css" href="style.css"/>
<style>#title {
color: red;
font-size: 40px;
font-style: bold;
}</style>
<style>
.shiny-output-error-validation {
color: red;
}
</style>
<script src="https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
<style>
.shiny-output-error-validation {
color: red;
}
</style>
<link rel="stylesheet" href="shinycssloaders-assets/spinner.css"/>
<script src="shinycssloaders-assets/spinner.js"></script>
<link rel="stylesheet" href="shinycssloaders-assets/css-loaders.css"/>
<style>#spinner-7f13f5c30798a7d4130e0ea3b3f8754a { border-top: 1.1em solid rgba(46,139,87, 0.2); border-right: 1.1em solid rgba(46,139,87, 0.2); border-bottom: 1.1em solid rgba(46,139,87, 0.2); border-left: 1.1em solid seagreen; } #spinner-7f13f5c30798a7d4130e0ea3b3f8754a { font-size: 8px; }</style>
<style>#spinner-c144c737365fb9ef6d34a14ae76d1d82 { border-top: 1.1em solid rgba(46,139,87, 0.2); border-right: 1.1em solid rgba(46,139,87, 0.2); border-bottom: 1.1em solid rgba(46,139,87, 0.2); border-left: 1.1em solid seagreen; } #spinner-c144c737365fb9ef6d34a14ae76d1d82 { font-size: 8px; }</style>
<script src="__assets__/sockjs.min.js"></script>
<script src="__assets__/shiny-server-client.min.js"></script>
<script>preShinyInit({reconnect:true,disableProtocols:[]});</script>
<link rel="stylesheet" type="text/css" href="__assets__/shiny-server.css"/>
</head>
<body>
<div class="container-fluid">
<link rel="stylesheet" href="css/nist-combined.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="js/nist-header-footer.js" type="text/javascript" defer="defer"></script>
<html class="nist-footer-bottom">
<style>#mu_est {font-size:14px;
color:steelblue;
}</style>
<style>#mu_se {font-size:14px;
color:steelblue;
}</style>
<style>#mu_median {font-size:14px;
color:steelblue;
}</style>
<style>#mu_quant {font-size:14px;
color:steelblue;
}</style>
<style>#mu_est1 {font-size:14px;
color:steelblue;
}</style>
<style>#mu_se1 {font-size:14px;
color:steelblue;
}</style>
<style>#mu_median1 {font-size:14px;
color:steelblue;
}</style>
<style>#mu_quant1 {font-size:14px;
color:steelblue;
}</style>
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
<h1 id="big-heading">
<strong>NIST ABACUS Chemical Analysis Package: Measurement Calibration</strong>
</h1>
<style>#big-heading{color:steelblue;}</style>
<br/>
<div class="row">
<div class="col-sm-4 well">
<ul class="nav nav-pills nav-stacked" data-tabsetid="8009">
<li>
<a href="#tab-8009-1" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;About ABACUS&lt;/h4&gt;">
<h4>About ABACUS</h4>
</a>
</li>
<li class="navbar-brand">Pre-Experiment</li>
<li>
<a href="#tab-8009-3" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Background&lt;/h4&gt;">
<h4>Background</h4>
</a>
</li>
<li class="active">
<a href="#tab-8009-4" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Data entry&lt;/h4&gt;">
<h4>Data entry</h4>
</a>
</li>
<li class="navbar-brand">Design of Experiment</li>
<li>
<a href="#tab-8009-6" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Background&lt;/h4&gt;">
<h4>Background</h4>
</a>
</li>
<li>
<a href="#tab-8009-7" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Data entry&lt;/h4&gt;">
<h4>Data entry</h4>
</a>
</li>
<li class="navbar-brand">Analysis </li>
<li>
<a href="#tab-8009-9" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Background&lt;/h4&gt;">
<h4>Background</h4>
</a>
</li>
<li>
<a href="#tab-8009-10" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Data entry&lt;/h4&gt;">
<h4>Data entry</h4>
</a>
</li>
</ul>
</div>
<div class="col-sm-8">
<div class="tab-content" data-tabsetid="8009">
<div class="tab-pane" data-value="&lt;h4&gt;About ABACUS&lt;/h4&gt;" id="tab-8009-1">
<h2 style="color:steelblue">About ABACUS</h2>
<h4>The NIST ABACUS (Apps for Bayesian Analysis of Chemical quantities Using Shiny) package is a software application designed to help chemical analysts make well-informed decisions and perform rigorous calculation of results. </h4>
<br/>
<h4>ABACUS is comprised of three modules that can be used separately or in any combination during the measurement process:</h4>
<em>
<h4 style="color:steelblue">1) Pre-Experiment</h4>
</em>
<h4>
Exploratory measurement data is analyzed to inform an approximate expectation of the measured quantity and an efficient set of experiments. The
<em>Pre-Experiment</em>
module calculates estimates for several characteristics of the measurement procedure that can inform the
<em>Design of Experiment</em>
.
</h4>
<em>
<h4 style="color:steelblue">2) Design of Experiment</h4>
</em>
<h4>
A central function ABACUS is the planning of optimal experiment designs to achieve a target measurement uncertainty. Based on results from the
<em>Pre-Experiment</em>
module, or simply estimated inputs based on user judgement, this module determines an experiment design that can achieve the target uncertainty with as few measurements and prepared samples as possible.
</h4>
<em>
<h4 style="color:steelblue">3) Analysis</h4>
</em>
<h4>
The
<em>Analysis</em>
module uses all data from the experiments to calculate a result with a rigorous estimate of measurement uncertainty. Calibration methods based on linear regression models or response factors are supported, as is the use of internal or external standards. Data from calibrations performed on separate days or by different methods can be utilized to inform the result.
</h4>
<br/>
<h4>ABACUS performs calculations for measurements that are based on two-step experiments conducted to:</h4>
<br/>
<h4>1) estimate a calibration function</h4>
<h4>2) determine unknown quantities of analyte in samples using the calibration function and sample measurement data</h4>
<br/>
<h4>The statistical approaches employed for the Pre-Experiment and Analysis modules are described in:</h4>
<a id="paper_download" class="btn btn-default shiny-download-link " href="" target="_blank" download>
<i class="fas fa-download" role="presentation" aria-label="download icon"></i>
Statistical Approach: ID-LC-MS Model
</a>
<br/>
<br/>
<h4>ABACUS calculations are based on the following measurement equtions:
</h4>
<h3>1) Calibration</h3>
<br/>
<h4>a) Using Internal Standards:</h4>
<br/>
<em>
<h4>Linear Regression Model</h4>
</em>
<h4>
Quantities of analyte (A) : internal standard
(I), \(k_{S}\), in a measured sample can be calculated as:
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h4 align="center">
<em>
\( k_{S} = \displaystyle{\frac{R_{S}-a}{b}}\),
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<h4>where a and b are coefficients of a linear regression determined from the measurement of n number of calibrants:</h4>
<br/>
<h4 align="center">
<em>
\(R_{C_{i}}= a + b \times k_{C_{i}}, i = 1, . . ., n\),
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<br/>
<h4>
<em>
\(R_{C_{i}} = \displaystyle{\frac{Measured\ Response\ of\ A}{Measured\ Response\ of\ I}}\) in calibrant \(i\),
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<br/>
<h4>and</h4>
<br/>
<h4>
<em>
\(k_{C_i} = \displaystyle{\frac{quantity\ of\ A}{quantity\ of\ I}}\) in calibrant \(i\);
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<br/>
<em>
<h4>Response Factor Model</h4>
</em>
<h4 align="center">
<em>
\(R_{C_{i}}= b \times k_{C_{i}}, i = 1, . . ., n\)
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<br/>
<h4>b) Using External Standards:</h4>
<br/>
<h4>Equations for calibration approaches using external standards are similar to those above for use with internal standards except that:</h4>
<br/>
<h4>
\(R_{C_{i}}=\) measured response of A in calibrant \(i\),
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h4>
\(k_{C_i}=\) quantity of A in calibrant \(i\)
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h3>2) Sample Measurement</h3>
<br/>
<h4>Equations below are the same for procedures based on either Linear Regression or Response Factor calibration models</h4>
<br/>
<h4>a) Using Internal Standards:</h4>
<br/>
<h4>
<em>
\(R_{S} = \displaystyle{\frac{Measured\ Response\ of\ A}{Measured\ Response\ of\ I}}\) in a measured sample
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<br/>
<h4>
An estimate of \(k_{S}\) for each sample can be determined from the calibration model and the corresponding observation of \(R_{S}\). The measured quantity of analyte in each sample, \(w_{A}\), is then calculated as:
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h4>
<em align="center">
\(w_{A}=\displaystyle{k_{S} \times \frac{m_{I_{S}}}{m_{S}} }\)
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
<h4>where,</h4>
<h4>
\(m_{I_{S}}=\) quantity of internal standard added to the sample,
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h4>
\(m_{S}=\) quantity of sample substance
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h4>b) Using External Standards:</h4>
<br/>
<h4>Equations for samples without an internal standard (calibration using external standards) are similar as those above except that:</h4>
<br/>
<h4>
\(R_{S}=\) measured response of A in a sample,
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</h4>
<br/>
<h4>
<em align="center">
\(w_{A}=\displaystyle{\frac{k_{S}}{m_{S}} }\)
<script>if (window.MathJax) MathJax.Hub.Queue(["Typeset", MathJax.Hub]);</script>
</em>
</h4>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Background&lt;/h4&gt;" id="tab-8009-3">
<em>
<h2 style="color:steelblue">Quick Start: Pre-Experiment</h2>
</em>
<br/>
<em>
<h3>Data Entry</h3>
</em>
<hr/>
<h4>Enter known concentrations of analyte in working standard solutions used to prepare calibrants. Multiple working standard concentrations can be input, values separated by commas. An uncertainty estimate of each concetration is required.</h4>
<hr/>
<img src="Background_IMG1.png" align="center" height="250" width="800"/>
<hr/>
<h4>Enter uncertainties associated with adding analyte and internal standard quantities to calibrants.</h4>
<hr/>
<h4>Enter uncertainty of internal standard quantities added to samples. Enter uncertainty of sample substance aliquot (e.g., serum matrix sample)</h4>
<hr/>
<img src="Background_IMG2.png" align="center" height="400" width="750"/>
<hr/>
<em>
<h4>Data Table Upload</h4>
</em>
<hr/>
<br/>
<h4>Experiments that generate multiple calibration curves to determine a single result are supported. For example:</h4>
<h4>- measurements conducted over several days with separate calibrations</h4>
<h4>- employment of multiple different techniques using internal standards</h4>
<br/>
<em>
<h4>Multiple data files can be uploaded simultaneously. Upload calibration and corresponding sample tables in the same order.</h4>
</em>
<br/>
<img src="Background_IMG3.png" align="center" height="350" width="825"/>
<hr/>
<h4>Calibration Data Tables</h4>
<em>
<h3>Model Settings</h3>
</em>
<hr/>
<h4>1) Specify coverage interval of estimated result. Default is 95 %.</h4>
<h4>2) Indicate destired number of decimal places printed for results</h4>
<h4>3) Total number of iterations should be adjusted if app indicates that more iterations are needed</h4>
<h4>4) Length of burn in should only be increased if app indicates that the model has not converged. Do not decrease this value.</h4>
<br/>
<img src="Background_IMG4.png" align="center" height="350" width="825"/>
<br/>
<hr style="border-color: black;"/>
</div>
<div class="tab-pane active" data-value="&lt;h4&gt;Data entry&lt;/h4&gt;" id="tab-8009-4">
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<div class="well">
<h3>
<strong style="color:seagreen">Choose a method of calibration</strong>
</h3>
<div id="choice" class="form-group shiny-input-radiogroup shiny-input-container shiny-input-container-inline" role="radiogroup" aria-labelledby="choice-label">
<label class="control-label shiny-label-null" for="choice" id="choice-label"></label>
<div class="shiny-options-group">
<label class="radio-inline">
<input type="radio" name="choice" value="1" checked="checked"/>
<span>Linear Regression</span>
</label>
<label class="radio-inline">
<input type="radio" name="choice" value="2"/>
<span>Response Factor</span>
</label>
</div>
</div>
<div id="standard" class="form-group shiny-input-radiogroup shiny-input-container shiny-input-container-inline" role="radiogroup" aria-labelledby="standard-label">
<label class="control-label shiny-label-null" for="standard" id="standard-label"></label>
<div class="shiny-options-group">
<label class="radio-inline">
<input type="radio" name="standard" value="1" checked="checked"/>
<span>Internal Standard</span>
</label>
<label class="radio-inline">
<input type="radio" name="standard" value="2"/>
<span>External Standard</span>
</label>
</div>
</div>
</div>
</div>
</div>
<div id="standard_ui" class="shiny-html-output"></div>
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<h3 style="color:steelblue">Upload Data Tables:</h3>
</div>
</div>
<br/>
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<div class="tabbable">
<ul class="nav nav-tabs" data-tabsetid="6277">
<li class="active">
<a href="#tab-6277-1" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Upload Calibration Data Tables:&lt;/h4&gt;">
<h4>Upload Calibration Data Tables:</h4>
</a>
</li>
<li>
<a href="#tab-6277-2" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Upload Sample Data Tables:&lt;/h4&gt;">
<h4>Upload Sample Data Tables:</h4>
</a>
</li>
</ul>
<div class="tab-content" data-tabsetid="6277">
<div class="tab-pane active" data-value="&lt;h4&gt;Upload Calibration Data Tables:&lt;/h4&gt;" id="tab-6277-1">
<br/>
<div class="col-sm-12">
<a id="downloadCalTable" class="btn btn-default shiny-download-link " href="" target="_blank" download>
<i class="fas fa-download" role="presentation" aria-label="download icon"></i>
Download Data Table Template
</a>
</div>
<div class="col-sm-6">
<em>
<h5>X data:</h5>
</em>
<em>
<h5>mid: Quantity (mass or volume) of internal standard added to calibrant(Only for internal standard use)</h5>
</em>
<em>
<h5>mad: Quantity (mass or volume) of analyte working standard solution in calibrant</h5>
</em>
<em>
<h5>Analyte working standard solution ID # (e.g. 1, 2)</h5>
</em>
</div>
<div class="col-sm-6">
<em>
<h5>Y data:</h5>
</em>
<em>
<h5>raci: Analyte: Internal Standard Peak Areas Ratio for calibrant repeat measurement i</h5>
</em>
</div>
<div class="form-group shiny-input-container">
<label class="control-label" id="calfile-label" for="calfile"></label>
<div class="input-group">
<label class="input-group-btn input-group-prepend">
<span class="btn btn-default btn-file">
Browse...
<input id="calfile" class="shiny-input-file" name="calfile" type="file" style="position: absolute !important; top: -99999px !important; left: -99999px !important;" multiple="multiple" accept="text/csv,.xlsx,text/comma-separated-values,text/plain,.csv"/>
</span>
</label>
<input type="text" class="form-control" placeholder="Use Ctrl key to choose files" readonly="readonly"/>
</div>
<div id="calfile_progress" class="progress active shiny-file-input-progress">
<div class="progress-bar"></div>
</div>
</div>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Upload Sample Data Tables:&lt;/h4&gt;" id="tab-6277-2">
<br/>
<div class="col-sm-12">
<a id="downloadSamTable" class="btn btn-default shiny-download-link " href="" target="_blank" download>
<i class="fas fa-download" role="presentation" aria-label="download icon"></i>
Download Data Table Template
</a>
</div>
<div class="col-sm-6">
<em>
<h5>X data:</h5>
</em>
<em>
<h5>mids: Quantity (mass or volume) of internal standard in sample(Only for internal standard use)</h5>
</em>
<em>
<h5>Quantity (mass or volume) of analyzed sample substance (e.g., serum sample)</h5>
</em>
</div>
<div class="col-sm-6">
<em>
<h5>Y data:</h5>
</em>
<em>
<h5>rasi:Analyte: Internal Standard Peak Areas Ratio for sample repeat measurement i</h5>
</em>
</div>
<div class="form-group shiny-input-container">
<label class="control-label" id="samplefile-label" for="samplefile"></label>
<div class="input-group">
<label class="input-group-btn input-group-prepend">
<span class="btn btn-default btn-file">
Browse...
<input id="samplefile" class="shiny-input-file" name="samplefile" type="file" style="position: absolute !important; top: -99999px !important; left: -99999px !important;" multiple="multiple" accept="text/csv,.xlsx,text/comma-separated-values,text/plain,.csv"/>
</span>
</label>
<input type="text" class="form-control" placeholder="Use Ctrl key to choose files" readonly="readonly"/>
</div>
<div id="samplefile_progress" class="progress active shiny-file-input-progress">
<div class="progress-bar"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<hr/>
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<h3 style="color:steelblue">Model Settings</h3>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="coverage-label" for="coverage">
<em>
Coverage probability
<style type="text/css">#covP_q {vertical-align: top;}</style>
<button id="covP_q" type="button" class="btn action-button btn-info btn-xs">
<i class="fas fa-question" role="presentation" aria-label="question icon"></i>
</button>
</em>
</label>
<input id="coverage" type="number" class="shiny-input-number form-control" value="0.95" min="0.01" max="0.99" step="0.05"/>
</div>
<script>$(document).ready(function() {setTimeout(function() {shinyBS.addTooltip('covP_q', 'tooltip', {'placement': 'right', 'trigger': 'focus', 'title': 'Positive number between 0 and 1. Coverage probability of the calculated confidence interval; default is 0.95'})}, 500)});</script>
</div>
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="digit-label" for="digit">Number of decimal places for results</label>
<input id="digit" type="number" class="shiny-input-number form-control" value="2"/>
</div>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="niters-label" for="niters">
<em>
Total number of iterations
<style type="text/css">#numIters_q {vertical-align: top;}</style>
<button id="numIters_q" type="button" class="btn action-button btn-info btn-xs">
<i class="fas fa-question" role="presentation" aria-label="question icon"></i>
</button>
</em>
</label>
<input id="niters" type="number" class="shiny-input-number form-control" value="10000" min="1000" step="1000"/>
</div>
<script>$(document).ready(function() {setTimeout(function() {shinyBS.addTooltip('numIters_q', 'tooltip', {'placement': 'right', 'trigger': 'focus', 'title': 'This is the number of iterations of the Markov Chain Monte Carlo. This value should not be changed unless prompted by the app'})}, 500)});</script>
</div>
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="nburnin-label" for="nburnin">
<em>
Length of burn in
<style type="text/css">#numBurn_q {vertical-align: top;}</style>
<button id="numBurn_q" type="button" class="btn action-button btn-info btn-xs">
<i class="fas fa-question" role="presentation" aria-label="question icon"></i>
</button>
</em>
</label>
<input id="nburnin" type="number" class="shiny-input-number form-control" value="5000" min="500" step="100"/>
</div>
<script>$(document).ready(function() {setTimeout(function() {shinyBS.addTooltip('numBurn_q', 'tooltip', {'placement': 'right', 'trigger': 'foucs', 'title': 'This value should not be changed unless prompted by the app. This is the number of initial iterations of the Markov Chains that be will discarded.'})}, 500)});</script>
</div>
</div>
<div id="expui" class="shiny-html-output"></div>
<div id="doe12" class="shiny-html-output"></div>
<div id="doeinput" class="shiny-html-output"></div>
<br/>
<div class="col-sm-8" role="main">
<div class="row" style="margin: 0px;">
<button class="btn btn-default action-button" id="go" style="width:30%; color: #fff; background-color: #337ab7; border-color: #2e6da4" type="button">
<i class="far fa-paperr-plane" role="presentation" aria-label="paperr-plane icon"></i>
Fit the model
</button>
</div>
<div class="row" style="margin: 0px;">
<span class="help-block">Please check your data first and then fit the model</span>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div id="calnum" class="shiny-html-output"></div>
</div>
<div class="col-sm-6">
<div id="samplenum2" class="shiny-html-output"></div>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div id="caltables" class="shiny-html-output"></div>
</div>
<div class="col-sm-6">
<div id="sampletables" class="shiny-html-output"></div>
</div>
</div>
<hr/>
<div data-display-if="input.go &gt;= 1" data-ns-prefix="" id="results">
<h2 style="color:steelblue">Model Results</h2>
<div data-display-if="&lt;div class=&quot;shiny-spinner-output-container shiny-spinner-hideui &quot;&gt;&#10; &lt;div class=&quot;load-container shiny-spinner-hidden load8&quot;&gt;&#10; &lt;div id=&quot;spinner-eb8445efbcb7e71f8d0b7c52bda28150&quot; class=&quot;loader&quot;&gt;Loading...&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div style=&quot;height:400px&quot; class=&quot;shiny-spinner-placeholder&quot;&gt;&lt;/div&gt;&#10; &lt;div id=&quot;opt&quot; class=&quot;shiny-html-output&quot;&gt;&lt;/div&gt;&#10;&lt;/div&gt;" data-ns-prefix="">
<div id="results2" class="shiny-html-output"></div>
<div class="row" style="margin: 0px;">
<div id="doem" class="shiny-html-output"></div>
<div id="err" class="shiny-html-output"></div>
<div id="doeout" class="shiny-html-output"></div>
<div id="doee" class="shiny-html-output"></div>
</div>
</div>
<div id="muest" class="shiny-html-output"></div>
<hr/>
<div id="plots" class="shiny-html-output"></div>
<hr/>
<div id="out1" class="shiny-html-output"></div>
<a id="report" class="btn btn-default shiny-download-link " href="" target="_blank" download>
<i class="fas fa-download" role="presentation" aria-label="download icon"></i>
Generate PDF report
</a>
<div class="shiny-plot-output html-fill-item" id="mu_post_plot" style="width:auto;height:600px;"></div>
<br/>
<br/>
<div class="shiny-plot-output html-fill-item" id="mu_trace_plot" style="width:auto;height:600px;"></div>
</div>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Background&lt;/h4&gt;" id="tab-8009-6">
<h3 style="color:steelblue">
1. About
<em>Design of Experiment</em>
</h3>
<h4>This module produces experiment designs for chemical measurement procedures based on the calibration methods supported by ABACUS.
This experiment design guarantees that the relative standard uncertainty of the measurement result will be less than a user-specified maximum value.</h4>
<h4>In addition to the maximum relative uncertainty, the app requires prior information about various aspects of the measurement procedure. This information can be based on experimental evidence or expert opinion. </h4>
<h4>
Estimates of experimental parameters calculated with the
<em>Pre-Experiment</em>
module can be directly transferred as inputs into this
<em>Design of Experiment</em>
module
</h4>
<h3 style="color:steelblue">2. Inputs:</h3>
<h4>
Inputs are provided with results of the
<em>Pre-Experiment module.</em>
They can also be estimates based on the analyst's judgement.
</h4>
<br/>
<h4>Note: for a method of calibration using external standards, values for observations of A:I described below can simply be entered as the respective values for A.</h4>
<h4>1. Specify the total number of measurements that can be performed. This includes the number of calibrants, available samples, and repeat measurements.</h4>
<h4>2. Specify the Target maximum relative (%) standard uncertainty</h4>
<h4>3. Provide an approximate expected value of the measurand</h4>
<h4>4. Provide a range of possible expected values of the slope of your calibration line, e.g. 1.2 to 1.4. </h4>
<h4>5. Identify the target calibration region (x-axis); this is an interval in terms of the the ratios of concentrations of A:I in the calibrants.</h4>
<h4>6. Provide a range of values (uy) for the expected standard deviation of peak area ratios (A:I) determined from repeated measurement of a calibrant.</h4>
<h4>7. Provide a range of values (ux) for the expected standard uncertainties of concentrations (A:I) in calibrants.
Or, provide a range of values (rux) for the expected relative standard uncertainty of the concentrations (A:I) in calibrants. Input of at least one of these ranges is required. ux can be 0 if rux &gt; 0; rux can be 0 if ux &gt; 0</h4>
<h4>8. Provide a range of values for the expected relative standard uncertainties of the concentrations of I in samples. For calibration methods using external standards, this should be 0.</h4>
<h4>9. Provide a range of values for the expected between-sample variability (standard deviation) of the peak area ratios (A:I), e.g., variability due to replicate sample preparation and heterogeneity.</h4>
<h3 style="color:steelblue">3. Results</h3>
<h4>Once this information is entered, the App will produce an experiment design that can acheive an expected relative standard uncertainty of the measurand that is less than or equal to the specified maximum. If there are not enough samples available to achieve the Target maximum relative (%) standard uncertainty, ABACUS will indicate the smallest possible uncertainty under the specified experimental conditions and inputs. Specifically, it will give:</h4>
<h4>1. The number of calibrants and the concentration ratios of A:I; for calibration methods using external standards, the concentrations of A.</h4>
<h4>2. The number of repeat measurements recommended for each calibrant. </h4>
<h4>3. The number of samples.</h4>
<h4>4. The number of repeat measurements recommended for each sample.</h4>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Data entry&lt;/h4&gt;" id="tab-8009-7">
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<div class="well">
<h3>
<strong style="color:seagreen">Choose a method of calibration</strong>
</h3>
<div id="doeoption" class="form-group shiny-input-radiogroup shiny-input-container shiny-input-container-inline" role="radiogroup" aria-labelledby="doeoption-label">
<label class="control-label shiny-label-null" for="doeoption" id="doeoption-label"></label>
<div class="shiny-options-group">
<label class="radio-inline">
<input type="radio" name="doeoption" value="1" checked="checked"/>
<span>Linear Regression</span>
</label>
<label class="radio-inline">
<input type="radio" name="doeoption" value="2"/>
<span>Response Factor</span>
</label>
</div>
</div>
</div>
</div>
</div>
<div id="doeoption1" class="shiny-html-output"></div>
<div class="col-sm-8" role="main">
<div class="row" style="margin: 0px;">
<button class="btn btn-default action-button" id="enter" style="width:30%; color: #fff; background-color: #337ab7; border-color: #2e6da4" type="button">
<i class="far fa-paperr-plane" role="presentation" aria-label="paperr-plane icon"></i>
Fit the model
</button>
</div>
<div class="row" style="margin: 0px;">
<span class="help-block">Please check your data first and then fit the model</span>
</div>
</div>
<br/>
<div data-display-if="input.enter &gt;= 1" data-ns-prefix="">
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<div class="shiny-spinner-output-container shiny-spinner-hideui ">
<div class="load-container shiny-spinner-hidden load8">
<div id="spinner-7f13f5c30798a7d4130e0ea3b3f8754a" class="loader">Loading...</div>
</div>
<div style="height:400px" class="shiny-spinner-placeholder"></div>
<div id="doeenter" class="shiny-html-output"></div>
</div>
<div id="totnerr" class="shiny-html-output"></div>
<div id="err2" class="shiny-html-output"></div>
<div id="toPrint2" class="shiny-html-output"></div>
<div id="toPrint" class="shiny-html-output"></div>
<div id="toPrint3" class="shiny-html-output"></div>
<div id="doeoutput" class="shiny-html-output"></div>
</div>
</div>
</div>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Background&lt;/h4&gt;" id="tab-8009-9">
<em>
<h2 style="color:steelblue">Quick Start: Analysis</h2>
</em>
<br/>
<em>
<h3>Data Entry</h3>
</em>
<hr/>
<h4>Enter known concentrations of analyte in working standard solutions used to prepare calibrants. Multiple working standard concentrations can be input, values separated by commas. An uncertainty estimate of each concetration is required.</h4>
<hr/>
<img src="Background_IMG1.png" align="center" height="250" width="800"/>
<hr/>
<h4>Enter uncertainties associated with adding analyte and internal standard quantities to calibrants.</h4>
<hr/>
<h4>Enter uncertainty of internal standard quantities added to samples. Enter uncertainty of sample substance aliquot (e.g., serum matrix sample)</h4>
<hr/>
<img src="Background_IMG2.png" align="center" height="400" width="750"/>
<hr/>
<em>
<h4>Data Table Upload</h4>
</em>
<hr/>
<br/>
<h4>Experiments that generate multiple calibration curves to determine a single result are supported. For example:</h4>
<h4>- measurements conducted over several days with separate calibrations</h4>
<h4>- employment of multiple different techniques using internal standards</h4>
<br/>
<em>
<h4>Multiple data files can be uploaded simultaneously. Upload calibration and corresponding sample tables in the same order.</h4>
</em>
<br/>
<img src="Background_IMG3.png" align="center" height="350" width="825"/>
<hr/>
<h4>Calibration Data Tables</h4>
<em>
<h3>Model Settings</h3>
</em>
<hr/>
<h4>1) Specify coverage interval of estimated result. Default is 95 %.</h4>
<h4>2) Indicate destired number of decimal places printed for results</h4>
<h4>3) Total number of iterations should be adjusted if app indicates that more iterations are needed</h4>
<h4>4) Length of burn in should only be increased if app indicates that model has not converged. Do not decrease this value.</h4>
<br/>
<img src="Background_IMG4.png" align="center" height="350" width="825"/>
<br/>
<hr style="border-color: black;"/>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Data entry&lt;/h4&gt;" id="tab-8009-10">
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<div class="well">
<h3>
<strong style="color:seagreen">Choose a method of calibration</strong>
</h3>
<div id="choice1" class="form-group shiny-input-radiogroup shiny-input-container shiny-input-container-inline" role="radiogroup" aria-labelledby="choice1-label">
<label class="control-label shiny-label-null" for="choice1" id="choice1-label"></label>
<div class="shiny-options-group">
<label class="radio-inline">
<input type="radio" name="choice1" value="1" checked="checked"/>
<span>Linear Regression</span>
</label>
<label class="radio-inline">
<input type="radio" name="choice1" value="2"/>
<span>Response Factor</span>
</label>
</div>
</div>
<div id="standard1" class="form-group shiny-input-radiogroup shiny-input-container shiny-input-container-inline" role="radiogroup" aria-labelledby="standard1-label">
<label class="control-label shiny-label-null" for="standard1" id="standard1-label"></label>
<div class="shiny-options-group">
<label class="radio-inline">
<input type="radio" name="standard1" value="1" checked="checked"/>
<span>Internal Standard</span>
</label>
<label class="radio-inline">
<input type="radio" name="standard1" value="2"/>
<span>External Standard</span>
</label>
</div>
</div>
</div>
</div>
</div>
<div id="standard_ui1" class="shiny-html-output"></div>
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<h3 style="color:steelblue">Upload Data Tables:</h3>
</div>
</div>
<br/>
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<div class="tabbable">
<ul class="nav nav-tabs" data-tabsetid="9134">
<li class="active">
<a href="#tab-9134-1" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Upload Calibration Data Tables:&lt;/h4&gt;">
<h4>Upload Calibration Data Tables:</h4>
</a>
</li>
<li>
<a href="#tab-9134-2" data-toggle="tab" data-bs-toggle="tab" data-value="&lt;h4&gt;Upload Sample Data Tables:&lt;/h4&gt;">
<h4>Upload Sample Data Tables:</h4>
</a>
</li>
</ul>
<div class="tab-content" data-tabsetid="9134">
<div class="tab-pane active" data-value="&lt;h4&gt;Upload Calibration Data Tables:&lt;/h4&gt;" id="tab-9134-1">
<br/>
<div class="col-sm-12">
<a id="downloadCalTable1" class="btn btn-default shiny-download-link " href="" target="_blank" download>
<i class="fas fa-download" role="presentation" aria-label="download icon"></i>
Download Data Table Template
</a>
</div>
<div class="col-sm-6">
<em>
<h5>X data:</h5>
</em>
<em>
<h5>mid: Quantity (mass or volume) of internal standard added to calibrant(Only for internal standard use)</h5>
</em>
<em>
<h5>mad: Quantity (mass or volume) of analyte working standard solution in calibrant</h5>
</em>
<em>
<h5>Analyte working standard solution ID # (e.g. 1, 2)</h5>
</em>
</div>
<div class="col-sm-6">
<em>
<h5>Y data:</h5>
</em>
<em>
<h5>raci: Analyte: Internal Standard Peak Areas Ratio for calibrant repeat measurement i</h5>
</em>
</div>
<div class="form-group shiny-input-container">
<label class="control-label" id="calfile1-label" for="calfile1"></label>
<div class="input-group">
<label class="input-group-btn input-group-prepend">
<span class="btn btn-default btn-file">
Browse...
<input id="calfile1" class="shiny-input-file" name="calfile1" type="file" style="position: absolute !important; top: -99999px !important; left: -99999px !important;" multiple="multiple" accept="text/csv,.xlsx,text/comma-separated-values,text/plain,.csv"/>
</span>
</label>
<input type="text" class="form-control" placeholder="Use Ctrl key to choose files" readonly="readonly"/>
</div>
<div id="calfile1_progress" class="progress active shiny-file-input-progress">
<div class="progress-bar"></div>
</div>
</div>
</div>
<div class="tab-pane" data-value="&lt;h4&gt;Upload Sample Data Tables:&lt;/h4&gt;" id="tab-9134-2">
<br/>
<div class="col-sm-12">
<a id="downloadSamTable1" class="btn btn-default shiny-download-link " href="" target="_blank" download>
<i class="fas fa-download" role="presentation" aria-label="download icon"></i>
Download Data Table Template
</a>
</div>
<div class="col-sm-6">
<em>
<h5>X data:</h5>
</em>
<em>
<h5>mids: Quantity (mass or volume) of internal standard in sample(Only for internal standard use)</h5>
</em>
<em>
<h5>Quantity (mass or volume) of analyzed sample substance (e.g., serum sample)</h5>
</em>
</div>
<div class="col-sm-6">
<em>
<h5>Y data:</h5>
</em>
<em>
<h5>rasi:Analyte: Internal Standard Peak Areas Ratio for sample repeat measurement i</h5>
</em>
</div>
<div class="form-group shiny-input-container">
<label class="control-label" id="samplefile1-label" for="samplefile1"></label>
<div class="input-group">
<label class="input-group-btn input-group-prepend">
<span class="btn btn-default btn-file">
Browse...
<input id="samplefile1" class="shiny-input-file" name="samplefile1" type="file" style="position: absolute !important; top: -99999px !important; left: -99999px !important;" multiple="multiple" accept="text/csv,.xlsx,text/comma-separated-values,text/plain,.csv"/>
</span>
</label>
<input type="text" class="form-control" placeholder="Use Ctrl key to choose files" readonly="readonly"/>
</div>
<div id="samplefile1_progress" class="progress active shiny-file-input-progress">
<div class="progress-bar"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-12">
<h3 style="color:steelblue">Model Settings</h3>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="coverage1-label" for="coverage1">
<em>
Coverage probability
<style type="text/css">#covP_q {vertical-align: top;}</style>
<button id="covP_q" type="button" class="btn action-button btn-info btn-xs">
<i class="fas fa-question" role="presentation" aria-label="question icon"></i>
</button>
</em>
</label>
<input id="coverage1" type="number" class="shiny-input-number form-control" value="0.95" min="0.01" max="0.99" step="0.05"/>
</div>
<script>$(document).ready(function() {setTimeout(function() {shinyBS.addTooltip('covP_q', 'tooltip', {'placement': 'right', 'trigger': 'focus', 'title': 'Positive number between 0 and 1. Coverage probability of the calculated confidence interval; default is 0.95'})}, 500)});</script>
</div>
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="digit1-label" for="digit1">Number of decimal places for results</label>
<input id="digit1" type="number" class="shiny-input-number form-control" value="2"/>
</div>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="niters1-label" for="niters1">
<em>
Total number of iterations
<style type="text/css">#numIters_q {vertical-align: top;}</style>
<button id="numIters_q" type="button" class="btn action-button btn-info btn-xs">
<i class="fas fa-question" role="presentation" aria-label="question icon"></i>
</button>
</em>
</label>
<input id="niters1" type="number" class="shiny-input-number form-control" value="10000" min="1000" step="1000"/>
</div>
<script>$(document).ready(function() {setTimeout(function() {shinyBS.addTooltip('numIters_q', 'tooltip', {'placement': 'right', 'trigger': 'focus', 'title': 'This is the number of iterations of the Markov Chain Monte Carlo. This value should not be changed unless prompted by the app'})}, 500)});</script>
</div>
<div class="col-sm-6">
<div class="form-group shiny-input-container">
<label class="control-label" id="nburnin1-label" for="nburnin1">
<em>
Length of burn in
<style type="text/css">#numBurn_q {vertical-align: top;}</style>
<button id="numBurn_q" type="button" class="btn action-button btn-info btn-xs">
<i class="fas fa-question" role="presentation" aria-label="question icon"></i>
</button>
</em>
</label>
<input id="nburnin1" type="number" class="shiny-input-number form-control" value="5000" min="500" step="100"/>
</div>
<script>$(document).ready(function() {setTimeout(function() {shinyBS.addTooltip('numBurn_q', 'tooltip', {'placement': 'right', 'trigger': 'foucs', 'title': 'This value should not be changed unless prompted by the app. This is the number of initial iterations of the Markov Chains that be will discarded.'})}, 500)});</script>
</div>
</div>
<br/>
<div class="col-sm-8" role="main">
<div class="row" style="margin: 0px;">
<button class="btn btn-default action-button" id="analysis" style="width:30%; color: #fff; background-color: #337ab7; border-color: #2e6da4" type="button">
<i class="far fa-paperr-plane" role="presentation" aria-label="paperr-plane icon"></i>
Fit the model
</button>
</div>
<div class="row" style="margin: 0px;">
<span class="help-block">Please check your data first and then fit the model</span>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div id="calnum1" class="shiny-html-output"></div>
</div>
<div class="col-sm-6">
<div id="samplenum1" class="shiny-html-output"></div>
</div>
</div>
<div class="row" style="margin: 0px;">
<div class="col-sm-6">
<div id="caltables1" class="shiny-html-output"></div>
</div>
<div class="col-sm-6">
<div id="sampletables1" class="shiny-html-output"></div>
</div>
</div>
<div data-display-if="input.analysis &gt;= 1" data-ns-prefix="" id="results">
<div class="shiny-spinner-output-container shiny-spinner-hideui ">
<div class="load-container shiny-spinner-hidden load8">
<div id="spinner-c144c737365fb9ef6d34a14ae76d1d82" class="loader">Loading...</div>
</div>
<div style="height:400px" class="shiny-spinner-placeholder"></div>
<div id="anaui" class="shiny-html-output"></div>
</div>
<div id="plots2" class="shiny-html-output"></div>
<div id="out2" class="shiny-html-output"></div>
<div id="anaui1" class="shiny-html-output"></div>
<div id="anaui2" class="shiny-html-output"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>