Patent Description:
Exemplary systems for methods related to the various embodiments described in this document include those described in following applications:.

This disclosure relates generally to instruments that analyze dye-labeled samples. Existing instruments generally analyze the results of sample runs. However, problems with run conditions that might make the resulting data not reliable are generally not identified, or are identified so late that samples and time are wasted, thereby lengthening the research process.

Such instruments have used a dye matrix to correlate incoming spectral data with the particular dyes usable with the instrument. The dye matrix identifies normalized expected values for each dye usable with the system. Existing instruments typically require that the normal runtime operation of the system, in which samples of interest are processed in the instrument, be supplemented by and/or interrupted to carry out a special calibration process that is typically performed by the end user. For example, such a process might require a special "calibration run" in which known dyes are run through the system and the resulting spectral data is used to calibrate or re-calibrate the dye matrix used by the system.

<CIT> describes methods and apparatus for manipulating separation media in the context of filling one or more capillaries with a separation medium for electrophoresis. A polymer-displacement pump system and method for reciprocating a pump piston in a first direction to draw fresh fluid into a chamber, and reciprocating the pump piston in a second direction to cause the fresh fluid to exit the chamber and fill a single capillary or multi-capillary array. The pump piston movement can be electrically controlled.

<CIT> describes microfluidic devices, systems, and methods that allow selective transportation of fluids within microfluidic channels of a microfluidic network by applying, controlling, and varying pressures at a plurality of reservoirs. Modeling the microfluidic network as a series of nodes connected together by channel segments and determining the flow resistance characteristics of the channel segments may allow calculation of fluid flows through the channel segments resulting from a given pressure configuration at the reservoirs. To effect a desired flow within a particular channel or series of channels, reservoir pressures may be identified using the network model. Viscometers or other flow sensors may measure flow characteristics within the channels, and the measured flow characteristics can be used to calculate pressures to generate a desired flow. Multi-reservoir pressure modulator and pressure controller systems can optionally be used in conjunction with electrokinetic or other fluid transport mechanisms.

<CIT> describes an automated parallel electrophoresis system including a plurality of capillaries configured to accommodate samples during an electrophoresis run which includes a plurality of phases. The system also includes a control circuit coupled to the capillaries and configured to perform one of monitoring and regulating the capillaries, a display monitor and a computer processor coupled to the control circuit and the display monitor. The computer processor includes an input/output interface configured to communicate with the control circuit and a first computer memory storing a display program which displays a graphical user interface on the display monitor. In addition, a method of monitoring and regulating an electrophoresis run performed on a parallel capillary electrophoresis system which comprises a plurality of capillaries configured to accommodate samples during an electrophoresis run.

<CIT> describes how a dynamic range is extended in an electrophoresis unit and concentration differences among a plurality of samples measured simultaneously are increased. An irradiation time to the samples is adjusted during analysis without changing a sampling time. By shortening the irradiation time, a fluorescence amount of the samples is reduced to cause signal intensity detected by a detector to physically decrease. If the irradiation time is very short (several <NUM> msec), the irradiation time and fluorescence intensity are in a direct proportional relationship. It is known that, if the irradiation time is reduced to <NUM>/n, the fluorescence intensity, that is, signal intensity to be detected will be <NUM>/n. Thus, for data whose irradiation time is reduced to <NUM>/n during analysis, data obtained by multiplying a substantially measured value by n is used for data analysis as a true value to be originally acquired.

Research can be conducted more efficiently by automatically detecting potential problems in a sample run or series of sample runs as soon as possible, for example during a sample run or between runs in a series of runs.

The invention comprises: detecting, by a first plurality of sensors, one or more system parameters during polymer loading, but prior to sample loading and detection;detecting, by a second plurality of sensors, one or more system parameters during at least one of sample loading and sample detection; analyzing, by a computer processor, data from the first plurality of sensors and the second plurality of sensors to determine, prior to the end of sample detection, whether to perform an action based on the analysis.

Some embodiments of the present invention provide automated monitoring of parameters that might affect the quality of results from a sample run and then provide information and/or take actions based on measurements of those parameters. In some embodiments, temperature and/or pressure parameters are measured and compared to thresholds to determine whether warning should be provided and/or actions taken. In some embodiments, optical signals are analyzed to determine if warnings should be provided and/or actions taken. In some embodiments, a system data structure is updated based on optical signals or other parameters measured during a run. The updated data structure is then analyzed to determine whether warnings should be provided and/or actions taken.

In some embodiments, pressure parameters including pressures and valve and/or pump positions are measured upon loading sample solution into one or more capillaries of the instrument. In some embodiments, a run is stopped, paused, pressure is increased or decreased, warning signals sent, or one or more various other actions taken if measured pressure parameters indicate run quality might be compromised based on pressure.

In some embodiments, one or more current noise metrics are determined based on current measurements during a sample run. In some embodiments, actions are taken during a sample run if predetermined current noise metrics are exceeded.

That existing calibration methods require a separate runtime operation of an instrument is disruptive to the user and reduces productivity. This can also lead to calibration not being done often enough to ensure optimal results. Embodiments of the present invention provide instruments, computer systems, computer program products, and methods for automatic correction of spectral error during the instrument's normal runtime operation without requiring the user to conduct a special, separate calibration run. In other words, in certain embodiments, an end user does not have to perform a separate manual spectral calibration, making this a calibration-less instrument from an end user's perspective. In other embodiments, the need to perform separate runtime or pre-run calibrations is reduced by the use of in-run calibration or other correction of spectral error.

Various other aspects of the inventive subject matter will become more apparent from the following description, along with the accompanying drawings.

While the invention is described with reference to the above drawings, the drawings are intended to be illustrative.

The various embodiments now will be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific examples of practicing the embodiments. This specification may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this specification will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, this specification may be embodied as methods or devices. Accordingly, any of the various embodiments herein may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following specification is, therefore, not to be taken in a limiting sense.

In following description, embodiments of capillary electrophoresis systems and methods arc utilized to demonstrate various aspects and advantages of embodiments of the present invention. Such embodiments serve as examples but should not be construed as limiting. For example, embodiments of the present invention may be utilized in various applications where various fluorescent tags, dyes, and/or probes for detecting and/or quantify various types of biological samples or molecules of interest. Embodiments of the present invention include, but are not limited to, capillary electrophoresis systems or methods, CE-SDS systems or methods, a polymerase chain reaction (PCR) systems or methods, real-time PCR systems or methods, digital PCR systems or methods, Sanger Sequencing systems or methods, Pyro Sequencing systems or methods, systems or methods configured for sequencing by ligation, sequencing systems or methods such as Next Generation Sequencing (NGS) systems or methods, mass spectrometry systems and methods, flow cytometry systems and methods, gel electrophoresis, and spectrophotometry systems and methods. Some embodiments are particularly well-suited to sample separation systems and methods. However, as can be seen from the preceding list, some embodiments of the invention are applicable to both sample separation systems and methods and other sample analysis systems and methods. Embodiments of the present invention may be incorporated into systems or methods for processing or conduct assays on nucleic acid molecules, DNA molecules, RNA molecules, protein molecules, cellular molecules, sugar molecules, or other biological or organic molecules. PCR systems and methods may include, without limitation, allele-specific PCR, asymmetric PCR, ligation-mediated PCR, multiplex PCR, nested PCR, real-time PCR (qPCR), genome walking, bridge PCR, digital PCR (dPCR), or the like. In various embodiments, processing and detection of one or more types of biological components of interest may include, but is not limited to, DNA sequences (including cell-free DNA), RNA sequences, genes, oligonucleotides, molecules, proteins, biomarkers, cells (e.g., circulating tumor cells), or any other suitable target biomolecule. In various embodiments, biological components may be used in conjunction with one or more methods or systems in applications such as fetal diagnostics, multiplex dPCR, viral detection and quantification standards, genotyping, sequencing validation, mutation detection, detection of genetically modified organisms, rare allele detection, and/or copy number variation. Some embodiments of the automatic spectral calibration techniques described herein do not depend on identifying particular data points being processed as being peaks. Also, some embodiments are not necessarily dependent on the data traces being processed having any expected shape. This enhances application to various contexts.

