HOW ELISAWARE™ CAME TO BE
For many years VMRD customers have been requesting a software program that would support our ELISA assays. The development of such software always seemed to be a monumental, if not impossible, effort for a small, private company. At a certain point, however, I realized that we were wasting a lot of time, and creating a lot of error potential, by entering optical density (OD) values by hand. Not only did our customers need software, we needed software! This epiphany resulted in several weeks of furious code-writing on my part, the product of which was my first Microsoft®Windows® program. This creation designated “E-Z Reader,” only supported one model of reader and did nothing other than to retrieve and display ODs and export them into Microsoft® Excel®. Nevertheless, it gained something of a following in VMRD’s laboratories that persists to this day. The experience whetted my appetite for programming and I have devoured numerous books and produced several programs in the five intervening years since E-Z Reader’s debut in our labs.
With E-Z Reader’s modest success, an ELISA program no longer seemed completely out of reach. Nevertheless the constraints of my responsibilities at VMRD did not permit sufficient time to develop the software myself. My predecessor as marketing manager began the project using outsourced software engineers and I served in an advisory capacity. Development was severely hampered by language barriers and lack of continuity as programmer after programmer tackled the project. When I became marketing manager, I found that in addition to these problems, we had an identity crisis. Up to that point we had been calling the program “MyLab”—some customers may recall seeing that name in our 2003 catalog—a name that was already in use by several other companies. After much brainstorming and trademark searching I arrived, for better or for worse, at the name “ELISAWare.” The identity crisis was solved, but my new duties as marketing manager allowed me less time for programming than ever. Outsourced development had proved so chaotic that I abandoned it and the ELISAWare™ project ground to a standstill.
Public release of ELISAWare™ appeared indefinitely postponed until I met an excellent programmer named Eric Foryan. Instead of being half a world of iffy Internet connections away, Eric lived about four minutes from VMRD, and he was enthusiastic to work on the project. It was a new and refreshing experience to sit down face to face with a programmer, explain what needed to happen, and see evidence of cognition manifest in head nods instead of in instant messages in broken English. Currently working on a computer science degree at Washington State University, Eric shares my user-centric philosophy of software development. We believe that software should be self-explanatory, easy to use, and bug free. We believe that stability takes precedence over an abundance of features. We believe that the computer should work for the user, not the reverse.
As Eric became increasingly familiar with the program he became more and more concerned about the existing code. I had been pushing for rapid development, so he prefaced his request to rewrite with a number of apologies. He did not realize that he was preaching to the choir; I too had serious misgivings. After careful consideration we made a strategic decision to take the time to rewrite. It took some doing and it took some time, but the resulting program is so much better. I am sure thatELISAWare™ users will appreciate the stable and robust program that Eric’s rewrite produced. Very little of the outsourced code remains, so I am proud to say that this program is made in the USA. I thank Eric for his hard work, conscientiousness, and all the overtime he put in to meet deadlines.
What ELISAWare™ Does
The essential function of ELISAWare™ is to retrieve data from a microplate absorbance reader, display them to the user, validate the assay, calculate qualitative results from the data, display these to the user, store sample identifications and results, and report these to the user.
Data acquisition is supported for a number of readers from four different manufacturers as noted in the center bar on page two. We are not sure just how many different readers will work with the reader drivers in ELISAWare™, but based on customer input we believe that most readers used by our customers will be supported. If your reader is not supported we encourage you to let us know as we are fully capable of adding additional reader drivers and will do so based on demand. Please give us a call at 800-222-8673 or e-mail your reader brand and model firstname.lastname@example.org.
ELISAWare™ presently supports all of VMRD’s ELISA test kits. As we bring new test kits to market, we will offer ELISAWare™ upgrades to accommodate them. For reasons having to do with stability, complexity, and liability, we chose to build the test validation and calculation into the program rather than to provide some means for the user to enter validation and calculation formulas. This of course means that other manufacturer’s assays are not supported for validation and calculation. The software will retrieve ODs from any supported plate reader for any assay, but it will only perform validation and calculation on VMRD’s assays. Users may retrieve ODs for any assay by choosing the “Generic” test protocol.
In ELISAWare™, Sample IDs are entered directly on a 96-position grid representing the microplate. To prevent confusion of results, calculated results will not be displayed until sample IDs have been entered. In most cases, sample IDs can be copied from a spreadsheet and pasted into the ELISAWare™ sample ID grid. Samples can be separated into groups such as by farm, vet or client. These groups can be used to report results from a single plate, a single run or any result in any run within a specified date range. Because reporting over a date range requires that the group name used be identical in each run, ELISAWare™ keeps a registry of group names and automatically suggests matching group names as the user enters data.
Once ELISAWare™ retrieves ODs it performs validation on the results, verifying that the controls are performing within the ranges specified by the kit insert. If test verification fails, ELISAWare™ reports the reason and displays the ODs but does not calculate results. If the validation failure was caused by something such as mislabeling a well as a control when it was actually a sample, the user can re-designate the well as a sample and ELISAWare™ will automatically re-verify and calculate results if validation passes—without the necessity of re-reading the plate. In fact, the position of all the controls, blanks, and samples on the plate, or even the assay, can be changed and ELISAWare™ will re-verify and re-calculate with each change without the necessity of re-reading the plate. Another of ELISAWare’s™ handy features is the tooltip that displays the OD and calculated result when a user hovers the cursor over a sample ID, and displays the sample ID and calculated result when a user hovers the cursor over the OD.
Storing, aggregating, and displaying data is the ultimate purpose of ELISAWare™. These functions necessitate some sort of database. We chose a Microsoft® Access®database for its speed, prevalence, and reliability. Advanced users may find that they can re-locate this database, or even use multiple databases—and that the database is password protected to preserve data integrity. Ordinary users will be content with storing their runs in the database and using ELISAWare’s™ built-in reporting features. These features include the ability to generate separate reports for each group on a plate, each group in a run, or for a group across multiple runs and multiple tests. There are both client reports, which merely list sample, test date, and results, and analytical reports intended largely for internal laboratory use. These latter additionally show ODs, %I or S/P, test used, read date, etc. While we based these report layouts on customer input and our own experience, we expect that, asELISAWare™ is used in the field, customers will help us fine tune them for maximum usefulness. We look forward to your input.
From the perspective of displaying report data, we wanted ELISAWare™ to be as flexible as possible. It is frustrating when reports are only useful for printing; we thought it would be great if one could copy results out of a report and paste them into Microsoft® Word® or Excel®. It is annoying when you cannot get back into the software to check something because a report is open. We thought it would be convenient to have reports open in a separate window. A one-size-fits-all approach to report screen resolutions and font sizes always leaves some users squinting or leaning back for a more distant view. We thought it would be nice if ELISAWare’s™ reporting engine had the flexibility to adapt to different screen resolutions and font-size preferences. Sometime during all this thinking we realized that an Internet browser satisfied all of these requirements. We gave it a try and the more we used it, the better we liked it. We were careful to make the reports as adaptable to different browsers as possible, so whether you prefer Internet Explorer®, Firefox™, Opera™, or Netscape®, ELISAWare™ will display a readable and printable report in your default browser. Furthermore, since the reports are composed of simple HTML, the standard markup language of the Internet, they have great potential for importation and manipulation in many different text-editing, word-processing, and spreadsheet programs.
That concludes our tour of ELISAWare™. We think that the hard work that we have invested has resulted in a good piece of software. However, the opportunity to make itgreat software lies in your hands. There is no way that we as programmers and assay developers can think of every desirable feature or catch every bug. We encourage you to give us your input on this software—not only by reporting bugs, but by telling us how you wish the software worked. We developed it; we can change it; and we are eager to make it useful to you!