Operating systems, development tools, and professional services
for connected embedded systems

Company
About QNX
Executive Profiles
Customers
News + Events
Certifications
Industry Awards
Distributors & Resellers
QNX-in-Education
Careers
Contact us

Qualicon

Qualicon's Killer App
Stamping Out Bacterial Infection in Labs and Factories

Jeff Rohrbeck, Software Developer (Qualicon L.L.C., a DuPont Subsidiary)

Bacteria are a fact of life. They're on our hands, in the air, on every surface. So it's a given that despite our best efforts, they'll pop up where we least want them - like food manufacturing plants. However, the mere presence of bacteria in a plant doesn't necessarily threaten the finished product. The problem can be solved easily if you can just find out where the microbes are coming from.

This, of course, is easier said than done. Just ask quality assurance (QA) testers whose daily challenge is tracking down bacteria. Since conventional tests typically don't produce enough detailed information to narrow down the exact source, these methods frustrate testers by turning up many potential sources of contamination. Often companies are forced to throw away tons of raw and finished goods just to be safe.

But now there's a revolutionary new tool that will help QA testers do their jobs faster and more accurately than ever before: the RiboPrinter Microbial Characterization System from Qualicon.

Conventional testing

Since the time of Louis Pasteur, scientists have classified bacteria both by visual characteristics - size, shape, and so on - and by various metabolic factors such as the temperature and oxygen conditions under which the bacteria will grow.

However, these traditional test methods can only accurately classify bacteria down to the level of genus, a rather broad biological category. Within the category of genus there are species, subspecies, and even dozens of strains within a subspecies. To pinpoint the exact source of contamination, you often need to compare a particular subspecies, or even strain, with samples taken from various sites around the plant. And the only way to reliably identify bacteria to the level of strain is by examining the bacteria's DNA.

While DNA analysis has been possible for many years, it's simply too difficult and time-consuming to perform on a large scale. Manual DNA analysis is also labor-intensive. More importantly, since the results are technique-dependent, one set of results may not always be reliably compared to another.

Changing the pace of DNA testing

Enter the RiboPrinter Microbial Characterization System, a new QNX-based tool from Qualicon. Named for the stuff it analyzes, Deoxyribonucleic acid, or DNA as it's better known, the RiboPrinter system applies DNA "fingerprinting" (ribotyping) techniques to bacterial identification.

The product of nearly a decade of R&D, the RiboPrinter system is the first automated DNA typing system able to zero in on the genus, species, subspecies, and strain of bacteria. Better still, the developers have succeeded in compressing the process from the usual 24 to 96 hours to just 8! Graphical output from the system produces consistent, comparable results. And if that's not enough, the system is simple enough for a technician with minimal training to operate.

Dr. Vinay Chowdhry, the biochemist who pioneered the RiboPrinter system, and who now heads Qualicon, sums up its capabilities: "To use an analogy, if bacteria were people, the old test method was only able to identify someone as, say, a European. The RiboPrinter system can tell you that she is European, she is German - and she lives at house #453 on Schillerstrasse in Berlin."

Choosing QNX

The RiboPrinter system consists of a QNX workstation and the instrument itself, essentially a long box with glass doors that contains machinery for various stages of the ribotyping process. For device communications, a proprietary system called SimpleNet is used. It consists of a board connected by a high-speed serial link to various nodes in the instrument box.

Each batch is controlled by a dedicated Batch Task (BT). After a batch runs through the instrument, its BT creates an image on the hard disk. BTs communicate with the operator using a central display (managed by OI) and control the instrument through the Resource Administrator (RA), which arbitrates contention between the multiple batch tasks. RA communicates with the instrument using the Configurable Resource and Task Executive (Cortex), which serves as a hardware abstraction layer.

After the image file is created, OI automatically runs the Image Extraction program to convert the raw image into a standard RiboPrinter pattern, and stores it in the database. OI then runs the Pattern Identification program to compare the RiboPrinter pattern to known bacterial patterns and previous samples run in the instrument. Reports on the batch and samples are created by the operator can also run interactively for further examination of the data.

The RiboPrinter system's software controls an immensely complicated process. Computer-controlled pumps and syringes move fluids, motors transport samples through the system, and heaters and fans control temperature. Many aspects of the process are time-critical. For example, during the process, samples must be heated to a precise temperature and kept there for a certain period. Also, because the process takes 8 hours, the operator must be permitted to check the status of a particular batch by accessing realtime data as it is being collected. With most operating systems we considered, an operator's attempt to get to the data could disrupt the precise timing or heating processes.

For us to meet our objectives for this project, it was clear the foundation of the application - the operating system as well as the database - would have to be efficient, flexible, and reliable.

The QNX OS was recommended to us by DuPont's medical systems division, a group that uses QNX for their imaging systems. Right from the beginning QNX served us well. The first stages in our development consisted of developing automated "modules," pieces of the final system that were designed and tested separately. We started this process with QNX 2, and moved to QNX 4, which is the version in use today. QNX's extensive use of interprocess messaging allowed us to develop a flexible, extendable set of layered programs that maximized code reuse from the bench-top development to the final instrument.

Another obvious advantage of QNX was its cost - not only for the OS itself, but also for the hardware it requires. QNX allows the RiboPrinter system to be controlled by off-the-shelf PC hardware while workstations required by many types of Unix could easily have doubled our hardware costs.

A feature that greatly simplified our development was QNX's seamless peer-to-peer networking. This allowed the development modules, and later the final instruments, to share data with the rest of the network. Qualicon currently maintains a 65-node QNX network that includes RiboPrinter system workstations, test modules, reliability test fixtures, data analysis workstations, and various software development and customer service workstations. The networking feature will also us to supply our clients with networked RiboPrinter systems and analysis workstations as their data requirements grow.