<FIG> illustrates a sample separation and identification instrument <NUM> in accordance with an embodiment. In the illustrated embodiment, instrument <NUM> is a capillary electrophoresis (CE) instrument. However, embodiments of the invention are potentially applicable to other types of sample separation and identification instruments that rely on using a photodetector to identify dyes on dye-labeled samples. The system could include, but not limited to, at least one capillary. Typical configurations include <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and <NUM> capillaries. Sample separation could also be performed by other means including using gel electrophoresis and microfluidics such as on a lab-on-a-chip. CE instrument <NUM> comprises capillary <NUM> (and will generally comprise other capillaries not separately shown), voltage supply <NUM>, one or more cathodes <NUM>, one or more anodes <NUM>, sample source container <NUM>, sample destination container <NUM>, illumination source <NUM>, detection system <NUM>, data processing system <NUM> configured by computer program product <NUM>, and display <NUM>. Radiant source <NUM> is configured to illuminate an detection zone <NUM> of at least one capillary <NUM>.

Detection system <NUM> comprises a detector configured to receive emissions from the optical detection zone <NUM> of capillaries <NUM>, for example fluorescent emissions produced by fluorescent dyes, probes, or markers attached to the target molecules or molecules of interest. The detector may comprise one or more individual photodetectors including, but not limited to, photodiodes, photomultiplier tubes, bolometers, cryogenic detectors, quantum dots, light emitting diodes (LEDs), semiconductor detectors, HgCdTe detectors, or the like. Additionally or alternatively, the detector may comprise an array sensor including an array of sensors or pixels. The array sensor may comprise one or more of a complementary metal-oxide-semiconductor sensor (CMOS), a charge-coupled device (CCD) sensor, a plurality of photodiodes detectors, a plurality of photomultiplier tubes, or the like. In certain embodiments, detector <NUM> comprises two or more array sensors. Detection system <NUM> may further comprise one or more spectral dispersion elements (e.g., prisms or diffractive optical elements), wherein each dispersion element is configured to direct emission light from a different one of capillaries <NUM> onto a different region of the detector. The spectral dispersion elements may comprise one or more of prisms, diffractive optical elements, holographic optical elements, or the like. The spectral dispersion elements may comprise reflective or transmissive optical elements.

Illumination source <NUM> may comprise a single source of light comprising, for example, an incandescent lamp, a gas discharge lamp (e.g., Halogen lamp, Xenon lamp, Argon lamp, Krypton lamp, etc.), a light emitting diode (LED), an organic LED (OLED), a laser, or the like. Alternatively, the illumination source <NUM> may comprise a plurality of individual light sources (e.g., a plurality of LEDs or lasers). Illumination source <NUM> source may also include one or more excitation filters, such as a high-pass filter, a low-pass filter, or a band-pass filter. For example, the excitation filter may be a colored filter and/or a dichroic filter. Illumination source <NUM> may comprise a single beam or a plurality of beams that are spatially and/or temporally separated. Illumination source <NUM> may be characterized by electromagnetic radiation that is primarily within the visible light range, near infrared range, infrared range, and/or ultraviolet range of the electromagnetic spectrum.

Instrument <NUM> operates as follows. A sample mixture or solution <NUM> containing various samples or sample molecules 107a is prepared in or delivered into sample source container <NUM>. At least a portion of sample mixture <NUM> is subsequently loaded into cathode <NUM> end of capillary <NUM>, for example using a pump or syringe, or by applying a charge or electric field to capillary <NUM>. Once loaded into the anode end of capillary <NUM>, voltage supply <NUM> creates a voltage difference between cathode <NUM> and anode <NUM>. The voltage difference causes negatively charged, dye-labeled samples 107a to move from sample source container <NUM> to sample destination container <NUM>. Longer and/or less charged dye-labeled samples 107a move at a slower rate than do shorter and/or higher charged dye-labeled samples, thereby creating some separation between samples of varying lengths and charges. As each of samples 107a passes through an excitation beam generated by illumination source <NUM>, a dye on a leading element (a leading element might, e.g., be a nucleotide) of a sample 107a exhibits fluorescence that is detected by detector <NUM>. Detector <NUM> is coupled to provide signals to data processing system <NUM> in response to detected fluorescence. In particular, detector <NUM> passes a signal to processing system <NUM> corresponding to the intensity of light received at various wavelengths scanned by detector <NUM>. Computer program product <NUM> configures data processing system <NUM> to process the received spectral data and may, for example during runtime of CE instrument <NUM>, calibrate instrument <NUM> to correct for spectral error. In certain embodiments, the calibration may be conducted without a user having to stop a sample run to perform user-based calibration of instrument <NUM>. The correction may be considered automatic and/or the system may be considered to be self-correcting with respect to spectral error. In some embodiments, calibration may be conducted after and/or between regular sample runs.

In certain embodiments, system <NUM> comprises a delivery system <NUM> comprising a polymer reservoir <NUM> containing a polymer or polymer solution <NUM>, a polymer valve <NUM>, and a pump <NUM> (e.g., a syringe) configured to receive or draw polymer <NUM> from polymer reservoir <NUM> and to pump or load polymer <NUM> into capillary <NUM>. Delivery system <NUM> further comprises a buffer reservoir <NUM> containing a buffer solution <NUM> and a buffer valve <NUM>. In the illustrated embodiment, buffer reservoir contains the one or more anodes <NUM>. In certain embodiments, all or some of components of delivery system <NUM> are part of a cassette or cartridge that may further comprise capillary(ies) <NUM>. The cassette or cartridge may also comprise the one or more cathodes <NUM> (e.g., one cathode <NUM> for each of a plurality of capillaries <NUM>).

In certain embodiments, system <NUM> may be used to perform a method of conducting a capillary electrophoresis assay, experiment, or process. An exemplary such method includes the following steps:.

Correcting "spectral error" as referenced herein refers to removing pullup/pull-down error, also known as spectral crosstalk error. Furthermore, spectral error as referenced herein includes either or both of dye-to-dye error within the same capillary and error between dyes in different capillaries. The latter is sometimes referred to "cap-to-cap" or "spatial" error. However, for ease of description, the phrase "spectral error" will be considered broad enough to include such "cap-to-cap" error between different capillaries as well as dye-to-dye error within the same capillary. Spectral error corrected for by various embodiments described herein can be caused by one or more of the sample, the sequence, run conditions (temperature, current, voltage), polymer, other reagents, contamination, acidity, etc. and/or other factors.

<FIG> illustrates an exemplary method <NUM> executed by data processing system <NUM> of instrument <NUM> shown in <FIG>. Method <NUM> is compatible with one embodiment of the invention. Method <NUM> performs runtime correction of spectral error of instrument <NUM> to in data obtained from runtime processing of dye-labeled samples of interest through sample-separation instrument <NUM>. "Runtime processing" as used herein refers to processing of samples of interest to be analyzed by instrument <NUM>. This is to be contrasted with separate calibration runs of prior art instruments in which particular calibration dye samples with special dye and peak arrival characteristics are run through the instrument to calibrate or recalibrate a dye matrix in a run that is separate from regular runtime processing of samples of interest to be analyzed. Embodiments correct for spectral error during runtime without the user having to perform a special separate run for calibration purposes.

Method <NUM> begins at step <NUM>. Step <NUM> performs runtime processing to determine spectral error correction values based on spectral data obtained from runtime processing of dye-labeled samples by instrument <NUM>. "Spectral error correction values" as referenced herein includes either or both directly measured spectral error values and proxies for the spectral error values that have some correlation to the directly measured spectral errors. Step <NUM> performs additional runtime processing to apply a correction function using the spectral error correction values to obtain corrected spectral data which may or may not reflect sufficient removal of spectral error. Step <NUM> analyzes the corrected spectral data to determine spectral error of corrected spectral data relative to first spectral data and/or relative to applicable criteria for spectral error reduction. Step <NUM> determines whether spectral error has been sufficiently reduced in the corrected spectral data. If yes, then method <NUM> ends at step <NUM>. If no, then step <NUM> performs additional runtime processing using the corrected spectral data to obtain additional spectral error correction values and the process returns to step <NUM> to perform further processing to apply a correction function, this time using the additional spectral error correction values obtained in step <NUM> to obtain additional corrected spectral data. In some embodiments, steps such as steps <NUM>, <NUM>, and <NUM> can continue iterating until either a maximum number of desired iterations is reached or until the spectral error has been reduced to a specified level. In some embodiments, it may also be required that an uncertainty level with respect to the spectral error reduction be below a certain threshold (this threshold might vary depending on an absolute level of measured error in the spectral data obtained after a number of iterations).

