CINXE.COM

Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard | PLOS One

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/terms/" xmlns:doi="http://dx.doi.org/" lang="en" xml:lang="en" itemscope itemtype="http://schema.org/Article" class="no-js"> <head prefix="og: http://ogp.me/ns#"> <link rel="stylesheet" href="/resource/css/screen.css?0df25e731f02961bcc763b302b3a082f"/> <!-- allows for extra head tags --> <!-- hello --> <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,600"> <link media="print" rel="stylesheet" type="text/css" href="/resource/css/print.css"/> <script type="text/javascript"> var siteUrlPrefix = "/plosone/"; </script> <script src="/resource/js/vendor/modernizr-v2.7.1.js" type="text/javascript"></script> <script src="/resource/js/vendor/detectizr.min.js" type="text/javascript"></script> <link rel="shortcut icon" href="/resource/img/favicon.ico" type="image/x-icon"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="canonical" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0198528" /> <meta name="description" content="We have developed a very simple method, termed absorbance summation (AS), for comparing protein concentrations between samples in ELISA assays without a standard. This method sums the observed absorbance values from all dilutions to obtain one data point for each sample to be used for comparison. AS is less computationally intensive than fitting sigmoidal curves, and it avoids the difficulty of parameter estimation for samples with absorbance values lying primarily at the lower tail of the curve. Our simulation studies showed that it performs much better than the sigmoidal curve fitting method and the conventional endpoint titer method. The power of this simple method is as high as the formal curve fitting followed by the estimation of area under the curve (AUC)." /> <meta name="citation_abstract" content="We have developed a very simple method, termed absorbance summation (AS), for comparing protein concentrations between samples in ELISA assays without a standard. This method sums the observed absorbance values from all dilutions to obtain one data point for each sample to be used for comparison. AS is less computationally intensive than fitting sigmoidal curves, and it avoids the difficulty of parameter estimation for samples with absorbance values lying primarily at the lower tail of the curve. Our simulation studies showed that it performs much better than the sigmoidal curve fitting method and the conventional endpoint titer method. The power of this simple method is as high as the formal curve fitting followed by the estimation of area under the curve (AUC)."> <meta name="keywords" content="Curve fitting,Enzyme-linked immunoassays,HIV,Simulation and modeling,Antibodies,Binding analysis,Statistical data,Tyrosine" /> <meta name="citation_doi" content="10.1371/journal.pone.0198528"/> <meta name="citation_author" content="Holly Hartman"/> <meta name="citation_author_institution" content="Department of Biostatistics, University of Alabama at Birmingham, Birmingham, Alabama, United States of America"/> <meta name="citation_author" content="Yuge Wang"/> <meta name="citation_author_institution" content="Department of Microbiology, University of Alabama at Birmingham, Birmingham, Alabama, United States of America"/> <meta name="citation_author" content="Harry W. Schroeder Jr"/> <meta name="citation_author_institution" content="Department of Microbiology, University of Alabama at Birmingham, Birmingham, Alabama, United States of America"/> <meta name="citation_author_institution" content="Department of Medicine, University of Alabama at Birmingham, Birmingham, Alabama, United States of America"/> <meta name="citation_author" content="Xiangqin Cui"/> <meta name="citation_author_institution" content="Department of Biostatistics, University of Alabama at Birmingham, Birmingham, Alabama, United States of America"/> <meta name="citation_title" content="Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard"/> <meta itemprop="name" content="Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard"/> <meta name="citation_journal_title" content="PLOS ONE"/> <meta name="citation_journal_abbrev" content="PLOS ONE"/> <meta name="citation_date" content="Jun 8, 2018"/> <meta name="citation_firstpage" content="e0198528"/> <meta name="citation_issue" content="6"/> <meta name="citation_volume" content="13"/> <meta name="citation_issn" content="1932-6203"/> <meta name="citation_publisher" content="Public Library of Science"/> <meta name="citation_pdf_url" content="https://journals.plos.org/plosone/article/file?id=10.1371/journal.pone.0198528&type=printable"> <meta name="citation_article_type" content="Research Article"> <meta name="dc.identifier" content="10.1371/journal.pone.0198528" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="plosone"/> <meta name="twitter:title" content="Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard" /> <meta property="twitter:description" content="We have developed a very simple method, termed absorbance summation (AS), for comparing protein concentrations between samples in ELISA assays without a standard. This method sums the observed absorbance values from all dilutions to obtain one data point for each sample to be used for comparison. AS is less computationally intensive than fitting sigmoidal curves, and it avoids the difficulty of parameter estimation for samples with absorbance values lying primarily at the lower tail of the curve. Our simulation studies showed that it performs much better than the sigmoidal curve fitting method and the conventional endpoint titer method. The power of this simple method is as high as the formal curve fitting followed by the estimation of area under the curve (AUC)." /> <meta property="twitter:image" content="https://journals.plos.org/plosone/article/figure/image?id=10.1371/journal.pone.0198528.g006&size=inline" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0198528"/> <meta property="og:title" content="Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard"/> <meta property="og:description" content="We have developed a very simple method, termed absorbance summation (AS), for comparing protein concentrations between samples in ELISA assays without a standard. This method sums the observed absorbance values from all dilutions to obtain one data point for each sample to be used for comparison. AS is less computationally intensive than fitting sigmoidal curves, and it avoids the difficulty of parameter estimation for samples with absorbance values lying primarily at the lower tail of the curve. Our simulation studies showed that it performs much better than the sigmoidal curve fitting method and the conventional endpoint titer method. The power of this simple method is as high as the formal curve fitting followed by the estimation of area under the curve (AUC)."/> <meta property="og:image" content="https://journals.plos.org/plosone/article/figure/image?id=10.1371/journal.pone.0198528.g006&size=inline"/> <meta name="citation_reference" content="citation_title=Statistical analysis of radioimmunoassays and immunoradiometric (labelled antibody) assays—A generalized weighted, iterative, least-squares method for logistic curve fitting;citation_inbook_title=Radioimmunoassay Related Procedures in Medine;citation_author=D Rodbard;citation_author=DM Hutt;citation_first_page=166;citation_last_page=192;citation_publication_date=1974;citation_publisher=International Atomic Energy Agency"/> <meta name="citation_reference" content="citation_title=Statistical considerations in the quantitation of serum immunoglobulin levels using the Enzyme-Linked Immunosorbent Assay (ELISA);citation_author=KF Karpinski;citation_author=S Hayward;citation_author=H Tryphonas;citation_journal_title=J Immunol Methods;citation_volume=103;citation_number=103;citation_issue=2;citation_first_page=189;citation_last_page=94;citation_publication_date=1987;"/> <meta name="citation_reference" content="citation_title=Evaluation of logistic and polynomial models for fitting sandwich-ELISA calibration curves;citation_author=RA Herman;citation_author=PN Scherer;citation_author=G Shan;citation_journal_title=J Immunol Methods;citation_volume=339;citation_number=339;citation_first_page=245;citation_last_page=258;citation_publication_date=2008;"/> <meta name="citation_reference" content="citation_title=HIV-1 gp140 epitope recognition is influenced by immunoglobulin DH gene segment sequence;citation_author=Y Wang;citation_author=P Kapoor;citation_author=R Parks;citation_author=A Silva-Sanchez;citation_author=SM Alam;citation_author=L Verkoczy;citation_journal_title=Immunogenetics;citation_volume=68;citation_number=68;citation_first_page=145;citation_last_page=155;citation_publication_date=2016;"/> <meta name="citation_reference" content="citation_title=Clonal selection and learning in the antibody system;citation_author=K Rajewsky;citation_journal_title=Nature;citation_volume=381;citation_number=381;citation_issue=6585;citation_first_page=751;citation_last_page=8;citation_publication_date=1996;"/> <meta name="citation_reference" content="citation_title=Immunoglobulin VH clan and family identity predicts variable domain structure and may influence antigen binding;citation_author=PM Kirkham;citation_author=F Mortari;citation_author=JA Newton;citation_author=HW Schroeder Jr;citation_journal_title=EMBO Journal;citation_volume=11;citation_number=11;citation_first_page=603;citation_last_page=9;citation_publication_date=1992;"/> <meta name="citation_reference" content="citation_title=Genetic control of DH reading frame and its effect on B-cell development and antigen-specific antibody production;citation_author=HW Schroeder Jr.;citation_author=M Zemlin;citation_author=M Khass;citation_author=HH Nguyen;citation_author=RL Schelonka;citation_journal_title=Crit Rev Immunol;citation_volume=30;citation_number=30;citation_issue=4;citation_first_page=327;citation_last_page=44;citation_publication_date=2010;"/> <meta name="citation_reference" content="citation_title=VpreB serves as an invariant surrogate antigen for selecting immunoglobulin antigen-binding sites;citation_author=M Khass;citation_author=T Blackburn;citation_author=PD Burrows;citation_author=MR Walter;citation_author=E Capriotti;citation_author=HW Schroeder Jr;citation_journal_title=Sci Immunol;citation_volume=1;citation_number=1;citation_issue=1;citation_first_page=aaf6628;citation_publication_date=2016;"/> <meta name="citation_reference" content="citation_title=A statistically defined endpoint titer determination method for immunoassays;citation_author=A Freya;citation_author=J Di Canziob;citation_author=D Zurakowskib;citation_journal_title=J Immunol Methods;citation_volume=221;citation_number=221;citation_issue=1–2;citation_first_page=35;citation_last_page=41;citation_publication_date=1998;"/> <meta name="citation_reference" content="citation_title=Bayesian analysis of serial dilution assays;citation_author=A Gelman;citation_author=GL Chew;citation_author=M Shnaidman;citation_journal_title=Biometrics;citation_volume=60;citation_number=60;citation_first_page=407;citation_last_page=417;citation_publication_date=2004;"/> <meta name="citation_reference" content="citation_title=Calibration and assay development using the four-parameter logistic model;citation_author=MA O’Connell;citation_author=BA Belanger;citation_author=PD Haaland;citation_journal_title=Chemom Intell Lab Syst;citation_volume=20;citation_number=20;citation_first_page=97;citation_last_page=114;citation_publication_date=1993;"/> <meta name="citation_reference" content="citation_title=Statistical approaches to analyzing HIV-1 neutralizing antibody assay data;citation_author=X Yu;citation_author=PB Gilbert;citation_author=CE Hioe;citation_author=S Zolla-Pazner;citation_author=SG Self;citation_journal_title=Stat Biopharm Res;citation_volume=4;citation_number=4;citation_first_page=1;citation_last_page=13;citation_publication_date=2014;"/> <meta name="citation_reference" content="citation_title=Nonlinear Calibration Model Choice between the Four and Five Parameter Logistic Models;citation_author=WN Cumberland;citation_author=Y Fong;citation_author=X Yu;citation_author=O Defawe;citation_author=N Frahm;citation_author=S De Rosa;citation_journal_title=J Biopharm Stat;citation_volume=25;citation_number=25;citation_issue=5;citation_first_page=972;citation_last_page=983;citation_publication_date=2015;"/> <!-- DoubleClick overall ad setup script --> <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); </script> <!-- DoubleClick ad slot setup script --> <script id="doubleClickSetupScript" type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/75507958/PONE_728x90_ATF', [728, 90], 'div-gpt-ad-1458247671871-0').addService(googletag.pubads()); googletag.defineSlot('/75507958/PONE_160x600_BTF', [160, 600], 'div-gpt-ad-1458247671871-1').addService(googletag.pubads()); var personalizedAds = window.plosCookieConsent && window.plosCookieConsent.hasConsented('advertising'); googletag.pubads().setRequestNonPersonalizedAds(personalizedAds ? 0 : 1); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> <script type="text/javascript"> var WombatConfig = WombatConfig || {}; WombatConfig.journalKey = "PLoSONE"; WombatConfig.journalName = "PLOS One"; WombatConfig.figurePath = "/plosone/article/figure/image"; WombatConfig.figShareInstitutionString = "plos"; WombatConfig.doiResolverPrefix = "https://dx.plos.org/"; </script> <script type="text/javascript"> var WombatConfig = WombatConfig || {}; WombatConfig.metrics = WombatConfig.metrics || {}; WombatConfig.metrics.referenceUrl = "http://lagotto.io/plos"; WombatConfig.metrics.googleScholarUrl = "https://scholar.google.com/scholar"; WombatConfig.metrics.googleScholarCitationUrl = WombatConfig.metrics.googleScholarUrl + "?hl=en&lr=&q="; WombatConfig.metrics.crossrefUrl = "https://www.crossref.org"; </script> <script defer="defer" src="/resource/js/defer.js?94d25648e7eaf3e1771c"></script><script src="/resource/js/sync.js?94d25648e7eaf3e1771c"></script> <script src="/resource/js/vendor/jquery.min.js" type="text/javascript"></script> <script type="text/javascript" src="https://widgets.figshare.com/static/figshare.js"></script> <script src="/resource/js/vendor/fastclick/lib/fastclick.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.js" type="text/javascript"></script> <script src="/resource/js/vendor/underscore-min.js" type="text/javascript"></script> <script src="/resource/js/vendor/underscore.string.min.js" type="text/javascript"></script> <script src="/resource/js/vendor/moment.js" type="text/javascript"></script> <script src="/resource/js/vendor/jquery-ui-effects.min.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.tooltip.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.dropdown.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.tab.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.reveal.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.slider.js" type="text/javascript"></script> <script src="/resource/js/util/utils.js" type="text/javascript"></script> <script src="/resource/js/components/toggle.js" type="text/javascript"></script> <script src="/resource/js/components/truncate_elem.js" type="text/javascript"></script> <script src="/resource/js/components/tooltip_hover.js" type="text/javascript"></script> <script src="/resource/js/vendor/jquery.dotdotdot.js" type="text/javascript"></script> <!--For Google Tag manager to be able to track site information --> <script> dataLayer = [{ 'mobileSite': 'false', 'desktopSite': 'true' }]; </script> <title>Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard | PLOS One</title> </head> <body class="article plosone"> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-TP26BH" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TP26BH'); </script> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MQQMGF" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MQQMGF');</script> <!-- End Google Tag Manager --> <!-- Start of HubSpot Embed Code --> <script> // from https://developers.hubspot.com/docs/reference/api/analytics-and-events/cookie-banner/cookie-banner-api#example-using-a-third-party-cookie-banner-to-control-hubspot-cookies window.disableHubSpotCookieBanner = true; window._hsp = window._hsp || []; window._hsp.push(['setHubSpotConsent', { analytics: window.plosCookieConsent?.hasConsented('analytics'), advertisement: window.plosCookieConsent?.hasConsented('advertising'), functionality: window.plosCookieConsent?.hasConsented('functionality') } ]); </script> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/44092021.js"></script> <!-- End of HubSpot Embed Code --> <!-- New Relic --> <script type="text/javascript"> ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o||e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(t,e,n){function r(t){try{s.console&&console.log(t)}catch(e){}}var o,i=t("ee"),a=t(32),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,e,n){r(n.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,e){return t}).join(", ")))},{}],2:[function(t,e,n){function r(t,e,n,r,s){try{l?l-=1:o(s||new UncaughtException(t,e,n),!0)}catch(f){try{i("ierr",[f,c.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function o(t,e){var n=e?null:c.now();i("err",[t,n])}var i=t("handle"),a=t(33),s=t("ee"),c=t("loader"),f=t("gos"),u=window.onerror,d=!1,p="nr@seenError";if(!c.disabled){var l=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(14),t(13),"addEventListener"in window&&t(7),c.xhrWrappable&&t(15),d=!0)}s.on("fn-start",function(t,e,n){d&&(l+=1)}),s.on("fn-err",function(t,e,n){d&&!n[p]&&(f(n,p,function(){return!0}),this.thrown=!0,o(n))}),s.on("fn-end",function(){d&&!this.thrown&&l>0&&(l-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})}},{}],3:[function(t,e,n){var r=t("loader");r.disabled||(r.features.ins=!0)},{}],4:[function(t,e,n){function r(){U++,L=g.hash,this[u]=y.now()}function o(){U--,g.hash!==L&&i(0,!0);var t=y.now();this[h]=~~this[h]+t-this[u],this[d]=t}function i(t,e){E.emit("newURL",[""+g,e])}function a(t,e){t.on(e,function(){this[e]=y.now()})}var s="-start",c="-end",f="-body",u="fn"+s,d="fn"+c,p="cb"+s,l="cb"+c,h="jsTime",m="fetch",v="addEventListener",w=window,g=w.location,y=t("loader");if(w[v]&&y.xhrWrappable&&!y.disabled){var x=t(11),b=t(12),E=t(9),R=t(7),O=t(14),T=t(8),P=t(15),S=t(10),M=t("ee"),N=M.get("tracer"),C=t(23);t(17),y.features.spa=!0;var L,U=0;M.on(u,r),b.on(p,r),S.on(p,r),M.on(d,o),b.on(l,o),S.on(l,o),M.buffer([u,d,"xhr-resolved"]),R.buffer([u]),O.buffer(["setTimeout"+c,"clearTimeout"+s,u]),P.buffer([u,"new-xhr","send-xhr"+s]),T.buffer([m+s,m+"-done",m+f+s,m+f+c]),E.buffer(["newURL"]),x.buffer([u]),b.buffer(["propagate",p,l,"executor-err","resolve"+s]),N.buffer([u,"no-"+u]),S.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"]),a(T,m+s),a(T,m+"-done"),a(S,"new-jsonp"),a(S,"jsonp-end"),a(S,"cb-start"),E.on("pushState-end",i),E.on("replaceState-end",i),w[v]("hashchange",i,C(!0)),w[v]("load",i,C(!0)),w[v]("popstate",function(){i(0,U>1)},C(!0))}},{}],5:[function(t,e,n){function r(){var t=new PerformanceObserver(function(t,e){var n=t.getEntries();s(v,[n])});try{t.observe({entryTypes:["resource"]})}catch(e){}}function o(t){if(s(v,[window.performance.getEntriesByType(w)]),window.performance["c"+p])try{window.performance[h](m,o,!1)}catch(t){}else try{window.performance[h]("webkit"+m,o,!1)}catch(t){}}function i(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var a=t("ee"),s=t("handle"),c=t(14),f=t(13),u=t(6),d=t(23),p="learResourceTimings",l="addEventListener",h="removeEventListener",m="resourcetimingbufferfull",v="bstResource",w="resource",g="-start",y="-end",x="fn"+g,b="fn"+y,E="bstTimer",R="pushState",O=t("loader");if(!O.disabled){O.features.stn=!0,t(9),"addEventListener"in window&&t(7);var T=NREUM.o.EV;a.on(x,function(t,e){var n=t[0];n instanceof T&&(this.bstStart=O.now())}),a.on(b,function(t,e){var n=t[0];n instanceof T&&s("bst",[n,e,this.bstStart,O.now()])}),c.on(x,function(t,e,n){this.bstStart=O.now(),this.bstType=n}),c.on(b,function(t,e){s(E,[e,this.bstStart,O.now(),this.bstType])}),f.on(x,function(){this.bstStart=O.now()}),f.on(b,function(t,e){s(E,[e,this.bstStart,O.now(),"requestAnimationFrame"])}),a.on(R+g,function(t){this.time=O.now(),this.startPath=location.pathname+location.hash}),a.on(R+y,function(t){s("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),u()?(s(v,[window.performance.getEntriesByType("resource")]),r()):l in window.performance&&(window.performance["c"+p]?window.performance[l](m,o,d(!1)):window.performance[l]("webkit"+m,o,d(!1))),document[l]("scroll",i,d(!1)),document[l]("keypress",i,d(!1)),document[l]("click",i,d(!1))}}},{}],6:[function(t,e,n){e.exports=function(){return"PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver}},{}],7:[function(t,e,n){function r(t){for(var e=t;e&&!e.hasOwnProperty(u);)e=Object.getPrototypeOf(e);e&&o(e)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,e){return t[1]}var a=t("ee").get("events"),s=t("wrap-function")(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";e.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,e){var n=t[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var r=c(n,"nr@wrapped",function(){function t(){if("function"==typeof n.handleEvent)return n.handleEvent.apply(n,arguments)}var e={object:t,"function":n}[typeof n];return e?s(e,"fn-",null,e.name||"anonymous"):n});this.wrapped=t[1]=r}}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],8:[function(t,e,n){function r(t,e,n){var r=t[e];"function"==typeof r&&(t[e]=function(){var t=i(arguments),e={};o.emit(n+"before-start",[t],e);var a;e[m]&&e[m].dt&&(a=e[m].dt);var s=r.apply(this,t);return o.emit(n+"start",[t,a],s),s.then(function(t){return o.emit(n+"end",[null,t],s),t},function(t){throw o.emit(n+"end",[t],s),t})})}var o=t("ee").get("fetch"),i=t(33),a=t(32);e.exports=o;var s=window,c="fetch-",f=c+"body-",u=["arrayBuffer","blob","json","text","formData"],d=s.Request,p=s.Response,l=s.fetch,h="prototype",m="nr@context";d&&p&&l&&(a(u,function(t,e){r(d[h],e,f),r(p[h],e,f)}),r(s,"fetch",c),o.on(c+"end",function(t,e){var n=this;if(e){var r=e.headers.get("content-length");null!==r&&(n.rxSize=r),o.emit(c+"done",[null,e],n)}else o.emit(c+"done",[t],n)}))},{}],9:[function(t,e,n){var r=t("ee").get("history"),o=t("wrap-function")(r);e.exports=r;var i=window.history&&window.history.constructor&&window.history.constructor.prototype,a=window.history;i&&i.pushState&&i.replaceState&&(a=i),o.inPlace(a,["pushState","replaceState"],"-")},{}],10:[function(t,e,n){function r(t){function e(){f.emit("jsonp-end",[],l),t.removeEventListener("load",e,c(!1)),t.removeEventListener("error",n,c(!1))}function n(){f.emit("jsonp-error",[],l),f.emit("jsonp-end",[],l),t.removeEventListener("load",e,c(!1)),t.removeEventListener("error",n,c(!1))}var r=t&&"string"==typeof t.nodeName&&"script"===t.nodeName.toLowerCase();if(r){var o="function"==typeof t.addEventListener;if(o){var a=i(t.src);if(a){var d=s(a),p="function"==typeof d.parent[d.key];if(p){var l={};u.inPlace(d.parent,[d.key],"cb-",l),t.addEventListener("load",e,c(!1)),t.addEventListener("error",n,c(!1)),f.emit("new-jsonp",[t.src],l)}}}}}function o(){return"addEventListener"in window}function i(t){var e=t.match(d);return e?e[1]:null}function a(t,e){var n=t.match(l),r=n[1],o=n[3];return o?a(o,e[r]):e[r]}function s(t){var e=t.match(p);return e&&e.length>=3?{key:e[2],parent:a(e[1],window)}:{key:t,parent:window}}var c=t(23),f=t("ee").get("jsonp"),u=t("wrap-function")(f);if(e.exports=f,o()){var d=/[?&](?:callback|cb)=([^&#]+)/,p=/(.*)\.([^.]+)/,l=/^(\w+)(\.|$)(.*)$/,h=["appendChild","insertBefore","replaceChild"];Node&&Node.prototype&&Node.prototype.appendChild?u.inPlace(Node.prototype,h,"dom-"):(u.inPlace(HTMLElement.prototype,h,"dom-"),u.inPlace(HTMLHeadElement.prototype,h,"dom-"),u.inPlace(HTMLBodyElement.prototype,h,"dom-")),f.on("dom-start",function(t){r(t[0])})}},{}],11:[function(t,e,n){var r=t("ee").get("mutation"),o=t("wrap-function")(r),i=NREUM.o.MO;e.exports=r,i&&(window.MutationObserver=function(t){return this instanceof i?new i(o(t,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype)},{}],12:[function(t,e,n){function r(t){var e=i.context(),n=s(t,"executor-",e,null,!1),r=new f(n);return i.context(r).getCtx=function(){return e},r}var o=t("wrap-function"),i=t("ee").get("promise"),a=t("ee").getOrSetContext,s=o(i),c=t(32),f=NREUM.o.PR;e.exports=i,f&&(window.Promise=r,["all","race"].forEach(function(t){var e=f[t];f[t]=function(n){function r(t){return function(){i.emit("propagate",[null,!o],a,!1,!1),o=o||!t}}var o=!1;c(n,function(e,n){Promise.resolve(n).then(r("all"===t),r(!1))});var a=e.apply(f,arguments),s=f.resolve(a);return s}}),["resolve","reject"].forEach(function(t){var e=f[t];f[t]=function(t){var n=e.apply(f,arguments);return t!==n&&i.emit("propagate",[t,!0],n,!1,!1),n}}),f.prototype["catch"]=function(t){return this.then(null,t)},f.prototype=Object.create(f.prototype,{constructor:{value:r}}),c(Object.getOwnPropertyNames(f),function(t,e){try{r[e]=f[e]}catch(n){}}),o.wrapInPlace(f.prototype,"then",function(t){return function(){var e=this,n=o.argsToArray.apply(this,arguments),r=a(e);r.promise=e,n[0]=s(n[0],"cb-",r,null,!1),n[1]=s(n[1],"cb-",r,null,!1);var c=t.apply(this,n);return r.nextPromise=c,i.emit("propagate",[e,!0],c,!1,!1),c}}),i.on("executor-start",function(t){t[0]=s(t[0],"resolve-",this,null,!1),t[1]=s(t[1],"resolve-",this,null,!1)}),i.on("executor-err",function(t,e,n){t[1](n)}),i.on("cb-end",function(t,e,n){i.emit("propagate",[n,!0],this.nextPromise,!1,!1)}),i.on("propagate",function(t,e,n){this.getCtx&&!e||(this.getCtx=function(){if(t instanceof Promise)var e=i.context(t);return e&&e.getCtx?e.getCtx():this})}),r.toString=function(){return""+f})},{}],13:[function(t,e,n){var r=t("ee").get("raf"),o=t("wrap-function")(r),i="equestAnimationFrame";e.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],14:[function(t,e,n){function r(t,e,n){t[0]=a(t[0],"fn-",null,n)}function o(t,e,n){this.method=n,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,n)}var i=t("ee").get("timer"),a=t("wrap-function")(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";e.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],15:[function(t,e,n){function r(t,e){d.inPlace(e,["onreadystatechange"],"fn-",s)}function o(){var t=this,e=u.context(t);t.readyState>3&&!e.resolved&&(e.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){x.push(t),m&&(E?E.then(a):w?w(a):(R=-R,O.data=R))}function a(){for(var t=0;t<x.length;t++)r([],x[t]);x.length&&(x=[])}function s(t,e){return e}function c(t,e){for(var n in t)e[n]=t[n];return e}t(7);var f=t("ee"),u=f.get("xhr"),d=t("wrap-function")(u),p=t(23),l=NREUM.o,h=l.XHR,m=l.MO,v=l.PR,w=l.SI,g="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],x=[];e.exports=u;var b=window.XMLHttpRequest=function(t){var e=new h(t);try{u.emit("new-xhr",[e],e),e.addEventListener(g,o,p(!1))}catch(n){try{u.emit("internal-error",[n])}catch(r){}}return e};if(c(h,b),b.prototype=h.prototype,d.inPlace(b.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,e){r(t,e),i(e)}),u.on("open-xhr-start",r),m){var E=v&&v.resolve();if(!w&&!v){var R=1,O=document.createTextNode(R);new m(a).observe(O,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===g||a()})},{}],16:[function(t,e,n){function r(t){if(!s(t))return null;var e=window.NREUM;if(!e.loader_config)return null;var n=(e.loader_config.accountID||"").toString()||null,r=(e.loader_config.agentID||"").toString()||null,f=(e.loader_config.trustKey||"").toString()||null;if(!n||!r)return null;var h=l.generateSpanId(),m=l.generateTraceId(),v=Date.now(),w={spanId:h,traceId:m,timestamp:v};return(t.sameOrigin||c(t)&&p())&&(w.traceContextParentHeader=o(h,m),w.traceContextStateHeader=i(h,v,n,r,f)),(t.sameOrigin&&!u()||!t.sameOrigin&&c(t)&&d())&&(w.newrelicHeader=a(h,m,v,n,r,f)),w}function o(t,e){return"00-"+e+"-"+t+"-01"}function i(t,e,n,r,o){var i=0,a="",s=1,c="",f="";return o+"@nr="+i+"-"+s+"-"+n+"-"+r+"-"+t+"-"+a+"-"+c+"-"+f+"-"+e}function a(t,e,n,r,o,i){var a="btoa"in window&&"function"==typeof window.btoa;if(!a)return null;var s={v:[0,1],d:{ty:"Browser",ac:r,ap:o,id:t,tr:e,ti:n}};return i&&r!==i&&(s.d.tk=i),btoa(JSON.stringify(s))}function s(t){return f()&&c(t)}function c(t){var e=!1,n={};if("init"in NREUM&&"distributed_tracing"in NREUM.init&&(n=NREUM.init.distributed_tracing),t.sameOrigin)e=!0;else if(n.allowed_origins instanceof Array)for(var r=0;r<n.allowed_origins.length;r++){var o=h(n.allowed_origins[r]);if(t.hostname===o.hostname&&t.protocol===o.protocol&&t.port===o.port){e=!0;break}}return e}function f(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.enabled}function u(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.exclude_newrelic_header}function d(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&NREUM.init.distributed_tracing.cors_use_newrelic_header!==!1}function p(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.cors_use_tracecontext_headers}var l=t(29),h=t(18);e.exports={generateTracePayload:r,shouldGenerateTrace:s}},{}],17:[function(t,e,n){function r(t){var e=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<p;r++)t.removeEventListener(d[r],this.listener,!1);e.aborted||(n.duration=a.now()-this.startTime,this.loadCaptureCalled||4!==t.readyState?null==e.status&&(e.status=0):i(this,t),n.cbTime=this.cbTime,s("xhr",[e,n,this.startTime,this.endTime,"xhr"],this))}}function o(t,e){var n=c(e),r=t.params;r.hostname=n.hostname,r.port=n.port,r.protocol=n.protocol,r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.parsedOrigin=n,t.sameOrigin=n.sameOrigin}function i(t,e){t.params.status=e.status;var n=v(e,t.lastSize);if(n&&(t.metrics.rxSize=n),t.sameOrigin){var r=e.getResponseHeader("X-NewRelic-App-Data");r&&(t.params.cat=r.split(", ").pop())}t.loadCaptureCalled=!0}var a=t("loader");if(a.xhrWrappable&&!a.disabled){var s=t("handle"),c=t(18),f=t(16).generateTracePayload,u=t("ee"),d=["load","error","abort","timeout"],p=d.length,l=t("id"),h=t(24),m=t(22),v=t(19),w=t(23),g=NREUM.o.REQ,y=window.XMLHttpRequest;a.features.xhr=!0,t(15),t(8),u.on("new-xhr",function(t){var e=this;e.totalCbs=0,e.called=0,e.cbTime=0,e.end=r,e.ended=!1,e.xhrGuids={},e.lastSize=null,e.loadCaptureCalled=!1,e.params=this.params||{},e.metrics=this.metrics||{},t.addEventListener("load",function(n){i(e,t)},w(!1)),h&&(h>34||h<10)||t.addEventListener("progress",function(t){e.lastSize=t.loaded},w(!1))}),u.on("open-xhr-start",function(t){this.params={method:t[0]},o(this,t[1]),this.metrics={}}),u.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid);var n=f(this.parsedOrigin);if(n){var r=!1;n.newrelicHeader&&(e.setRequestHeader("newrelic",n.newrelicHeader),r=!0),n.traceContextParentHeader&&(e.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&e.setRequestHeader("tracestate",n.traceContextStateHeader),r=!0),r&&(this.dt=n)}}),u.on("send-xhr-start",function(t,e){var n=this.metrics,r=t[0],o=this;if(n&&r){var i=m(r);i&&(n.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"!==t.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof e.onload))&&o.end(e)}catch(n){try{u.emit("internal-error",[n])}catch(r){}}};for(var s=0;s<p;s++)e.addEventListener(d[s],this.listener,w(!1))}),u.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),u.on("xhr-load-added",function(t,e){var n=""+l(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),u.on("xhr-load-removed",function(t,e){var n=""+l(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),u.on("xhr-resolved",function(){this.endTime=a.now()}),u.on("addEventListener-end",function(t,e){e instanceof y&&"load"===t[0]&&u.emit("xhr-load-added",[t[1],t[2]],e)}),u.on("removeEventListener-end",function(t,e){e instanceof y&&"load"===t[0]&&u.emit("xhr-load-removed",[t[1],t[2]],e)}),u.on("fn-start",function(t,e,n){e instanceof y&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),u.on("fn-end",function(t,e){this.xhrCbStart&&u.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,e],e)}),u.on("fetch-before-start",function(t){function e(t,e){var n=!1;return e.newrelicHeader&&(t.set("newrelic",e.newrelicHeader),n=!0),e.traceContextParentHeader&&(t.set("traceparent",e.traceContextParentHeader),e.traceContextStateHeader&&t.set("tracestate",e.traceContextStateHeader),n=!0),n}var n,r=t[1]||{};"string"==typeof t[0]?n=t[0]:t[0]&&t[0].url?n=t[0].url:window.URL&&t[0]&&t[0]instanceof URL&&(n=t[0].href),n&&(this.parsedOrigin=c(n),this.sameOrigin=this.parsedOrigin.sameOrigin);var o=f(this.parsedOrigin);if(o&&(o.newrelicHeader||o.traceContextParentHeader))if("string"==typeof t[0]||window.URL&&t[0]&&t[0]instanceof URL){var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),e(i.headers,o)&&(this.dt=o),t.length>1?t[1]=i:t.push(i)}else t[0]&&t[0].headers&&e(t[0].headers,o)&&(this.dt=o)}),u.on("fetch-start",function(t,e){this.params={},this.metrics={},this.startTime=a.now(),this.dt=e,t.length>=1&&(this.target=t[0]),t.length>=2&&(this.opts=t[1]);var n,r=this.opts||{},i=this.target;"string"==typeof i?n=i:"object"==typeof i&&i instanceof g?n=i.url:window.URL&&"object"==typeof i&&i instanceof URL&&(n=i.href),o(this,n);var s=(""+(i&&i instanceof g&&i.method||r.method||"GET")).toUpperCase();this.params.method=s,this.txSize=m(r.body)||0}),u.on("fetch-done",function(t,e){this.endTime=a.now(),this.params||(this.params={}),this.params.status=e?e.status:0;var n;"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var r={txSize:this.txSize,rxSize:n,duration:a.now()-this.startTime};s("xhr",[this.params,r,this.startTime,this.endTime,"fetch"],this)})}},{}],18:[function(t,e,n){var r={};e.exports=function(t){if(t in r)return r[t];var e=document.createElement("a"),n=window.location,o={};e.href=t,o.port=e.port;var i=e.href.split("://");!o.port&&i[1]&&(o.port=i[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===i[0]?"443":"80"),o.hostname=e.hostname||n.hostname,o.pathname=e.pathname,o.protocol=i[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var a=!e.protocol||":"===e.protocol||e.protocol===n.protocol,s=e.hostname===document.domain&&e.port===n.port;return o.sameOrigin=a&&(!e.hostname||s),"/"===o.pathname&&(r[t]=o),o}},{}],19:[function(t,e,n){function r(t,e){var n=t.responseType;return"json"===n&&null!==e?e:"arraybuffer"===n||"blob"===n||"json"===n?o(t.response):"text"===n||""===n||void 0===n?o(t.responseText):void 0}var o=t(22);e.exports=r},{}],20:[function(t,e,n){function r(){}function o(t,e,n,r){return function(){return u.recordSupportability("API/"+e+"/called"),i(t+e,[f.now()].concat(s(arguments)),n?null:this,r),n?void 0:this}}var i=t("handle"),a=t(32),s=t(33),c=t("ee").get("tracer"),f=t("loader"),u=t(25),d=NREUM;"undefined"==typeof window.newrelic&&(newrelic=d);var p=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",h=l+"ixn-";a(p,function(t,e){d[e]=o(l,e,!0,"api")}),d.addPageAction=o(l,"addPageAction",!0),d.setCurrentRouteName=o(l,"routeName",!0),e.exports=newrelic,d.interaction=function(){return(new r).get()};var m=r.prototype={createTracer:function(t,e){var n={},r=this,o="function"==typeof e;return i(h+"tracer",[f.now(),t,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],n),o)try{return e.apply(this,arguments)}catch(t){throw c.emit("fn-err",[arguments,this,t],n),t}finally{c.emit("fn-end",[f.now()],n)}}}};a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,e){m[e]=o(h,e)}),newrelic.noticeError=function(t,e){"string"==typeof t&&(t=new Error(t)),u.recordSupportability("API/noticeError/called"),i("err",[t,f.now(),!1,e])}},{}],21:[function(t,e,n){function r(t){if(NREUM.init){for(var e=NREUM.init,n=t.split("."),r=0;r<n.length-1;r++)if(e=e[n[r]],"object"!=typeof e)return;return e=e[n[n.length-1]]}}e.exports={getConfiguration:r}},{}],22:[function(t,e,n){e.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(e){return}}}},{}],23:[function(t,e,n){var r=!1;try{var o=Object.defineProperty({},"passive",{get:function(){r=!0}});window.addEventListener("testPassive",null,o),window.removeEventListener("testPassive",null,o)}catch(i){}e.exports=function(t){return r?{passive:!0,capture:!!t}:!!t}},{}],24:[function(t,e,n){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),e.exports=r},{}],25:[function(t,e,n){function r(t,e){var n=[a,t,{name:t},e];return i("storeMetric",n,null,"api"),n}function o(t,e){var n=[s,t,{name:t},e];return i("storeEventMetrics",n,null,"api"),n}var i=t("handle"),a="sm",s="cm";e.exports={constants:{SUPPORTABILITY_METRIC:a,CUSTOM_METRIC:s},recordSupportability:r,recordCustom:o}},{}],26:[function(t,e,n){function r(){return s.exists&&performance.now?Math.round(performance.now()):(i=Math.max((new Date).getTime(),i))-a}function o(){return i}var i=(new Date).getTime(),a=i,s=t(34);e.exports=r,e.exports.offset=a,e.exports.getLastTimestamp=o},{}],27:[function(t,e,n){function r(t){return!(!t||!t.protocol||"file:"===t.protocol)}e.exports=r},{}],28:[function(t,e,n){function r(t,e){var n=t.getEntries();n.forEach(function(t){"first-paint"===t.name?p("timing",["fp",Math.floor(t.startTime)]):"first-contentful-paint"===t.name&&p("timing",["fcp",Math.floor(t.startTime)])})}function o(t,e){var n=t.getEntries();if(n.length>0){var r=n[n.length-1];if(c&&c<r.startTime)return;p("lcp",[r])}}function i(t){t.getEntries().forEach(function(t){t.hadRecentInput||p("cls",[t])})}function a(t){if(t instanceof v&&!g){var e=Math.round(t.timeStamp),n={type:t.type};e<=l.now()?n.fid=l.now()-e:e>l.offset&&e<=Date.now()?(e-=l.offset,n.fid=l.now()-e):e=l.now(),g=!0,p("timing",["fi",e,n])}}function s(t){"hidden"===t&&(c=l.now(),p("pageHide",[c]))}if(!("init"in NREUM&&"page_view_timing"in NREUM.init&&"enabled"in NREUM.init.page_view_timing&&NREUM.init.page_view_timing.enabled===!1)){var c,f,u,d,p=t("handle"),l=t("loader"),h=t(31),m=t(23),v=NREUM.o.EV;if("PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver){f=new PerformanceObserver(r);try{f.observe({entryTypes:["paint"]})}catch(w){}u=new PerformanceObserver(o);try{u.observe({entryTypes:["largest-contentful-paint"]})}catch(w){}d=new PerformanceObserver(i);try{d.observe({type:"layout-shift",buffered:!0})}catch(w){}}if("addEventListener"in document){var g=!1,y=["click","keydown","mousedown","pointerdown","touchstart"];y.forEach(function(t){document.addEventListener(t,a,m(!1))})}h(s)}},{}],29:[function(t,e,n){function r(){function t(){return e?15&e[n++]:16*Math.random()|0}var e=null,n=0,r=window.crypto||window.msCrypto;r&&r.getRandomValues&&(e=r.getRandomValues(new Uint8Array(31)));for(var o,i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",a="",s=0;s<i.length;s++)o=i[s],"x"===o?a+=t().toString(16):"y"===o?(o=3&t()|8,a+=o.toString(16)):a+=o;return a}function o(){return a(16)}function i(){return a(32)}function a(t){function e(){return n?15&n[r++]:16*Math.random()|0}var n=null,r=0,o=window.crypto||window.msCrypto;o&&o.getRandomValues&&Uint8Array&&(n=o.getRandomValues(new Uint8Array(31)));for(var i=[],a=0;a<t;a++)i.push(e().toString(16));return i.join("")}e.exports={generateUuid:r,generateSpanId:o,generateTraceId:i}},{}],30:[function(t,e,n){function r(t,e){if(!o)return!1;if(t!==o)return!1;if(!e)return!0;if(!i)return!1;for(var n=i.split("."),r=e.split("."),a=0;a<r.length;a++)if(r[a]!==n[a])return!1;return!0}var o=null,i=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var s=navigator.userAgent,c=s.match(a);c&&s.indexOf("Chrome")===-1&&s.indexOf("Chromium")===-1&&(o="Safari",i=c[1])}e.exports={agent:o,version:i,match:r}},{}],31:[function(t,e,n){function r(t){function e(){t(s&&document[s]?document[s]:document[i]?"hidden":"visible")}"addEventListener"in document&&a&&document.addEventListener(a,e,o(!1))}var o=t(23);e.exports=r;var i,a,s;"undefined"!=typeof document.hidden?(i="hidden",a="visibilitychange",s="visibilityState"):"undefined"!=typeof document.msHidden?(i="msHidden",a="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(i="webkitHidden",a="webkitvisibilitychange",s="webkitVisibilityState")},{}],32:[function(t,e,n){function r(t,e){var n=[],r="",i=0;for(r in t)o.call(t,r)&&(n[i]=e(r,t[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],33:[function(t,e,n){function r(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(o<0?0:o);++r<o;)i[r]=t[e+r];return i}e.exports=r},{}],34:[function(t,e,n){e.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(t,e,n){function r(){}function o(t){function e(t){return t&&t instanceof r?t:t?f(t,c,a):a()}function n(n,r,o,i,a){if(a!==!1&&(a=!0),!l.aborted||i){t&&a&&t(n,r,o);for(var s=e(o),c=m(n),f=c.length,u=0;u<f;u++)c[u].apply(s,r);var p=d[y[n]];return p&&p.push([x,n,r,s]),s}}function i(t,e){g[t]=m(t).concat(e)}function h(t,e){var n=g[t];if(n)for(var r=0;r<n.length;r++)n[r]===e&&n.splice(r,1)}function m(t){return g[t]||[]}function v(t){return p[t]=p[t]||o(n)}function w(t,e){l.aborted||u(t,function(t,n){e=e||"feature",y[n]=e,e in d||(d[e]=[])})}var g={},y={},x={on:i,addEventListener:i,removeEventListener:h,emit:n,get:v,listeners:m,context:e,buffer:w,abort:s,aborted:!1};return x}function i(t){return f(t,c,a)}function a(){return new r}function s(){(d.api||d.feature)&&(l.aborted=!0,d=l.backlog={})}var c="nr@context",f=t("gos"),u=t(32),d={},p={},l=e.exports=o();e.exports.getOrSetContext=i,l.backlog=d},{}],gos:[function(t,e,n){function r(t,e,n){if(o.call(t,e))return t[e];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[e]=r,r}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],handle:[function(t,e,n){function r(t,e,n,r){o.buffer([t],r),o.emit(t,e,n)}var o=t("ee").get("handle");e.exports=r,r.ee=o},{}],id:[function(t,e,n){function r(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");e.exports=r},{}],loader:[function(t,e,n){function r(){if(!P++){var t=T.info=NREUM.info,e=v.getElementsByTagName("script")[0];if(setTimeout(f.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&e))return f.abort();c(R,function(e,n){t[e]||(t[e]=n)});var n=a();s("mark",["onload",n+T.offset],null,"api"),s("timing",["load",n]);var r=v.createElement("script");0===t.agent.indexOf("http://")||0===t.agent.indexOf("https://")?r.src=t.agent:r.src=h+"://"+t.agent,e.parentNode.insertBefore(r,e)}}function o(){"complete"===v.readyState&&i()}function i(){s("mark",["domContent",a()+T.offset],null,"api")}var a=t(26),s=t("handle"),c=t(32),f=t("ee"),u=t(30),d=t(27),p=t(21),l=t(23),h=p.getConfiguration("ssl")===!1?"http":"https",m=window,v=m.document,w="addEventListener",g="attachEvent",y=m.XMLHttpRequest,x=y&&y.prototype,b=!d(m.location);NREUM.o={ST:setTimeout,SI:m.setImmediate,CT:clearTimeout,XHR:y,REQ:m.Request,EV:m.Event,PR:m.Promise,MO:m.MutationObserver};var E=""+location,R={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-spa-1212.min.js"},O=y&&x&&x[w]&&!/CriOS/.test(navigator.userAgent),T=e.exports={offset:a.getLastTimestamp(),now:a,origin:E,features:{},xhrWrappable:O,userAgent:u,disabled:b};if(!b){t(20),t(28),v[w]?(v[w]("DOMContentLoaded",i,l(!1)),m[w]("load",r,l(!1))):(v[g]("onreadystatechange",o),m[g]("onload",r)),s("mark",["firstbyte",a.getLastTimestamp()],null,"api");var P=0}},{}],"wrap-function":[function(t,e,n){function r(t,e){function n(e,n,r,c,f){function nrWrapper(){var i,a,u,p;try{a=this,i=d(arguments),u="function"==typeof r?r(i,a):r||{}}catch(l){o([l,"",[i,a,c],u],t)}s(n+"start",[i,a,c],u,f);try{return p=e.apply(a,i)}catch(h){throw s(n+"err",[i,a,h],u,f),h}finally{s(n+"end",[i,a,p],u,f)}}return a(e)?e:(n||(n=""),nrWrapper[p]=e,i(e,nrWrapper,t),nrWrapper)}function r(t,e,r,o,i){r||(r="");var s,c,f,u="-"===r.charAt(0);for(f=0;f<e.length;f++)c=e[f],s=t[c],a(s)||(t[c]=n(s,u?c+r:r,o,c,i))}function s(n,r,i,a){if(!h||e){var s=h;h=!0;try{t.emit(n,r,i,e,a)}catch(c){o([c,n,r,i],t)}h=s}}return t||(t=u),n.inPlace=r,n.flag=p,n}function o(t,e){e||(e=u);try{e.emit("internal-error",t)}catch(n){}}function i(t,e,n){if(Object.defineProperty&&Object.keys)try{var r=Object.keys(t);return r.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(i){o([i],n)}for(var a in t)l.call(t,a)&&(e[a]=t[a]);return e}function a(t){return!(t&&t instanceof Function&&t.apply&&!t[p])}function s(t,e){var n=e(t);return n[p]=t,i(t,n,u),n}function c(t,e,n){var r=t[e];t[e]=s(r,n)}function f(){for(var t=arguments.length,e=new Array(t),n=0;n<t;++n)e[n]=arguments[n];return e}var u=t("ee"),d=t(33),p="nr@original",l=Object.prototype.hasOwnProperty,h=!1;e.exports=r,e.exports.wrapFunction=s,e.exports.wrapInPlace=c,e.exports.argsToArray=f},{}]},{},["loader",2,17,5,3,4]); ;NREUM.loader_config={accountID:"804283",trustKey:"804283",agentID:"402703674",licenseKey:"cf99e8d2a3",applicationID:"402703674"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"cf99e8d2a3", // Modified this value from the generated script, to pass prod vs dev applicationID: window.location.hostname.includes('journals.plos.org') ? "402703674" : "402694889", sa:1} </script> <!-- End New Relic --> <header> <div id="topslot" class="head-top"> <a id="skip-to-content" tabindex="0" class="button" href="#main-content"> Skip to main content </a> <div class="center"> <div class="title">Advertisement</div> <!-- DoubleClick Ad Zone --> <div class='advertisement' id='div-gpt-ad-1458247671871-0' style='width:728px; height:90px;'> <script type='text/javascript'> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458247671871-0'); }); </script> </div> </div> </div> <div id="user" class="nav" data-user-management-url="https://community.plos.org"> </div> <div id="pagehdr"> <nav class="nav-main"> <h1 class="logo"> <a href="/plosone/.">PLOS One</a> </h1> <section class="top-bar-section"> <ul class="nav-elements"> <li class="multi-col-parent menu-section-header has-dropdown" id="publish"> Publish <div class="dropdown mega "> <ul class="multi-col" id="publish-dropdown-list"> <li class="menu-section-header " id="submissions"> <span class="menu-section-header-title"> Submissions </span> <ul class="menu-section " id="submissions-dropdown-list"> <li> <a href="/plosone/s/getting-started" >Getting Started</a> </li> <li> <a href="/plosone/s/submission-guidelines" >Submission Guidelines</a> </li> <li> <a href="/plosone/s/figures" >Figures</a> </li> <li> <a href="/plosone/s/tables" >Tables</a> </li> <li> <a href="/plosone/s/supporting-information" >Supporting Information</a> </li> <li> <a href="/plosone/s/latex" >LaTeX</a> </li> <li> <a href="/plosone/s/what-we-publish" >What We Publish</a> </li> <li> <a href="/plosone/s/preprints" >Preprints</a> </li> <li> <a href="/plosone/s/revising-your-manuscript" >Revising Your Manuscript</a> </li> <li> <a href="/plosone/s/submit-now" >Submit Now</a> </li> <li> <a href="https://collections.plos.org/s/calls-for-papers" >Calls for Papers</a> </li> </ul> </li> <li class="menu-section-header " id="policies"> <span class="menu-section-header-title"> Policies </span> <ul class="menu-section " id="policies-dropdown-list"> <li> <a href="/plosone/s/best-practices-in-research-reporting" >Best Practices in Research Reporting</a> </li> <li> <a href="/plosone/s/human-subjects-research" >Human Subjects Research</a> </li> <li> <a href="/plosone/s/animal-research" >Animal Research</a> </li> <li> <a href="/plosone/s/competing-interests" >Competing Interests</a> </li> <li> <a href="/plosone/s/disclosure-of-funding-sources" >Disclosure of Funding Sources</a> </li> <li> <a href="/plosone/s/licenses-and-copyright" >Licenses and Copyright</a> </li> <li> <a href="/plosone/s/data-availability" >Data Availability</a> </li> <li> <a href="/plosone/s/complementary-research" >Complementary Research</a> </li> <li> <a href="/plosone/s/materials-software-and-code-sharing" >Materials, Software and Code Sharing</a> </li> <li> <a href="/plosone/s/ethical-publishing-practice" >Ethical Publishing Practice</a> </li> <li> <a href="/plosone/s/authorship" >Authorship</a> </li> <li> <a href="/plosone/s/corrections-expressions-of-concern-and-retractions" >Corrections, Expressions of Concern, and Retractions</a> </li> </ul> </li> <li class="menu-section-header " id="manuscript-review-and-publication"> <span class="menu-section-header-title"> Manuscript Review and Publication </span> <ul class="menu-section " id="manuscript-review-and-publication-dropdown-list"> <li> <a href="/plosone/s/criteria-for-publication" >Criteria for Publication</a> </li> <li> <a href="/plosone/s/editorial-and-peer-review-process" >Editorial and Peer Review Process</a> </li> <li> <a href="https://plos.org/resources/editor-center" >Editor Center</a> </li> <li> <a href="/plosone/s/resources-for-editors" >Resources for Editors</a> </li> <li> <a href="/plosone/s/reviewer-guidelines" >Guidelines for Reviewers</a> </li> <li> <a href="/plosone/s/accepted-manuscripts" >Accepted Manuscripts</a> </li> <li> <a href="/plosone/s/comments" >Comments</a> </li> </ul> </li> </ul> <div class="calloutcontainer"> <h3 class="callout-headline">Submit Your Manuscript</h3> <div class="action-contain"> <p class="callout-content"> Discover a faster, simpler path to publishing in a high-quality journal. <em>PLOS ONE</em> promises fair, rigorous peer review, broad scope, and wide readership – a perfect fit for your research every time. </p> <p class="button-contain special"> <a class="button button-default" href="/plosone/static/publish"> Learn More </a> <a class="button-link" href="https://www.editorialmanager.com/pone/default.asp"> Submit Now </a> </p> </div> <!-- opens in siteMenuCalloutDescription --> </div> </div> </li> <li class="menu-section-header has-dropdown " id="about"> <span class="menu-section-header-title"> About </span> <ul class="menu-section dropdown " id="about-dropdown-list"> <li> <a href="/plosone/static/publish" >Why Publish with PLOS ONE</a> </li> <li> <a href="/plosone/s/journal-information" >Journal Information</a> </li> <li> <a href="/plosone/s/staff-editors" >Staff Editors</a> </li> <li> <a href="/plosone/static/editorial-board" >Editorial Board</a> </li> <li> <a href="/plosone/s/section-editors" >Section Editors</a> </li> <li> <a href="/plosone/s/advisory-groups" >Advisory Groups</a> </li> <li> <a href="/plosone/s/find-and-read-articles" >Find and Read Articles</a> </li> <li> <a href="/plosone/s/publishing-information" >Publishing Information</a> </li> <li> <a href="https://plos.org/publication-fees" >Publication Fees</a> </li> <li> <a href="https://plos.org/press-and-media" >Press and Media</a> </li> <li> <a href="/plosone/s/contact" >Contact</a> </li> </ul> </li> <li data-js-tooltip-hover="trigger" class="subject-area menu-section-header"> Browse </li> <script src="/resource/js/vendor/jquery.hoverIntent.js" type="text/javascript"></script> <script src="/resource/js/components/menu_drop.js" type="text/javascript"></script> <script src="/resource/js/components/hover_delay.js" type="text/javascript"></script> <li id="navsearch" class="head-search"> <form name="searchForm" action="/plosone/search" method="get"> <fieldset> <legend>Search</legend> <label for="search">Search</label> <div class="search-contain"> <input id="search" type="text" name="q" placeholder="SEARCH" required/> <button id="headerSearchButton" type="submit" aria-label="Submit search"> <i title="Submit search" class="search-icon"></i> </button> </div> </fieldset> <input type="hidden" name="filterJournals" value="PLoSONE"/> </form> <a id="advSearch" href="/plosone/search"> advanced search </a> <script src="/resource/js/components/placeholder_style.js" type="text/javascript"></script> </li> </ul> </section> </nav> </div> </header> <section id="taxonomyContainer"> <script src="/resource/js/taxonomy-browser.js" type="text/javascript"></script> <div id="taxonomy-browser" class="areas" data-search-url="/plosone/browse"> <div class="wrapper"> <div class="taxonomy-header"> Browse Subject Areas <div id="subjInfo">?</div> <div id="subjInfoText"> <p>Click through the PLOS taxonomy to find articles in your field.</p> <p>For more information about PLOS Subject Areas, click <a href="https://github.com/PLOS/plos-thesaurus/blob/master/README.md" target="_blank" title="Link opens in new window">here</a>. </p> </div> </div> <div class="levels"> <div class="levels-container cf"> <div class="levels-position"></div> </div> <a href="#" class="prev"></a> <a href="#" class="next active"></a> </div> </div> <div class="taxonomy-browser-border-bottom"></div> </div> </section> <main id="main-content"> <div class="set-grid"> <header class="title-block"> <script src="/resource/js/components/signposts.js" type="text/javascript"></script> <ul id="almSignposts" class="signposts"> <li id="loadingMetrics"> <p>Loading metrics</p> </li> </ul> <script type="text/template" id="signpostsGeneralErrorTemplate"> <li id="metricsError">Article metrics are unavailable at this time. Please try again later.</li> </script> <script type="text/template" id="signpostsNewArticleErrorTemplate"> <li></li><li></li><li id="tooSoon">Article metrics are unavailable for recently published articles.</li> </script> <script type="text/template" id="signpostsTemplate"> <li id="almSaves"> <%= s.numberFormat(saveCount, 0) %> <div class="tools" data-js-tooltip-hover="trigger"> <a class="metric-term" href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#savedHeader">Save</a> <p class="saves-tip" data-js-tooltip-hover="target"><a href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#savedHeader">Total Mendeley and Citeulike bookmarks.</a></p> </div> </li> <li id="almCitations"> <%= s.numberFormat(citationCount, 0) %> <div class="tools" data-js-tooltip-hover="trigger"> <a class="metric-term" href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#citedHeader">Citation</a> <p class="citations-tip" data-js-tooltip-hover="target"><a href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#citedHeader">Paper's citation count computed by Dimensions.</a></p> </div> </li> <li id="almViews"> <%= s.numberFormat(viewCount, 0) %> <div class="tools" data-js-tooltip-hover="trigger"> <a class="metric-term" href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#viewedHeader">View</a> <p class="views-tip" data-js-tooltip-hover="target"><a href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#viewedHeader">PLOS views and downloads.</a></p> </div> </li> <li id="almShares"> <%= s.numberFormat(shareCount, 0) %> <div class="tools" data-js-tooltip-hover="trigger"> <a class="metric-term" href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#discussedHeader">Share</a> <p class="shares-tip" data-js-tooltip-hover="target"><a href="/plosone/article/metrics?id=10.1371/journal.pone.0198528#discussedHeader">Sum of Facebook, Twitter, Reddit and Wikipedia activity.</a></p> </div> </li> </script> <div class="article-meta"> <div class="classifications"> <p class="license-short" id="licenseShort">Open Access</p> <p class="peer-reviewed" id="peerReviewed">Peer-reviewed</p> <div class="article-type" > <p class="type-article" id="artType">Research Article</p> </div> </div> </div> <div class="article-title-etc"> <div class="title-authors"> <h1 id="artTitle"><?xml version="1.0" encoding="UTF-8"?>Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard</h1> <ul class="author-list clearfix" data-js-tooltip="tooltip_container" id="author-list"> <li data-js-tooltip="tooltip_trigger" > <a data-author-id="0" class="author-name" > Holly Hartman,</a> <div id="author-meta-0" class="author-info" data-js-tooltip="tooltip_target"> <p class="roles" id="authRoles"> <span class="type">Roles</span> Formal analysis, Methodology, Writing – original draft </p> <p id="authAffiliations-0"><span class="type">Affiliation</span> Department of Biostatistics, University of Alabama at Birmingham, Birmingham, Alabama, United States of America </p> <a data-js-tooltip="tooltip_close" class="close" id="tooltipClose0"> &#x02A2F; </a> </div> </li> <li data-js-tooltip="tooltip_trigger" > <a data-author-id="1" class="author-name" > Yuge Wang,</a> <div id="author-meta-1" class="author-info" data-js-tooltip="tooltip_target"> <p class="roles" id="authRoles"> <span class="type">Roles</span> Data curation </p> <p id="authAffiliations-1"><span class="type">Affiliation</span> Department of Microbiology, University of Alabama at Birmingham, Birmingham, Alabama, United States of America </p> <a data-js-tooltip="tooltip_close" class="close" id="tooltipClose1"> &#x02A2F; </a> </div> </li> <li data-js-tooltip="tooltip_trigger" > <a data-author-id="2" class="author-name" > Harry W. Schroeder Jr,</a> <div id="author-meta-2" class="author-info" data-js-tooltip="tooltip_target"> <p class="roles" id="authRoles"> <span class="type">Roles</span> Data curation, Resources, Writing – review & editing </p> <p id="authAffiliations-2"><span class="type">Affiliations</span> Department of Microbiology, University of Alabama at Birmingham, Birmingham, Alabama, United States of America, Department of Medicine, University of Alabama at Birmingham, Birmingham, Alabama, United States of America </p> <a data-js-tooltip="tooltip_close" class="close" id="tooltipClose2"> &#x02A2F; </a> </div> </li> <li data-js-tooltip="tooltip_trigger" > <a data-author-id="3" class="author-name" > Xiangqin Cui <span class="email"> </span></a> <div id="author-meta-3" class="author-info" data-js-tooltip="tooltip_target"> <p class="roles" id="authRoles"> <span class="type">Roles</span> Conceptualization, Methodology, Supervision, Writing – review & editing </p> <p id="authCorresponding-3"> <span class="email">* E-mail:</span> <a href="mailto:xiangqin.cui@emory.edu">xiangqin.cui@emory.edu</a></p> <p id="authAffiliations-3"><span class="type">Affiliation</span> Department of Biostatistics, University of Alabama at Birmingham, Birmingham, Alabama, United States of America </p> <div> <p class="orcid" id="authOrcid-3"> <span> <a id="connect-orcid-link" href="http://orcid.org/0000-0003-0621-9313" target="_blank" title="ORCID Registry"> <img id="orcid-id-logo" src="/resource/img/orcid_16x16.png" width="16" height="16" alt="ORCID logo"/> http://orcid.org/0000-0003-0621-9313 </a> </span> </p> </div> <a data-js-tooltip="tooltip_close" class="close" id="tooltipClose3"> &#x02A2F; </a> </div> </li> </ul> <script src="/resource/js/components/tooltip.js" type="text/javascript"></script> </div> <div id="floatTitleTop" data-js-floater="title_author" class="float-title" role="presentation"> <div class="set-grid"> <div class="float-title-inner"> <h1><?xml version="1.0" encoding="UTF-8"?>Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard</h1> <ul id="floatAuthorList" data-js-floater="floated_authors"> <li data-float-index="1">Holly Hartman,&nbsp; </li> <li data-float-index="2">Yuge Wang,&nbsp; </li> <li data-float-index="3">Harry W. Schroeder Jr,&nbsp; </li> <li data-float-index="4">Xiangqin Cui </li> </ul> </div> <div class="logo-close" id="titleTopCloser"> <img src="/resource/img/logo-plos.png" style="height: 2em" alt="PLOS" /> <div class="close-floater" title="close">x</div> </div> </div> </div> <ul class="date-doi"> <li id="artPubDate">Published: June 8, 2018</li> <li id="artDoi"> <a href="https://doi.org/10.1371/journal.pone.0198528">https://doi.org/10.1371/journal.pone.0198528</a> </li> <li class="flex-spacer"></li> </ul> </div> <div> </div> </header> <section class="article-body"> <ul class="article-tabs"> <li class="tab-title active" id="tabArticle"> <a href="/plosone/article?id=10.1371/journal.pone.0198528" class="article-tab-1">Article</a> </li> <li class="tab-title " id="tabAuthors"> <a href="/plosone/article/authors?id=10.1371/journal.pone.0198528" class="article-tab-2">Authors</a> </li> <li class="tab-title " id="tabMetrics"> <a href="/plosone/article/metrics?id=10.1371/journal.pone.0198528" class="article-tab-3">Metrics</a> </li> <li class="tab-title " id="tabComments"> <a href="/plosone/article/comments?id=10.1371/journal.pone.0198528" class="article-tab-4">Comments</a> </li> <li class="tab-title" id="tabRelated"> <a class="article-tab-5" id="tabRelated-link">Media Coverage</a> <script>$(document).ready(function() { $.getMediaLink("10.1371/journal.pone.0198528").then(function (url) { $("#tabRelated-link").attr("href", url) } ) })</script> </li> </ul> <div class="article-container"> <div id="nav-article"> <ul class="nav-secondary"> <li class="nav-comments" id="nav-comments"> <a href="article/comments?id=10.1371/journal.pone.0198528">Reader Comments</a> </li> <li id="nav-figures"><a href="#" data-doi="10.1371/journal.pone.0198528">Figures</a></li> </ul> <div id="nav-data-linking" data-data-url=""> </div> </div> <script src="/resource/js/components/scroll.js" type="text/javascript"></script> <script src="/resource/js/components/nav_builder.js" type="text/javascript"></script> <script src="/resource/js/components/floating_nav.js" type="text/javascript"></script> <div id="figure-lightbox-container"></div> <script id="figure-lightbox-template" type="text/template"> <div id="figure-lightbox" class="reveal-modal full" data-reveal aria-hidden="true" role="dialog"> <div class="lb-header"> <h1 id="lb-title"><%= articleTitle %></h1> <div id="lb-authors"> <span>Holly Hartman</span> <span>Yuge Wang</span> <span>Harry W. Schroeder Jr</span> <span>Xiangqin Cui</span> </div> <div class="lb-close" title="close">&nbsp;</div> </div> <div class="img-container"> <div class="loader"> <i class="fa-spinner"></i> </div> <img class="main-lightbox-image" src=""/> <aside id="figures-list"> <% figureList.each(function (ix, figure) { %> <div class="change-img" data-doi="<%= figure.getAttribute('data-doi') %>"> <img class="aside-figure" src="/plosone/article/figure/image?size=inline&id=<%= figure.getAttribute('data-doi') %>" /> </div> <% }) %> <div class="dummy-figure"> </div> </aside> </div> <div id="lightbox-footer"> <div id="btns-container" class="lightbox-row <% if(figureList.length <= 1) { print('one-figure-only') } %>"> <div class="fig-btns-container reset-zoom-wrapper left"> <span class="fig-btn reset-zoom-btn">Reset zoom</span> </div> <div class="zoom-slider-container"> <div class="range-slider-container"> <span id="lb-zoom-min"></span> <div class="range-slider round" data-slider data-options="start: 20; end: 200; initial: 20;"> <span class="range-slider-handle" role="slider" tabindex="0"></span> <span class="range-slider-active-segment"></span> <input type="hidden"> </div> <span id="lb-zoom-max"></span> </div> </div> <% if(figureList.length > 1) { %> <div class="fig-btns-container"> <span class="fig-btn all-fig-btn"><i class="icon icon-all"></i> All Figures</span> <span class="fig-btn next-fig-btn"><i class="icon icon-next"></i> Next</span> <span class="fig-btn prev-fig-btn"><i class="icon icon-prev"></i> Previous</span> </div> <% } %> </div> <div id="image-context"> </div> </div> </div> </script> <script id="image-context-template" type="text/template"> <div class="footer-text"> <div id="figure-description-wrapper"> <div id="view-more-wrapper" style="<% descriptionExpanded? print('display:none;') : '' %>"> <span id="figure-title"><%= title %></span> <p id="figure-description"> <%= description %>&nbsp;&nbsp; </p> <span id="view-more">show more<i class="icon-arrow-right"></i></span> </div> <div id="view-less-wrapper" style="<% descriptionExpanded? print('display:inline-block;') : '' %>" > <span id="figure-title"><%= title %></span> <p id="full-figure-description"> <%= description %>&nbsp;&nbsp; <span id="view-less">show less<i class="icon-arrow-left"></i></span> </p> </div> </div> </div> <div id="show-context-container"> <a class="btn show-context" href="<%= showInContext(strippedDoi) %>">Show in Context</a> </div> <div id="download-buttons"> <h3>Download:</h3> <div class="item"> <a href="/plosone/article/figure/image?size=original&download=&id=<%= doi %>" title="original image"> <span class="download-btn">TIFF</span> </a> <span class="file-size"><%= fileSizes.original %></span> </div> <div class="item"> <a href="/plosone/article/figure/image?size=large&download=&id=<%= doi %>" title="large image"> <span class="download-btn">PNG</span> </a> <span class="file-size"><%= fileSizes.large %></span> </div> <div class="item"> <a href="/plosone/article/figure/powerpoint?id=<%= doi %>" title="PowerPoint slide"> <span class="download-btn">PPT</span> </a> </div> </div> </script> <div class="article-content"> <div id="figure-carousel-section"> <h2>Figures</h2> <div id="figure-carousel"> <div class="carousel-wrapper"> <div class="slider"> <div class="carousel-item lightbox-figure" data-doi="10.1371/journal.pone.0198528.g001"> <img src="/plosone/article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g001" loading="lazy" alt="Fig 1" /> </div> <div class="carousel-item lightbox-figure" data-doi="10.1371/journal.pone.0198528.g002"> <img src="/plosone/article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g002" loading="lazy" alt="Fig 2" /> </div> <div class="carousel-item lightbox-figure" data-doi="10.1371/journal.pone.0198528.g003"> <img src="/plosone/article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g003" loading="lazy" alt="Fig 3" /> </div> <div class="carousel-item lightbox-figure" data-doi="10.1371/journal.pone.0198528.g004"> <img src="/plosone/article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g004" loading="lazy" alt="Fig 4" /> </div> <div class="carousel-item lightbox-figure" data-doi="10.1371/journal.pone.0198528.g005"> <img src="/plosone/article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g005" loading="lazy" alt="Fig 5" /> </div> <div class="carousel-item lightbox-figure" data-doi="10.1371/journal.pone.0198528.g006"> <img src="/plosone/article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g006" loading="lazy" alt="Fig 6" /> </div> </div> </div> <div class="carousel-control"> <span class="button previous"></span> <span class="button next"></span> </div> <div class="carousel-page-buttons"> </div> </div> </div> <script src="/resource/js/vendor/jquery.touchswipe.js" type="text/javascript"></script> <script src="/resource/js/components/figure_carousel.js" type="text/javascript"></script> <script src="/resource/js/vendor/jquery.dotdotdot.js" type="text/javascript"></script> <div class="article-text" id="artText"> <div xmlns:plos="http://plos.org" class="abstract toc-section abstract-type-"><a id="abstract0" name="abstract0" data-toc="abstract0" class="link-target" title="Abstract"></a><h2>Abstract</h2><div class="abstract-content"><a id="article1.front1.article-meta1.abstract1.p1" name="article1.front1.article-meta1.abstract1.p1" class="link-target"></a><p>We have developed a very simple method, termed absorbance summation (AS), for comparing protein concentrations between samples in ELISA assays without a standard. This method sums the observed absorbance values from all dilutions to obtain one data point for each sample to be used for comparison. AS is less computationally intensive than fitting sigmoidal curves, and it avoids the difficulty of parameter estimation for samples with absorbance values lying primarily at the lower tail of the curve. Our simulation studies showed that it performs much better than the sigmoidal curve fitting method and the conventional endpoint titer method. The power of this simple method is as high as the formal curve fitting followed by the estimation of area under the curve (AUC).</p> </div></div> <div xmlns:plos="http://plos.org" class="articleinfo"><p><strong>Citation: </strong>Hartman H, Wang Y, Schroeder HW Jr, Cui X (2018) Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard. PLoS ONE 13(6): e0198528. https://doi.org/10.1371/journal.pone.0198528</p><p><strong>Editor: </strong>Aldrin V. Gomes, University of California, Davis, UNITED STATES</p><p><strong>Received: </strong>November 15, 2017; <strong>Accepted: </strong>May 21, 2018; <strong>Published: </strong> June 8, 2018</p><p><strong>Copyright: </strong> © 2018 Hartman et al. This is an open access article distributed under the terms of the <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License</a>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</p><p><strong>Data Availability: </strong>All relevant data are within the paper and its Supporting Information files.</p><p><strong>Funding: </strong>This work was supported by NIH AI117703 (to Harry W. Schroeder, Jr) and NIH P60AR064172 (to Xiangqin Cui). The funder had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. There was no additional external funding received for this study.</p><p><strong>Competing interests: </strong> The authors have declared that no competing interests exist.</p></div> <div xmlns:plos="http://plos.org" id="section1" class="section toc-section"><a id="sec001" name="sec001" data-toc="sec001" class="link-target" title="Introduction"></a><h2>Introduction</h2><a id="article1.body1.sec1.p1" name="article1.body1.sec1.p1" class="link-target"></a><p>ELISA (Enzyme-Linked ImmunoSorbent Assay) is a commonly used method in biomedical fields to determine the concentration of protein (analyte) in solution based on antigen-antibody binding. The amount of binding is reflected by the intensity of color change measured by light absorbance. When a standard absorbance curve is available, the concentration of the protein in sample can be estimated by comparing the sample absorbance and the standard curve. In cases where a standard is not available, the differences of protein concentrations of multiple samples are often compared based on serial dilutions.</p> <a id="article1.body1.sec1.p2" name="article1.body1.sec1.p2" class="link-target"></a><p>There are two commonly used data analysis methods for comparing ELISA samples using serial dilutions in the absence of a standard. One is to fit a sigmoidal curve for each sample and then compare the estimated key parameter, points of maximum growth (PMG). Rodbard and Hutt [<a href="#pone.0198528.ref001" class="ref-tip">1</a>] were the first to propose the use of a 4-parameter sigmoidal curve to analyze ELISA data. This method has been recommended as the most appropriate method for ELISA data [<a href="#pone.0198528.ref002" class="ref-tip">2</a>]. When a sample has higher concentration of protein to be measured, all dilutions of this sample have higher absorbance, the sigmoidal curve shifts towards more diluted end. The drawback of this method is that fitting a 4-parameter curve is computationally rigorous, and thus it relies on having sufficient data for estimating the curve. When samples have very low concentration of protein to start with, it may not be possible to obtain accurate estimates for the sigmoidal curve parameters [<a href="#pone.0198528.ref003" class="ref-tip">3</a>].</p> <a id="article1.body1.sec1.p3" name="article1.body1.sec1.p3" class="link-target"></a><p>The second commonly used method is Endpoint Titer (ET). This method simply selects a cutoff absorbance level above the noise background. The highest dilution (or titer) that is above this cutoff level is the endpoint titer, which is used for further sample comparisons. This method is widely used due to its simplicity, since there is no need for computation. The drawback of this method is that it produces discrete data as the dilutions only take on a limited number of specific values. As a result, the most commonly used statistical approaches, such as t tests or ANOVA, cannot be used without violating key assumptions such as continuity or normality.</p> <a id="article1.body1.sec1.p4" name="article1.body1.sec1.p4" class="link-target"></a><p>In this paper, we propose a simple alternative method that can be used for comparing protein concentrations between ELISA samples. We name this method absorbance summation (AS). The absorbance summation method overcomes the complexity of fitting sigmoidal curves and the difficulty of parameter estimation for samples with observed dat lying primarily at the lower tail of the curve. The AS method also avoids the disadvantage of discrete data that complicates the downstream analysis of ET method, while still achieving the simplicity of the ET method.</p> </div> <div xmlns:plos="http://plos.org" id="section2" class="section toc-section"><a id="sec002" name="sec002" data-toc="sec002" class="link-target" title="Methods"></a><h2>Methods</h2> <div id="section1" class="section toc-section"><a id="sec003" name="sec003" class="link-target" title="HIV gp140 binding dataset"></a> <h3>HIV gp140 binding dataset</h3> <a id="article1.body1.sec2.sec1.p1" name="article1.body1.sec2.sec1.p1" class="link-target"></a><p>The ELISA data used for analysis were obtained from Wang et al. and have been previously published [<a href="#pone.0198528.ref004" class="ref-tip">4</a>]. This dataset was generated for studying the binding profiles of HIV gp140 epitope-binding antibodies in the sera of wild type and D altered mice. The third complementarity determining region of the immunoglobulin heavy (H) chain (CDR-H3) is the direct product of VDJ rearrangement and the focus of the diversity of the pre-immune antibody repertoire [<a href="#pone.0198528.ref005" class="ref-tip">5</a>, <a href="#pone.0198528.ref006" class="ref-tip">6</a>]. Although in theory each diversity (D<sub>H</sub>) gene segment can be rearranged into one of six different reading frames (RF), three by deletion and three by inversion; in practice preference is observed for just one, RF1. RF1 is enriched for tyrosine and other neutral amino acids, inverted RF1 is enriched for arginine and other charged amino acids, and the four remaining D<sub>H</sub> are enriched for hydrophobic amino acids. Coupled with control of reading frame usage, these preferences have the effect of biasing the amino acid profile of CDR-H3, which is not only the most diverse portion of the antibody, but also the portion of the antibody most frequently in contact with antigen [<a href="#pone.0198528.ref007" class="ref-tip">7</a>, <a href="#pone.0198528.ref008" class="ref-tip">8</a>].</p> <a id="article1.body1.sec2.sec1.p2" name="article1.body1.sec2.sec1.p2" class="link-target"></a><p>To test whether evolutionary constraints on D<sub>H</sub> amino acid content, and thus on CDR-H3, influence epitope recognition, a series of mouse strains were created wherein the D<sub>H</sub> locus had been simplified by using gene targeting techniques to delete 12 of the 13 D<sub>H</sub> gene segments, and then either keeping or frameshifting the remaining D<sub>H</sub> to bias for use of hydrophobic RF2 or charged inverted RF1 in place of neutral, tyrosine enriched RF1. B cells in these mouse strains produce a CDR-H3 repertoire that is enriched for tyrosine when either a wild type D<sub>H</sub> locus or a single wild type D<sub>H</sub> is used, or enriched for valine or arginine in place of tyrosine when either RF2 or inverted RF1 is emphasized. Four mouse strains with gp140 from HIV-1 JR-FL isolate were serially immunized and then assessed using ELISA for antibody binding to a panel of neutralizing or immunodominant HIV-1 envelope epitopes [<a href="#pone.0198528.ref004" class="ref-tip">4</a>, <a href="#pone.0198528.ref007" class="ref-tip">7</a>].</p> <a id="article1.body1.sec2.sec1.p3" name="article1.body1.sec2.sec1.p3" class="link-target"></a><p>Using ELISA, absorbance was measured for two different types of antibodies (IgG and IgM) from the four different mouse strains against 6 different antigen epitopes. A total of ten mice were used for each combination. Each mouse was immunized on five sequential occasions, and then bled 10 days after challenge. There were 12 different dilutions used in ELISA (1/30, 1/90, 1/270, 1/810, 1/2430, 1/7290, 1/21870, 1/65610, 1/196830, 1/590490, 1/1771470, and 1/5314410) to measure antibody concentrations. In order for the dilutions to be equidistant and since the dilutions are 3-fold, a log<sub>3</sub> transformation of the dilutions was used throughout the analyses.</p> </div> <div id="section2" class="section toc-section"><a id="sec004" name="sec004" class="link-target" title="Methods for analyzing ELISA data"></a> <h3>Methods for analyzing ELISA data</h3> <a id="article1.body1.sec2.sec2.p1" name="article1.body1.sec2.sec2.p1" class="link-target"></a><p>We use an example to illustrate the three methods in summarizing the ELISA dilution data (<a href="#pone-0198528-g001">Fig 1</a>).</p> <a class="link-target" id="pone-0198528-g001" name="pone-0198528-g001"></a><div class="figure" data-doi="10.1371/journal.pone.0198528.g001"><div class="img-box"><a title="Click for larger image" href="article/figure/image?size=medium&amp;id=10.1371/journal.pone.0198528.g001" data-doi="10.1371/journal.pone.0198528" data-uri="10.1371/journal.pone.0198528.g001"><img src="article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g001" alt="thumbnail" class="thumbnail" loading="lazy"></a><div class="expand"></div></div><div class="figure-inline-download"> Download: <ul><li><a href="article/figure/powerpoint?id=10.1371/journal.pone.0198528.g001"><div class="definition-label">PPT</div><div class="definition-description">PowerPoint slide</div></a></li><li><a href="article/figure/image?download&amp;size=large&amp;id=10.1371/journal.pone.0198528.g001"><div class="definition-label">PNG</div><div class="definition-description">larger image</div></a></li><li><a href="article/figure/image?download&amp;size=original&amp;id=10.1371/journal.pone.0198528.g001"><div class="definition-label">TIFF</div><div class="definition-description">original image</div></a></li></ul></div><div class="figcaption"><span>Fig 1. </span> Example for summarizing the ELISA dilution absorbance data using three methods.</div><p class="caption_target"><a id="article1.body1.sec2.sec2.fig1.caption1.p1" name="article1.body1.sec2.sec2.fig1.caption1.p1" class="link-target"></a><p>The points are absorbance values (red numbers) at different dilutions from a sample in the dataset. The sigmoidal curve is a fitted 4-parameter model with the point of maximum growth shown as green *. The endpoint titer value is represented by the blue point above the blue dashed horizontal line. The absorbance summation is the sum of all the red numbers.</p> </p><p class="caption_object"><a href="https://doi.org/10.1371/journal.pone.0198528.g001"> https://doi.org/10.1371/journal.pone.0198528.g001</a></p></div> <div id="section1" class="section toc-section"><a id="sec005" name="sec005" class="link-target" title="Fitting sigmoidal models"></a><h4>Fitting sigmoidal models.</h4><a id="article1.body1.sec2.sec2.sec1.p1" name="article1.body1.sec2.sec2.sec1.p1" class="link-target"></a><p>Traditionally, a 4- or 5-parameter sigmoidal model has been used to fit ELISA data. The 4-parameter model we used is as follows: <a name="pone.0198528.e001" id="pone.0198528.e001" class="link-target"></a><span class="equation"><img src="article/file?type=thumbnail&amp;id=10.1371/journal.pone.0198528.e001" loading="lazy" class="inline-graphic"><span class="note">(1)</span></span> where <em>f</em>(<em>x</em>) is the resulting absorbance at dilution <em>x</em>; <em>a</em> is the maximum absorbance; <em>d</em> is the minimum absorbance; <em>c</em> is the point of maximum growth (or inflection point); <em>b</em> is the slope at <em>c</em>. To fit this 4-parameter sigmoidal model, we used the <em>nlsLM</em> function in the <em>minipack</em>.<em>lm</em> package in R (version 3.1.0). We used the log<sub>3</sub> transformed dilution factors and the raw observed absorbance at each dilution. Errors are assumed to be normally distributed and equally weighted. All four parameters were estimated and the estimated <em>c</em> parameter is the parameter of interest, point of maximum growth (PMG). In the <a href="#pone-0198528-g001">Fig 1</a> example, the fitted line provides a PMG of -5.31, the log3(Dilution) value for the green *.</p> </div> <div id="section2" class="section toc-section"><a id="sec006" name="sec006" class="link-target" title="Endpoint titer (ET) method"></a><h4>Endpoint titer (ET) method.</h4><a id="article1.body1.sec2.sec2.sec2.p1" name="article1.body1.sec2.sec2.sec2.p1" class="link-target"></a><p>The endpoint titer method selects an absorbance value slightly above than the background noise (or the lower asymptotic level). The maximum dilution that has an absorbance greater than this preselected value is defined as the endpoint titer. The intuition behind this method is that a sample with more concentrated protein will need a higher dilution factor to have an absorbance just above background noise level. Traditionally an absorbance cutoff of 0.2 is used, however alternative methods have been proposed [<a href="#pone.0198528.ref009" class="ref-tip">9</a>]. For the ET method, we used the conventional cutoff value of 0.2. In our <a href="#pone-0198528-g001">Fig 1</a> example, the dilution that gives absorbance right above the 0.2 horizontal line corresponds to -8.1 on the x axis and has an absorbance of 0.22. We then set -8.1 to be the ET value for this sample.</p> </div> <div id="section3" class="section toc-section"><a id="sec007" name="sec007" class="link-target" title="Absorbance summation (AS) method"></a><h4>Absorbance summation (AS) method.</h4><a id="article1.body1.sec2.sec2.sec3.p1" name="article1.body1.sec2.sec2.sec3.p1" class="link-target"></a><p>Since absorbance is measured at each dilution of a sample, our proposed method simply sums all the absorbance values from the same sample to obtain one value. We termed this value the absorbance summation (AS). In the <a href="#pone-0198528-g001">Fig 1</a> example, the AS value is calculated as 0.04 + 0.04 + 0.05 + 0.05 + 0.06 + 0.1 + 0.22 + 0.51 + 1.1 + 2.34 + 3.73 + 4 = 12.25.</p> </div> </div> <div id="section3" class="section toc-section"><a id="sec008" name="sec008" class="link-target" title="Analyzing HIV gp140 binding data"></a> <h3>Analyzing HIV gp140 binding data</h3> <a id="article1.body1.sec2.sec3.p1" name="article1.body1.sec2.sec3.p1" class="link-target"></a><p>The three methods described above were used to analyze the HIV gp140 binding ELISA data [<a href="#pone.0198528.ref004" class="ref-tip">4</a>]. The dataset included 2,879 samples. However, a sigmoidal curve was estimable only for 1027 of these samples. All further method comparisons using this dataset were only conducted on these 1027 samples.</p> </div> <div id="section4" class="section toc-section"><a id="sec009" name="sec009" class="link-target" title="Simulating ELISA data"></a> <h3>Simulating ELISA data</h3> <a id="article1.body1.sec2.sec4.p1" name="article1.body1.sec2.sec4.p1" class="link-target"></a><p>As in the HIV gp140 binding dataset [<a href="#pone.0198528.ref004" class="ref-tip">4</a>], ELISA absorbance readings were simulated using equidistant log<sub>3</sub> dilutions and simulated data using the 4-parameter sigmoidal model in <a href="#pone.0198528.e001">Eq 1</a>. To avoid errors in parameter estimates at extreme values, we subtracted 10 from the log<sub>3</sub> dilutions. Our final dilution values were from -24.0959 to -13.0959, increasing by 1. We set <em>a</em> as 4, <em>b</em> as 7.422 (the mean of the estimated slope parameters from the HIV gp140 data), and <em>d</em> as 0.01. We assume these values to be constant between curves. The values for the point of maximum growth, <em>c</em>, were set from -18 to -9, increasing by 0.005. We then calculated the actual values of absorbance using <a href="#pone.0198528.e001">Eq 1</a> and added a random normal error to represent the background noise. The mean of the random error was 0 and the standard deviation was 0.05004, which was based on the standard deviation of the residuals from model fitting of the 1027 samples in the HIV gp140 binding dataset [<a href="#pone.0198528.ref004" class="ref-tip">4</a>]. We then estimated the PMG, the AS, and the ET using the methods described above for each simulated sample and compared these values to the simulated PMG.</p> </div> <div id="section5" class="section toc-section"><a id="sec010" name="sec010" class="link-target" title="Statistical power comparisons"></a> <h3>Statistical power comparisons</h3> <a id="article1.body1.sec2.sec5.p1" name="article1.body1.sec2.sec5.p1" class="link-target"></a><p>Statistical power is the ability to detect a true difference and is often used as a criterion for comparing methods. Having higher power at a fixed significance level indicates a better ability to detect a true difference; therefore, a more desirable method. To compare statistical power associated with the PMG, ET, and AS, we simulated two groups of data with 10 samples in each group (20 total samples). For one group, a set of point of maximum growth (PMG), -16.0595, -15.0959, -13.0959, and -11.5959, were used to represent different scenarios that may appear in real data: two where the measured data cover the PMG, one where the PMG is at the maximum value of the measured data, and one where the PMG is outside of the range of the measured data. These PMGs are constrained within the range for successful sigmoidal curve fitting. Data for the comparison group were simulated using the same settings, except that the PMG differs by values from 0 to 0.75 with an increment of 0.05. PMG, AS, and the ET were estimated for all 20 samples. A t test was then performed to test for differences between the two groups for each of the three methods with a significance level of 0.05. The simulation and testing procedure was repeated 2,000 times for estimating power.</p> <a id="article1.body1.sec2.sec5.p2" name="article1.body1.sec2.sec5.p2" class="link-target"></a><p>Variations of this simulation were performed by doubling and halving the standard deviation of the random error added. The sample sizes were also varied from 10 to 3 (total sample size from 20 to 6). To examine the impact of heterogeneous variances, we also changed the variance of the random error linearly and quadratically dependent on the absorbance in our simulations. This would result in increasing variance as absorbance increases. We used the formula <em>y</em><sup><em>α</em></sup><em>σ</em><sup>2</sup>, where <em>y</em> is the simulated absorbance, <em>α</em> = 1 for the linear variance, and <em>α</em> = 2 for the quadratic variance [<a href="#pone.0198528.ref010" class="ref-tip">10</a>].</p> <a id="article1.body1.sec2.sec5.p3" name="article1.body1.sec2.sec5.p3" class="link-target"></a><p>Comparison with the AUC method was conducted for three scenarios, 1) with data covering the whole sigmoidal curve, 2) with data located only at the lower tail, and 3) with data located only at the upper tail. Quadratic curves were estimated with the <em>nlsLM</em> function.</p> </div> </div> <div xmlns:plos="http://plos.org" id="section3" class="section toc-section"><a id="sec011" name="sec011" data-toc="sec011" class="link-target" title="Results"></a><h2>Results</h2> <div id="section1" class="section toc-section"><a id="sec012" name="sec012" class="link-target" title="Sigmoidal models for ELISA data"></a> <h3>Sigmoidal models for ELISA data</h3> <a id="article1.body1.sec3.sec1.p1" name="article1.body1.sec3.sec1.p1" class="link-target"></a><p>Sigmoidal models are often used to model ELISA data. To determine whether there are differences in absorbance (and thus amount of analyte) between samples, sigmoidal curves are compared for differences. The point of maximum growth (PMG) is the parameter of the sigmoidal curve most relevant to the analyte concentration. We estimated this parameter in the HIV gp140 binding ELISA dataset [<a href="#pone.0198528.ref004" class="ref-tip">4</a>]. We were able to fit a sigmoidal curve for 1027 samples out of the total 2879 samples recorded. For the remaining samples, fitting the sigmoidal curve was not possible because the data were only located at the tails of the sigmoidal curves (<a href="#pone-0198528-g002">Fig 2</a>).</p> <a class="link-target" id="pone-0198528-g002" name="pone-0198528-g002"></a><div class="figure" data-doi="10.1371/journal.pone.0198528.g002"><div class="img-box"><a title="Click for larger image" href="article/figure/image?size=medium&amp;id=10.1371/journal.pone.0198528.g002" data-doi="10.1371/journal.pone.0198528" data-uri="10.1371/journal.pone.0198528.g002"><img src="article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g002" alt="thumbnail" class="thumbnail" loading="lazy"></a><div class="expand"></div></div><div class="figure-inline-download"> Download: <ul><li><a href="article/figure/powerpoint?id=10.1371/journal.pone.0198528.g002"><div class="definition-label">PPT</div><div class="definition-description">PowerPoint slide</div></a></li><li><a href="article/figure/image?download&amp;size=large&amp;id=10.1371/journal.pone.0198528.g002"><div class="definition-label">PNG</div><div class="definition-description">larger image</div></a></li><li><a href="article/figure/image?download&amp;size=original&amp;id=10.1371/journal.pone.0198528.g002"><div class="definition-label">TIFF</div><div class="definition-description">original image</div></a></li></ul></div><div class="figcaption"><span>Fig 2. </span> Examples of successful and unsuccessful sigmoidal curve fitting.</div><p class="caption_target"><a id="article1.body1.sec3.sec1.fig1.caption1.p1" name="article1.body1.sec3.sec1.fig1.caption1.p1" class="link-target"></a><p><strong>A</strong>. Successful sigmoidal curve fit where the data cover the estimated point of maximum growth (PMG). <strong>B</strong>. Successful sigmoidal curve fit even though data are not available for the estimated PMG. <strong>C</strong>. Unsuccessful sigmoidal curve fit due to the lack of informative data for fitting the curve. Line, fitted sigmoidal curve.</p> </p><p class="caption_object"><a href="https://doi.org/10.1371/journal.pone.0198528.g002"> https://doi.org/10.1371/journal.pone.0198528.g002</a></p></div></div> <div id="section2" class="section toc-section"><a id="sec013" name="sec013" class="link-target" title="Absorbance summation is highly correlated with the estimated point of maximum growth point"></a> <h3>Absorbance summation is highly correlated with the estimated point of maximum growth point</h3> <a id="article1.body1.sec3.sec2.p1" name="article1.body1.sec3.sec2.p1" class="link-target"></a><p>We postulated that the absorbance summation (AS) is a good proxy to the analyte concentration. To test this hypothesis, we compared the AS with the estimated PMG for the 1027 samples where the PMG was estimable. A strong and clear linear relationship was observed (<a href="#pone-0198528-g003">Fig 3</a>). As the PMG increases, the AS decreases, which is expected because all absorbance values are smaller as the PMG increases (<a href="#pone-0198528-g002">Fig 2</a>). The correlation between the estimated PMG and the AS is -0.978. Also seen is the increase in variation as the PMG increases, which indicates that estimating PMG past the measured data limit decreases the accuracy.</p> <a class="link-target" id="pone-0198528-g003" name="pone-0198528-g003"></a><div class="figure" data-doi="10.1371/journal.pone.0198528.g003"><div class="img-box"><a title="Click for larger image" href="article/figure/image?size=medium&amp;id=10.1371/journal.pone.0198528.g003" data-doi="10.1371/journal.pone.0198528" data-uri="10.1371/journal.pone.0198528.g003"><img src="article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g003" alt="thumbnail" class="thumbnail" loading="lazy"></a><div class="expand"></div></div><div class="figure-inline-download"> Download: <ul><li><a href="article/figure/powerpoint?id=10.1371/journal.pone.0198528.g003"><div class="definition-label">PPT</div><div class="definition-description">PowerPoint slide</div></a></li><li><a href="article/figure/image?download&amp;size=large&amp;id=10.1371/journal.pone.0198528.g003"><div class="definition-label">PNG</div><div class="definition-description">larger image</div></a></li><li><a href="article/figure/image?download&amp;size=original&amp;id=10.1371/journal.pone.0198528.g003"><div class="definition-label">TIFF</div><div class="definition-description">original image</div></a></li></ul></div><div class="figcaption"><span>Fig 3. </span> Linear relationship between the absorbance summation (AS) and estimated point of maximum growth (PMG).</div><p class="caption_target"><a id="article1.body1.sec3.sec2.fig1.caption1.p1" name="article1.body1.sec3.sec2.fig1.caption1.p1" class="link-target"></a><p>For observations with an estimated PMG within the observable concentrations, the AS and the PMG have a clear negative correlation. The straight line is the regression line.</p> </p><p class="caption_object"><a href="https://doi.org/10.1371/journal.pone.0198528.g003"> https://doi.org/10.1371/journal.pone.0198528.g003</a></p></div></div> <div id="section3" class="section toc-section"><a id="sec014" name="sec014" class="link-target" title="In simulations, absorbance summation is better correlated with simulated point of maximum growth than its estimate or endpoint titer"></a> <h3>In simulations, absorbance summation is better correlated with simulated point of maximum growth than its estimate or endpoint titer</h3> <a id="article1.body1.sec3.sec3.p1" name="article1.body1.sec3.sec3.p1" class="link-target"></a><p>Using the 4-parameter sigmoidal model, we compared the estimated PMG, ET, and AS by simulating ELISA absorbance readings based on the estimates in the HIV gp140 binding dataset. We set equidistant log dilution (-24.0959 to -13.0959) and PMG from -18 to -9 increasing by 0.005. We also added a homogenous random normal error with mean 0 and standard deviation of 0.05004. The choice of constant variance is based on the observation that curve fitting residuals have a roughly constant variance along the fitted curve (<a href="#pone.0198528.s002">S1 Fig</a>).</p> <a id="article1.body1.sec3.sec3.p2" name="article1.body1.sec3.sec3.p2" class="link-target"></a><p>With simulated data, we fit sigmoidal curves and estimated the PMG, ET, and AS. Comparing each of the three proxies with the simulated value of the PMG revealed that even for extreme values AS has the smallest variation (<a href="#pone-0198528-g004">Fig 4</a>). A mathematical justification for the small variation of AS is described in <a href="#pone.0198528.s001">S1 Appendix</a>. The estimation of the PMG works well for about one-third of the simulations, but falls apart when the simulated PMG increases. The limit of PMG estimation is the final log dilution measured at -13.0959, beyond which the estimated PMG does not have any correlation with the simulated PMG. The ET method lacks continuity, as expected, and it also has more variability than the AS method. It is important to keep in mind that we do not need an actual estimate for PMG, we only need a proxy for which we can conduct statistical analyses to infer analyte concentration differences.</p> <a class="link-target" id="pone-0198528-g004" name="pone-0198528-g004"></a><div class="figure" data-doi="10.1371/journal.pone.0198528.g004"><div class="img-box"><a title="Click for larger image" href="article/figure/image?size=medium&amp;id=10.1371/journal.pone.0198528.g004" data-doi="10.1371/journal.pone.0198528" data-uri="10.1371/journal.pone.0198528.g004"><img src="article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g004" alt="thumbnail" class="thumbnail" loading="lazy"></a><div class="expand"></div></div><div class="figure-inline-download"> Download: <ul><li><a href="article/figure/powerpoint?id=10.1371/journal.pone.0198528.g004"><div class="definition-label">PPT</div><div class="definition-description">PowerPoint slide</div></a></li><li><a href="article/figure/image?download&amp;size=large&amp;id=10.1371/journal.pone.0198528.g004"><div class="definition-label">PNG</div><div class="definition-description">larger image</div></a></li><li><a href="article/figure/image?download&amp;size=original&amp;id=10.1371/journal.pone.0198528.g004"><div class="definition-label">TIFF</div><div class="definition-description">original image</div></a></li></ul></div><div class="figcaption"><span>Fig 4. </span> Relationship between the three proxies and simulated PMG.</div><p class="caption_target"><a id="article1.body1.sec3.sec3.fig1.caption1.p1" name="article1.body1.sec3.sec3.fig1.caption1.p1" class="link-target"></a><p>Sigmoidal curves are simulated with different point of maximum growth (PMG). Each estimated proxy is plotted against the simulatied PMG. The estimated PMG works well for values where there is more data surrounding the PMG, but variance increases when the available data are not near the PMG. The endpoint titer method results in discrete values and has a weaker relationship with the actual PMG. The absorbance summation has a strong relationship with the true PMG.</p> </p><p class="caption_object"><a href="https://doi.org/10.1371/journal.pone.0198528.g004"> https://doi.org/10.1371/journal.pone.0198528.g004</a></p></div></div> <div id="section4" class="section toc-section"><a id="sec015" name="sec015" class="link-target" title="In sample group comparisons, AS has more statistical power than PMG and ET"></a> <h3>In sample group comparisons, AS has more statistical power than PMG and ET</h3> <a id="article1.body1.sec3.sec4.p1" name="article1.body1.sec3.sec4.p1" class="link-target"></a><p>To compare the ability of the three methods for detecting differences among sigmoidal curves, we compared the statistical power of the three methods in testing groups of samples for difference. We used the 4-parameter sigmoidal model and simulated two groups of samples each with a sample size of 10. We varied the PMG in the simulations so that some are covered by the data and some are not (<a href="#pone.0198528.s003">S2 Fig</a>), and we introduced a set of PMG differences between the two groups, which represents a difference in analyte concentrations. We also varied the residual variance along the sigmoidal curve by setting the variance linearly or quadratically depending on the simulated value on the curve [<a href="#pone.0198528.ref011" class="ref-tip">11</a>]. A two-sample t test was used to compare the groups for differences and to assess the power.</p> <a id="article1.body1.sec3.sec4.p2" name="article1.body1.sec3.sec4.p2" class="link-target"></a><p>The AS method proved the most powerful in all the scenarios examined (<a href="#pone-0198528-g005">Fig 5</a>). AS has high power regardless of the settings of PMG and variance structure, whereas the powers of ET and PMG methods are highly dependent on the settings of PMG and the variance structure.</p> <a class="link-target" id="pone-0198528-g005" name="pone-0198528-g005"></a><div class="figure" data-doi="10.1371/journal.pone.0198528.g005"><div class="img-box"><a title="Click for larger image" href="article/figure/image?size=medium&amp;id=10.1371/journal.pone.0198528.g005" data-doi="10.1371/journal.pone.0198528" data-uri="10.1371/journal.pone.0198528.g005"><img src="article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g005" alt="thumbnail" class="thumbnail" loading="lazy"></a><div class="expand"></div></div><div class="figure-inline-download"> Download: <ul><li><a href="article/figure/powerpoint?id=10.1371/journal.pone.0198528.g005"><div class="definition-label">PPT</div><div class="definition-description">PowerPoint slide</div></a></li><li><a href="article/figure/image?download&amp;size=large&amp;id=10.1371/journal.pone.0198528.g005"><div class="definition-label">PNG</div><div class="definition-description">larger image</div></a></li><li><a href="article/figure/image?download&amp;size=original&amp;id=10.1371/journal.pone.0198528.g005"><div class="definition-label">TIFF</div><div class="definition-description">original image</div></a></li></ul></div><div class="figcaption"><span>Fig 5. </span> Statistical power comparison among the three methods.</div><p class="caption_target"><a id="article1.body1.sec3.sec4.fig1.caption1.p1" name="article1.body1.sec3.sec4.fig1.caption1.p1" class="link-target"></a><p>Statistical power is plotted against the PMG differences between the two comparing groups. Sigmoidal curves are simulated with different PMG, which range from within (-16.0959 and -15.0959) to outside of the measurements (-13.0959 and -11.5959), as shown in the panel columns. The error variance is either constant or changing along the curve with a linear or quadratic relationship with the values on the curve, which are shown in different panel rows. Statistical power is calculated based on the two group t test. Var, variance.</p> </p><p class="caption_object"><a href="https://doi.org/10.1371/journal.pone.0198528.g005"> https://doi.org/10.1371/journal.pone.0198528.g005</a></p></div><a id="article1.body1.sec3.sec4.p3" name="article1.body1.sec3.sec4.p3" class="link-target"></a><p>The PMG method performs reasonably well when variance is constant and when the simulated PMGs are small; <em>i</em>.<em>e</em>., well covered by data. Power decreases dramatically as variance changes or the PMG increases and the data points shift toward the lower tail of the sigmoidal curve. This has been seen in other research as well [<a href="#pone.0198528.ref003" class="ref-tip">3</a>].</p> <a id="article1.body1.sec3.sec4.p4" name="article1.body1.sec3.sec4.p4" class="link-target"></a><p>The ET method behaves largely opposite to the PMG method. Its power increases as PMG increases, which is related to the fact that data are more concentrated at the lower tail where the ET is estimated. Due to the fact that ET is estimated at the lower tail where the variance is smaller, ET power increases as the variance increases along the sigmoidal curves. Interestingly, ET has no power for small differences in PMGs, but has a sudden increase for quadratic variance. Further examination of these simulations showed that the variance of the mean differences between the two comparing sigmoidal curves starts extremely low or even at zero, and then jumps up when the curve moves to a position where the cutoff is between titers (<a href="#pone.0198528.s004">S3 Fig</a>).</p> <a id="article1.body1.sec3.sec4.p5" name="article1.body1.sec3.sec4.p5" class="link-target"></a><p>We then examined the influences of the variance of the absorbance readings and sample size on the comparison of these three methods. When variance doubled or halved, the power of all three methods increases or decreases, respectively, as expected. The pattern observed in <a href="#pone-0198528-g005">Fig 5</a> continues to apply. Large variance diminishes the power of PMG and ET quickly, while the AS power is just slightly affected (<a href="#pone.0198528.s005">S4 Fig</a>). For decreased sample size (n = 3), the effect on the statistical power is similar to that of doubled variance. These results indicate that both the ET and the PMG methods are heavily reliant on the consistency of measurements and reduced error in the absorbance readings. The greater the ‘noise’ in the readings, the greater the difficulty in detecting a difference between samples.</p> </div> <div id="section5" class="section toc-section"><a id="sec016" name="sec016" class="link-target" title="AS has similar power to AUC method in sample group comparisons"></a> <h3>AS has similar power to AUC method in sample group comparisons</h3> <a id="article1.body1.sec3.sec5.p1" name="article1.body1.sec3.sec5.p1" class="link-target"></a><p>Absorbance summation is an approximation of the area under the sigmoidal curve. Recently Yu et. al. [<a href="#pone.0198528.ref012" class="ref-tip">12</a>] proposed the use of the area under the curve (AUC) for the analysis of similar data. Their method first estimates the parameters in a curve, and then integrates the curve from the lowest concentration to the highest concentration. Since the 4-parameter sigmoidal model we used here and the 5-parameter model examined by Yu et. al. are not integrable and require numeric approximation, they recommend the use of a quadratic curve for approximation. To compare our AS method and the AUC method, we fitted a quadratic curve to our sigmoidal simulations and compared the statistical power in two-group comparisons. Although the quadratic curve does not fit the data properly, especially at the upper and lower asymptotes (<a href="#pone.0198528.s006">S5 Fig</a>), the results showed that the two methods have very similar power across different PMG and variance settings (<a href="#pone-0198528-g006">Fig 6</a>). The AUC method has slightly better power when observed data cover the PMG or are mostly located at the lower tail (PMG = -16.0959 and PMG = -14.0959), while AS method has slightly better power when data are mostly located at the upper tail of the sigmoidal curve (PMG = -24.0959).</p> <a class="link-target" id="pone-0198528-g006" name="pone-0198528-g006"></a><div class="figure" data-doi="10.1371/journal.pone.0198528.g006"><div class="img-box"><a title="Click for larger image" href="article/figure/image?size=medium&amp;id=10.1371/journal.pone.0198528.g006" data-doi="10.1371/journal.pone.0198528" data-uri="10.1371/journal.pone.0198528.g006"><img src="article/figure/image?size=inline&amp;id=10.1371/journal.pone.0198528.g006" alt="thumbnail" class="thumbnail" loading="lazy"></a><div class="expand"></div></div><div class="figure-inline-download"> Download: <ul><li><a href="article/figure/powerpoint?id=10.1371/journal.pone.0198528.g006"><div class="definition-label">PPT</div><div class="definition-description">PowerPoint slide</div></a></li><li><a href="article/figure/image?download&amp;size=large&amp;id=10.1371/journal.pone.0198528.g006"><div class="definition-label">PNG</div><div class="definition-description">larger image</div></a></li><li><a href="article/figure/image?download&amp;size=original&amp;id=10.1371/journal.pone.0198528.g006"><div class="definition-label">TIFF</div><div class="definition-description">original image</div></a></li></ul></div><div class="figcaption"><span>Fig 6. </span> Statistical power comparison between AS and AUC.</div><p class="caption_target"><a id="article1.body1.sec3.sec5.fig1.caption1.p1" name="article1.body1.sec3.sec5.fig1.caption1.p1" class="link-target"></a><p>Statistical power is plotted against the PMG differences between the two comparing groups. Sigmoidal curves are simulated with different PMG (-16.0959, -.0959 and -24.0959 for the three panel columns). The variance for each measurement of the simulated curve is either constant or changing along the curve with a linear or quadratic relationship with the measurement values on the curve in the three panel rows. Statistical power is calculated based on the two group t test. AUC is estimated based on quadratic curve fitting and integration. Var, variance.</p> </p><p class="caption_object"><a href="https://doi.org/10.1371/journal.pone.0198528.g006"> https://doi.org/10.1371/journal.pone.0198528.g006</a></p></div></div> </div> <div xmlns:plos="http://plos.org" id="section4" class="section toc-section"><a id="sec017" name="sec017" data-toc="sec017" class="link-target" title="Discussion"></a><h2>Discussion</h2><a id="article1.body1.sec4.p1" name="article1.body1.sec4.p1" class="link-target"></a><p>The advantages of the AS method are that it is both statistically sound and simple to apply. We propose that absorbance summation can serve as a simpler, and thus better, proxy for testing the difference in concentrations of an analyte than other commonly used methods. Our empirical and simulation studies show that that absorbance summation is superior to endpoint titer and sigmoidal curve estimation for testing differences between ELISA dilution curves. Although this study has focused on ELISA, the AS method that we propose here is not limited to ELISA data. It can be applied to any collection of data with a sigmoidal curve for comparing PMGs. Potential applications include growth curves, dose response curves, etc. It will be interesting to examine the application of this method in these other contexts.</p> <a id="article1.body1.sec4.p2" name="article1.body1.sec4.p2" class="link-target"></a><p>Curve fitting and associated PMG estimation, while ideal for obtaining information regarding the curve, is not always possible. Additionally, the complex computations required by this method make it difficult for researchers without access or ability to perform those computations. ET is a simple method that anyone can do, but it has inherent flaws. Since the resulting data of ET method is categorical, it violates the assumption of normality (and thus continuity) of some most commonly used statistical tests, such as the t test. As a result, this method is not desirable, particularly when the variance is not homogeneous. Finally, the method heavily relies on having small variance in measurements. The AUC method is as powerful as the AS method. However, it still involves formal model fitting and integration, which increases complexity. In addition, the parameters of quadratic curve do not have biological meanings.</p> <a id="article1.body1.sec4.p3" name="article1.body1.sec4.p3" class="link-target"></a><p>A potential issue with the AS method occurs when data is missing at certain dilutions. For example, a missing absorbance value due to operator or machine error will result in a summation smaller than expected for that sample. Imputing a value for the missing absorbance for that sample, or removing the absorbance values for that dilution from the other samples can rectify this issue. One potential imputation method would be using the average absorbance for that dilution from other samples or by fitting a sigmoidal model to estimate if possible. However, any imputation will increase complexity of the method. Moreover, imputing or removing data are both clearly less than optimal practices and carry the risk of affecting the reproducibility of the data. The AUC method is less sensitive to sporadic missing data, and it can serve as the alternative when data is missing and the investigators have the ability to perform the computation.</p> <a id="article1.body1.sec4.p4" name="article1.body1.sec4.p4" class="link-target"></a><p>Similar to AUC, the AS method does not work well for comparing curves with same PMG but different slopes at the PMG. Due to the symmetric nature of the sigmoidal curve, the AUCs are the same for curves with same PMG but different slopes. Fortunately, in most cases the same proteins are compared for different concentrations across groups so the slopes should be constant. In the case of matrix effects, the sigmoidal curve may not be symmetric and a 5-parameter sigmoidal model with an asymmetry parameter may be appropriate for fitting such data [<a href="#pone.0198528.ref013" class="ref-tip">13</a>]. We believe our method would be able to overcome this asymmetry and identify changes in the point of inflection if the asymmetry parameter is fixed or slightly varying. How to address matrix effect will be an interesting topic for future research.</p> <a id="article1.body1.sec4.p5" name="article1.body1.sec4.p5" class="link-target"></a><p>In summary, we have developed a simple, but powerful, method of absorbance summation that offers a means to compare data coming from sigmoidal curves. Both AS and AUC appear superior to endpoint titer and sigmoidal curve estimation for testing differences between ELISA dilution curves, especially when there is increased variance or the observed data lie at the lower end of the sigmoidal curve. When compared to the complexity of AUC, AS offers the benefits of simplicity. When using this method, however, the operator should focus on obtaining a complete data set, as the sporadic missing of data can complicate the analysis.</p> </div> <div xmlns:plos="http://plos.org" id="section5" class="section toc-section"><a id="sec018" name="sec018" data-toc="sec018" class="link-target" title="Supporting information"></a><h2>Supporting information</h2><div class="figshare_widget" doi="10.1371/journal.pone.0198528"></div><div class="supplementary-material"><a name="pone.0198528.s001" id="pone.0198528.s001" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s001">S1 Appendix. </a>Mathematical examination of the relationship between absorbance summation and the point of maximum growth.</h3><p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s001">https://doi.org/10.1371/journal.pone.0198528.s001</a></p><a id="article1.body1.sec5.supplementary-material1.caption1.p1" name="article1.body1.sec5.supplementary-material1.caption1.p1" class="link-target"></a><p class="postSiDOI">(DOCX)</p> </div><div class="supplementary-material"><a name="pone.0198528.s002" id="pone.0198528.s002" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s002">S1 Fig. </a>Stable variance across the range of the predicted absorbance.</h3><a id="article1.body1.sec5.supplementary-material2.caption1.p1" name="article1.body1.sec5.supplementary-material2.caption1.p1" class="link-target"></a><p class="preSiDOI">With the exception of the extremes where certain actual absorbance values are invalid (below 0 and above 4), the variances of the residuals do not vary. Red solid line, local mean; blue solid line, local one standard deviation; pink dashed line, local two standard deviation.</p> <p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s002">https://doi.org/10.1371/journal.pone.0198528.s002</a></p><a id="article1.body1.sec5.supplementary-material2.caption1.p2" name="article1.body1.sec5.supplementary-material2.caption1.p2" class="link-target"></a><p class="postSiDOI">(DOCX)</p> </div><div class="supplementary-material"><a name="pone.0198528.s003" id="pone.0198528.s003" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s003">S2 Fig. </a>Sigmoidal curves used in the simulations.</h3><a id="article1.body1.sec5.supplementary-material3.caption1.p1" name="article1.body1.sec5.supplementary-material3.caption1.p1" class="link-target"></a><p class="preSiDOI">Data were simulated within the two vertical blue lines. Red starts on the line indicate the point of maximum growth (PMG).</p> <p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s003">https://doi.org/10.1371/journal.pone.0198528.s003</a></p><a id="article1.body1.sec5.supplementary-material3.caption1.p2" name="article1.body1.sec5.supplementary-material3.caption1.p2" class="link-target"></a><p class="postSiDOI">(DOCX)</p> </div><div class="supplementary-material"><a name="pone.0198528.s004" id="pone.0198528.s004" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s004">S3 Fig. </a>Comparison of the mean difference and the mean standard deviation for the three variance assumptions.</h3><a id="article1.body1.sec5.supplementary-material4.caption1.p1" name="article1.body1.sec5.supplementary-material4.caption1.p1" class="link-target"></a><p class="preSiDOI">When the variance increases with the fitted absorbance values, the variance is smaller for the area where the endpoint titer is selected (absorbance below 0.2). The smaller variance means that the same titer is selected for the ET repeatedly and then jumps when the difference is sufficient to the next titer. This results in the mean difference between samples increasing nonlinearly. Additionally, the variance is low or even 0 and then increases when the transition to the next titer is occurring resulting in a wave pattern.</p> <p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s004">https://doi.org/10.1371/journal.pone.0198528.s004</a></p><a id="article1.body1.sec5.supplementary-material4.caption1.p2" name="article1.body1.sec5.supplementary-material4.caption1.p2" class="link-target"></a><p class="postSiDOI">(DOCX)</p> </div><div class="supplementary-material"><a name="pone.0198528.s005" id="pone.0198528.s005" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s005">S4 Fig. </a>Statistical power comparison for changes of variance and sample size.</h3><a id="article1.body1.sec5.supplementary-material5.caption1.p1" name="article1.body1.sec5.supplementary-material5.caption1.p1" class="link-target"></a><p class="preSiDOI">The simulations are the same as those for <a href="#pone-0198528-g004">Fig 4</a>, except for the noted changes in the figure.</p> <p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s005">https://doi.org/10.1371/journal.pone.0198528.s005</a></p><a id="article1.body1.sec5.supplementary-material5.caption1.p2" name="article1.body1.sec5.supplementary-material5.caption1.p2" class="link-target"></a><p class="postSiDOI">(DOCX)</p> </div><div class="supplementary-material"><a name="pone.0198528.s006" id="pone.0198528.s006" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s006">S5 Fig. </a>Quadratic model fit to data simulated with 4-parameter sigmoidal model.</h3><a id="article1.body1.sec5.supplementary-material6.caption1.p1" name="article1.body1.sec5.supplementary-material6.caption1.p1" class="link-target"></a><p class="preSiDOI">The green line is the fitted sigmoidal curve and the black curve is the fitted quadratic curve.</p> <p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s006">https://doi.org/10.1371/journal.pone.0198528.s006</a></p><a id="article1.body1.sec5.supplementary-material6.caption1.p2" name="article1.body1.sec5.supplementary-material6.caption1.p2" class="link-target"></a><p class="postSiDOI">(DOCX)</p> </div><div class="supplementary-material"><a name="pone.0198528.s007" id="pone.0198528.s007" class="link-target"></a><h3 class="siTitle title-small"><a href="article/file?type=supplementary&amp;id=10.1371/journal.pone.0198528.s007">S1 Data. </a>ELISA HIV gp140 binding data.</h3><p class="siDoi"><a href="https://doi.org/10.1371/journal.pone.0198528.s007">https://doi.org/10.1371/journal.pone.0198528.s007</a></p><a id="article1.body1.sec5.supplementary-material7.caption1.p1" name="article1.body1.sec5.supplementary-material7.caption1.p1" class="link-target"></a><p class="postSiDOI">(CSV)</p> </div></div> <div xmlns:plos="http://plos.org" class="section toc-section"><a id="ack" name="ack" data-toc="ack" title="Acknowledgments" class="link-target"></a><h2>Acknowledgments</h2> <a id="article1.back1.ack1.p1" name="article1.back1.ack1.p1" class="link-target"></a><p>We would like to thank Drs. Barton Haynes and Anthony Moody of the Duke Human Vaccine Center for their helpful suggestions and critical review of our manuscript.</p> </div><div xmlns:plos="http://plos.org" class="toc-section"><a id="references" name="references" class="link-target" data-toc="references" title="References"></a><h2>References</h2><ol class="references"><li id="ref1"><span class="order">1. </span><a name="pone.0198528.ref001" id="pone.0198528.ref001" class="link-target"></a>Rodbard D, Hutt DM. Statistical analysis of radioimmunoassays and immunoradiometric (labelled antibody) assays—A generalized weighted, iterative, least-squares method for logistic curve fitting. In: Radioimmunoassay Related Procedures in Medine. Vienna: International Atomic Energy Agency; 1974. p. 166–192. <ul class="find-nolinks"></ul></li><li id="ref2"><span class="order">2. </span><a name="pone.0198528.ref002" id="pone.0198528.ref002" class="link-target"></a>Karpinski KF, Hayward S, Tryphonas H. Statistical considerations in the quantitation of serum immunoglobulin levels using the Enzyme-Linked Immunosorbent Assay (ELISA). J Immunol Methods. 1987 Nov 5;103(2):189–94. pmid:3668258 <ul class="reflinks"><li><a href="#" data-author="Karpinski" data-cit="KarpinskiKF%2C%20HaywardS%2C%20TryphonasH.%20Statistical%20considerations%20in%20the%20quantitation%20of%20serum%20immunoglobulin%20levels%20using%20the%20Enzyme-Linked%20Immunosorbent%20Assay%20%28ELISA%29.%20J%20Immunol%20Methods.%201987%20Nov%205%3B103%282%29%3A189%E2%80%9394.%203668258" data-title="Statistical%20considerations%20in%20the%20quantitation%20of%20serum%20immunoglobulin%20levels%20using%20the%20Enzyme-Linked%20Immunosorbent%20Assay%20%28ELISA%29" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/3668258" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Statistical+considerations+in+the+quantitation+of+serum+immunoglobulin+levels+using+the+Enzyme-Linked+Immunosorbent+Assay+%28ELISA%29+Karpinski+1987" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref3"><span class="order">3. </span><a name="pone.0198528.ref003" id="pone.0198528.ref003" class="link-target"></a>Herman RA, Scherer PN, Shan G. Evaluation of logistic and polynomial models for fitting sandwich-ELISA calibration curves. J Immunol Methods. 2008;339,:245–258. pmid:18822292 <ul class="reflinks" data-doi="10.1016/j.jim.2008.09.001"><li><a href="https://doi.org/10.1016/j.jim.2008.09.001" data-author="doi-provided" data-cit="doi-provided" data-title="doi-provided" target="_new" title="Go to article"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/18822292" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Evaluation+of+logistic+and+polynomial+models+for+fitting+sandwich-ELISA+calibration+curves+Herman+2008" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref4"><span class="order">4. </span><a name="pone.0198528.ref004" id="pone.0198528.ref004" class="link-target"></a>Wang Y, Kapoor P, Parks R, Silva-Sanchez A, Alam SM, Verkoczy L, et al. HIV-1 gp140 epitope recognition is influenced by immunoglobulin DH gene segment sequence. Immunogenetics. 2016;68:145–155. pmid:26687685 <ul class="reflinks" data-doi="10.1007/s00251-015-0890-x"><li><a href="https://doi.org/10.1007/s00251-015-0890-x" data-author="doi-provided" data-cit="doi-provided" data-title="doi-provided" target="_new" title="Go to article"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/26687685" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=HIV-1+gp140+epitope+recognition+is+influenced+by+immunoglobulin+DH+gene+segment+sequence+Wang+2016" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref5"><span class="order">5. </span><a name="pone.0198528.ref005" id="pone.0198528.ref005" class="link-target"></a>Rajewsky K. Clonal selection and learning in the antibody system. Nature. 1996;381(6585):751–8. pmid:8657279 <ul class="reflinks" data-doi="10.1038/381751a0"><li><a href="https://doi.org/10.1038/381751a0" data-author="doi-provided" data-cit="doi-provided" data-title="doi-provided" target="_new" title="Go to article"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/8657279" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Clonal+selection+and+learning+in+the+antibody+system+Rajewsky+1996" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref6"><span class="order">6. </span><a name="pone.0198528.ref006" id="pone.0198528.ref006" class="link-target"></a>Kirkham PM, Mortari F, Newton JA, Schroeder HW Jr, Immunoglobulin VH clan and family identity predicts variable domain structure and may influence antigen binding. EMBO Journal. 1992;11:603–9. pmid:1537339 <ul class="reflinks"><li><a href="#" data-author="Kirkham" data-cit="KirkhamPM%2C%20MortariF%2C%20NewtonJA%2C%20SchroederHWJr%2C%20Immunoglobulin%20VH%20clan%20and%20family%20identity%20predicts%20variable%20domain%20structure%20and%20may%20influence%20antigen%20binding.%20EMBO%20Journal.%201992%3B11%3A603%E2%80%939.%201537339" data-title="Immunoglobulin%20VH%20clan%20and%20family%20identity%20predicts%20variable%20domain%20structure%20and%20may%20influence%20antigen%20binding" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/1537339" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Immunoglobulin+VH+clan+and+family+identity+predicts+variable+domain+structure+and+may+influence+antigen+binding+Kirkham+1992" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref7"><span class="order">7. </span><a name="pone.0198528.ref007" id="pone.0198528.ref007" class="link-target"></a>Schroeder HW Jr., Zemlin M, Khass M, Nguyen HH, Schelonka RL. Genetic control of DH reading frame and its effect on B-cell development and antigen-specific antibody production. Crit Rev Immunol. 2010;30(4):327–44. pmid:20666706 <ul class="reflinks"><li><a href="#" data-author="Schroeder" data-cit="SchroederHWJr.%2C%20ZemlinM%2C%20KhassM%2C%20NguyenHH%2C%20SchelonkaRL.%20Genetic%20control%20of%20DH%20reading%20frame%20and%20its%20effect%20on%20B-cell%20development%20and%20antigen-specific%20antibody%20production.%20Crit%20Rev%20Immunol.%202010%3B30%284%29%3A327%E2%80%9344.%2020666706" data-title="Genetic%20control%20of%20DH%20reading%20frame%20and%20its%20effect%20on%20B-cell%20development%20and%20antigen-specific%20antibody%20production" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/20666706" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Genetic+control+of+DH+reading+frame+and+its+effect+on+B-cell+development+and+antigen-specific+antibody+production+Schroeder+2010" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref8"><span class="order">8. </span><a name="pone.0198528.ref008" id="pone.0198528.ref008" class="link-target"></a>Khass M, Blackburn T, Burrows PD, Walter MR, Capriotti E, Schroeder HW Jr. VpreB serves as an invariant surrogate antigen for selecting immunoglobulin antigen-binding sites. Sci Immunol. 2016;1(1):aaf6628. <ul class="reflinks"><li><a href="#" data-author="Khass" data-cit="KhassM%2C%20BlackburnT%2C%20BurrowsPD%2C%20WalterMR%2C%20CapriottiE%2C%20SchroederHWJr.%20VpreB%20serves%20as%20an%20invariant%20surrogate%20antigen%20for%20selecting%20immunoglobulin%20antigen-binding%20sites.%20Sci%20Immunol.%202016%3B1%281%29%3Aaaf6628." data-title="VpreB%20serves%20as%20an%20invariant%20surrogate%20antigen%20for%20selecting%20immunoglobulin%20antigen-binding%20sites" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://scholar.google.com/scholar?q=VpreB+serves+as+an+invariant+surrogate+antigen+for+selecting+immunoglobulin+antigen-binding+sites+Khass+2016" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref9"><span class="order">9. </span><a name="pone.0198528.ref009" id="pone.0198528.ref009" class="link-target"></a>Freya A, Di Canziob J, Zurakowskib D. A statistically defined endpoint titer determination method for immunoassays. J Immunol Methods. 1998 Dec 1;221(1–2):35–41 pmid:9894896 <ul class="reflinks"><li><a href="#" data-author="Freya" data-cit="FreyaA%2C%20Di%20CanziobJ%2C%20ZurakowskibD.%20A%20statistically%20defined%20endpoint%20titer%20determination%20method%20for%20immunoassays.%20J%20Immunol%20Methods.%201998%20Dec%201%3B221%281%E2%80%932%29%3A35%E2%80%9341%209894896" data-title="A%20statistically%20defined%20endpoint%20titer%20determination%20method%20for%20immunoassays" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/9894896" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=A+statistically+defined+endpoint+titer+determination+method+for+immunoassays+Freya+1998" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref10"><span class="order">10. </span><a name="pone.0198528.ref010" id="pone.0198528.ref010" class="link-target"></a>Gelman A, Chew GL, Shnaidman M. Bayesian analysis of serial dilution assays. Biometrics. 2004;60:407–417. pmid:15180666 <ul class="reflinks" data-doi="10.1111/j.0006-341X.2004.00185.x"><li><a href="https://doi.org/10.1111/j.0006-341X.2004.00185.x" data-author="doi-provided" data-cit="doi-provided" data-title="doi-provided" target="_new" title="Go to article"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/15180666" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Bayesian+analysis+of+serial+dilution+assays+Gelman+2004" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref11"><span class="order">11. </span><a name="pone.0198528.ref011" id="pone.0198528.ref011" class="link-target"></a>O’Connell MA, Belanger BA, Haaland PD. Calibration and assay development using the four-parameter logistic model. Chemom Intell Lab Syst. 1993;20:97–114. <ul class="reflinks"><li><a href="#" data-author="O%E2%80%99Connell" data-cit="O%E2%80%99ConnellMA%2C%20BelangerBA%2C%20HaalandPD.%20Calibration%20and%20assay%20development%20using%20the%20four-parameter%20logistic%20model.%20Chemom%20Intell%20Lab%20Syst.%201993%3B20%3A97%E2%80%93114." data-title="Calibration%20and%20assay%20development%20using%20the%20four-parameter%20logistic%20model" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://scholar.google.com/scholar?q=Calibration+and+assay+development+using+the+four-parameter+logistic+model+O%E2%80%99Connell+1993" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref12"><span class="order">12. </span><a name="pone.0198528.ref012" id="pone.0198528.ref012" class="link-target"></a>Yu X, Gilbert PB, Hioe CE, Zolla-Pazner S, Self SG. Statistical approaches to analyzing HIV-1 neutralizing antibody assay data. Stat Biopharm Res. 2014;4:1–13. <ul class="reflinks"><li><a href="#" data-author="Yu" data-cit="YuX%2C%20GilbertPB%2C%20HioeCE%2C%20Zolla-PaznerS%2C%20SelfSG.%20Statistical%20approaches%20to%20analyzing%20HIV-1%20neutralizing%20antibody%20assay%20data.%20Stat%20Biopharm%20Res.%202014%3B4%3A1%E2%80%9313." data-title="Statistical%20approaches%20to%20analyzing%20HIV-1%20neutralizing%20antibody%20assay%20data" target="_new" title="Go to article in CrossRef"> View Article </a></li><li><a href="http://scholar.google.com/scholar?q=Statistical+approaches+to+analyzing+HIV-1+neutralizing+antibody+assay+data+Yu+2014" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li><li id="ref13"><span class="order">13. </span><a name="pone.0198528.ref013" id="pone.0198528.ref013" class="link-target"></a>Cumberland WN, Fong Y, Yu X, Defawe O, Frahm N, De Rosa S. Nonlinear Calibration Model Choice between the Four and Five Parameter Logistic Models. J Biopharm Stat. 2015; 25(5): 972–983. pmid:24918306 <ul class="reflinks" data-doi="10.1080/10543406.2014.920345"><li><a href="https://doi.org/10.1080/10543406.2014.920345" data-author="doi-provided" data-cit="doi-provided" data-title="doi-provided" target="_new" title="Go to article"> View Article </a></li><li><a href="http://www.ncbi.nlm.nih.gov/pubmed/24918306" target="_new" title="Go to article in PubMed"> PubMed/NCBI </a></li><li><a href="http://scholar.google.com/scholar?q=Nonlinear+Calibration+Model+Choice+between+the+Four+and+Five+Parameter+Logistic+Models+Cumberland+2015" target="_new" title="Go to article in Google Scholar"> Google Scholar </a></li></ul></li></ol></div> <div class="ref-tooltip"> <div class="ref_tooltip-content"> </div> </div> </div> </div> </div> </section> <aside class="article-aside"> <!--[if IE 9]> <style> .dload-xml {margin-top: 38px} </style> <![endif]--> <div class="dload-menu"> <div class="dload-pdf"> <a href="/plosone/article/file?id=10.1371/journal.pone.0198528&type=printable" id="downloadPdf" target="_blank">Download PDF</a> </div> <div data-js-tooltip-hover="trigger" class="dload-hover">&nbsp; <ul class="dload-xml" data-js-tooltip-hover="target"> <li><a href="/plosone/article/citation?id=10.1371/journal.pone.0198528" id="downloadCitation">Citation</a></li> <li><a href="/plosone/article/file?id=10.1371/journal.pone.0198528&type=manuscript" id="downloadXml">XML</a> </li> </ul> </div> </div> <div class="aside-container"> <div class="print-article" id="printArticle" data-js-tooltip-hover="trigger"> <a href="#" onclick="window.print(); return false;" class="preventDefault" id="printBrowser">Print</a> </div> <div class="share-article" id="shareArticle" data-js-tooltip-hover="trigger"> Share <ul data-js-tooltip-hover="target" class="share-options" id="share-options"> <li><a href="https://www.reddit.com/submit?url=https%3A%2F%2Fdx.plos.org%2F10.1371%2Fjournal.pone.0198528" id="shareReddit" target="_blank" title="Submit to Reddit"><img src="/resource/img/icon.reddit.16.png" width="16" height="16" alt="Reddit">Reddit</a></li> <li><a href="https://www.facebook.com/share.php?u=https%3A%2F%2Fdx.plos.org%2F10.1371%2Fjournal.pone.0198528&t=Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard" id="shareFacebook" target="_blank" title="Share on Facebook"><img src="/resource/img/icon.fb.16.png" width="16" height="16" alt="Facebook">Facebook</a></li> <li><a href="https://www.linkedin.com/shareArticle?url=https%3A%2F%2Fdx.plos.org%2F10.1371%2Fjournal.pone.0198528&title=Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard&summary=Checkout this article I found at PLOS" id="shareLinkedIn" target="_blank" title="Add to LinkedIn"><img src="/resource/img/icon.linkedin.16.png" width="16" height="16" alt="LinkedIn">LinkedIn</a></li> <li><a href="https://www.mendeley.com/import/?url=https%3A%2F%2Fdx.plos.org%2F10.1371%2Fjournal.pone.0198528" id="shareMendeley" target="_blank" title="Add to Mendeley"><img src="/resource/img/icon.mendeley.16.png" width="16" height="16" alt="Mendeley">Mendeley</a></li> <li><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fdx.plos.org%2F10.1371%2Fjournal.pone.0198528&text=%23PLOSONE%3A%20Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard" target="_blank" title="share on Twitter" id="twitter-share-link"><img src="/resource/img/icon.twtr.16.png" width="16" height="16" alt="Twitter">Twitter</a></li> <li><a href="mailto:?subject=Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard&body=I%20thought%20you%20would%20find%20this%20article%20interesting.%20From%20PLOS ONE:%20https%3A%2F%2Fdx.plos.org%2F10.1371%2Fjournal.pone.0198528" id="shareEmail" rel="noreferrer" aria-label="Email"><img src="/resource/img/icon.email.16.png" width="16" height="16" alt="Email">Email</a></li> <script src="/resource/js/components/tweet140.js" type="text/javascript"></script> </ul> </div> </div>   <!-- Crossmark 2.0 widget --> <script src="https://crossmark-cdn.crossref.org/widget/v2.0/widget.js"></script> <a aria-label="Check for updates via CrossMark" data-target="crossmark"> <img alt="Check for updates via CrossMark" width="150" src="https://crossmark-cdn.crossref.org/widget/v2.0/logos/CROSSMARK_BW_horizontal.svg"> </a> <!-- End Crossmark 2.0 widget --> <div class="aside-container collections-aside-container"><!-- React Magic --></div> <div class="skyscraper-container"> <div class="title">Advertisement</div> <!-- DoubleClick Ad Zone --> <div class='advertisement' id='div-gpt-ad-1458247671871-1' style='width:160px; height:600px;'> <script type='text/javascript'> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458247671871-1'); }); </script> </div> </div> <div class="subject-areas-container"> <h3>Subject Areas <div id="subjInfo">?</div> <div id="subjInfoText"> <p>For more information about PLOS Subject Areas, click <a href="https://github.com/PLOS/plos-thesaurus/blob/master/README.md" target="_blank" title="Link opens in new window">here</a>.</p> <span class="inline-intro">We want your feedback.</span> Do these Subject Areas make sense for this article? Click the target next to the incorrect Subject Area and let us know. Thanks for your help! </div> </h3> <ul id="subjectList"> <li> <a class="taxo-term" title="Search for articles about Curve fitting" href="/plosone/search?filterSubjects=Curve+fitting&filterJournals=PLoSONE&q=">Curve fitting</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Curve fitting"><p class="taxo-explain">Is the Subject Area <strong>"Curve fitting"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about Enzyme-linked immunoassays" href="/plosone/search?filterSubjects=Enzyme-linked+immunoassays&filterJournals=PLoSONE&q=">Enzyme-linked immunoassays</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Enzyme-linked immunoassays"><p class="taxo-explain">Is the Subject Area <strong>"Enzyme-linked immunoassays"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about HIV" href="/plosone/search?filterSubjects=HIV&filterJournals=PLoSONE&q=">HIV</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="HIV"><p class="taxo-explain">Is the Subject Area <strong>"HIV"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about Simulation and modeling" href="/plosone/search?filterSubjects=Simulation+and+modeling&filterJournals=PLoSONE&q=">Simulation and modeling</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Simulation and modeling"><p class="taxo-explain">Is the Subject Area <strong>"Simulation and modeling"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about Antibodies" href="/plosone/search?filterSubjects=Antibodies&filterJournals=PLoSONE&q=">Antibodies</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Antibodies"><p class="taxo-explain">Is the Subject Area <strong>"Antibodies"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about Binding analysis" href="/plosone/search?filterSubjects=Binding+analysis&filterJournals=PLoSONE&q=">Binding analysis</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Binding analysis"><p class="taxo-explain">Is the Subject Area <strong>"Binding analysis"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about Statistical data" href="/plosone/search?filterSubjects=Statistical+data&filterJournals=PLoSONE&q=">Statistical data</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Statistical data"><p class="taxo-explain">Is the Subject Area <strong>"Statistical data"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> <li> <a class="taxo-term" title="Search for articles about Tyrosine" href="/plosone/search?filterSubjects=Tyrosine&filterJournals=PLoSONE&q=">Tyrosine</a> <span class="taxo-flag">&nbsp;</span> <div class="taxo-tooltip" data-categoryname="Tyrosine"><p class="taxo-explain">Is the Subject Area <strong>"Tyrosine"</strong> applicable to this article? <button id="noFlag" data-action="remove">Yes</button> <button id="flagIt" value="flagno" data-action="add">No</button></p> <p class="taxo-confirm">Thanks for your feedback.</p> </div> </li> </ul> </div> <div id="subjectErrors"></div> </aside> </div> </main> <footer id="pageftr"> <div class="row"> <div class="block x-small"> <ul class="nav nav-secondary"> <li class="ftr-header"><a href="https://plos.org/our-journals/">Publications</a></li> <li><a href="/plosbiology/" id="ftr-bio">PLOS Biology</a></li> <li><a href="/climate/" id="ftr-climate">PLOS Climate</a></li> <li><a href="/complexsystems/" id="ftr-complex-systems">PLOS Complex Systems</a></li> <li><a href="/ploscompbiol/" id="ftr-compbio">PLOS Computational Biology</a></li> <li><a href="/digitalhealth/" id="ftr-digitalhealth">PLOS Digital Health</a></li> <li><a href="/plosgenetics/" id="ftr-gen">PLOS Genetics</a></li> <li><a href="/globalpublichealth/" id="ftr-globalpublichealth">PLOS Global Public Health</a></li> </ul> </div> <div class="block x-small"> <ul class="nav nav-secondary"> <li class="ftr-header">&nbsp;</li> <li><a href="/plosmedicine/" id="ftr-med">PLOS Medicine</a></li> <li><a href="/mentalhealth/" id="ftr-mental-health">PLOS Mental Health</a></li> <li><a href="/plosntds/" id="ftr-ntds">PLOS Neglected Tropical Diseases</a></li> <li><a href="/plosone/" id="ftr-one">PLOS One</a></li> <li><a href="/plospathogens/" id="ftr-path">PLOS Pathogens</a></li> <li><a href="/sustainabilitytransformation/" id="ftr-sustainabilitytransformation">PLOS Sustainability and Transformation</a></li> <li><a href="/water/" id="ftr-water">PLOS Water</a></li> </ul> </div> <div class="block xx-small"> <ul class="nav nav-tertiary"> <li> <a href="https://plos.org" id="ftr-home">Home</a> </li> <li> <a href="https://blogs.plos.org" id="ftr-blog">Blogs</a> </li> <li> <a href="https://collections.plos.org/" id="ftr-collections">Collections</a> </li> <li> <a href="mailto:webmaster@plos.org" id="ftr-feedback">Give feedback</a> </li> <li> <a href="/plosone/lockss-manifest" id="ftr-lockss">LOCKSS</a> </li> </ul> </div> <div class="block xx-small"> <ul class="nav nav-primary"> <li><a href="https://plos.org/privacy-policy" id="ftr-privacy">Privacy Policy</a></li> <li><a href="https://plos.org/terms-of-use" id="ftr-terms">Terms of Use</a></li> <li><a href="https://plos.org/advertise/" id="ftr-advertise">Advertise</a></li> <li><a href="https://plos.org/media-inquiries" id="ftr-media">Media Inquiries</a></li> <li><a href="https://plos.org/contact" id="ftr-contact">Contact</a></li> </ul> </div> </div> <div class="row"> <p> <img src="/resource/img/logo-plos-footer.png" alt="PLOS" class="logo-footer"/> <span class="footer-non-profit-statement">PLOS is a nonprofit 501(c)(3) corporation, #C2354500, based in California, US</span> </p> <div class="block"> </div> </div> <script src="/resource/js/global.js" type="text/javascript"></script> </footer> <script type="text/javascript"> var ArticleData = { doi: '10.1371/journal.pone.0198528', title: '<article-title xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">Absorbance summation: A novel approach for analyzing high-throughput ELISA data in the absence of a standard<\/article-title>', date: 'Jun 08, 2018' }; </script> <script src="/resource/js/components/show_onscroll.js" type="text/javascript"></script> <script src="/resource/js/components/pagination.js" type="text/javascript"></script> <script src="/resource/js/vendor/spin.js" type="text/javascript"></script> <script src="/resource/js/pages/article.js" type="text/javascript"></script> <script src="/resource/js/pages/article_references.js" type="text/javascript"></script> <script src="/resource/js/pages/article_sidebar.js" type="text/javascript"></script> <script src="/resource/js/vendor/foundation/foundation.dropdown.js" type="text/javascript"></script> <script src="/resource/js/components/table_open.js" type="text/javascript"></script> <script src="/resource/js/components/figshare.js" type="text/javascript"></script> <script src="/resource/js/vendor/jquery.panzoom.min.js" type="text/javascript"></script> <script src="/resource/js/vendor/jquery.mousewheel.js" type="text/javascript"></script> <script src="/resource/js/components/lightbox.js" type="text/javascript"></script> <script src="/resource/js/pages/article_body.js" type="text/javascript"></script> <!-- This file should be loaded before the renderJs, to avoid conflicts with the FigShare, that implements the MathJax also. --> <!-- mathjax configuration options --> <!-- more can be found at http://docs.mathjax.org/en/latest/ --> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ "HTML-CSS": { scale: 100, availableFonts: ["STIX","TeX"], preferredFont: "STIX", webFont: "STIX-Web", linebreaks: { automatic: false } }, jax: ["input/MathML", "output/HTML-CSS"] }); </script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=MML_HTMLorMML"></script> <div class="reveal-modal-bg"></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10