W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert...

9

Click here to load reader

Transcript of W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert...

Page 1: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42

journa l homepage: www. int l .e lsev ierhea l th .com/ journa ls /cmpb

W3MAMCAT: A world wide web based tool for mammillaryand catenary compartmental modeling and expertsystem distinguishability

Solomon Russell, Joseph J. DiStefano III ∗

Biocybernetics Laboratory, Departments of Computer Science and Medicine, University of California Los Angeles UCLA, 4711K BoelterHall, Los Angeles, CA 90095-1596, USA

a r t i c l e i n f o

Article history:

Received 6 April 2005

a b s t r a c t

W3MAMCAT is a new web-based and interactive system for building and quantifying the

parameters or parameter ranges of n-compartment mammillary and catenary model struc-

Received in revised form 13

December 2005

Accepted 13 March 2006

Keywords:

Mathematical model

Exponential-sum model

Kinetics

Parameter estimation

Identifiability

Unidentifiable parameter intervals

tures, with input and output in the first compartment, from unstructured multiexponential

(sum-of-n-exponentials) models. It handles unidentifiable as well as identifiable models

and, as such, provides finite parameter interval solutions for unidentifiable models, whereas

direct parameter search programs typically do not. It also tutorially develops the theory of

model distinguishability for same order mammillary versus catenary models, as did its desktop

application predecessor MAMCAT+. This includes expert system analysis for distinguishing

mammillary from catenary structures, given input and output in similarly numbered com-

partments. W3MAMCAT provides for universal deployment via the internet and enhanced

application error checking. It uses supported Microsoft technologies to form an extensi-

ble application framework for maintaining a stable and easily updatable application. Most

important, anybody, anywhere, is welcome to access it using Internet Explorer 6.0 over the

internet for their teaching or research needs. It is available on the Biocybernetics Laboratory

website at UCLA: www.biocyb.cs.ucla.edu.

© 2006 Elsevier Ireland Ltd. All rights reserved.

1. Introduction, computational methodsand theory

In compartmental modeling, quantification of model param-eters is typically part of the modeling process. Under suitableidentifiability conditions [1], some or all of these parame-ters, namely the rate constants kij and equivalent distribu-tion volumes Vi, might be estimated directly from kineticinput–output data, using graphical compartmental modelingsoftware like SAAMII [2], which normally implements the solu-tion of the model differential equations (ODEs) in the back-ground, and fits the model outputs to the data, or ADAPTII

∗ Corresponding author. Tel.: +1 310 825 7482; fax: +1 310 825-2273.E-mail address: [email protected] (J.J. DiStefano III).

[3], which requires user coding of the ODEs. On the otherhand, it might be desirable or convenient to first fit a mul-tiexponential model of the form y(t) = A1eL1t + A2eL2t + · · · +AneLnt to the data, using the same programs [2,3], or simplersoftware designed specifically for multiexponentials, such asW3DIMSUM [4]. With this approach, some kij, i.e. the rate con-stant to compartment i from compartment j, and/or the Vi—orcombinations of the kijs and Vis (microparameters) of a mul-ticompartmental model, are generally derivable algebraicallyfrom the multiexponential model coefficients and exponents(the Ais and Lis), i.e. the macroparameters [5,6]. W3MAMCATis an expert system web application developed primarily forquantifying microparameters from macroparameters, for lin-

0169-2607/$ – see front matter © 2006 Elsevier Ireland Ltd. All rights reserved.doi:10.1016/j.cmpb.2006.03.007

Page 2: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42 35

ear compartmental mammillary or catenary models of order n,with input and output in compartment 1. W3MAMCAT is not,however, constrained by identifiability conditions; it funda-mentally provides ranges and range variabilities for all uniden-tifiable parameters of these model classes, as well as estimatesand their variabilities for identifiable ones [7,8], a significantadvantage over programs like SAAMII and ADAPTII for thisclass of interval identifiable models [1].