Various specific methods may be employed to implement the processing of method <NUM>. One embodiment takes a (positive or negative) fraction of one dye ("primary dye") and adds it to another dye ("secondary dye") until the spectral error or an appropriate proxy for the spectral error is minimized. Spectral error or an appropriate proxy for the spectral error is minimized for various dye trace permutations. This minimizing procedure can be iterative for each group of dye trace permutations until the global spectral error or an appropriate proxy for the spectral error stops being minimized. This iterative process would result in dye traces with minimized spectral error.

Appropriate proxies for spectral error can be cross-correlations between the dyes in the dye data, any spectral error values that have some correlation to the directly measured spectral errors, cross-"energy" (e.g. the product of one dye trace with the other), scaled cross-"energy" (e.g. the product of one appropriately scaled dye trace with the other), etc. Some scaling factors for the dye traces used to form the scaled cross-energy can be the maximum value within each trace, a power (greater than one or a fractional power such as <NUM>) of the maximum value within each trace, the standard deviation within the trace, etc. Such a cross-energy or scaled cross-energy will tend to minimize as the spectral error tends to zero, especially when the amount of overlapping between the peaks (associated with each dye-labeled sample, e.g., a dye-labeled DNA fragment) between the dye traces is small.

The utilized methods of directly measuring/estimating the spectral error or which act as proxies for spectral error are preferably substantially insensitive to the effects of overlapping in dye trace peaks. In this approach, appropriate algorithmic (linear or non-linear, constrained or unconstrained, and/or local or global) optimization techniques, and/or deep-learning or more general machine-learning techniques can be used to determine the positive or negative fraction for each permutation of primary and secondary dyes. In this approach, the spectral errors are directly removed from dye traces without explicitly using any further dye matrices.

Another approach to removing spectral error involves using optimization techniques to modify the elements of the instrument's dye matrix (DM) so that the spectral error or an appropriate proxy for the spectral error is minimized. The dye matrix is a matrix with the normalized dye spectra of each dye as its rows and the spectral bin number as its columns. Each row is typically normalized to have a maximum value of unity.

The following procedure can be used in some embodiments to obtain dye data (dyeData) from spectral scan data (scanData) given a dye matrix (DM) (using * to indicate a matrix multiplication): <MAT> where:.

In this approach a default dye matrix or a dye matrix from a previous dye matrix calibration/correction provides an initial starting dye matrix. This default dye matrix or a dye matrix from a previous dye matrix calibration/correction is called an Estimated Dye Matrix (EDM). The elements of the dye matrix are then adjusted using an optimization process so as to minimize the spectral error or an appropriate proxy for the spectral error. This process would preferably be applied using a proxy for the spectral error (i.e., any value reasonably correlated with spectral error) since calculating the proxy is usually less expensive than directly approximating the spectral error. An improved version involves first performing singular value decomposition (svd) on the dye matrix to decompose it into the product of (numDyes x numDycs) left eigenvector, a (numDyes x numBins) diagonal matrix, and a (numBins x numBins) right eigenvector. Since typically numDyes < numBins, only the first numDyes x numDyes sub-matrix in the diagonal matrix is meaningful. As a result, the expense of the optimization process can be reduced by just modifying the elements of this numDyes x numDyes sub-matrix. This process would be iterative so that the svd is re-performed at different stages in the iterative optimization process. It is preferable to use a constrained optimization process since the elements of the dye matrix are constrained to be between one and zero.

Embodiments of the invention are described herein primarily in the context of correcting for spectral error (i.e., dye-to-dye within a capillary or cap-to-cap/spatial error) in dye data. However, additional errors corresponding to higher order derivatives can also potentially be corrected. Spectral errors in the dye are a positive or negative fractional multiple of the main dye peak associated with a dye-labeled sample of interest (e.g., a DNA fragment). This can be thought of as a zeroth order error.

First order derivative (first derivative) errors - i.e., First Order Spectral Errors or Sinusoidally Shaped Spectral Errors, SSSE - result from Doppler spectral shifts occurring because a dye-labeled DNA fragment is passing an optical observation point at a finite velocity. This creates spectral shifts in the dye spectrum recorded by the optical system. This leads to spectral errors in the dye traces outside the main dye trace that are approximately the first-order order derivative (first derivative) of the peak associated with the dye-labeled DNA fragment. There may be other sources (optical, chemistry, electrical, mechanical/vibration, etc.) which result in other first order spectral errors. Please note that this error has a minima/zero when the main dye peak is at a max, and side maxima and minima of opposite signs that occur on either side of the minima.

Second order derivative (second derivative) errors - which result from a coupled interaction of first order derivative (first derivative) sources of error or, more generally, as a Taylor series error correction term to the first order error sources. Please note that this error has an absolute maximum when the main dye peak is at a max, and side maxima or minima of the same sign that occur on either side of the maxima. The fact that this error has an absolute maximum when the main dye peak is at a maximum (same as the zeroth order errors) may result in difficulty in accounting for the zeroth order errors if the second order errors are significant.

Third order and higher order derivative errors should typically be small relative to the noise in a real-world system. However, one skilled in the art would recognize that this approach can be generalized to higher order errors if necessary.

In some embodiments, the correction function applied in step <NUM> is modified, if needed, based on the scan number to reflect slight changes in the spectra for dye-labeled samples that are part of longer fragments (e.g., DNA fragments). Generally, samples that are part of longer fragments arrive later in a sample run, and are therefore associated with later scan numbers. Therefore, the same dye-labeled DNA letter might have a slightly different spectra if arriving later in the run (part of a longer fragment) versus earlier (part of a shorter fragment). One example of varying the correction function to account for this effect is to apply a variation to the dye-matrix based on the scan number. This variation is generally first order linear (and probably at most has second order terms), so we can include a first-order (or second order) linear model of this spectral variation when finding the dye matrix. As a result, in this adaptive dye matrix correction case, the dye matrix can now be written as: <MAT> or as: <MAT> where:.

One skilled in the art would recognize that this approach can be generalized to higher order errors if such higher order errors prove to be significant. In the cases where the dye spectrum is unchanging, all of the elements in DM1 and DM2 become identically zero. In general, the maximum values in DM1 and DM2 are small relative to <NUM>. They can be positive or negative.

<FIG> illustrates an exemplary method <NUM> executed by data processing system <NUM> of instrument <NUM> shown in <FIG> in accordance with a particular embodiment compatible with the present invention. Method <NUM> illustrates one particular way of implementing method <NUM> of <FIG>, but represents just one of many possible specific implementations of the method illustrated in <FIG>. Method <NUM> relies on calibrating and/or re-calibrating the instrument's dye matrix during runtime to reduce spectral error in dye data generated by the instrument's dye matrix. Method <NUM> begins at step <NUM>. Step <NUM> determines whether an existing dye matrix ("EDM") is available from a prior calibration of instrument <NUM>. If yes, then the method proceeds to step <NUM>. If no, then step <NUM> determines an internally estimated dye matrix ("IEDM") to be used as an EDM. Further details showing embodiments for producing an IEDM when no dye matrix from a prior calibration is available are shown and described below in the context of <FIG>.

Step <NUM>, during runtime operation of the instrument (i.e., when processing dye-labeled samples of interest for analysis), uses the EDM to convert spectral bin data to existing dye data. As will be explained in further detail below, exemplary data corresponding to a <NUM>-dye EDM is illustrated in <FIG>, exemplary spectral bin data is illustrated in <FIG>, and exemplary existing dye data is illustrated in <FIG>. Step <NUM> multiplies spectral bin data by the inverse of the EDM to obtain existing dye data.

Step <NUM> determines an existing crosstalk matrix from the existing dye data determined in step <NUM>. The existing crosstalk matrix includes values corresponding to the relationship between intensity measurements of each two-dye combination. In one embodiment, these values are obtained by determining the slope of a regression line fitting data plotting the intensity of one dye versus intensity of another dye, as will be further explained in the context of the cross plot illustrated <FIG>. In <NUM>-dye data, a crosstalk matrix has <NUM> regression values, i.e., one for each possible ordered combination of two dyes. Each regression value (slope of the regression line) has a corresponding standard deviation, which measures how tightly or loosely the cross-plot data for the two relevant dye fits the regression line. In a preferred embodiment, the final regression values (used for determining a cross plot matrix) and the corresponding standard deviations (used for evaluating DQ as described below) are determined after removing outliers from the cross-plot data.

