1461140919-6173a024-7268-4738-a680-c5ade2610370

1. A method of determining the time course of a biomolecular reaction comprising
(a) forming a first reagent mixture containing a reactant, a luminophore and a reaction partner wherein the reactant reacts with the reaction partner, and the luminophore participates with the reaction partner, or the reaction product of the reaction partner, to emit electrochemiluminescence upon exposure of the reagent mixture to electrical energy;
(b) exposing the first reagent mixture to a series of electrical pulses at a preselected potential and at preselected intervals of time and duration, and measuring the electrochemiluminescence at the same intervals to obtain a value for each interval;
(c) forming a second reagent mixture which is the same as the first reagent mixture;
(d) allowing the second reagent mixture to react until the reaction is complete and then exposing the mixture to a series of electrical pulses at the same potential, intervals of time and duration as in step (b) and measuring the electrochemiluminescence at the same intervals as in step (b) to obtain a value for each interval;
(e) forming a third reagent mixture which is the same as the first reagent mixture except that it does not contain the reaction partner;
(f) exposing the third reagent mixture to a series of electrical pulses at the same potential, intervals of time and duration as in step (b) and measuring the electrochemiluminescence at the same intervals as in step (b) to obtain a value for each interval;
(g) subtracting the value obtained for the first interval in step (f) from the value obtained for the first interval in step (b) to obtain a first difference;
(h) subtracting the value obtained for the first interval in step (f) from the value obtained for the first interval in step (d) to obtain a second difference;
(i) dividing the first difference by the second difference to obtain a normalized value for the first interval;
(j) repeating steps (g), (h) and (i) for each successive interval to obtain the normalized value for each successive interval.
2. The method of claim 1 wherein the reactant and the luminophore are combined in a chemical moiety having the formula
M(P)m(L1)n(L2)o(L3)p(L4)q(L5)r(L6)st(D)u

wherein M is ruthenium or osmium; P is a polydentate ligand of M; L1, L1 L3, L4, L5 and L6 are ligands of M, each of which may be the same as or different from each other ligand; D is a substance covalently bound to one or more of P, L1, L2, L3, L4, L5 or L6 through one or more amide or amine linkages; m is an integer equal to or greater than 1, each of n, o, p, q, r and s is zero or an integer; t is an integer equal to or greater than 1; u is an integer equal to or greater than 1; and P, L1, L2, L3, L4, L5, L6 and D are of such composition and number that the chemical moiety can be induced to emit electromagnetic radiation and the total number of bonds to M provided by the ligands of M equals the coordination number of M.
3. The method of claim 1 wherein the luminophore is selected from the group consisting of fluorescent or phosphorescent polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
4. The method of claim 3 wherein the transition metal chelates are organometallic compounds.
5. The method of claim 1 wherein the luminophore is selected from the group consisting of Ru-containing and Os containing compounds.
6. The method of claim 1 wherein the luminophore is ruthenium tris-bypyridine or osmium tris-bipyridine.
7. The method of claim 1 wherein the biomolecular reaction is an enzymatic reaction, the reagent mixture contains an enzyme and the reactant is a substrate on which the enzyme exerts catalytic action, and the reaction partner is a cofactor.
8. The method of claim 7 wherein the luminophore is selected from the group consisting of fluorescent or phosphorescent polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
9. The method of claim 7 wherein the enzyme is an oxido reductase.
10. The method of claim 9 wherein the oxido reductase is a dehydrogenase.
11. The method of claim 7 wherein the cofactor is a metal ion.
12. The method of claim 7 wherein the cofactor is a coenzyme.
13. The method of claim 12 wherein the coenzyme is in its oxidized form.
14. The method of claim 1 wherein the biomolecular reaction is a binding reaction.
15. The method of claim 14 wherein the binding reaction is selected from the group consisting of antibody-antigen, ligand receptor, avidin-biotin, base pairing, lectin-carbohydrate, as enzyme-inhibitor.
16. The method of claim 14 wherein the luminophore is selected from the group consisting of fluorescent or phosphoresce polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
17. The method of claim 14 wherein the reactant and the luminophore are combined in a chemical moiety having the formula
M(P)m(L1)n(L2)o(L3)p(L4)q(L5)r(L6)st(D)u