Low-level control

The Raima Database Manager (RDM) from Raima Corporation was another natural choice for the database. Along with everything else that RDM provides - a database engine, a comprehensive library of C functions for database manipulation and control, the ability to seamlessly integrate front-end applications with the database engine through the function library - we chose RDM because it includes database source code. This enabled us to gain complete control over the application.

If there's one phrase to sum up RDM's contribution, it is "low-level control." RDM provides fast data access through its low-level API. Speed was important, since much of the analysis requires access to and sorting of large numbers of data records. It's hard to imagine one of the currently popular database APIs, such as structured query language (SQL), providing the kind of performance we get from the C database functions provided with Raima. Also, much of the analysis and display of the data patterns requires specialized algorithms not normally found in database query languages. Raima's C-language-API gave us the flexibility to implement these algorithms.

To test the system, we made extensive use of Raima's db_QUERY tool, which lets the user make ad hoc requests for data using SQL-like commands. When a client uses the RiboPrinter Data Analysis program, the queries are limited to those required for bacterial analysis. But during development it's important to be able to look at the database from "different angles." For example, we might want to examine the image strength for a set of batches that ran using a particular lot of chemicals. This is not something an end user would need, but could be of great value to suppliers of chemicals for use in the system.

It was certainly easier to use db_QUERY to obtain this information than to write C code for that purpose.

While we use db_QUERY to query a completed database, Raima's Interactive Database Utility (ida) was important during the process of designing the database. It enabled us to put the database into states that would occur during use, and to test, access, and modify the database at the level of individual records. We used ida extensively to test modules separately to ensure the system's software was writing to the database correctly. It was also critical for repairs when our work-in-progress application ran amok and corrupted the database.

Identifying DNA

So, just how does the RiboPrinter system identify bacteria through its DNA? Here are the steps:

  1. Getting a sample First you need a bacterial sample. Sites chosen for sampling bacteria depend on the type of facility. For example, a food processing plant might routinely sample key control points in their processing chain. Bacterial samples, usually taken by swabbing a surface, are then wiped across a petri plate where they'll grow on a special medium into visible colonies of bacteria.
    A colony is picked manually from the plate and introduced into the RiboPrinter system, where the colony is suspended in a buffered solution and then heated. The system can process eight bacterial samples as a batch in order to optimize the use of reagents and chemicals.  At this point, the operator typically creates a batch, enters data about the samples into the database, and then requests a batch start from the instrument.
  2. Preparing the DNA Everything from this point is controlled in real time by the QNX-based application. The sample is treated with a lysing agent, a chemical that dissolves the bacterial cell walls to release the DNA. This process is completed by adding a restricting enzyme that "cuts" the DNA at specific points and creates identifiable fragments.
  3. Separating and transferring DNA The DNA fragments are put into eight small wells, and "markers" - synthetic DNA of known weights - are placed in five other wells. The DNA fragments are separated according to molecular size by a process called gel electrophoresis. Through this process the fragments are electrically drawn out of the gel and transferred directly to a moving nylon membrane.
  4. Membrane processing At this point, the markers and samples are attached to the membrane in 13 distinct "lanes." The membrane then goes through a series of biochemical steps, including treatment with a chemiluminescent agent that literally lights up the DNA fragments of interest.
  5. Detection and extraction The glow of the DNA fragments is not visible to the naked eye. However the RiboPrinter system is equipped with a CCD camera that can detect very low light levels. The camera takes a digital picture of the membrane, resulting in an image of the DNA fragments and markers. The system then uses a proprietary algorithm to "understand" and normalize the image. The result is a standard DNA pattern called a RiboPrinter pattern that can be compared with other such patterns from other images.

Matching patterns

Data for each pattern consists of an array of 256 bytes, each byte corresponding to a pixel in the pattern. This data is stored in the Raima database. The system automatically analyzes the data record for each pattern, comparing it with a library of patterns of bacterial samples. If a sufficient match is found, this becomes the bacteria's "definitive identification." Next, the sample is compared against identifications created and maintained by the system's users, producing a "custom identification."

Finally, the sample is compared with all other samples processed by the machine, and either joins a "RiboGroup" with similar samples or starts a new group. This final step is called "characterization." When analysis is complete, a report is printed for the batch, or each sample individually, detailing the results of the analysis.

Eyeballing the data

Automated analysis is only one of the RiboPrinter system's capabilities. If an operator wants to examine a pattern with the naked eye, the RiboPrinter Data Analysis program can display the RiboPrinter pattern as either a grayscale image, a waveform line graph, or a combined graphic showing both at once. A pattern can be displayed along with its entered and computed data, identification, characterization, and so on, in a format much like a spreadsheet.

Eyeballing the data in this way often provides additional insights. The analysis program can also be used to search the database, sort data, group and compare patterns manually, and create reports.

Improving food safety worldwide

Market demand for the RiboPrinter system is potentially enormous. In the US alone, people consume some $500 billion of food annually. Thanks to the efforts of the Food and Drug Administration (FDA), the US Department of Agriculture (USDA), and various state and local agencies, the US enjoys one of the safest food supplies in the world. However, there is always room for improvement. Likewise, for other countries, the RiboPrinter system will be an invaluable tool to help keep food supplies safe.

The RiboPrinter system is currently in use in food manufacturing plants, research labs, and government agencies in North America and Europe, and will soon be introduced to the Far East. However, these represent just a few of the industries that can benefit from the system's unique microbial typing capabilities. Others include cosmetics manufacturing, pharmaceuticals, water quality testing, and veterinary medicine.

Armed with the RiboPrinter system, QA testers will never again have to wonder where contamination is coming from. In eight hours, they'll know.