W3MAMCAT is based on three earlier UCLA BiocyberneticsLab desktop MAMCAT applications [1,9–11]. It combines theirfunctionality while allowing for much greater flexibility anduniversal deployment as a web application, with correspond-ing universal deployment of updates. Like the latest desk-top version [12], called MAMCAT+, W3MAMCAT also includesproactive help and the expert system described in [10], whichtutorially develops the theory of model distinguishability of sameorder mammillary and catenary models, with input and out-put in similarly numbered compartments.

In our hands, all versions of MAMCAT have been effectivetools for teaching and research, but its maintainability overtime has decreased as previous technologies have becomeobsolete. For example, the most recent version was developedin Visual Studio C++ Version 1.0, on the Windows 3.1 operatingsystem. This version is no longer supported by Microsoft, andit is incompatible with the latest versions of Microsoft C++development environments. Enhancements and changes toexisting code have not been feasible without reverting backtssbihctw

dmtsiIrhlMtuH(p

2a

AtW

machine where the executable is located, the simplestparadigm for programming. Adapting an application for useacross the web first requires the clear delineation of the pre-sentation layer and the computational layer. What parts shouldbe run on the client versus the server? The answer dependson factors like security, reliability and application speed,among others. With the client–server model, application codecan be executed on either the client or the server and, forW3MAMCAT, we chose to allocate the compartmental mod-eling computations to the client, by downloading this compu-tational layer code from the server to the client, as a DLL. Thisleaves the remaining functionality, the catenary–mammillarydistinguishability expert system, for running on the server, ina traditional webpage design. Doing the math on the clientrather than the server CPU minimizes the probability of over-loading the server during heavy demand times. Running thecomputations on the client also allows for offline computationafter initial download from the server. After the DLL is down-loaded, it is registered as a COM object in Internet Explorer, sothere is no need for any requests from the server for the mod-eling functionality of W3MAMCAT. The expert system needslittle computational power, so housing this part of the appli-cation over a series of webpages makes it a rational choice.

Another challenge in W3MAMCAT development was savingand loading the input data, originally created as a text file withsuffix .mcp in a special format for MAMCAT+ [12]. Loading adata file requires dynamic creation of HTML from the .mcp file.

o the now obsolete development environment, which haseverely hindered further development. Earlier versions alsouffer from the fact that, as desktop applications, they cane used only on those computers with the software locally

nstalled. Development of the entirely new version describedere, W3MAMCAT, was motivated by these limitations and theoncept-goal that MAMCAT is meant to be a readily accessibleeaching and research tool for students and researchersorldwide.

W3MAMCAT overcomes these limitations using supportedevelopment technologies plus the world wide web as aedium for quick and flexible deployment of the applica-

ion and updates. We currently use it effortlessly, for teaching,elf-study and research—via wired and wireless connections,n homes, and in classrooms, study halls and labs at UCLA.t was developed so that any internet-connected computerunning Windows, with the Internet Explorer 6.0 browser origher installed, can run the application as a dynamic link

ibrary (DLL), which takes advantage of the Component Objectodel (COM). The application DLL is downloaded and regis-

ered as a COM Object on the client machine. The graphicalser interface (GUI) employs standard web technologies ofypertext Markup Language (HTML) and Cascading Style Sheets

CSS) which load the COM object. The control flow is accom-lished by the JavaScript scripting language.

. Challenges of converting the desktoppplication for the web

major difficulty was incorporating the server–client model,he basis for remote, interactive modeling with the new

3MAMCAT. Typical desktop applications are run on the

Dynamic HTML (DHTML) does allow pages to appear animatedupon changes in user input. However, DHTML is made up of acombination of HTML, CSS and JavaScript—all client side tech-nologies, and there is no support of client side file operations.To load a data file, there must be a server side script whichreceives the data file, parses through it, and returns the HTMLpage with the appropriate data included. Saving data to a filepresents a problem because Internet Explorer Objects cannotbe written to the client machine. Thus, for a file to be saved inW3MAMCAT, the users must manually copy the data contentsfrom their browser and paste it into a file. We consider this aminor inconvenience until a better solution is found.

