Authored by: Mark F. Russo
Automatic Programming is not programming at all, at least in a sense that is commonly held. Early on in the field of computer science the term automatic programming was used to describe the process of translating a high level programming language to a lower level, often machine specific programming language. In the field of laboratory automation, the term is used to describe an algorithmic procedure that attempts to generate a program to automatically achieve a stated goal.
A good example of automatic programming in laboratory automation is the automatic generation of robot motion trajectories within a robot’s work envelope. The basic task of programming robot motions involves recording a sequence of safe points in the robot’s work envelope through which the robot passes in order to get from one point to another. Once these points are recorded, the robot programmer determines the order in which the points will be visited by the robot. This sequence of points, along with smoothing parameters and velocity parameters, make up the complete robot motion.
If all robot safe points are recorded in a computer, with legal point-to-point robot traversals indicated by connecting point pairs with an arc, then the resulting data structure is a graph. This graph can then be used to automatically select of points that make up a robot motion sequence using standard graph search algorithms. The most direct path from one point to another can be assembled by searching the graph and finding the shortest path. The points visited are used to automatically generate a robot motion – a task that would otherwise be performed by the robot programmer. In this case the goal of finding a way to move a robot from one point to another was proposed. The safe point network and search algorithm were used to automatically find the best way to achieve that goal, and possibly execute the result.
Another good example of automatic programming in laboratory automation can be found in novel techniques for identifying optimal assay conditions. Design of experiments (DoE) is a statistical technique used to determine if and to what extent selected factors have an effect on given response variable.
DoE is frequently used in an iterative fashion to identify a set of optimal factor levels, for example, when determining the conditions (factor levels) at which to run a specific assay. Assay conditions include reagent volumes, concentrations, temperatures, incubation duration, etc. An initial screening experiment can be performed with a selection of coarse factor levels to determine general effects and trends of selected factors on the ability of an assay to reveal an underlying phenomenon. Once initial responses from the screening experiment are known, factor levels can be adjusted and refined to better reveal an apparent optimum in factor level space. This is repeated until an optimal set of factor levels is identified to a sufficient degree, thereby determining the best set of assay conditions.
Between iterations of the assay optimization scheme, results from the previous set of experiments are used to predict where in factor level space the optimum set of conditions may exist. A refined set of factor levels is selected and a new set of experiments designed around the proposed optimum. It is important to note that the experimental procedures themselves remain the same during each operation; the only differences in execution are the factor levels.
By coupling an automated procedure to perform the experiments, and the use of DoE to select the experimental conditions, it is possible to fully automate the entire iterative process without the need to explicitly write the high level program. In a way, this automated assay optimization procedure can automatically program a suitable automated system to find an optimal set of assay conditions on its own. This has been implemented commercially by various laboratory automation vendors, including Beckman Coulter.
|Click [+] for other articles on||The Market Place for Lab Automation & Screening||Automation Software|