Bar coding calibration

Abstract: For each test element being tested in a clinical analyzer, there is a corresponding calibration curve. However, the calibration curve is defined by an equation having calibration coefficients which must be imparted to the analyzer so that the appropriate results can be calculated from the measurements taken off the test element. One way of imparting the calibration coefficients is to supply them in bar code form. However, due to the complexity of the coefficients, it may not be possible to store the information in a single bar code strip. Described herein is a method of bar coding the data needed to determine a calibration curve for a test element in an analyzer by ascertaining the ranges of values for analyzer response (R) which are possible for three given concentration values (C₁, C₂, C₃), for a given assay, and assigning a high value (H) and a low value (L) for these ranges; calculating a calibration curve which correlates the analyzer response (R) to the concentration (C); determining the analyzer response (R₁, R₂, R₃) from the calibration curve which corresponds to the concentration values (C₁, C₂, C₃); calculating the bar code value (B i ) for the analyzer response (R i ) where i = 1, 2, 3 from the equation: Bi = (10 n - 1)(R i - L i )/(H i - L i ) where L i and H i are the corresponding low (L) and high (H) values for that R i ; rounding B i to the nearest integer; and supplying this value of B i for each of R i in bar code form, using n-digit decimal numbers so that only three sets of (10 n ) possibilities are needed.