Presentation of a web application in multimedia form alsodiffers substantially from that of a desktop application, andthis too limited some functionality. While dynamic graph-ical technologies are continually becoming web standards,there remain problems when incorporating them into web-pages. Most current technologies are not fully supported byall browsers. For example, some require plug-ins to be dis-played on even the most common browsers. To gain widestavailability, W3MAMCAT was developed to run on any MS Win-dows based machine with the Internet Explorer Version 6.0or greater browser. This limited current functionality of theapplication, but not severely. While MAMCAT+ has aural signalprompts associated with some functions, W3MAMCAT cur-rently does not, because there is no standard way of producingevent-driven sound from a browser.

Implementing the graphical user interface (GUI) inW3MAMCAT also was a big challenge, from the standpoint ofapplication control flow between server and client, and userfriendliness. The GUI in the earlier desktop version was laidout over several views, with model specifications and resultsdisplayed over several pages, like a notebook. A user could go

Page 3: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

36 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42

back and forth from specifications to different sets of results,but it was found to be cumbersome. For the web, it is preferableto have all modeling results on one page, primarily because aCOM object persists only on the page it is introduced. Thus,W3MAMCAT was designed with all model specifications andresults on a single page, with a navigation bar placed on theleft side of this page. To find a desired result, the user needsonly to click on the desired section to be viewed, via DHTMLfunctionality.

3. Detailed description of softwaretechnologies

The Glossary includes expanded technical explanations ofthese software technologies.

3.1. The Component Object Model (COM)

COM is a Microsoft specification that enables modular pro-gramming, flexible object-oriented design, and provides foreasy upgradeability. Our implementation of W3MAMCAT isdone with maximum use of earlier MAMCAT+ code. Thecoclass (binary functionality of the COM object) was writ-ten with only minor revisions to the C++ code in MAMCAT+.The interface of the Internet COM Object was specified usingthe Microsoft Interface Definition Language (IDL). The IDL file Fig. 1 – W3MAMCAT flowchart.

JavaScript in the application acts as the ‘glue’ between theHTML and the C++ coded COM object. W3MAMCAT also takesadvantage of JavaScript functionality to proactively check datainput errors before attempting to perform model calculations.This saves CPU time by avoiding useless calculations.

JavaScript also allows for saving specification and resultsdata for subsequent retrieval. When the save button (Fig. 2) isclicked, W3MAMCAT checks that input parameters are consis-tent with the current output. If so, it then opens a new HTMLpage containing data in .mcp format which the user can thenmanually cut and paste on their local computer.

3.4. PERL/Common Gateway Interface (CGI)

To load a file into an application, the file must be passed,opened and parsed. The parsed data must then be displayedvia the user interface. While DHTML is widely used through-out W3MAMCAT, file operations cannot be performed on theclient. Whenever the W3MAMCAT webpage is loaded, the CGIscript checks to see if a file is also being passed. If so, it opensthe file, parses it, and returns HTML with the appropriatemodel values included, otherwise it returns the basic HTML

was then compiled to create the Type Library. This librarystores information about all the interfaces supported by theCOM object. The differing syntaxes for creating a COM object,while not difficult, are often tedious with complicated applica-tions. Microsoft provides Active Template Library (ATL) with itsVisual Studio software, which automates much of the code forcreating a COM object. Once created and loaded into a clientbrowser (Internet Explorer 6.0 for W3MAMCAT), using a uniqueidentifier, it is registered in the client environment as a validobject.

3.2. Hypertext Markup Language (HTML)/CascadingStyle Sheets (CSS)

The presentation layer of W3MAMCAT was developed usingboth HTML and CSS. COM objects were loaded into InternetExplorer using the <OBJECT> tag. In the <OBJECT> tag, theCOM object is loaded using a probabilistically unique 20 placealphanumeric identifier, a handle by which it is referred to inthe page, and a location.

