Generally, an experiment involving a large number of samples to be tested requires manual data entry of different attribute values corresponding to each sample. These experiments may include testing hundreds of samples. Inputting the attributes characterizing each sample is a tedious and time-consuming process. An example of a type of experiment that may involve a large number of samples is a real-time polymerase chain reaction (PCR) experiment performed by PCR instruments or thermal cyclers.
PCR instruments or thermal cyclers allow data to be collected during each thermal cycle. PCR data is typically collected at each thermal cycle using an optical system within the real-time PCR instrument that can detect electromagnetic radiation emitted by one or more probes attached to each deoxyribonucleic acid (DNA) sample analyzed by the real-time PCR instrument. The PCR data, therefore, includes one or more probe intensity values for each DNA sample at each thermal cycle or at each time associated with a thermal cycle.
Real-time PCR systems typically include a PCR instrument and an external computer system for controlling and/or monitoring the PCR instrument. The external computing system is used to create and modify the experiment attributes or parameters sent to the PCR instrument and/or to monitor the PCR instrument, assign post-experiment attributes, and analyze the PCR data received from the PCR instrument after the experiment. Although PCR systems enable the same or similar experiments to be run on multiple wells of a plate of DNA samples at the same time, pre and post-experiment attributes or parameters are typically assigned manually for each well. The process of inputting various attributes for every sample is tedious and time consuming.
According to various embodiments, systems and methods for assigning attributes to a plurality of samples are provided. An exemplary system includes an instrument configured to perform an experiment on a plurality of samples in a multi-sample support device and to produce a plurality of measured values. The system further includes a computer system in communication with the instrument. The computer system is configured to receive the plurality of measured values from the instrument, store the plurality of measured values in a memory configured as a grid of cells representing the grid of the multi-sample support device, display the grid of cells in a graphical user interface, receive a selected cell from the graphical user interface, receive two or more attribute values for the selected cell from the graphical user interface, and store the two or more assigned attribute values along with a measured value of the selected cell in the memory configured as a grid of cells.
The skilled artisan will understand that the drawings, described below, are for illustration purposes only. The drawings are not intended to limit the scope of the present teachings in any way.
Before one or more embodiments of the present teachings are described in detail, one skilled in the art will appreciate that the present teachings are not limited in their application to the details of construction, the arrangements of components, and the arrangement of steps set forth in the following detailed description or illustrated in the drawings. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.
The methods and systems according to various embodiments described herein may be used in an application area where there are multiple discreet variables associated with a single entity for data analysis. According to various embodiments, some variable values may not all be entered manually by a system user. Although the following description pertains to user-defined sample support device setup using PCR systems, one skilled in the art can appreciate that the systems and methods described here can be applied to similar systems that employ high density sample support devices. A non-limiting example of such similar systems includes protein analysis systems, oligonucleotide array systems, sequencing systems, or any other system or instrument that performs experiments on a plurality of samples.
As described above, although PCR systems enable the same or similar experiments to be run on multiple wells of a plate of DNA samples at the same time, pre and post-experiment attributes or parameters are typically assigned manually for each well. Consequently, identical or similar experiment attribute values are often entered tens or even hundreds of times for each plate of DNA samples.
In various embodiments, a graphical user interface (GUI) is used to define a list of named attributes to be associated with all wells of all plates used to hold samples. For example, the plurality of wells of plates in the PCR system.
In various embodiments, a GUI is used to define the fill-in behavior of each attribute. This fill-in behavior can include a copy function, an enumerated series, an arithmetic series, a geometric series, or any series based on a multi-variate function of one or more named series or one or more of the attributes in the grid, for example. The fill-in behavior may be automatically selected for some or all of the cells according to various embodiments. The fill-in behavior may also be a user-defined function. The fill-in behavior can be extended to other functions and functions between attribute values in other wells in the same or other plates.
According to various embodiments described herein, the GUI is configured to facilitate locating a cell of interest in a representation of the plurality of samples, allowing a user to edit or enter in attribute values.
In various embodiments, a GUI is used to assign values to the attributes associated with wells of a multi-well sample support device or plate of a PCR system, for example. This GUI facilitates the assignment of values to one or more different attributes associated with each well of a plate. This GUI also allows attribute values to be assigned to one or more wells in a row of wells, a column of wells, or an array of rows and columns of wells at the same time. As a result, the GUI automates the assignment of attribute values to plate wells in much the same way as multichannel pipettors automate the transfer of liquids to plate wells.
In various embodiments, a GUI is used to assign attributes and/or attribute values to a two-dimensional grid of cells representing the two-dimensional grid of plate wells after a PCR experiment. In various alternative embodiments, a GUI is used to assign attributes and/or attribute values to a multi-dimensional grid of cells for a plurality of samples. In a PCR experiment, the GUI may represent the two-dimensional grid of plate wells before a PCR experiment. However, the grid of cells may be one, two, or more dimensions in various embodiments.
If the GUI is used to assign attribute values after an experiment, the assigned attribute values are associated with an experimental value obtained as a result of processing a sample contained in a well.
For example, a PCR experiment is performed on a multi-plate well in a PCR instrument. The PCR instrument measures values for each well that can include, but are not limited to, fluorescence or temperature. The PCR instrument or an external computer system of the PCR system calculates experimental values from the measured values for each well that can include, but are not limited to, average threshold cycle value (Ct value) or melt temperature.
The PCR system loads the experimental values for each well of the plate into a two-dimensional grid of cells representing the two-dimensional grid of plate wells. The GUI of the PCR system allows one or more attributes to be added to or deleted from each cell of the two-dimensional grid of cells. The GUI of the PCR system also allows values of each attribute to be set for, modified in, or deleted from each cell of the two-dimensional grid of cells. The GUI is displayed by an external computer system of the PCR system, for example. In various alternative embodiments, the GUI is displayed by the user interface of the PCR instrument.
According to embodiments described herein, the system can use the experimental values and the attributes to further analyze the experiment. For example, the GUI of the PCR system allows a type of analysis to be selected. The PCR system performs the analysis based on one or more of the attribute values. Finally, the GUI of the PCR system displays the results of the analysis. These results can be sorted or grouped, for example, based on one or more of the attribute values.
In one example, various embodiments may be implemented in the context of identifying storage media for proteins. Identifying stored proteins for examination at a future time may be necessary in a wide variety of contexts. For example, specimens collected for medical purposes might need to be transferred to laboratories with the means to analyze them. Proteins may need to be held until resources are available to analyze them. Additionally, proteins may need to be preserved for study at a future date or held as possible evidence in future legal proceedings.
The media in which protein is stored can have a large influence on the time it takes before the protein begins to degrade. In general, the storage medium may need to be customized to maximize stability of the stored protein. Interactions between storage media and the particular protein in question may influence the behavior of the protein. A medium may be chosen based on the melting temperature of a protein, the temperature at which the protein begins to unravel. Melting temperature can be found by gradually heating the protein and storage medium and using a special dye that sticks to loci of the protein that are exposed as the protein unravels. (The dye fluoresces only when it is stuck to these special loci.)
Scientists in search of superior storage media might test hundreds of media variations, such as salt concentrations, different kinds of salts, concentrations and types of other additives, and different kinds of solvents. The melting temperature for each of these variations may be determined. To understand how various factors influence protein stability, scientists may want to sort results according to the variations in the storage media. By doing this, meaningful patterns in the data can be revealed. For example, it might be discovered that protein stability gradually increases as salt concentration increases or that the type of solvent used has a much greater influence on the melting temperature. These discoveries, in turn, can lead scientists to examine more effective combinations of factors to improve protein storage stability.
As such, a multi-attribute spreadsheet according to various embodiments provides a method and system to quickly specify the layout of these variations in the data being collected.
Those skilled in the art will recognize that the operations of the various embodiments may be implemented using hardware, software, firmware, or combinations thereof, as appropriate. For example, some processes can be carried out using processors or other digital circuitry under the control of software, firmware, or hard-wired logic. (The term “logic” herein refers to fixed hardware, programmable logic and/or an appropriate combination thereof, as would be recognized by one skilled in the art to carry out the recited functions.) Software and firmware can be stored on non-transitory computer-readable media. Some other processes can be implemented using analog circuitry, as is well known to one of ordinary skill in the art. Additionally, memory or other storage, as well as communication components, may be employed in embodiments of the invention.
Further, it should be appreciated that a computing system 100 of
Computing system 100 may include bus 102 or other communication mechanism for communicating information, and processor 104 coupled with bus 102 for processing information.
Computing system 100 also includes a memory 106, which can be a random access memory (RAM) or other dynamic memory, coupled to bus 102 for storing instructions to be executed by processor 104. Memory 106 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 104. Computing system 100 further includes a read only memory (ROM) 108 or other static storage device coupled to bus 102 for storing static information and instructions for processor 104.
Computing system 100 may also include a storage device 110, such as a magnetic disk, optical disk, or solid state drive (SSD) is provided and coupled to bus 102 for storing information and instructions. Storage device 110 may include a media drive and a removable storage interface. A media drive may include a drive or other mechanism to support fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), flash drive, or other removable or fixed media drive. As these examples illustrate, the storage media may include a computer-readable storage medium having stored therein particular computer software, instructions, or data.
In alternative embodiments, storage device 110 may include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into computing system 100. Such instrumentalities may include, for example, a removable storage unit and an interface, such as a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory module) and memory slot, and other removable storage units and interfaces that allow software and data to be transferred from the storage device 110 to computing system 100.
Computing system 100 can also include a communications interface 118. Communications interface 118 can be used to allow software and data to be transferred between computing system 100 and external devices. Examples of communications interface 118 can include a modem, a network interface (such as an Ethernet or other NIC card), a communications port (such as for example, a USB port, a RS-232C serial port), a PCMCIA slot and card, Bluetooth, etc. Software and data transferred via communications interface 118 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface 118. These signals may be transmitted and received by communications interface 118 via a channel such as a wireless medium, wire or cable, fiber optics, or other communications medium. Some examples of a channel include a phone line, a cellular phone link, an RF link, a network interface, a local or wide area network, and other communications channels.
Computing system 100 may be coupled via bus 102 to a display 112, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device 114, including alphanumeric and other keys, is coupled to bus 102 for communicating information and command selections to processor 104, for example. An input device may also be a display, such as an LCD display, configured with touchscreen input capabilities. Another type of user input device is cursor control 116, such as a mouse, a trackball or cursor direction keys for communicating direction information and command selections to processor 104 and for controlling cursor movement on display 112. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. A computing system 100 provides data processing and provides a level of confidence for such data. Consistent with certain implementations of embodiments of the present teachings, data processing and confidence values are provided by computing system 100 in response to processor 104 executing one or more sequences of one or more instructions contained in memory 106. Such instructions may be read into memory 106 from another computer-readable medium, such as storage device 110. Execution of the sequences of instructions contained in memory 106 causes processor 104 to perform the process states described herein. Alternatively hard-wired circuitry may be used in place of or in combination with software instructions to implement embodiments of the present teachings. Thus implementations of embodiments of the present teachings are not limited to any specific combination of hardware circuitry and software.
The term “computer-readable medium” and “computer program product” as used herein generally refers to any media that is involved in providing one or more sequences or one or more instructions to processor 104 for execution. Such instructions, generally referred to as “computer program code” (which may be grouped in the form of computer programs or other groupings), when executed, enable the computing system 100 to perform features or functions of embodiments of the present invention. These and other forms of non-transitory computer-readable media may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, solid state, optical or magnetic disks, such as storage device 110. Volatile media includes dynamic memory, such as memory 106. Transmission media includes coaxial cables, copper wire, and fiber optics, including the wires that comprise bus 102.
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 104 for execution. For example, the instructions may initially be carried on magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computing system 100 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector coupled to bus 102 can receive the data carried in the infra-red signal and place the data on bus 102. Bus 102 carries the data to memory 106, from which processor 104 retrieves and executes the instructions. The instructions received by memory 106 may optionally be stored on storage device 110 either before or after execution by processor 104.
It will be appreciated that, for clarity purposes, the above description has described embodiments of the invention with reference to different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units, processors or domains may be used without detracting from the invention. For example, functionality illustrated to be performed by separate processors or controllers may be performed by the same processor or controller. Hence, references to specific functional units are only to be seen as references to suitable means for providing the described functionality, rather than indicative of a strict logical or physical structure or organization.
As mentioned above, an instrument that may be utilized according to various embodiments, but is not limited to, is a polymerase chain reaction (PCR) instrument.
The following descriptions of various implementations of the present teachings have been presented for purposes of illustration and description. It is not exhaustive and does not limit the present teachings to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the present teachings. Additionally, the described implementation includes software but the present teachings may be implemented as a combination of hardware and software or in hardware alone. The present teachings may be implemented with both object-oriented and non-object-oriented programming systems.
Checked pull down menu 430 also includes examples of fixed and custom attributes. The cell attributes are unchecked in pull down menu 430. Fixed or default cell attributes can include, but are not limited to, “Sample”, “Biological Group”, “Target”, “Task”, “Input Quantity”, “Time”, “Time Unit”, “Sample Source”, “Treatment”, and “Comments”. Custom attributes, such as “bodypart,” can also be added to the PCR system and pull down menu 430 through the GUI of the PCR system.
Border 450 indicates that the cell located at row and column A1 is currently selected, for example. Circle 440 can be color coded according to the value of an attribute. For example, a GUI can provide the user with the ability to select which attribute to color code. One or more cells can be selected at a time. Adjacent, non-adjacent, or both adjacent and non-adjacent cells can be selected together. One skilled in the art can appreciate that input from a pointing device, a keyboard, any other input device, or any combination of input devices can be used to select cells of two-dimensional grid of cells 400.
It should be recognized that, in various embodiments, adding custom attributes and defining enumerated series can be achieved by a user inputting attribute names and values directly into cells of a grid. In other embodiments, a user may select a cell and input attribute values by selecting an attribute type by cycling through the list of possible attributes and inputting the attribute value. In this way, a separate window, such as the exemplary popup window 500 of
According to various embodiments, custom attribute management area 510 may be used to add or remove custom attributes. Custom attribute text box 514 allows new custom attributes to be added. For example, new custom attribute “celltype” can be added by typing “celltype” in custom attribute text box 514 and clicking on add button 518. Custom attribute list box 512 shows the custom attributes already added. The custom attribute “bodypart” is shown in custom attribute list box 512, for example. Custom attribute “bodypart” can be removed by selecting “bodypart” in custom attribute list box 512 and clicking on remove button 516, for example.
Window 500 also includes enumerated series management area 520. Enumerated series management area 520 is used to add or remove enumerated series. Enumerated series allow multiple attribute values to be assigned to multiple cells of the two-dimensional grid of cells of the GUI with one action, for example. Enumerated series name text box 524 and series text box 525 allow a new enumerated series and its values to be added. For example, the new enumerated series “celltypes” can be added by typing “celltypes” in the name text box 524, typing the series values in the series text box 525, and clicking on add button 528, for example. Enumerated series list box 522 shows the enumerated series names and values already added. The enumerated series “bodyparts” is shown in enumerated series list box 522, for example. Enumerated series “bodyparts” can be removed by selecting “bodyparts” in enumerated series list box 522 and clicking on remove button 526, for example. Noting the definition of the enumeration series “celltypes,” this series can be associated with the attribute “celltype” through, for example, the GUI shown in
According to various embodiments, an enumerated series may be automatically suggested to the user based on commonly used series, for example. The suggested series may be extended to a plurality of cells. The suggested series may be previewed to the user. If a suggested series is not what the user desires, the user may edit the suggested series to the series the user desires. In some embodiments, attribute values defined for one cell may be used to fill in a plurality of cells unless a user inputs a different value or values for the plurality of cells. For example, a user may enter in an attribute value for one cell and the value would be automatically entered for all or some of the other cells. In other words, as a user begins typing a value, the value may be dynamically inputted to other cells in response to the user input of the value.
Further, in some embodiments, an attribute may be suggested to the user based on a type of character input by the user. For example, a user may enter a numerical value and attribute types requiring numerical values may be suggested to the user.
All attributes and attribute values of cell 720 can also be shown in popup window 770. Popup window 770 is activated by moving pointer 780 over cell 720, for example.
For example, the method of extending the “Sample” attribute is selected in field 810 to be an enumerated series and is selected to have the enumerated series values defined by the “sampleid” enumerated series in field 820. Extending the value for the “Sample” attribute from one grid cell to another would cycle through the values “s0,s1,s2, . . . , s9” (defined in
The seven attributes values of cell 920 in
Pointer 990 is shown over last selected cell 940. Pointer 990 activates popup window 970 that shows all attributes and attribute values of cell 940, for example.
Attribute values are extended from cell 920 to cells 930 and 940 according to the methods of extending attribute values specified in popup window 800 of
In worksheet 800 of
In popup window 800 of
In popup window 800 of
In popup window 800 of
In popup window 800 of
According to various embodiments as illustrated in
According to various embodiments, once the attribute type is selected in field 1320, the value may be entered in field 1330.
As mentioned above, with reference to
The methods used to assign attributes and their values as shown in
Computer system 1520 performs a number of steps. Computer system 1520 receives the plurality of measured values from instrument 1510. Computer system 1520 stores the plurality of measured values in a memory (not shown) configured as a two-dimensional grid of cells representing the two-dimensional grid of the multi-well sample support device. The memory can be a memory of computer system 1520, a memory of instrument 1510, or a memory external to computer system 1520, for example. Computer system 1520 displays the two-dimensional grid of cells in a graphical user interface (GUI). Computer system 1520 receives a selected cell from the GUI and displays a window in the GUI allowing one or more attribute values to be assigned to the selected cell. Computer system 1520 receives one or more values to assign to one or more attributes associated with the selected cell from the GUI. Finally, computer system 1520 stores the one or more assigned attribute values along with a measured value of the selected cell in the memory configured as a two-dimensional grid of cells.
In various embodiments, computer system 1520 displays a window in the GUI allowing one or more custom attributes to be added or removed.
In various embodiments, computer system 1520 displays a window in the GUI allowing enumerated series and series values to be added or removed.
In various embodiments, computer system 1520 displays one or more attribute values and the measured value of the selected cell in a depiction of the selected cell in the displayed two-dimensional grid of cells in a GUI.
In various embodiments, computer system 1520 displays a window in the GUI allowing a method of extending one or more attributes to one or more additionally selected cells and receives a selected method for at least one attribute. Computer system 1520 receives one or more additionally selected cells from the GUI and assigns values for at least one attribute to each of one or more additionally selected cells according to the selected method. The selected method includes, but is not limited to, a copy function, an enumerated series, a geometric series, or an arithmetic series.
In step 1610 of method 1600, an experiment is performed on multiple samples in a multi-sample support device and a plurality of measured values is produced using an instrument.
In step 1620, the plurality of measured values is received from the instrument using a computer system.
In step 1630, the plurality of measured values is stored in a memory configured as a grid of cells representing the grid of the multi-sample support device using the computer system.
In step 1640, the two-dimensional grid of cells is displayed in a graphical user interface (GUI) using the computer system.
In step 1650, a selected cell is received from the GUI and a window is displayed in the GUI allowing one or more attribute values to be assigned to the selected cell using the computer system.
In step 1660, one or more values to assign to one or more attributes associated with the selected cell are received from the GUI using the computer system.
In step 1670, the one or more assigned attribute values are stored along with a measured value of the selected cell in the memory configured as a grid of cells using the computer system.
In various embodiments, a computer program product includes a tangible computer-readable storage medium whose contents include a program with instructions being executed on a processor so as to perform the method for assigning attributes to a plurality of samples. This method is performed by a system of distinct software modules.
GUI module 1720 performs a number of steps. GUI module 1720 stores the plurality of measured values in a memory configured as a two-dimensional grid of cells representing the two-dimensional grid of the multi-sample support device. GUI module 1720 displaying the two-dimensional grid of cells in a GUI. GUI module 1720 receives a selected cell from the GUI and displays a window in the GUI allowing one or more attribute values to be assigned to the selected cell. GUI module 1720 receives one or more values to assign to one or more attributes associated with the selected cell from the GUI. Finally, GUI module 1720 stores the one or more assigned attribute values along with a measured value of the selected cell in the memory configured as a two-dimensional grid of cells.
While the present teachings are described in conjunction with various embodiments, it is not intended that the present teachings be limited to such embodiments. On the contrary, the present teachings encompass various alternatives, modifications, and equivalents, as will be appreciated by those of skill in the art.
Further, in describing various embodiments, the specification may have presented a method and/or process as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. As one of ordinary skill in the art would appreciate, other sequences of steps may be possible. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. In addition, the claims directed to the method and/or process should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the various embodiments.
This application claims the benefit of priority of U.S. Provisional Application No. 61/362,636, filed Jul. 8, 2010, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61362636 | Jul 2010 | US |