Description: This invention relates to the field of methods for calibrating a clinical analyzer, and specifically to methods of passing on the data needed via a bar code to determine the calibration plot. It is conventional to calibrate a clinical analyzer for a given assay and a given lot of test elements using several known calibration liquids with known analyte concentration (or activity). These liquids are dispensed on test elements from that lot, and responses are determined. The determined responses and the known concentrations are then used to compute calibration coefficients, using a known equation, so that such coefficients and equation can be used to calculate unknown concentrations using the responses generated from patient samples, using the same lot of test elements. For example, in a glucose test, it is conventional to use the equation Concentration = A 0 + A 1 .g 1 (Response) + A 2 .g 2 (Response) K where g 1 and g 2 are cubic splines, K is an integer (usually = 2), and A 0 , A 1 and A 2 are specific calibration coefficients. (See the " Principles of Calibration " section from the E700 Operators Manual ). The equation noted above has been published in connection with the analyzers available from Eastman Kodak Company under the registered trademark of "Ektachem". For simplicity, g(R) is hereinafter referred to simply as "response", so that "R" is either the raw response or a cubic spline function of the raw response. It is also known that such calibration coefficients could be predetermined at the factory in some instances, and passed on to the purchaser of a given lot of test elements for that assay, to avoid making the user recalibrate each time a new lot is shipped. Such information is passed on in a variety of ways. The methods of passing on calibration information to the user include printed information and magnetic disks. Analyzers available from Eastman Kodak Company use a calibration diskette to transfer calibration information to users but the calibration coefficients are not included on this diskette. It is not economically feasible to send a calibration diskette with each lot of slides for each assay, so calibration coefficients are not sent to the customer via a diskette. Lot specific calibration coefficients can be transferred to the customer if the information is incorporated on the actual test element or its container. Two possible ways of transferring this information are by bar code or magnetic strip, as described in " Boehringer Mannheim detects high cholesterol with the Reflotron diagnostics system ", Directions , Vol. 6, No. 4 , fourth quarter , 1989 , or in Japanese Kokai 60/93351. With single bar code strips and magnetic strips there is a limited number of digits, for example, six, available to pass the calibration coefficients, yet the purchaser requires accurate values for the calibration coefficients A 0 , A 1 and A 2 . If one is using a six decimal digit bar code, then A 0 , A 1 and A 2 must be passed to the purchaser using only six decimal digits. The obvious solution is to specify A 0 , A 1 and A 2 using two digits each. This means that each of these must be accurately specified by using the digits 0 to 99, the maximum possible in a 2-digit decimal finite number. Prior to this invention, it has been a problem that the specific solutions of A 0 , A 1 and A 2 can vary much more than this in a given assay, say glucose, because these coefficients are a function of the cubic splines that are used to best-fit the particular chemistry of a particular lot of test elements, to the data. Yet, bar coding is by far the preferred method of conveying the information of these coefficients, since that can be easily printed on each set of test elements or the package therefor. Nevertheless, it is well-recognized that a single strip of bar-coding is insufficient to portray the parameters of the calibration coefficients, as explained in Japanese Kokai 60/93351. Of interest is the fact that the disclosure of Japanese Kokai 60/93351 attempts to solve the problem by providing, not a single strip of bar-coding, but rather, a triple strip of bar-coding, so as to allegedly increase the number of digits available to 1728 (12 3 ). However, this approach is unsatisfactory since it requires both a much larger label for triple the amount of codes, as well as a much more sophisticated bar code reader. It is therefore an object of the present invention to provide a method of determining the data for the bar code which solves the problems mentioned above, while still using only a single bar code strip. More specifically, in accordance with one aspect of the present invention, there is provided a method of providing data in bar code form useful for the determination of the calibration curve of a lot of test elements in a clinical analyzer using a finite numbering system limited to n-digit decimal numbers, the curve having the mathematical formula:- C = A 0 + A 1 .R + A 2 . (R) K where C is the predicted concentration of a sample liquid analyzed by the analyzer, R is the response actually measured in the analyzer or a cubic spline function of that response, K is a coefficient assigned to the analyzer, and A 0 , A 1 and A 2 are the calibration coefficients which can vary beyond that which can be specified using (10 n ) digits; characterized in that the method comprises the steps of:- a) ascertaining by statistical analysis the ranges of values for R which are possible for three given concentration values (C 1 , C 2 , C 3 ) for a given assay, and assigning a high value (H) and a low value (L) for these ranges; b) calculating for a given lot of the given assay, a calibration curve which correlates the analyzer response to the concentration; c) determining the analyzer responses (R 1 , R 2 , R 3 ) from the calibration curve which correspond to the concentration values (C 1 , C 2 , C 3 ); d) calculating the bar code value (B i ) for the analyzer response (R i ) where i = 1, 2, 3 from the equation:- B i = (10 n - 1)(R i - L i )/(H i - L i ) where L i and H i are the corresponding low (L) and high (H) values for that value of R i ; e) rounding the bar code value (B i ) to the nearest integer for each case where i = 1, 2, 3; and f) supplying this value of B i for each of R i in bar code form so that only three sets of (10 n ) possibilities are needed to accurately pass along data corresponding to the calibration coefficients even though each of the three coefficients can vary by more than that which can be specified using 10 n digits. Accordingly, it is an advantageous feature of the invention that a single bar code strip of only a few digits can be accurately provided with the data needed to pass on a calibration curve for a given lot of test elements, to the user. It is a related advantageous feature of the invention that a simplified bar code, and hence a simplified bar code reader, can be used to represent the data needed to calibrate for lot-specific calibration parameters. For a better understanding of the present invention, reference will now be made, by way of example only, to the accompanying drawings in which:- Figure 1 is a calibration plot of the expected concentrations for a given response in an analyzer for a given assay; Figure 2 is an enlarged, fragmentary plot of just the abscissa axis of Figure 1; Figures 3 and 4 are two-dimensional plots of a three-dimensional space of the possible values for the calibration coefficients A 0 , A 1 and A 2 for the curves shown in Figure 1; and Figure 5 is a graphical representation of the differences which exist between the two methods shown in the Examples. The invention is hereinafter described in connection with the preferred embodiments, which use a preferred bar code on preferred dried, slide test elements in a preferred clinical analyzer. In addition, the invention is useful regardless of the form of the bar code, regardless of the format or assay of the test element (or its cartridge) on which the code is placed, and regardless of the analyzer in which the test element is tested. However, the invention is most useful in a single strip bar code. Any bar code design is useful with this invention, provided that at least six digits are available, that is, three pairs, to provide three numbers which can range from 0 to 99. A particularly well-known form which provides this capability is the so-called "interleaved two of 5". The preferred test elements are the slide test elements available from Eastman Kodak Company under the trademark "Ektachem" slides, or from Fuji Photo Film Co. under the tradename "Drychem" slides. The preferred analyzers are any of the analyzers available from Eastman Kodak Company under the trademark "Ektachem" analyzer, or from Fuji Photo Film Co. under the tradename "5000". Referring to Figure 1, a representative plot is shown of a useful calibration curve, for example, for glucose. In such plots, the expected concentration C is plotted versus the response R measured on the analyzer, where R can be the raw response or a g(R) which is a cubic spline of the raw response. In general, the raw response can be any of reflectance, optical density obtained from reflectance, rate of change of these responses, or an electrical potential created by a differential measurement of ion concentration in two ion-selective electrodes. For glucose, the raw response is either in reflectance or optical density D R , where D R = log(1/reflectance). The curve can be expressed as concentration C = A 0 + A 1 .Response + A 2 .Response K where K usually has a value of 2. The two plots, one a solid line and one a dashed line, both represent a good fit to the data that can be obtained on a given lot of test elements for this assay. That is, both curves occupy approximately the same space. However, the values of the coefficients A 0 , A 1 and A 2 are drastically different for the two curves, as shown, where the response is optical density as determined by the analyzer. These values were determined as follows: If one assumes the concentration C for three calibrators of different levels is 39, 309, and 596mg/dl, as shown in Figure 1, and a corresponding response of 0.28, 1.1 and 1.5 D R respectively, it is possible to solve for A 0 , A 1 and A 2 in the three linear equations (I), (II) and (III):- 39 = A 0 + A 1 .g 1 (0.28) + A 2 .g 2 (0.28) K 309 = A 0 + A 1 .g 1 (1.1) + A 2 .g 2 (1.1) K 596 = A 0 + A 1 .g 1 (1.5) + A 2 .g 2 (1.5) K A useful method for evaluating splines is to use the spline parameters X, Y and F''(x), where F''(x) is the second derivative of the function at that x value, as described in " Industrial Applications of Cubic Spline Functions ", by N . J . Barosi , October 26 , 1973 , pp . 3-6 ( A Presentation to the 17th Annual Technical Conference of the American Society for Quality Control and the American Statistical Association ), and " Splines and Statistics ", by Edward J. Wegman and Ian W. Wright, Journal of the American Statistical Association , June 1983 , Volume 78 , Number 382 , Theory and Methods Section , pp . 351-352 . Comparative Example 1 Letting K = 2 and assuming the following spline parameters, where g 1 = g 2 :- X Y F''(x) -0.1 0.0107 0 0.15 0.2484 0 0.3 0.4155 6.54 0.7 1.422 3.05 1.2 3.633 6.65 1.4 5.012 20.17 2.0 12.51 0 one finds that A 0 , A 1 and A 2 are 19, 100.05 and 0.0025 respectively. See, for example, Figure 1 for a curve representing these values (the solid line). Predicting the densities 0.2, 0.4, 0.6, 0.8, 1.2, 1.4, 1.6, and 1.8 using these calibration coefficients, splines, and K-value one obtains concentrations of 30, 59, 111, 178, 260, 364, 502, 707, and 966 respectively. Comparative Example 2 If one changes the spline parameters so that they are X Y F''(x) -0.1 -0.0325 0 0.15 -0.0166 0 0.3 -0.0055 0.436 0.7 0.0617 0.203 1.2 0.2091 0.444 1.4 0.3011 1.35 2.0 0.8014 0 one finds that A 0 , A 1 and A 2 are 50, 1500 and 0.5571 respectively. This is the dashed curve of Figure 1. Predicting the densities 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, and 1.8 using these calibration coefficients, splines, and K-value one obtains concentrations of 30, 59, 111, 178, 260, 364, 502, 707, and 966 respectively. Thus the splines in Comparative Example 1 and Comparative Example 2 produce dramatically different calibration parameters A 0 , A 1 and A 2 , yet define the identical density-to-concentration relationship. Thus, coefficient A 1 for one curve is 1500, but for the other curve is 100.05. Clearly, any attempt to confine such variances of A 1 to two digits of from 0 to 99 in value is doomed to failure, in terms of accuracy. Similar problems exist for bar-coding the variances obtainable just from these curves for A 0 and A 2 . Still further, accuracy problems exist in bar coding the A 0 , A 1 and A 2 coefficients. This is illustrated in Comparative Example III which follows the description of the preferred embodiments. In accordance with the invention, instead of trying to fit the drastically varying A 0 , A 1 and A 2 coefficients (of which A 0 , A 1 and A 2 noted above are specific examples) into the bar code, the solution is to fit the variances in the response R into the bar code. Such variances are in fact much less, as shown by the parenthesis around R 3 in Figures 1 and 2. The following non-exhaustive examples illustrate the practice of the invention. Example 1 (Glucose) The optical densities (D R ) associated with glucose concentrations of 40, 150 and 550mg/dl were found for five different generations of glucose slides. Data on twenty-one different coatings were found, using an "Ektachem 700" analyzer. The mean and standard deviation of the optical densities at the glucose concentrations were: Concentration Mean D R Standard Deviation (SD) 40 0.3122 0.0594 150 0.7340 0.0411 550 1.4765 0.0381 It can be shown, for a given concentration, that the optical density (D R ) on a new coating will fall, in 99% of the cases, within the interval [Mean - 3SD, Mean + 3SD]. Thus, for the three fixed concentrations, new coatings must have optical densities for these concentrations which fall in the ranges: Concentration Low D R Range (L) High D R Range (H) 40 0.1399 0.4905 150 0.6106 0.8574 550 1.3623 1.5908 Therefore, for the equation (2) noted above, it is these values of H and L that are used to calculate what each B i should be for a given optical density (D R ) response at a given concentration C. More specifically, given a lot of slides, a glucose concentration C of 150mg/dl produces a D R of 0.7969 on one of the elements of the lot. It is this number which is to be approximated using a two-digit barcode. Using the D R ranges in Table II it is clear that the response of a fluid with a concentration of 150mg/dl must lie in the interval [0.6106, 0.8574]. Thus, the barcode value B 2 is B 2 = 99((0.7969 - 0.6106)/(0.8574 - 0.6106)).75 from equation (2). The approximate value found when the barcode is converted back by a customer using again an "Ektachem 700" analyzer is: R 2 (Converted) = 0.6106 + (75(0.8574 - 0.6106))/99 = 0.7976 These converted values of R 1 , R 2 and R 3 are processed by the analyzer to create a new calibration curve using three sets of equations similar to equations (I), (II) and (III) above. In this case of R 2 , an error of only 0.0007 was induced by creating and converting the barcode. If one assumes that concentrations of 40 and 550mg/dl produce D R S of 0.4587 and 1.3706, this combination of concentrations and D R S, including a D R of 0.7969 at 150mg/dl, produce a true calibration curve with calibration coefficients of: -27.475, 88.737 and 6.764 using the spline of Comparative Example 1 above and K value of 2. Now, B 1 = 99((0.4587 - 0.1399/(4.4905 - 0.1399)) = 90.02 x 90 (from equation (2)) B 3 = 99((1.3706 - 1.3623)/(1.5908 - 1.3623)) = 3.60 x 4 (from equation (2)) and therefore, R 1 (converted) = 0.1399 + ((90(0.4905 - 0.1399))/99 = 0.4586 R 3 (converted) = 1.3623 + ((4(1.5908 - 1.3623))/99 = 1.3715 Calibrating with concentrations of 40, 150 and 550mg/dl and the converted densities of 0.4586, 0.7976, and 1.3715 one obtains the "converted" calibration coefficients: -27.227, 88.422 and 6.771. From these, a new curve is drawn and the densities corresponding to the "true" concentrations set forth in Table III that follows, can be used to predict a "converted concentration". The difference between the "true" concentration and the "predicted" concentration using the "converted response" shows the error which would result from passing the above true calibration curve using the bar code which carries the response value. True Concentration Predicted Concentration Using Converted Responses Absolute Bias 30 30.06 0.06 61 60.96 -0.04 92 91.87 -0.13 123 122.79 -0.21 154 153.70 -0.30 185 184.03 -0.37 216 215.55 -0.45 247 246.48 -0.52 278 277.41 -0.59 309 308.35 -0.65 340 339.28 -0.72 371 370.22 -0.78 402 401.16 -0.84 433 432.11 -0.89 464 463.05 -0.95 495 494.00 -1.00 526 524.94 -1.06 557 555.89 -1.11 588 586.84 -1.16 619 617.80 -1.20 650 648.75 -1.25 Such biases are negligible, as is seen in Figure 5. Although this example shows an "E700" analyzer being used both to create the bar code, and to adjust the calibration curve at the customer site, that need not be the case. That is, the site analyzer can be slightly different from the one used to create the bar code, so long as the calibration mathematics is substantially the same for both types of analyzers. Thus, the bar code created on the "E700" analyzer can be used at a customer site which has an "E400" or "E500" analyzer, for example. Example 2: Blood Urea Nitrogen (BUN) The optical densities (D R ) associated with BUN concentrations of 10, 40 and 120mg/dl were found for two different generations of BUN slides. Data on sixteen different coatings were found using an "Ektachem E700". The mean and standard deviation of the optical densities at the BUN concentrations were: Concentration Mean D R Standard Deviation (SD) 10 0.3608 0.0231 40 0.7958 0.0278 120 1.8725 0.0755 It can be shown, for a given concentration, that D R on a new coating will fall within the interval [Mean - 3SD, Mean + 3SD]. Thus, for the three fixed concentrations, new coatings must have D R s for these concentrations which fall in the ranges: Concentration Low D R Range (L) High D R . Range (H) 10 0.2915 0.4301 40 0.7124 0.8792 120 1.6458 2.0991 Therefore, for the equation (2) noted above, it is these values of H and L that are used to calculate what each B i should be for a given D R response at a given concentration C. More specifically, given a lot of slides, a BUN concentration of C of 10mg/dl corresponds to a D R of 0.3756 on one of the elements of the lot. It is this number that is to be approximated using a two digit bar code. Using the D R ranges in Table V it is clear that the response of a fluid with a concentration of 10mg/dl must lie in the interval [0.2915, 0.4301]. Thus the bar code value B 1 is B 1 = 99 ((0.3756 - 0.2915)/(0.4301 - 0.2915))60 from equation (2). The approximate value found when the bar code is converted back by a customer using again an "Ektachem 700" analyzer is: R 1 (converted)=0.2915+((60(0.4301-0.2915))/99)(0.3755) In this case, an error of only 0.0001 was induced by creating and converting the bar code (an error of only 0.03%). It will be appreciated from the foregoing examples that the bar-coding of the particular response R i as a fraction of (H - L) for given values of C 1 , C 2 and C 3 , acts to bypass a passing on of the coefficients A 0 , A 1 and A 2 . A 0 , A 1 and A 2 are instead recomputed in the analyzer using the R i and C i as described above. Comparative Example III: Barcoding Calibration Parameters A 0 , A 1 and A 2 Figures 3 and 4 indicate another weakness in specifying calibration parameters rather than test element responses. In this study the following simulation was performed: Step 1) For each of the glucose concentrations in Table II, that is, 40, 150 and 550, the range listed was partitioned into ten evenly spaced densities which spanned the known density ranges for the concentration. The resulting densities for the given concentrations are listed in the Table VI below. 40mg/dl 150mg/dl 550mg/dl 0.1399 0.6106 1.3623 0.1789 0.6380 1.3877 0.2187 0.6654 1.4131 0.2568 0.6929 1.4385 0.2957 0.7203 1.4639 0.3347 0.7477 1.4892 0.3736 0.7751 1.5146 0.4126 0.8026 1.5400 0.4515 0.8300 1.5654 0.4905 0.8574 1.5908 Step 2) K was set equal to 2 and g 1 = g 2 = glucose spline from Comparative Example 1 above. Step 3) All possible combinations of densities from Table V were found where one density was chosen from each column. This resulted in one thousand sets of three densities. Step 4) One thousand calibrations were performed using the glucose concentrations 40, 150 and 550mg/dl and each set of densities found in step 3. Step 5) The one thousand sets of calibration parameters A 0 , A 1 and A 2 generated in Step 4 were recorded. Step 6) A 0 vs A 2 from each calibration parameter set found in Step 5, was plotted in Figure 3, and A 1 vs A 2 , from each calibration parameter set found in Step 5, was plotted in Figure 4. (Plotting all three parameters at the same time would require creating a three dimensional plot.) Now, if one attempted to bar code A 0 , A 1 and A 2 rather than the test element responses, one would need to specify three ranges using the same format as in Table II for A 0 , A 1 and A 2 . These ranges would be similar to the ones listed in Table VII below, determined from Figures 3 and 4: A 0 , A 1 and A 2 Low Range High Range A 0 -300 100 A 1 0 500 A 2 -60 20 When bar coding the True Calibration Coefficients (that is, -27.475, 88.737, and 6.764) found above using Table VII, one obtains: B 1 = 99((-27.475 + 300)/(100 + 300)) = 67.45 x 67 B 2 = 99((88.737 - 0) / (500 - 0)) = 17.57 x 18 B 3 = 99((6.764 + 60) / (20 + 60)) = 82.62 x 83 Converting the bar code back to calibration coefficients one finds: A 0 (converted) = -300 + (67(100 + 300))/99 = -29.293 A 1 (converted) = 0 + (18(500 - 0))/99 = 90.909 A 2 (converted) = -60 + (83(20 = 60))/99 = 7.071. Thus, the Converted Calibration Coefficients are -29.293, 90.909, and 7.071. Table VIII below shows the error in predicted concentration which would result from passing the true calibration curve using calibration coefficients on the bar code, rather than the responses as per the invention. True Concentration Predicted Concentration Using Converted Responses Absolute Bias 30 29.64 -0.36 61 61.47 0.47 92 93.32 1.32 123 125.19 2.19 154 157.08 3.08 185 188.99 3.99 216 220.91 4.91 247 252.84 5.84 278 284.79 6.79 309 316.75 7.75 340 348.72 8.72 371 380.70 9.70 402 412.70 10.70 433 444.69 11.69 464 476.70 12.70 495 508.72 13.72 526 540.74 14.74 557 572.77 15.77 588 604.81 16.81 619 636.85 17.85 650 668.90 18.90 Figure 5 is a graphical representation of the differences which exist between the two methods for this example. It uses the data found in tables III and VIII. (The ordinate value of zero represents "truth".) A comparison of Table III and Table VIII shows that passing responses on the bar code results in a significantly better approximation of the true calibration curve than the calibration curve found by passing calibration coefficients directly on the bar code.