wherein M is ruthenium or osmium; P is a polydentate ligand of M; L1, L2, L3, L4, L5 and L6 are ligands of M, each of which may be the same as or different from each other ligand; D is a substance covalently bound to one or more of P. L1, L2, L3, L4, L5 or L6 through one or more amide or amine linkages; m is an integer equal to or greater than 1; each of n, o, p, q, r and s is zero or an integer; t is an integer equal to or greater than 1; u is an integer equal to or greater than 1; and P, L1, L2, L3, L4 L5, L6 and D are of such composition and number that the chemical moiety can be induced to emit electromagnetic radiation and the total number of bonds to M provided by the ligands of M equals the coordination number of M.
18. A method of determining the time course of an enzymatic reaction comprising
(a) forming a first reagent mixture containing an enzyme, a reactant, a luminophore and a reaction partner wherein the reactant reacts with the reaction partner, and the luminophore participates with the reaction partner, or the reaction product of the reaction partner, to emit electrochemiluminescence upon exposure of the reagent mixture to electrical energy;
(b) exposing the first reagent mixture to a series of electrical pulses at a preselected potential and at preselected intervals of time and duration, and measuring the electrochemiluminescence at the same intervals to obtain a value for each interval;
(c) forming a second reagent mixture which is the same as the first reagent mixture;
(d) allowing the second reagent mixture to react until the reaction is complete and then exposing the mixture to a series of electrical pulses at the same potential, intervals of time and duration as in step (b) and measuring the electrochemiluminescence at the same intervals as in step (b) to obtain a value for each interval;
(e) forming a third reagent mixture which is the same as the first reagent mixture except that it does not contain the reaction partner;
(f) exposing the third reagent mixture to a series of electrical pulses at the same potential, intervals of time and duration as in step (b) and measuring the electrochemiluminescence at the same intervals as in step (by to obtain a value for each interval;
(g) subtracting the value obtained for the first interval in step (f) from the value obtained for the first interval in step (b) to obtain a first difference;
(h) subtracting the value obtained for the first interval in step (f) from the value obtained for the first interval in step (d) to obtain a second difference;
(i) dividing the first difference by the second difference to obtain a normalized value for the first interval;
(j) repeating steps (g), (h) and (i) for each successive interval to obtain the normalized value for each successive interval.
19. The method of claim 18 wherein the luminophore is selected from the group consisting of fluorescent or phosphorescent polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
20. The method of claim 18 wherein the enzyme is an oxido reductase.
21. A method of determining the time course of a binding reaction comprising
(a) forming a first reagent mixture containing a reactant, a reaction partner and a luminophore, wherein the reactant reacts with the reaction partner in a reaction selected from the group consisting of antibody-antigen, ligand-receptor, avidin-biotin, base pairing, lectin-carbohydrate, and enzyme-inhibitor, and the luminophore participates with the reaction partner to emit electrochemiluminescence upon exposure of the reagent mixture to electrical energy;
(b) exposing the first reagent mixture to a series of electrical pulses at a preselected potential and at preselected intervals of time and duration, and measuring the electrochemiluminescence at the same intervals to obtain a value for each interval;
(c) forming a second reagent mixture which is the same as the first reagent mixture;
(d) allowing the second reagent mixture to react until the reaction is complete and then exposing the mixture to a series of electrical pulses at the same potential, intervals of time and duration as in step (b) and measuring the electrochemiluminescence at the same intervals as in step (b) to obtain a value for each interval;
(e) forming a third reagent mixture which is the same as the first reagent mixture except that it does not contain the reaction partner;
(f) exposing the third reagent mixture to a series of electrical pulses at the same potential, intervals of time and duration as in step (b) and measuring the electrochemiluminescence at the same intervals as in step (b) to obtain a value for each interval;
(g) subtracting the value obtained for the first interval in step (f) from the value obtained for the first interval in step (b) to obtain a first difference;
(h) subtracting the value obtained for the first interval in step (f) from the value obtained for the first interval in step (d) to obtain a second difference;
(i) dividing the first difference by the second difference to obtain a normalized value for the first interval;
(j) repeating steps (g), (h) and (i) for each successive interval to obtain the normalized value for each successive interval.
22. The method of claim 21 wherein the reactant is attached to the luminophore to form a chemical moiety having the formula
M(P)m(L1)n(L2)o(L3)p(L4)q(L5)r(L6)st(D)u

wherein M is ruthenium or osmium; P is a polydentate ligand of M; L1, L2, L3, L4; L5 and L6 are ligands of M, each of which may be the same as or different from each other ligand; D is a substance covalently bound to one or more of P, L1, L2, L3, L4, L5 or L6 through one or more amide or amine linkages; m is an integer equal to or greater than 1; each of n, o, p, q, r and s is zero or an integer; t is an integer equal to or greater than 1; u is an integer equal to or greater than; and P, L1, L2, L3, L4, L5, L6 and D are of such composition and number that the chemical moiety can be induced to emit electromagnetic radiation and the total number of bonds to M provided by the ligands of M equals the coordination number of M.
23. The method of claim 21 wherein the luminophore is selected from the group consisting of fluorescent or phosphorescence polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
24. A system for determining the time course of a biomolecular reaction comprising
a first reagent mixture containing as reagents a reactant, a luminophore and a reaction, partner wherein the reactant reacts with the reaction partner, and the luminophore participates with the reaction partner, or the reaction product of the reaction partner, to emit electrochemiluminescence upon exposure of the reagent mixture to electrical energy; a second reagent mixture which is the same as the first reagent mixture except that it comprises reacted reagents; and a third reagent mixture which is the same as the first reagent mixture except that it does not contain the reaction partner;
a means for separately exposing each of the first, second and third reagent mixtures to a series of electrical pulses at a preselected potential and at preselected intervals of time and duration; and a means for measuring the electrochemiluminescence at the same intervals.
25. The system of claim 24 wherein the reactant and the luminophore comprise a chemical moiety having the formula
M(P)m(L1)n(L2)o(L3)p(L4)q(L5)r(L6)st(D)u

wherein M is ruthenium or osmium; P is a polydentate ligand of M; L1, L2, L3, L4, L5 and L6 are ligands of M, each of which may be the same as or different from each other ligand; D is a substance covalently bound to one or more of P, L1, L2, L3, L4, L5 or L6 through one or more amide or amine linkages; m is an integer equal to or greater than 1; each of n, o, p, q, r and s is zero or an integer; t is an integer equal to or greater than 1; u is an integer equal to or greater than 1; and P, L1, L2, L3, L4, L5, L6 and D are of such composition and number that the chemical moiety can be induced to emit electromagnetic radiation and the total number of bonds to M provided by the ligands of M equals the coordination number of M.
26. The system of claim 24 wherein the luminophore is selected from the group consisting of fluorescent or phosphorescent polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
27. The system of claim 26 wherein the transition metal chelates are organometallic compounds.
28. The system of claim 24 wherein the luminophore is selected from the group consisting of Ru-containing and Os-containing compounds.
29. The system of claim 24 wherein the luminophore is ruthenium tris-bypyridine or osmium tris-bipyridine.
30. The system of claim 24 wherein the biomolecular reaction is an enzymatic reaction, the reagent mixture contains an enzyme and the reactant is a substrate on which the enzyme exerts catalytic action, and the reaction partner is a cofactor.
31. The system of claim 30 wherein the luminophore is selected from the group consisting of fluorescent or phosphorescent polyaromatic hydrocarbons and fluorescent or phosphorescent transition metal chelates.
32. The system of claim 31 wherein the enzyme is an oxide reductase.
33. The system of claim 32 wherein the oxido reductase is a dehydrogenase.
34. The system of claim 31 wherein the cofactor is a metal ion.
35. The system of claim 31 wherein the cofactor is a coenzyme.
36. The system of claim 35 wherein the coenzyme is in its oxidized form.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A machine implemented method for reordering a data section associated with a computer program, the method comprising:
compiling the computer program into a plurality of object files that each include annotation information;
linking the plurality of object files into a first binary file that includes the annotation information from each object file, wherein the data section of the computer program that is stored in the first binary file is not reordered;
instrumenting the first binary file;
executing the first binary file to collect profile information;
based on the annotation information in the first binary file, generating at least one of control flow information and data flow information;
based on at least one of the control flow information and the data flow information, determining for each data variable an access frequency for that data variable from each portion of the computer program;
linking the plurality of object files into a specific binary file;
reordering the data section of the computer program, wherein the reordering comprises:
grouping data variables that are accessed with similar frequency from the same portion of the computer program,
assigning contiguous virtual addresses to the grouped data variables, and
setting all references to the grouped data variables in a code section of the computer program to reflect the assigned contiguous virtual addresses; and

storing the specific binary file, after generating the first binary file, that is a specific executable version of the computer program, wherein the specific binary file includes the data section of the computer program that has been reordered, and wherein the specific executable version is different than the first executable version,
wherein the reordering is based on at least the annotation information and the profile information.
2. The method of claim 1, wherein:
the profile information comprises one or more counters associated with the one or more portions of the computer program, wherein a particular counter associated with a particular portion is incremented each time the particular portion is accessed during the execution of the first binary file; and
reordering the data section further comprises:
prior to the grouping, determining the access frequency for each data variable by summing all counters that are associated with portions of the computer program in which that data variable is accessed.
3. The method of 1, the method further comprising:
prior to the linking the plurality of object files into the specific binary file,
grouping data variables that are accessed with similar frequency from the same portion of the computer program,
assigning contiguous virtual address to the grouped data variables,
setting all references to the grouped data variables in the code section of the computer program to reflect the assigned contiguous virtual addresses,

modifying all references to the grouped data variables in the code section of the computer program to reflect the assigned virtual addresses,
re-writing the first binary file to reflect the new virtual addresses of the data variable, and
re-executing the first binary file to collect profile information.
4. The method of claim 1, wherein:
a plurality of data variables are allocated space in the data section of the computer program; and
reordering the data section of the computer program comprises:
determining a particular order for at least two of the plurality of data variables, wherein the particular order indicates an arrangement of the at least two data variables in the data section of the computer program; and
assigning virtual addresses to the at least two data variables according to the particular order.
5. The method of claim 4, wherein determining the particular order for the at least two data variables comprises:
based on the annotation information and the profile information, determining an access frequency with which each of the at least two data variables is accessed from the one or more portions of the computer program; and
based on the access frequency for each of the at least two data variables, determining whether a particular relationship exists between the at least two data variables.
6. The method of claim 5, wherein:
the particular relationship indicates that the at least two data variables are frequently accessed from the same portion of the one or more portions of the computer program; and
in response to a determination that the particular relationship exists, then assigning virtual addresses to the at least two data variables further comprises assigning contiguous virtual addresses to the at least two data variables.
7. The method of claim 6, wherein:
the contiguous virtual addresses are selected to cause an operating system that executes the specific binary file to assign to the at least two data variables specific physical addresses, wherein:
when the operating system loads values from the specific physical addresses into a processor cache, the values are placed on the same cache line in the processor cache.
8. The method of claim 1, wherein:
a plurality of data variables are allocated space in the data section of the computer program;
a plurality of instructions are stored in a code section of the computer program, wherein a particular instruction of the plurality of instructions accesses a particular data variable of the plurality of data variables; and
reordering the data section of the computer program comprises:
assigning a first virtual address to the particular data variable, wherein the first virtual address is at a particular offset from a second virtual address that is assigned to the particular instruction.
9. The method of claim 8, further comprising:
based on the annotation information and the profile information, determining a particular frequency with which the particular instruction accesses the particular data variable from the one or more portions of the computer program;
determining whether the particular frequency is greater than a threshold frequency value; and
deciding to set the first virtual address at the particular offset from the second virtual address in response to a determination that the particular frequency is greater than the threshold frequency value.
10. The method of claim 8, further comprising:
determining the size of the particular offset, wherein the particular offset is such that the particular instruction does not clash with the particular data variable in a processor cache when processor cache lines, which store any one of the particular instruction and the particular data variable, are loaded into the processor cache during the execution of the specific binary file.
11. The method of claim 1, wherein:
a data variable is allocated space in the data section of the computer program;
an instruction is stored in a code section of the computer program, wherein the instruction references the data variable; and
reordering the data section of the computer program comprises:
assigning a virtual address to the data variable, wherein the virtual address references a space in the data portion of the computer program; and
modifying the instruction stored in the code section to reflect the virtual address assigned to the data variable.
12. A machine readable storage medium storing software instructions embodied therein for causing one or more processors to perform a method for reordering a data section associated with a computer program, the method comprising:
compiling the computer program into a plurality of object files that each include annotation information;
linking the plurality of object files into a first binary file that includes the annotation information from each object file, wherein the data section of the computer program that is stored in the first binary file is not reordered;
instrumenting the first binary file;
executing the first binary file to collect profile information;
based on the annotation information in the first binary file, generating at least one of control flow information and data flow information;
based on at least one of the control flow information and the data flow information, determining for each data variable an access frequency for that data variable from each portion of the computer program;
linking the plurality of object files into a specific binary file;
reordering the data section of the computer program, wherein the reordering comprises:
grouping data variables that are accessed with similar frequency from the same portion of the computer program,
assigning contiguous virtual addresses to the grouped data variables, and
setting all references to the grouped data variables in a code section of the computer program to reflect the assigned contiguous virtual addresses; and

storing the specific binary file, after generating the first binary file, that is a specific executable version of the computer program, wherein the specific binary file includes the data section of the computer program that has been reordered, and wherein the specific executable version is different than the first executable version,
wherein the reordering is based on at least the annotation information and the profile information.
13. The machine readable storage medium of claim 12, wherein:
the profile information comprises one or more counters associated with the one or more portions of the computer program, wherein a particular counter associated with a particular portion is incremented each time the particular portion is accessed during the execution of the first binary file; and
reordering the data section further comprises:
prior to the grouping, determining the access frequency for each data variable by summing all counters that are associated with portions of the computer program in which that data variable is accessed.
14. The machine readable storage medium of claim 12, the method further comprising:
prior to the linking the plurality of object files into the specific binary file, grouping data variables that are accessed with similar frequency from the same portion of the computer program,
assigning contiguous virtual address to the grouped data variables,
setting all references to the grouped data variables in the code section of the computer program to reflect the assigned contiguous virtual addresses,
modifying all references to the grouped data variables in the code section of the computer program to reflect the assigned virtual addresses,
re-writing the first binary file to reflect the new virtual addresses of the data variable, and
re-executing the first binary file to collect profile information.
15. The machine readable storage medium of claim 12, wherein:
a plurality of data variables are allocated space in the data section of the computer program; and
reordering the data section of the computer program comprises:
determining a particular order for at least two of the plurality of data variables, wherein the particular order indicates an arrangement of the at least two data variables in the data section of the computer program; and
assigning virtual addresses to the at least two data variables according to the particular order.
16. The machine readable storage medium of claim 15, wherein determining the particular order for the at least two data variables comprises:
based on the annotation information and the profile information, determining an access frequency with which each of the at least two data variables is accessed from the one or more portions of the computer program; and
determining whether a particular relationship exists between the at least two data variables based on the access frequency for each of the at least two data variables.
17. The machine readable storage medium of claim 16, wherein:
the particular relationship indicates that the at least two data variables are frequently accessed from the same portion of the one or more portions of the computer program; and
assigning virtual addresses to the at least two data variables further comprises assigning contiguous virtual addresses to the at least two data variables in response to a determination that the particular relationship exists.
18. The machine readable storage medium of claim 17, wherein:
the contiguous virtual addresses are selected to cause an operating system that executes the specific binary file to assign to the at least two data variables specific physical addresses, wherein:
when the operating system loads values from the specific physical addresses into a processor cache, the values are placed on the same cache line in the processor cache.
19. The machine readable storage medium of claim 12, wherein:
a plurality of data variables are allocated space in the data section of the computer program;
a plurality of instructions are stored in a code section of the computer program, wherein a particular instruction of the plurality of instructions accesses a particular data variable of the plurality of data variables; and
reordering the data section of the computer program comprises:
assigning a first virtual address to the particular data variable, wherein the first virtual address is at a particular offset from a second virtual address that is assigned to the particular instruction.
20. The machine readable storage medium of claim 19, further comprising:
based on the annotation information and the profile information, determining a particular frequency with which the particular instruction accesses the particular data variable from the one or more portions of the computer program;
determining whether the particular frequency is greater than a threshold frequency value; and
deciding to set the first virtual address at the particular offset from the second virtual address in response to a determination that the particular frequency is greater than the threshold frequency value.
21. The machine readable storage medium of claim 19, further comprising:
determining the size of the particular offset, wherein the particular offset is such that the particular instruction does not clash with the particular data variable in a processor cache when processor cache lines, which store any one of the particular instruction and the particular data variable, are loaded into the processor cache during the execution of the specific binary file.
22. The machine readable storage medium of claim 12, wherein:
a data variable is allocated space in the data section of the computer program;
an instruction that references the data variable is stored in a code section of the computer program; and
reordering the data section of the computer program comprises:
assigning a virtual address to the data variable, wherein the virtual address references a space in the data portion of the computer program; and
modifying the instruction stored in the code section to reflect the virtual address assigned to the data variable.