3.3. JavaScript

JavaScript defines the flow of control in W3MAMCAT (Fig. 1).When elements on a W3MAMCAT page are selected, corre-sponding JavaScript code is called for the appropriate action tobe taken. For example, to adjust the number of significant dig-its in model specifications (Fig. 2), a variable is set in JavaScriptto display it in Internet Explorer.

When model calculations are performed, the embeddedJavaScript passes them to the COM component. The COMobject performs the requisite operations, the results arepassed back to JavaScript, converted to HTML and displayed.

Fig. 2 – The SAVE button, produces a web page to which textmust be copied and manually saved on the client machine.

Page 4: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42 37

page. To parse the file, the CGI script calls another Perl script,cgi-lib.pl [13].

4. Typical program runs

4.1. Case study

We show here the seven simple steps for preparing and cal-culating parameter bounds for a 2-compartment mammillarycompartmental model, given a 2-exponential output modely(t) = 5e−t + e−0.05t, already fitted to kinetic data (adapted fromref. [7]). As is common in kinetic data analysis, the output dataare expressed in normalized form, as percent of the injecteddose per volume (%dose/ml) of the measured compartment.The implied input is impulsive here, into compartment 1, andthe output is from compartment 1. To generate variance esti-mates and a correlation matrix for resulting parameter esti-

Fccb

FMtgd(

Foad

Fig. 6 – Input section for Dose, Body Weight (BW), and outputSignificant Digits. The Dose is shown as 100 because thedata in our example are normalized to percent (%) of doseper volume (ml) of compartment 1, a common laboratorypractice in kinetic studies. Results also can be normalizedto BW by checking the box and specifying BW in the unitschosen for computations (see Fig. 7).

Fig. 7 – Different units in the pull down menus can bespecified for model computations.

Fig. 8 – To get CV estimates for the parameter bounds and a

ig. 3 – Input section for model type and number ofompartments, 2-compartment mammillary here for thease study examples. The input and measurements areoth in compartment 1.

ig. 4 – Multiexponential model parameter input section.athematical constraints for these model classes require

hat the As be greater than zero, Ls less than zero [1]. Userets an error message if a constraint is not met. The unitsisplayed are adjustable and set in a separate input region

Fig. 7).

ig. 5 – Input section for Output Type and Steady State Valuef the (e.g. endogenous) output y1 of the model, if one isvailable, e.g. to compute plasma clearance rates and othererivable organ system parameters, as shown in Fig. 13.

correlation matrix for those bounds, the number of samples,sampling times and error model variance structure must bespecified. There are five choices for error model variability,shown here with 5% CV on each data point specified by thefirst button choice, for the case study example. Sampletimes are based on triplicate measurements taken at fourdifferent times in this example.

mates, one also needs the sample times and error model forthe data. In this example, we have 12 data points (triplicatesamples at four different times: 1, 1.33, 7, 50 s), with 5% coeffi-cient of variation (%CV) data errors [7]. We solve the problemtwo ways, first with no constraints – the unidentifiable case,which provides only unidentifiable parameter ranges, and with

Page 5: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

38 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42

Fig. 9 – The value k01 = 0.1 is fixed in this example, as shown. It must be within the unconstrained upper and lower bounds,0 and 0.24, also computed automatically and shown here. User gets an error message if it is not. The constrained andunconstrained parameter variabilities are also shown, as %CVs. The constrained %CV values are zero, because k01 is givenand therefore known with zero error. The unconstrained %CV is always 0 for the greatest lower bound, but is greater than 0for all noisy data, in this case equal to ±3.12%. All parameter bounds are listed in this box. Only one is shown here, which iswhy the box is open at the bottom.

Fig. 10 – Transfer function computed for the case studyexamples.

Fig. 11 – Identifiable parameter combination valuescomputed for the case study examples. The matrixdiagonal terms kij are minus the sums of the rate constantsemanating from compartment i, i.e. the turnover rates ofeach compartment i.