Claims: A method of providing data in bar code form useful for the determination of the calibration curve of a lot of test elements in a clinical analyzer using a finite numbering system limited to n-digit decimal numbers, the curve having the mathematical formula:- C = A 0 + A 1 .R + A 2 .(R) K where C is the predicted concentration of a sample liquid analyzed by the analyzer, R is the response actually measured in the analyzer or a cubic spline function of that response, K is a coefficient assigned to the analyzer, and A 0 , A 1 and A 2 are the calibration coefficients which can vary beyond that which can be specified using (10 n ) digits; characterized in that the method comprises the steps of:- a) ascertaining by statistical analysis the ranges of values for R which are possible for three given concentration values (C 1 , C 2 , C 3 ) for a given assay, and assigning a high value (H) and a low value (L) for these ranges; b) calculating for a given lot of the given assay, a calibration curve which correlates the analyzer response to the concentration; c) determining the analyzer responses (R 1 , R 2 , R 3 ) from the calibration curve which correspond to the concentration values (C 1 , C 2, C 3 ); d) calculating the bar code value (B i ) for the analyzer response (R i ) where i = 1, 2, 3 from the equation:- B i = (10 n - 1)(R i - L i )/(H i - L i ) where L i and H i are the corresponding low (L) and high (H) values for that value of R i ; e) rounding the bar code value (B i ) to the nearest integer for each case where i = 1, 2, 3; and f) supplying this value of B i for each of R i in bar code form so that only three sets of (10 n ) possibilities are needed to accurately pass along data corresponding to the calibration coefficients even though each of the three coefficients can vary by more than that which can be specified using 10 n digits. A method according to claim 1, further including the step of converting the supplied bar code values (B i ) of step e) into actual values of analyzer responses (R i ) by solving equation (1) for R i , given the stored values of B i . A method of providing data according to claim 1 or 2, wherein n = 2, and the step a) includes the steps of determining the mean value (M) to be expected in all test elements for the given assay and the standard deviation (SD) from that mean (M), and assigning the high value (H) and the low value (L) as M + 3SD and M - 3SD respectively, for a given concentration value (C 1 , C 2 , C 3 ).

Inventors: KILDAL-BRANDT PAUL A, WEBER THOMAS A, KILDAL-BRANDT, PAUL A., WEBER, THOMAS A., Kildal-Brandt, Paul A., c/o Eastman Kodak Co., Weber, Thomas A., c/o Eastman Kodak Co.
Applicants: JOHNSON & JOHNSON CLIN DIAG, JOHNSON & JOHNSON CLINICAL DIAGNOSTICS, INC.
Application year: 1992
Main classification: G01N33
IPC codes: G06K7, G01N33, G06K19