Step <NUM> determines a deconvolution quality (DQ) value for the existing crosstalk matrix. In this example, DQ is determined to be the maximum crosstalk value (regression line slope) between any two dyes determined in step <NUM>.

Step <NUM> uses the existing crosstalk matrix to determine a candidate optimized dye matrix (CODM) by adding the identity matrix to the existing crosstalk matrix (which has zero diagonal values) and then multiplying the result by the EDM. Step <NUM> then converts spectral bin data to candidate dye data using the CODM.

Step <NUM> determines an enhanced DQ value ("eDQ") for the CODM as the maximum value, for any two-dye combination, given by the sum of (<NUM>) crosstalk as determined by a slope of a regression line of the relevant cross-plot data plus (<NUM>) a specified fraction of the associated standard deviation of the cross-plot data. Thus, in one embodiment, step <NUM> determines the regression line slope and standard deviation for each possible two-dye cross plot, calculates a candidate eDQ value for each two-dye ordered pair by multiplying the regression line slope by a fraction of the associated standard deviation, and then selects the highest candidate eDQ as the eDQ for the CODM. In a preferred embodiment, the specified fraction by which the associated standard deviation is multiplied is on the order of about <NUM>. In alternative embodiments, other specified fractions can be used. As with step <NUM>, step <NUM> preferably removes outliers from the relevant cross-plot prior to calculating the corresponding regression line and standard deviation.

Step <NUM> determines whether the eDQ of the current CODM is lower than the eDQ of the prior iteration's eDQ. If no, then the prior CODM is kept as a potential best candidate optimized dye matrix ("BCODM") and the method proceeds to step <NUM>. If the result of step <NUM> is yes, then step <NUM> discards the prior iteration's CODM and keeps the current CODM as the current potential BCODM. Step <NUM> then determines whether the enhanced DQ of BCODM is within a pre-determined performance characteristic. In other words, step <NUM> determines whether the maximum crosstalk is at or below a specified value with a sufficient degree of certainty. If the result of step <NUM> is no, then step <NUM> determines whether a predetermined maximum number of iterations is completed.

If the result of either step <NUM> or step <NUM> is yes, then the method proceeds to step <NUM>. Step <NUM> determines whether the eDQ of the current BCODM is less than the DQ of the EDM. If the result of step <NUM> is yes, then step <NUM> replaces the EDM with the current BCODM and the current BCODM becomes the new EDM to be used for converting spectral data obtained from dye-labeled samples of interest to dye data. If the result of step <NUM> is no, then step <NUM> does not replace the current EDM with the current BCODM and the system continues to use the same EDM to convert spectral data obtained from processing dye-labeled samples of interest to dye data. After step <NUM> or <NUM> is executed, the method ends at step <NUM>.

Those skilled in the art will appreciate that comparing the above-defined eDQ value of the BCODM to the DQ of the EDM biases the system toward keeping the current EDM. The BCODM is only used to replace the current EDM if the performance of the BCODM is better than the EDM with a sufficient degree of certainty as represented by use of the relevant standard deviation in calculating the eDQ metric. However, in alternative embodiments, a comparison that has less or no bias towards keeping the current EDM might be used. Moreover, in alternative embodiments, a DQ value for dye data obtained using the EDM might be compared to a DQ value for dye data obtained using the BCODM without taking into account standard error measurements. However, it in a preferred embodiment, an error metric associated with a performance value such as a DQ value is utilized to determine whether to replace the EDM.

If the result of step <NUM> is no, then the method proceeds to step <NUM>. Step <NUM> applies a crosstalk matrix to the current CODM to obtain a next CODM and the method executes an iterative portion by returning to step <NUM> to calculate an eDQ for the next CODM (which then becomes the new current CODM for the current iteration). In one embodiment, the crosstalk matrix applied to the current CODM in step <NUM> is a crosstalk matrix obtained from analyzing dye data generated by applying the current (most recent) CODM to spectral data generated from the instrument's photodetector. In this embodiment, the current CODM is used even if the prior CODM was selected as the potential BCODM in steps <NUM> and <NUM>. However, in alternative embodiments, different crosstalk matrices can be used and applied to different dye matrices to obtain a next CODM in step <NUM>. To cite but one example, a crosstalk matrix could be a modified version of a crosstalk matrix used on a previous or current iteration. It could be modified, for example, by introducing noise, e.g., jitter-induced noise, to the data from which the spectral crosstalk values are generated.

<FIG> illustrates data <NUM> corresponding to an exemplary existing dye matrix. Data <NUM> plots the normalized fluorescence (vertical axis) versus <NUM> different spectral bins for four different dyes. Plot line <NUM> corresponds to data for a first dye (purple dye), plot line <NUM> corresponds to data for a second dye (green dye), plot line <NUM> corresponds to data for a third dye (yellow dye), and plot line <NUM> corresponds to data for a fourth dye (red dye). Plot lines <NUM>, <NUM>, <NUM>, and <NUM> are shown as continuous for ease of illustration only. In fact, the data itself is discrete, with each dye having <NUM> twenty normalized fluorescence values (one for each bin), and the lines shown connect those data points. The existing dye matrix represented by data <NUM> is used by instrument <NUM> of <FIG> to identify which dyes are present in spectral bin data generated from several scans across the light spectrum in which photodetector <NUM> of <FIG> measures fluorescence across the light spectrum over time.

<FIG> illustrates spectral bin data <NUM>. Data <NUM> includes several plots for different scans by instrument <NUM> of <FIG>. Plot <NUM> represents data from scan number <NUM>. Plot <NUM> represents data from scan number <NUM>, and plot <NUM> represents data from scan number <NUM>. Those skilled in the art will understand that these and other data plots shown herein are merely illustrative and do not necessarily correspond to actual data. Plot lines for data <NUM> plot fluorescence (vertical axis, measured in relative fluorescence units-RFUs) for each of <NUM> spectral bins (discrete data shown by continuous lines for ease of illustration only). Plot lines from three different scans are shown in <FIG>, but those skilled in the art will understand that spectral bin data such as data <NUM> would generally include data from many more scans than are shown in the drawing.

<FIG> shows existing dye data <NUM>. Dye data <NUM> is represented by four trace (plot) lines, one for each dye including trace <NUM> (purple dye), trace <NUM> (green dye), trace <NUM> (yellow dye), and trace <NUM> (red dye). Again, the traces show continuous lines for ease of illustration only; the underlying data comprises discrete data points (four RFU values for each scan number, i.e., a fluorescence value for each dye). Dye data such as dye data <NUM> is obtained from spectral bin data by multiplying the spectral bin data by the inverse of the dye matrix. Dye data therefore associates spectral data with particular dyes.

The traces in data <NUM> show some pull-up and pull-down effects resulting from spectral crosstalk. For example, the red dye signal associated with trace <NUM> appears to be associated with some "pull-up" of the green dye signal associated with trace <NUM>. In some embodiments of the invention, spectral crosstalk can be analyzed using analysis of such "peak under peak" data. For example, the amplitude of a clearly smaller peak under a larger peak can be correlated with the amount of spectral error in the trace with the larger peak. However, other embodiments of the present invention recognize that spectral crosstalk can be accounted for more thoroughly through regression analysis of cross plot data. Regression analysis has the benefit of using more of the available data than peak analysis does.