a single constrained parameter value, which – for this partic-ular example, renders the model uniquely identifiable.

(Step 1) Enter the number of compartments and its type(mammillary or catenary) (Fig. 3).

(Step 2) Enter the macroparameters (As and Ls) (Fig. 4).(Step 3) Additional model specifications are entered in the

Output Type (Fig. 5), Other Info (Fig. 6) and Units (Fig. 7)sections.

(Step 4) Run the Computational Engine, by selecting RUNfrom the Menu Bar (not shown, but appearing on theleft side of the screen).

Fig. 13 – Whole Organism Parameters or their rangescomputed for the case study examples. The PR result ismaximally meaningful when a nonzero steady stateconcentration in compartment 1 is specified, otherwise itdefaults to the PCR value, as shown, for the default C1 = 1value illustrated in Fig. 6 for this example.

(Step 5) Enter Error Model Information, if available (Fig. 8).Needed to obtain parameter and range CVs and cor-relation matrix. If left blank, these statistics are notcomputed or displayed.

(Step 6) Enter known constraints on any kijs, where kij is therate constant to compartment i from compartmentj. In this example, we assume we know the leakparameter k01 = 0.1 (Fig. 9). Then press the RUN buttonagain.

(Step 7) The following results are then displayed: the modelinput–output transfer function (Fig. 10), identifiableparameter combinations (Fig. 11), kij parameter boundsand their %CV variabilities (Fig. 9 exemplifies one kij,but all are displayed and all have equal lower andupper bounds, i.e. they are identifiable), bounds oncompartment masses and volumes (Fig. 12), the whole-organism kinetic parameter bounds (Fig. 13), identifiable(constrained) model diagram display (Fig. 14), unidentifi-

Fig. 12 – Compartment Masses and Volumes for the unconstrainecomputed for the case study examples.

d model, and their ranges for the unconstrained model,

Page 6: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42 39

Fig. 14 – Quantified compartmental model diagram for the case study example for the constrained model, with allparameters identifiable, so no ranges are shown. On the screen, RED denotes identifiable (all), BLUE unidentifiableparameters (none) (shown only in black and white here).

Fig. 15 – Quantified compartmental model diagram for the case study example with no constraint on k01 specified, toillustrate the way the program diagram includes the intervals for unidentifiable parameters. In this case, all the kij and V2

are unidentifiable (interval identifiable [1]) and the finite range values are shown. Again, on the screen, RED denotesidentifiable (only V1), BLUE unidentifiable parameters (shown only in black and white here).

able (unconstrained) model diagram display (Fig. 15), andthe correlation matrix for the unconstrained param-eter bounds for the case study example (Fig. 16)[1,7,9,11,12].

Fig. 16 – The asymptotic correlation matrix for theunconstrained parameter bounds.

5. Discussion

A major feature of W3MAMCAT is universal accessibility: any-body, anywhere, can use it remotely over the internet for theirteaching, self-study or research needs. Second, we are able to,and do, provide upgrades of the software, with greatest facil-ity and at minimum cost, virtually transparently to all. Thisis without any need on our end to provide for – and on theuser end – to search for and download (for example), avail-able upgrades. We believe that these features alone justify webdeployment, rather than distributing it to individual users forlocal deployment. The only notable limitation is the need forthe browser Internet Explorer (IE), Version 6.0 or above, run-ning under a Windows OS. We do not think this is a serious lim-itation, with IE and Windows available so widely. W3MAMCATalso provides increased application error checking, and is builton supported Microsoft technologies, which form an extensi-ble application framework for maintaining a stable and easily

Page 7: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

40 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42

updatable application. Though COM has been superceded byMicrosoft .NET, Microsoft has no plans for discontinuing COMor its support.

