ALMANAC Data Fields Name Type Comment ComboDrugSeq NUMBER(8) unique ID for table record Screener VARCHAR2(3) identifier of lab that ran experiment Study VARCHAR2(20) experiment ID TestDate DATE plan date Plate VARCHAR2(20) plate ID PanelNbr NUMBER(2) cell line panel number (not a 1 to 1 mapping to panel) CellNbr NUMBER(3) cell line cell number ( Panelbr, CellNbr pair is unique key for a cell line) Prefix1 VARCHAR2(1) drug 1 Prefix - should all be 'S' for this data set NSC1 NUMBER(7) drug 1 NSC Sample1 NUMBER(3) drug 1 Sample number ConcIndex1 NUMBER(2) 1 - lowest concentration of drug 1 in experiment 2 - middle concentration 3 - highest concentration 0 - otherwise (record represents data for drug 2, alone) Conc1 NUMBER drug 1 concentration ConcUnit1 VARCHAR2(2) drug 1 concentration unit: 'M' Molar 'u' micrograms/milliliter Prefix2 VARCHAR2(1) drug 2 Prefix - should all be 'S' for this data set NSC2 NUMBER(7) drug 2 NSC Sample2 NUMBER(3) drug 2 Sample number ConcIndex2 NUMBER(2) coding as for ConcIndex1 Conc2 NUMBER drug 2 concentration ConcUnit2 VARCHAR2(2) drug 2 concentration unit: coding as for ConcUnit1 PercentGrowth NUMBER percent growth of drug combination against cell line, using time zero in calculation PercentGrowthNoTZ NUMBER percent growth without time zero TestValue NUMBER test mean optical density ControlValue NUMBER vehicle control mean optical density TZValue NUMBER time zero mean optical density ExpectedGrowth NUMBER expected percent growth for combination, based on values for individual drugs Score NUMBER(4) score, for combination records Valid VARCHAR2(1) 'Y' if record represents valid data Should all be 'Y for this data file Panel VARCHAR Panel Name for cell line Cellname VARCAHR Cell Name for cell ine ALMANAC Calculations ExpectedGrowth: If the percent growth of at least one of the 2 drugs, tested alone at the same concentration, is negative, then we set ExpectedGrowth to the least of the 2 PercentGrowth values for the individual drugs. Otherwise: Growth1 <-- the minimum of the PercentGrowth value of drug 1 and 100 Growth2 <-- the minimum of the PercentGrowth value of drug 2 and 100 Growth1 * Growth2 ExpectedGrowth <-- ----------------- 100 Here is the PL/SQL code: -- See whether either drug's percent growth is negative. if (CalcExpectedGrowth.Drug1Growth < 0) or (CalcExpectedGrowth.Drug2Growth < 0) then -- The percent growth of at least one drug, tested alone, -- is negative. Set the expected percent growth to the -- minimum of the two values. ExpectedGrowth := Least ( Nvl (CalcExpectedGrowth.Drug1Growth, 0), Nvl (CalcExpectedGrowth.Drug2Growth, 0) ) ; else -- Neither percent growth is negative. Calculate an expected -- value based on both of them. ExpectedGrowth := Least (CalcExpectedGrowth.Drug1Growth, 100) * Least (CalcExpectedGrowth.Drug2Growth, 100) / 100 ; end if; -- if either solo growth negative, else Score: The score is simply ExpectedGrowth minus PercentGrowth. Here is the PL/SQL code: -- The individual score is the difference between the observed percent -- growth and the expected percent growth. This way, the larger the -- score, the more effective the drug combination is against the cell -- line. IndivScore := CalcIndivScore.ExpectedGrowth - CalcIndivScore.PercentGrowth;