<FIG> shows cross plot data <NUM> that can be used for determining crosstalk values for one dye relative to another. Specifically, data <NUM> plots the fluorescence of a first dye (labeled "dye <NUM>" in the drawing, simply for identification purposes), shown on the horizontal axis, versus the fluorescence of a second dye (labeled dye <NUM>) shown on the vertical axis. Cross plot data <NUM> includes data group <NUM> that shows a significant "pull-up" effect of dye <NUM> on dye <NUM> (i.e., as dye <NUM>'s fluorescence increases, so does that of dye <NUM>). Cross plot data <NUM> also includes data group <NUM> that shows a somewhat milder "pull-down" effect of dye <NUM> on dye <NUM> (i.e., as dye <NUM>'s fluorescence increases, dye <NUM>'s fluorescence slightly decreases).

In embodiments of the invention, cross plot data sets such as data <NUM> are used to determine regression lines and corresponding standard deviations for the data plotting the effect of one dye's fluorescence relative to another's. Correlation between the fluorescence of two dyes, which can be identified through regression analysis of cross plot data such as data <NUM>, can indicate spectral crosstalk and is thus a reasonable proxy for spectral error. Regression lines and standard deviations are determined for cross plot data sets such as data <NUM> for each ordered combination of two dyes in the dye data. In the context of <NUM>-dye data, there are <NUM> unique ordered two-dye combinations. The <NUM> slopes of the resulting regression lines provide the values for an existing (or candidate) crosstalk matrix such as, for example, that produced by step <NUM> of <FIG>. The corresponding standard deviation from each regression line provides a measure of the standard error in the determined crosstalk number.

Cross plot data <NUM> includes data points such as data point <NUM> that are likely "outliers," meaning that they are sufficiently anomalous to be removed prior to determining a final regression line and corresponding slope and corresponding standard deviation. Depending on the data characteristics, removing outliers, or reducing their weight relative to non-outliers, can improve performance by providing more useful regression values for the crosstalk matrix and providing a more useful standard error value for evaluating DQ values. This allows for improved candidate optimized dye matrices and better determination of when to update the existing dye matrix with a candidate optimized dye matrix. Therefore, in some embodiments, a cross plot's outliers are removed before a final regression line and corresponding slope (and corresponding standard deviation) are determined for use in measuring crosstalk.

Some data points, for example data point <NUM>, are borderline outliers. Whether they are identified as such will depend on the method used for outlier identifications and/or parameter selections made when using those methods.

Many known methods exist for identifying outliers. One known method is amplitude binning. In some embodiments, the edges in the amplitude cross-plots of the secondary dye trace vs primary dye trace are identified by employing amplitude binning. The amplitudes of the primary and secondary dye traces are sorted with respect to the primary dye trace. For each pair of primary and secondary dye trace scans this creates a two column set of data sorted with respect to the primary amplitude. The primary and secondary dye scan values where the primary amplitude is too small (i.e. where the primary values are less than some fraction of the primary's peak amplitude) are eliminated from the set. In one embodiment, a preferred value for this fraction is about <NUM>%. The remaining set of primary and secondary dye scan values should be relatively free of noise in the primary signal. This remaining amplitude sorted set of values is referenced below as the primary and secondary dye scan processing set.

The primary and secondary dye scan processing set is then amplitude binned into amplitude ranges based on the primary amplitude values so that on average a certain number of dye scan values in each bin. In some embodiments, this number is typically between <NUM> to <NUM>. The net effect of this binning is that there would be many bins with zero scan values and other bins with many scan values. For each bin where there are scan values, the lowest secondary ("edge") value is chosen to represent the secondary value for that bin. The primary value associated with this lowest secondary value is used to represent the primary value for that bin. These chosen "edge" values are used to create a new set of pairs of primary and secondary values that will be used to perform a linear regression to get the slope of the "edges" in the amplitude cross-plots of the secondary dye trace vs primary dye trace. This slope is fractional spectral crosstalk.

The main function of this amplitude binning is to filter out many outlier values typically resulting from overlapping. In each amplitude bin, the minimum secondary amplitude is associated with the positive or negative crosstalk, since overlapping adds arrival values to spectral values that are affected by crosstalk. Thus, the amplitude binning tends to eliminate outliers due to true secondary arrival values that overlap with the spectral crosstalk from the primary peaks into the secondary traces.

Please note that this binning can introduce a small statistical bias in the value of calculated slope. In a preferred embodiment, this bias is corrected for prior to reporting the crosstalk.

Another class of known techniques are known generally as robust outlier filtering and are conducted during regression analysis. For example, some known robust outlier filtering methods are described in the following references: "<NPL>; and "<NPL>. These robust outlier filtering techniques generally involve (<NUM>) calculating a first regression line based on the data; (<NUM>) weighting each data point with "regression weights" based on the point's distance from the first regression line (where points on or very near the line have a weight of <NUM> and points far from the line would have a fractional weight less than <NUM>); and (<NUM>) using the regression weights in predicting a "y" value for a given "x" value (or vice a versa). Robust outlier identification can involve multiple iterations. Also, the weights can be binary. For example, in Talwar regression (described in Mastronardia and O'Leary referenced above) the weight is <NUM> or <NUM> based on a distance threshold. Typical known robust outlier methods have a recommended default value for the distance parameter that is used to identify outliers.

In some embodiments of the present invention, outliers are identified using only amplitude binning techniques. In some embodiments of the invention, outliers are identified using known robust outlier filtering methods. In some embodiments, the known method is the Talwar method. In some embodiments, a combination of amplitude binning and a known robust outlier filtering method is used. However, one embodiment uses a combination of outlier removal techniques including amplitude binning and a modified robust outlier detection and filtering method that is not previously known in the art. This inventive technique is referred to herein as adaptive robust outlier identification and filtering. Adaptive robust identification and filtering is further described below in the context of <FIG>. In one embodiment, amplitude binning is applied to the data first, then adaptive robust identification and filtering as further described below is applied to the data resulting after application of amplitude binning. In another embodiment, adaptive robust identification and filtering is applied without first using amplitude binning.

<FIG> illustrates a preferred method <NUM> for outlier filtering referenced herein as adaptive robust outlier identification and filtering. Method <NUM> starts at step <NUM>. Step <NUM> calculates an unweighted regression line using data points in a data plot of one dye's fluorescence versus another's ("first data points"). Step <NUM> obtains nth weighted data points (for this step, n=<NUM>, so this is the "first" set of weighted data points) by using an outlier algorithm to determine and apply an nth set of weights (for this step, it is a "first" set of weights) to the first data points based on their distances from the unweighted regression line.

Step <NUM> calculates an nth (in this case, first) weighted regression line using the nth (in this case, first) weighted data points. Step <NUM> increments n (on first iteration, n incremented from <NUM> to <NUM>, but n grows higher on subsequent iterations) and obtains an nth (e.g., <NUM>nd on first iteration) set of weighted data points by using an outlier algorithm to determine an nth set of weights and apply them to the first data points. The weights are determined based on a distance from the (n-<NUM>)th (e.g., on the first iteration of step <NUM>, the <NUM>st) weighted regression line.

Step <NUM> determines an nth (e.g., on the first iteration, a <NUM>nd) weighted regression line using the nth set of weighted data points. Step <NUM> determines whether further iterations are indicated. If the result of <NUM> is yes, then processing returns to step <NUM> and n is incremented again (e.g., on the second iteration, n is incremented from <NUM> to <NUM>).

If the result of step <NUM> is no, then step <NUM> uses the current regression line's slope as a crosstalk value. The corresponding standard deviation can be used to evaluate the reliability of a DQ value for a crosstalk matrix. One way of using it could be, for example, to determine the eDQ value referenced above in the context of <FIG>. Method <NUM> ends at step <NUM>.

Various known outlier algorithms or other outlier algorithms can be used as an "outlier algorithm" referenced in steps <NUM> or <NUM> of <FIG>. Outlier algorithms typically have a setting that can be adjusted to identify outliers and/or reduce weights on potential outliers more or less aggressively. In other words, a first setting might "aggressively" identify outliers by requiring a data point to have a smaller distance from a regression line before it is identified as an outlier and/or its weight is otherwise reduced. On the other hand, a second setting might identifier outliers / reduce weights less aggressively by requiring a data point's distance from the regression line be greater before it is characterized as an outlier and/or its weight is reduced. While some outlier algorithms (e.g., as discussed above) identify outliers and assign correspondingly reduced, but non-zero weights, the Talwar method referenced above can be viewed as a more particular case in which a data point identified as an outlier has its weight effectively set to "zero," effectively removing an identified outlier point entirely from the data set.

In a preferred embodiment of method <NUM> of <FIG>, a first setting of an outlier algorithm is used in step <NUM> and a different, less aggressive setting is used in either the first iteration of step <NUM> or in a later iteration of step <NUM>. However, in some embodiments of method <NUM>, the same settings are used throughout or the aggressiveness of the setting in identifying outliers does not necessarily start high and then decrease for later iterations. In some embodiments, the same outlier algorithm is used at step <NUM> and at all iterations of step <NUM>. However, in other embodiments, different outlier algorithms are used for different iterations.

<FIG> illustrates a method <NUM> for obtaining an internally estimated dye matrix to be used as an initial existing dye matrix as described in the context of <FIG> step <NUM> when an existing dye matrix is not otherwise available from a prior calibration.

Method <NUM> begins at step <NUM>. Step <NUM> pre-processes spectral scan data to remove spikes, primer peaks, reptation peaks, and/or other artifacts as needed. Step <NUM> uses the pre-processed spectral data to determine proxy data for the "energy" in each spectra bin associated with the spectral scan data. In this context, appropriate proxy data are values that are reasonably correlated with the intensity data for each spectra. In some embodiments, the values are equal to the intensity, but in other embodiments, the values are merely correlated with intensity data. One example of proxy data for spectral energy is obtained by multiplying the transpose of the spectral data (or appropriately mean-shifted or median-shifted spectral data) with the spectral data (or appropriately mean-shifted or median-shifted spectral data).

Step <NUM> processes the energy proxy data to determine the apparent number of active dyes. This can be done by determining spectral bins associated with peaks (maxima) in the spectral energy proxy or with negative peaks (minima) in the second derivative of the spectral energy proxy. The number of significant maxima or minima (when working with the second derivative), as appropriate, is identified as the number of active dyes. Significant maxima or minima (when working with the second derivative) are those that are larger than a small threshold fraction (typically about <NUM> to <NUM>) of the maximum peak or the maximum negative peak (when working with the second derivative).

Step <NUM> determines an initial guess at the approximate spectra for each active dye identified in step <NUM>. This is done by identifying the spectral bins associated with peaks (maxima) in the spectral energy proxy or with negative peaks (minima) in the second-derivative of the spectral energy proxy. The spectral energy proxy values associated with each of these identified bins are taken to be the initial guess at the approximate spectra for each dye.

Step <NUM> re-scales each spectral bin of the initial guess to determine the approximate spectra for each dye. Rescaling factors can be a power of the maximum energy in each spectral bin or the energy on a diagonal of the energy proxy matrix. The power used is typically <NUM>. But other values can be used as appropriate.

Step <NUM> determines the normalized dye matrix spectra by normalizing each approximate dye spectrum so that each has a maximum value of <NUM>. This is done by dividing each approximate dye spectrum by its maximum value (e.g., dividing an intensity value or other energy proxy value by the peak intensity associated with that dye).

Step <NUM> takes the normalized spectra from each row of the matrix determined in step <NUM> to form the estimated dye matrix. Method <NUM> ends at step <NUM>.

<FIG> illustrates a more detailed method <NUM> for obtaining an internally estimated dye matrix to be used as an initial existing dye matrix as described in the context of step <NUM> of <FIG> when an existing dye matrix is not otherwise available from a prior calibration. Method <NUM> illustrates one particular way of implementing method <NUM> of <FIG>, but represents just one of many possible specific implementations of the method illustrated in <FIG>.

For Method <NUM>, the following definitions apply: "scanData" is what is referred to in <FIG> as spectral bin data and corresponds to a matrix of size numScans x numBins where numScans is the number of scans and numBins is the number of spectral bins that the input data has been spectrally discretized into. This spectral data will ultimately be converted into dye data (dyeData) using a dye matrix (DM) by the equation:.

Step <NUM> pre-processes/cleans scanData so that it doesn't contain any spikes, primer peaks, reptation peaks, and other similar potential processing artifacts using standard signal processing techniques. The pre-processed scan data is referred to as "scanDataUse.

Step <NUM> obtains the cross spectral "energy" data matrix (crossData) defined as: <MAT> where the superscripted T is used to indicate a transpose of a matrix (i.e., in this case, the transpose of scanDataUse is multiplied by scanDataUse).

Step <NUM>, for each scan in scanDataUse, obtains a centered windowed average (or centered rolling windowed average) of all the scans along the trace associated with each spectral bin. In other words, step <NUM> obtains a centered rolling average (to be described later. ) Let's call the window length (i.e. the number of scans in the window) the rollingWinSize. In a preferred system the rollingWinSize is about <NUM> (<NUM> x <NUM>. ) The centered rolling windowed average, centered on a given scan number, is the average of all the scanDataUse values in a window from rollingWinSize/<NUM> scans before that scan number to rollingWinSize/<NUM> scans after that scan number.

The centered rolling windowed average gives the localized average values along the traces associated with each spectral bin. This localized average is used, rather than the global average value for each trace, to reflect the fact that the size of the peaks in each trace typically trends downwards from start to finish.

Step <NUM>, for each scan in scanDataUse, subtracts a fraction of its rolling windowed average (calculated in step <NUM>) from scanDataUse. This creates scanDataUseMeanShifted, a slightly mean adjusted (shifted) scanData. In a preferred version the small fraction is about <NUM>. In alternative versions, scanDataUseMeanShifted could also be obtained by subtracting the (global) mean of each trace, by taking a fraction of the (global) mean of each trace, etc..

Step <NUM> obtains the cross spectral "energy" of this mean shifted data (crossDataMeanShifted) defined as: <MAT>.

Step <NUM> obtains the diagonal vector of crossDataMeanShifted (referred to herein as "crossDataDiagMeanShifted") which contains the effective "energy" in each of the spectral bin traces of scanDataUseMeanShifted.

Step <NUM> obtains the smoothed centered second derivative of crossDataDiagMeanShifted and calculates it's negative (referred to herein as"negDerivs2"). Standard mathematical techniques can be used to make sure that these derivatives are centered derivatives (as opposed to forward derivatives or backward derivatives. ) The derivatives can also be "smoothed" so that, for instance, three or more points (i.e. bins) would be used to calculate a second order smoothing polynomial used to calculate the second derivatives. This is for a system with <NUM> spectral bins. Let's refer to the number of points used to calculate the smoothing curve as nPtsToCalcSmoothingCurve. Let's refer to an estimate for the nPtsToCalcSmoothingCurve as nPtsToCalcSmoothingCurveEstimate. Thus, if there are about <NUM> spectral bins, nPtsToCalcSmoothingCurveEstimate becomes <NUM>.

Step <NUM> find peaks in NegDerivs2 by, for example, using a standard peak finding algorithm (e.g. MATLAB's findpeaks). Step <NUM> defines the bin locations associated with these peaks to be peakLocs0 and defines the second derivative peak amps associated with these peaks to be peakAmps0. Identifying and processing the peakAmps0/peakLocs0 associated with the peaks in these smoothed centered second derivatives (negDerivs2), as opposed to the peaks in crossDataDiagMeanShifted, allows peaks associated with small/less energetic dyes to become apparent.

In one embodiment, all of the peakLocs0 values can be accepted as the spectral bin locations associated with the peaks in the spectra of the set of dyes (the dye set) associated with this spectral data (scanData.

However, in the illustrated embodiment, depending on the smoothness of the negDerivs2 data, step <NUM> removes some of the values in peakLocs0 and associated values in peakAmps0 if the peakAmps0 value (or the absolute value) is below a threshold value (secondDerivNoiseThresh). In a preferred embodiment, the secondDerivNoiseThresh is given by: <MAT> where, in a preferred embodiment, secondDerivNoiseThreshFraction is on the order of <NUM>.

In a preferred embodiment, the selected set of peakLocs and associated peakAmps is given by the peakLocs0 for which the absolute values of their associated peakAmps0 are greater than or equal to the secondDerivNoiseThresh. Other alternative methods of creating the set of peakAmps and peakLocs can include thresholding based on the values of peakAmps0 (as opposed to the absolute values), the non-zero values of peakAmps0, etc..

Step <NUM> then accepts the selected sets of values in peakLocs0 and peakAmps0 and those selected sets are defined herein as peakLocs and peakAmps0. The number of peakLocs/peakAmps in the selected set represents the number of dyes that were found to be in the dye set used to create scanData.

In the illustrated preferred embodiment, a preferred version, step <NUM> obtains the un-normalized dye matrix spectra ("unNormalizedDyeMatrixSpectra0") by taking the rows of crossData corresponding to the spectral bins given by peakLocs. In alternate embodiments, the un-normalized dye matrix spectra are obtained by taking the rows of crossDataMeanShifted or some weighted combination of crossDataMean and crossDataMeanShifted is used, instead of crossData.

Step <NUM> raises each element of the unNormalizedDyeMatrixSpectra0 to a power between <NUM> and <NUM> to obtain the unNormalizedDyeMatrixSpectra. In the preferred embodiment, the power is <NUM>, and thus, in the preferred embodiment:<MAT>.

The normalized dye matrix spectra ("normalizedDyeMatrixSpectra"), which is simply the dye matrix (DM) (e.g., the IEDM obtained to use as the EDM in step <NUM> of <FIG>) is now obtained by normalizing each row in unNormalizedDyeMatrixSpectra by the maximum value in that row. This results in a dye matrix having the typical form where the peak value in each row is <NUM>.

Thus, when an existing dye matrix is not otherwise available, the above method <NUM> can be used to estimate one for use as the "EDM", as referenced in the context of step <NUM> of <FIG>.

<FIG> illustrates a method <NUM> for carrying out an embodiment compatible with the present invention. Method <NUM> begins at step <NUM>. Step <NUM> fills a capillary (or capillaries) of an instrument with a solution, for example, a polymer solution. Step <NUM> loads a sample solution into the capillary (or capillaries) of the instrument. Step <NUM> applies a voltage to create a voltage difference between an anode and cathode end of one or more capillaries of the instrument. Step <NUM> determines if the sample run has ended. If yes, then the method ends at step <NUM>. If no, then step <NUM> detects optical emission from detection zone <NUM> while samples are passing through the detection zone <NUM>.

Step <NUM> measure one or more system parameters including one or more of a pressure, a temperature, and an optical signal. In some embodiments, a pressure is detected by detecting one or more of a polymer valve position; a polymer valve pressure; a buffer valve position; a buffer valve pressure; a syringe position; and a syringe pressure. In some embodiments, a total force exerted on a syringe actuator(or on other relevant elements) is measured and used to represent a syringe pressure (or the pressure for other relevant elements). Additionally or alternatively, a pressure of a syringe or other relevant elements may be measured more directly, for example, using a pressure transducer, or the like. In some embodiments, a temperature is detected by detecting one or more of a polymer cooler temperature (the polymer cooler is part of the cartridge loader subsystem, not separately shown in <FIG>); a capillary temperature; an airflow temperature at a capillary outlet; an airflow temperature at a capillary inlet; a heat sink temperature (e.g., part of polymer cooler reference above); a capillary heater temperature; a buffer temperature; a snout temperature (where the snout is a mating element (not shown) used to align the detection zone <NUM> to detection system <NUM> of <FIG>); an instrument temperature; and a laser (or other illumination device) heat sink temperature. In some embodiments, the instrument temperature is taken at various locations within the instrument and then those are analyzed to determine whether any exceed a threshold.

Step <NUM> determines if a value of the one or more measured parameters is within an acceptable operating range for obtaining reliable results. In one embodiment, parameter is considered to be not within an acceptable operating range if it is within a pre-determined amount of an off-scale value. For example, if a peak of measured optical signal is within a pre-determined amount of an off scale value (e.g., the upper RFU limit that can be measured by the system), then the result of step <NUM> is "no" and the parameter value is considered to not be within an acceptable operating range. If the result of step <NUM> is yes, then the method proceeds to step <NUM> to determine if the run is ended. If the result of step <NUM> is no, then the method proceeds to step <NUM> to perform an action based on the measured parameter values. Additionally or alternatively, step <NUM> comprises using data obtained in previous cycles of steps <NUM> to <NUM>. Below shows some examples of parameter measurement determinations that can result in the step <NUM> determination being "no".

Any of the above conditions might further depend on a certain time passage after initial setup (e.g. cartridge placement or other setup condition) for a "no" at step <NUM> to result. At step <NUM>, an action is performed. Examples of actions performed at step <NUM> include but are not necessarily limited to: setting or sending a warning or condition flag; sending a warning signal; sending a re-servicing signal; providing a run quality metric (e.g., a green flag, yellow flag, red flag, and/or specific numerical values related to the run); changing a dye matrix component; changing an injection parameter; setting or modifying a post run analysis or correction metric; stopping the process; pausing the process for a predetermined period of time; pausing the process until a condition of the process has changed by a predetermined amount; flushing one or more capillaries; or recording one or more values of the at least two parameters, the values being suitable for correcting or modifying spectrographic data recorded during detecting. Actions might also include setting a process call parameter for calling a subroutine to do any of the preceding actions. Actions might also include, but are not necessarily limited to: sending a check cartridge signal; maintaining the applied pressure; setting a flag; sending a warning signal; sending a service call signal; sending a check cartridge signal; reducing the pressure; increasing the pressure; closing a valve between the container and the pump; checking for leaks; discontinuing transferring the sample solution; or changing a run condition. Actions might also include setting a process call parameter for calling a subroutine to do any of the preceding actions. Examples of changing a run condition include, but are not necessarily limited to, adjusting a time, adjusting a current or voltage, or changing a value in a dye matrix, or changing a temperature.

After the action is performed at step <NUM>, then step <NUM> determines whether the action has been effective. For example, has it been effective enough to continue or resume the run. If no, then step <NUM> ends the run. If yes, then processing returns to step <NUM>. In some cases, an action might simply be a warning, and it will be up to the user to determine whether to end the run. In that case, the warning is simply raised, and, for purposes of the illustrated processing flow, is considered "effective" even if the underlying problem might merit further attention.

<FIG> illustrates a method <NUM> for carrying out an embodiment of the present invention. Method <NUM> begins at step <NUM>. Step <NUM> fills a capillary (or capillaries) of an instrument with a solution, for example, a polymer solution. Step <NUM> loads a sample solution into the capillary (or capillaries) of the instrument. Step <NUM> applies a voltage to create a voltage difference between an anode and cathode end of one or more capillaries of the instrument. Step <NUM> determines if the sample run has ended. If yes, then the method ends at step <NUM>. If no, then step <NUM> detects optical emission from detection zone <NUM> while samples are passing through the detection zone <NUM>.

Step <NUM> measures current over time. This might be accomplished by detecting a continuous current signal at one or more locations in or across the capillary. This might also be accomplished by detecting a plurality of current values at a plurality of discrete times.

Step <NUM> determines whether noise in the current values exceed a predetermined threshold. This can be accomplished by determining a noise metric for the current values. One method for determining such a metric is as follows: determining a best fit smooth line for the current values; determine residuals (distances between the best fit line and each of the plurality of current values); evaluate the range and standard deviation of the residuals against a predetermined value of range threshold and standard deviation threshold. If the range or standard deviation exceed predetermined thresholds, then step <NUM> performs a corrective action. If not, then processing returns to step <NUM> to determine if it is the end of the run.

Step <NUM> analyzes the optical signal. Step <NUM> determines whether analysis of the optical signal flags an action to be taken. For example, the start of true data is identified skipping over primer peaks. Peaks widths are compared against pre-set thresholds. Peak heights are compared against average peak height in a pre-set window. In one embodiment, if the width and height trip pre-set thresholds, across all dyes, flag is thrown. User is advised that spikes have been detected and to contact support if they are frequently encountering spikes, and that this may be caused by contamination in input sample.

In some embodiments, analysis includes, for example, analyzing whether a data points in the signal are off scale or within a predetermined margin of being off scale. If signal values evaluate or exceed the maximum numerical value that the current system can record, then that data point is considered as off scale. If more than a certain number of off-scales are encountered, a flag is triggered, advising users to adjust injection parameters and/or sample concentration.

In other embodiments, signal to noise ratios of the optical signal are analyzed. If the data in the capillary has poor signal to noise, that may be correlated to several issues such as but not limited to injection failure, no sample detected, PCR failure, poor cleanup, low sample concentration and short injection. The signal to noise ratio (SNR) is computed using the median signal level seen in the peak regions of the data seen up to a given point in the experiment, compared to noise estimated from non-peak regions. If the values cross preset thresholds, a flag is generated. User is advised that no valid sample is detected. User is asked to verify sample volume meets a predetermined volume minimum, adjust injection parameters as needed and if failures continue, to contact tech support.

In some embodiments, it is determined whether there is an existing dye matrix, whether a new one, if needed, can be estimated, and whether the spectral data is of sufficient quality to estimate an initial dye matrix, for example using the techniques described above in the context of <FIG>.

If step <NUM> does not indicate an action should be taken, then the method returns to <NUM>. If the result of step <NUM> is yes, then step <NUM> takes an action. Examples of actions performed at step <NUM> include but arc not necessarily limited to: setting or sending a warning or condition flag; sending a warning signal; sending a re-servicing signal; providing a run quality metric (e.g., a green flag, yellow flag, red flag, and/or specific numerical values related to the run); changing a dye matrix component; changing an injection parameter; setting or modifying a post run analysis or correction metric; stopping the process; pausing the process for a predetermined period of time; pausing the process until a condition of the process has changed by a predetermined amount; flushing one or more capillaries; or recording one or more values of the at least two parameters, the values being suitable for correcting or modifying spectrographic data recorded during detecting. Actions might also include setting a process call parameter for calling a subroutine to do any of the preceding actions. Actions might also include, but are not necessarily limited to: sending a check cartridge signal; maintaining the applied pressure; setting a flag; sending a warning signal; sending a service call signal; sending a check cartridge signal; reducing the pressure; increasing the pressure; closing a valve between the container and the pump; checking for leaks; discontinuing transferring the sample solution; or changing a run condition. Actions might also include setting a process call parameter for calling a subroutine to do any of the preceding actions. Examples of changing a run condition include, but are not necessarily limited to, adjusting a time, adjusting a current or voltage, or changing a value in a dye matrix, or changing a temperature.

<FIG> illustrates a method <NUM> for carrying out an embodiment compatible with the present invention. Method <NUM> begins at step <NUM>. Step <NUM> fills a capillary (or capillaries) of an instrument with a solution, for example, a polymer solution. Step <NUM> loads a sample solution into the capillary (or capillaries) of the instrument. Step <NUM> applies a voltage to create a voltage difference between an anode and cathode end of one or more capillaries of the instrument. Step <NUM> calls a system data structure. On example of a system data structure is a dye matrix as described in the context of earlier figures.

Step <NUM> determines if the sample run has ended. If yes, then the method ends at step <NUM>. If no, then step <NUM> detects optical emission from detection zone <NUM> while samples are passing through the detection zone <NUM>.

Step <NUM> measure one or more system parameters. One example of a system parameter is cross talk between dye spectra in sample dye data. Other examples have been referenced above. Step <NUM> updates the system data structure or evaluates the system data structure for possible update. Step <NUM> analyzes the data structure or the updated data structure. In one example, the data structure is analyzed by analyzing data generated using the data structure. In one example, data generated using the data structure is dye data corresponding do detected sample and the data structure is a dye matric. Step <NUM> determines whether analysis of the system data structure flags an action to be taken.

If step <NUM> does not indicate an action should be taken, then the method returns to <NUM>. If the result of step <NUM> is yes, then step <NUM> takes an action. Examples of actions performed at step <NUM> include but are not necessarily limited to those described in the context of other figures. In one example, an action might include further updating the data structure. In another example, an action might include sending a warning message based on analysis of the system data structure (which might be based on analyzing data produced using the system data structure). Various other actions, as described above, might be taken. After the action is performed at step <NUM>, then step <NUM> determines whether the action has been effective. For example, has it been effective enough to continue or resume the run. If no, then step <NUM> ends the run. If yes, then processing returns to step <NUM>. In some cases, an action might simply be a warning, and it will be up to the user to determine whether to end the run. In that case, the warning is simply raised, and, for purposes of the illustrated processing flow, is considered "effective" even if the underlying problem might merit further attention.

<FIG> illustrates a method <NUM> for carrying out an embodiment compatible with the present invention. Method <NUM> begins at step <NUM>. Step <NUM> provides a container and a solution, for example, a polymer solution. Step <NUM> loads the solution into one or more capillaries of the instrument by applying a pressure to the solution in the container. Step <NUM> measure one or more pressure values. In some embodiments, a pressure is detected by detecting one or more of a polymer valve position; a polymer valve pressure; a buffer valve position; a buffer valve pressure; a syringe position; and a syringe pressure. In some embodiments, a total force exerted on a syringe actuator(or on other relevant elements) is measured and used to represent a syringe pressure (or the pressure for other relevant elements).

In one embodiment, the one or more pressure values over time. This might be accomplished by detecting a continuous pressure signal. This might also be accomplished by detecting a plurality of pressure values at a plurality of discrete times.

Step <NUM> analysis the detected pressure values. In one embodiment, analysis includes determines whether noise in the pressure values exceeds a predetermined threshold. This can be accomplished by determining a noise metric for the pressure values. One method for determining such a metric is as follows: determining a best fit smooth line for the pressure values within a region of interest (e.g., during polymer loading); determine residuals (distances between the best fit line and each of the plurality of current values); and evaluate the residuals against a threshold standard deviation.

In some embodiments, pressure values are analyzed to determine whether they remained above a minimum requirement through the period of interest (e.g., during polymer loading).

If the pressure parameters do not meet requirements (e.g., standard deviation too high and/or pressure below minimum requirement during period of interest) then step <NUM> performs a corrective action. If parameter values at step <NUM> are acceptable, then step <NUM> proceeds with the sample run.

After the action is performed at step <NUM>, then step <NUM> determines whether the action has been effective. For example, has it been effective enough to try again to load solution. If the result of step no, then step <NUM> aborts the run. If yes, then, in the illustrated embodiment, processing returns to step <NUM> to try again to load the polymer solution. In some cases, an action might simply be a warning, and it will be up to the user to determine whether to end the run. In that case, the warning is simply raised, and, for purposes of the illustrated processing flow, is considered "effective" even if the underlying problem might merit further attention. However, alternative to the illustrated flow, the result of determining that an appropriate warning has been sent might be to continue to step <NUM> and proceed with a sample run. The system or user can then evaluate in the context of the pressure analysis or other parameter analysis whether the sample run was of sufficient quality to have provided reliable results.

Systems, apparatus, and methods described herein may be implemented using a computer program product tangibly embodied in an information carrier, e.g., in a non-transitory machine-readable storage device, for execution by a programmable processor; and the method steps described herein, including one or more of the steps of the methods in <FIG>, <FIG>, <FIG>, <FIG>, <FIG>, <FIG>, <FIG>, <FIG>, <FIG> and/or <FIG> may be implemented using one or more computer programs that are executable by such a processor. A computer program is a set of computer program instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.

<FIG> shows an example of a computer system <NUM>, one or more of which may provide one or more the components of instrument <NUM> of <FIG>, for example, data processing system <NUM> (of <FIG>). Computer system <NUM> executes instruction code contained in a computer program product <NUM> (which may, for example, be the computer program product <NUM> of the embodiment of <FIG>. ) Computer program product <NUM> comprises executable code in an electronically readable medium that may instruct one or more computers such as computer system <NUM> to perform processing that accomplishes the exemplary method steps performed by the embodiments referenced herein. The electronically readable medium may be any non-transitory medium that stores information electronically and may be accessed locally or remotely, for example via a network connection. In alternative embodiments, the medium may be transitory. The medium may include a plurality of geographically dispersed media each configured to store different parts of the executable code at different locations and/or at different times. The executable instruction code in an electronically readable medium directs the illustrated computer system <NUM> to carry out various exemplary tasks described herein. The executable code for directing the carrying out of tasks described herein would be typically realized in software. However, it will be appreciated by those skilled in the art, that computers or other electronic devices might utilize code realized in hardware to perform many or all the identified tasks without departing from the present invention. Those skilled in the art will understand that many variations on executable code may be found that implement exemplary methods within the scope of the present invention.

The code or a copy of the code contained in computer program product <NUM> may reside in one or more storage persistent media (not separately shown) communicatively coupled to system <NUM> for loading and storage in persistent storage device <NUM> and/or memory <NUM> for execution by processor <NUM>. Computer system <NUM> also includes I/O subsystem <NUM> and peripheral devices <NUM>. I/O subsystem <NUM>, peripheral devices <NUM>, processor <NUM>, memory <NUM>, and persistent storage device <NUM> are coupled via bus <NUM>. Like persistent storage device <NUM> and any other persistent storage that might contain computer program product <NUM>, memory <NUM> is a non-transitory media (even if implemented as a typical volatile computer memory device). Moreover, those skilled in the art will appreciate that in addition to storing computer program product <NUM> for carrying out processing described herein, memory <NUM> and/or persistent storage device <NUM> may be configured to store the various data elements referenced and illustrated herein.

Those skilled in the art will appreciate computer system <NUM> illustrates just one example of a system in which a computer program product in accordance with an embodiment of the present invention may be implemented. To cite but one example of an alternative embodiment, execution of instructions contained in a computer program product in accordance with an embodiment of the present invention may be distributed over multiple computers, such as, for example, over the computers of a distributed computing network.

Claim 1:
A sample analysis method comprising:
detecting, by a first plurality of sensors, one or more system parameters during polymer loading into a capillary, but prior to sample loading into the capillary and detection;
detecting, by a second plurality of sensors, one or more system parameters during at least one of sample loading into the capillary and sample detection;
analyzing, by a computer processor, system parameter data from the first plurality of sensors and the second plurality of sensors to determine, prior to the end of sample detection, whether to perform an action based on the analysis,
wherein the one or more system parameters comprise one or more of a pressure, a temperature and an optical signal.