Functionally, W3MAMCAT is designed primarily for usein quantifying the parameters or parameter ranges of n-compartment mammillary or catenary models, with inputand output in the first compartment, from multiexponen-tial models. Thus, model quantification with W3MAMCATrequires prior fitting of kinetic data to a multiexponentialmodel, which can be done with many programs, perhapsmost conveniently with W3DIMSUM also available on ourwebsite [4]. Whereas this may seem like a disadvantage atfirst, we believe it is not. Most parameter estimation packagesfor estimating model parameters more directly, e.g. SAAMII[2] or ADAPTII [3], cannot handle unidentifiable modelsdirectly without reducing the parameter space to one that isidentifiable, if this is even practical. In contrast, W3MAMCAThandles unidentifiable as well as identifiable mammillaryand catenary models, automatically yielding finite parameterinterval estimates when point estimates are infeasible. Thisinherent feature of W3MAMCAT can be quite revealing inresearch applications, especially if the user is not aware ofthe nonexistence of point estimates—i.e. not aware that themodel is unidentifiable, and also especially useful in teachingabout model identifiability issues. Unidentifiable parame-ters may even be quasiidentifiable, i.e. nearly identifiable,with close enough bounds to provide approximate point

In developing W3MAMCAT from MAMCAT+, we had toaddress technical software engineering issues like reliabil-ity, flexibility and portability, and practical concerns like easeof use, maintainability and appearance. We used supportedtechnologies, thus helping to circumvent future issues of soft-ware unsupportability and we likely increased its reliability,building our web application on an extensible framework [16],making it readily adaptable to changes and future additions.We thus avoided many problems with traditional web servicesand applications written specifically for a particular hostingenvironment. And we facilitated the process of updating andmaintaining application code because these will be done inour lab, on the server, so users will always be running the lat-est update.

W3MAMCAT could be improved by further separation ofcontent and presentation, but with considerable difficulty. CGIis used to load data from a stored file residing on the client,thus it deals with content. HTML is used to format content forthe web, thus it deals with presentation. One pitfall of usingCGI is that presentation and content become intertwined. CGIis a script that produces HTML by having its output redirectedto a requesting browser. Because the CGI script code actuallywrites the HTML, a change to either requires changing both.For example, a simple rearrangement of the model results sec-tions would require extensive change to the underlying scriptwhich produces the HTML.

There are alternatives to CGI scripting. For example, rather

estimates [1].

Both mammillary and catenary models can gener-ally have distinct, multiple solutions for identifiableparameters—termed locally identifiable solutions [14], depend-ing on the number of compartments and the number ofunknown rate constants. For example, an n-compartmentmammillary model with nonzero leak (k01) emanating onlyfrom the central compartment 1 has (n − 1)! solutions for theremaining rate constants (e.g. two distinct solutions for n = 3)[15]. A limitation of the current version of W3MAMCAT is thatit provides only one solution for identifiable models with morethan one, the solution implicitly based on the constraint thatthe exponents of the multiexponential input are ordered indecreasing magnitude [1]. We are currently working on a newalgorithm for imbedding into a new version of W3MAMCATthat will provide alternate solutions, at least for mammillarymodels of order not too large. This is a dimensionally complexproblem and, given that n can be as large as 10 in the currentversion, this new facility is likely to be limited to relativelylow-order models.

W3MAMCAT also tutorially develops the theory of modeldistinguishability of same order mammillary and catenarymodels, with input and output in similarly numberedcompartments, as did its desktop application predecessorMAMCAT+. This feature is present in earlier limited distribu-tion versions [10,11], and now it is available to anyone via theinternet. A few additional items not present in any version sofar are being planned for future versions of W3MAMCAT, inaddition to the multiple solutions module noted above. Thesemight include the correlation matrix for the constrainedbounds and variability estimates for derived parameters,e.g. mass fluxes equal to kijQ. Priorities for these will beestablished after some experience and feedback from users.

than having script that writes HTML, we might allow for scriptto be embedded in HTML in future versions of W3MAMCAT.This would allow for changes to either the script or HTML,with minimal changes to the other. Java Server Pages (JSP),Active Server Pages (ASP), and PHP: Hypertext Preprocessor(PHP) might be employed, for example. These technologiesrender web application development more compartment-alized.

6. Hardware and software specifications

Microsoft Internet Explorer Version 6.0 or greater is requiredfor use of W3MAMCAT. Internet Explorer must have JavaScriptenabled and accept the downloading of signed ActiveX compo-nents. The computer running the application also must have aWindows based operating system installed. The SAVE feature,which produces a web page formatted as a .mcp file, requiresthat any web popup blocker be disabled.

Microsoft Visual Studio C++ 6.0 was used to develop theDLL component with the Active Template Library (ATL) Appli-cation Wizard. The JavaScript was written using Dreamweaver4.0. The CGI script was written in PERL. The initial downloadrequires approximately 150 Kb of memory.

7. Online availability

W3MAMCAT is available over the world wide web via theUCLA Biocybernetics Laboratory website: http://biocyb.cs.ucla.edu/w3mamcat/w3mamcat.cgi.

Page 8: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42 41

Acknowledgements

A grant from the UCLA Academic Senate Committee onResearch provided seed funding to partially support this work.In large part, the structure and software development tools forW3MAMCAT mimic the extensible components in W3MCSim[16], the web-based Monte Carlo simulator also available onour website, developed by Kirk Bulis. We are indebted to Kirkfor his guidance, knowledge and willingness to help in designof W3MAMCAT.

r e f e r e n c e s

[1] J.J. DiStefano III, Complete parameter bounds andquasiidentifiability of some unidentifiable linear systems,Math. Biosci. 65 (1983) 51–68.

[2] P. Barrett, P.H. Barrett, B.M. Bell, C. Cobelli, H. Golde, A.Schumitzky, P. Vicini, D.M. Foster, SAAM II:simulation, analysis, and modeling software fortracer and pharmacokinetic studies, Metabolism 47 (1998)484–492.

[3] D.Z. D’Argenio, A. Schumitzky, ADAPT II User’s Guide:Pharmacokinetic/Pharmacodynamic Systems AnalysisSoftware, Biomedical Simulations Resource, Los Angeles,1997.

[4] C. Harless, J.J. DiStefano III, Automated Expert

[14] E. Walter, Identifiability of Parameteric Models, PergamonPress, 1987.

[15] C. Cobelli, A. Lepschy, G. Romanin-Jacur, Identifiabilityresults on some constrained compartmental systems,Math. Biosci. 47 (1979) 173–195.

[16] K. Bulis, J.J. DiStefano III, W3MCSim: an interactive,intuitive and pedagogically useful Monte Carlo simulator,Comput. Methods Program. Biomed. 77 (2005) 71–79.

Glossary

Software Technologies Glossary

COM: is a Microsoft specification that enables modular pro-gramming, flexible object-oriented design, and providesfor easy upgrading. A COM object is a binary component,which can be written in a variety of languages, allowingan application to swap functionality in or out or upgradewithout the need for recompilation. COM has a compo-nent, an object and an interface. The component object classis basically just the binary functionality of the module.The component object class, commonly referred to asa coclass, is written in one of the many languages sup-ported by COM. The object is the coclass instantiated;thus when the coclass is loaded into memory the callingprogram has an instance of that object. The most impor-tant and powerful part of COM is its interface. The inter-face defines both the syntax and the semantics of the

Multiexponential Biomodeling over the Internet”, Comput.Methods Program. Biomed. 79 (2005) 169–178.

[5] J.J. DiStefano III, E. Landaw, Multiexponential,multicompartmental and noncompartmental modeling:physiological data analysis and statistical considerations.Part I. Methodological and physiological interpretations,Am. J. Physiol. 246 (1984) R651–R664.

[6] C. Cobelli, J.J. DiStefano III, Parameter and structuralidentifiability concepts and ambiguities: a critical reviewand analysis, Am. J. Physiol. 239 (1980) R7–R24.

[7] R. Lindell, J.J. DiStefano III, E. Landaw, Statistical variabilityof parameter bounds for n-pool unidentifiable mammillaryand catenary compartmental models, Math. Biosci. 91(1988) 175–199.

[8] S. Vajda, J.J. DiStefano III, K. Godfrey, J. Fagarasan,Parameter space boundaries for unidentifiablecompartmental models, Math. Biosci. 97 (1989) 27–60.

[9] E. Landaw, J.J. DiStefano III, Multiexponential,multicompartmental and noncompartmental modeling:physiological data analysis and statistical considerations.Part II. Data analysis and statistical considerations, Am. J.Physiol. 246 (1984) R665–R677.

[10] A.B. Kuhn de Chizelle, J.J. DiStefano III, MAMCAT: anexpert system for distinguishing between mammillary andcatenary compartmental models, Comput. Biol. Med. 24(1994) 189–204.

[11] J.J. DiStefano III, P. Waechter, P. Abramowitz, H.T. Su, T.T.Nguyen, Expert system-knowledge based biomodeling., in:Proceeding of the IFAC Symposium on Modeling andControl in Biomedical Systems, Galveston, TX, March,1994, pp. 1–6.

[12] P. Vicini, H.T. Su, J.J. DiStefano III, Identifiability andinterval identifiability of mammillary & catenarycompartmental models with rate parameter constraints,Math. Biosci. 167 (2000) 145–161.

[13] S.E. Brenner, Perl Routines to Manipulate CGI input,cgi-lib.pl v 2.18 1999/02/23, http://cgi-lib.stanford.edu/cgi-lib/.

underlying function in the coclass. Although the inter-face defines how to use the coclass, it is totally inde-pendent of the component implementation. The imple-menting code can be changed, as long as the new com-ponent implements all the pre-existing interfaces. Inter-faces help define one of the tenets of object orienteddesign, data encapsulation. The client using the COM objectonly has use of the object by those methods defined inthe object interface. Since each interface serves as anagreement between the client and the COM object, theyare immutable once published. Once a COM object sup-ports an interface it must always support it. Microsoftcontinues to support COM, although it has been recentlyrecommending the .NET Framework for new softwaredevelopment.

HTML/Cascading Style Sheets: HTML is the language on whichall internet webpages are based. Cascading Style Sheetsare a relatively new technology, which preserve consis-tency among webpages, by helping them appear aesthet-ically uniform. CSS also add predefined artistic stylesto images, text, borders and other standard web con-structs. The combination of the two, along with a script-ing language such as JavaScript, is generally referred toas Dynamic HTML (DHTML). Although the term DHTMLis generally well known, it is not a technology, just aterm for the use of other technologies to create dynamicappearance on the web.

JavaScript: is a scripting language that facilitates interactiv-ity within webpages. Originally developed by Netscape®,it is supported on all major browsers. While HTMLallows information on the web to be displayed statically,JavaScript enables dynamic events not determined at thetime of loading the page.

PERL/Common Gateway Interface (CGI): Generally, when view-ing a webpage, the internet browser requests an HTMLpage from a web server. The page is then returned inHTML format and displayed in the browser. A CommonGateway Interface (CGI) permits a requested script to be

Page 9: W3MAMCAT: A world wide web based tool for mammillary and catenary compartmental modeling and expert system distinguishability

42 c o m p u t e r m e t h o d s a n d p r o g r a m s i n b i o m e d i c i n e 8 3 ( 2 0 0 6 ) 34–42

executed on the server, with its output passed back to thebrowser as an HTML formatted page. A CGI script can bewritten in a variety of programming languages, althoughfor the purposes of the internet, CGI is most commonlywritten in Perl. Perl is an interpreted language, meaning

there is no compilation step before its execution. WritingCGI scripts in Perl is logical because of its speed of exe-cution, which avoids long document loading time, and itsrelative ease and efficiency in creating text in the formatof HTML.