import java.util.*; /** * Class that controls the scoring table generation * and holds the scoring tables in an array * @author Gard Thomassen * @see ScoreTable * @see ProgramManager * @see Interaction * @see Control */ public class PromoterScoreManager{ public ScoreTable scoreTable; //holds the score for one promoter Vector score; /** * Constructor that creates the scoring tables for the chosen predefined promoters * Every [even] in the score vector is a -10 seq (starting at 0)while the * odd [even+1] in the vector is the according -35 seq score. * @param s The vector that holds the different scoring tables * @param consensuses boolean array telling whcich promoter sequences that have been chosen */ public PromoterScoreManager(Vector s, boolean [] consensuses){ score = s; if(consensuses[0]){ //adding sigma 70 -10 promoter sequence, from DAVE char [] sigma70_10 = new char[] {'A','A','A','A','T','T'}; double [] sigma70_10_inf_val = new double[] {0.25,0.33,0.12,0.11,0.31,0.32}; String promoter_name = "sigma 70(Dave)"; scoreTable = new ScoreTable(); scoreTable.createTable(sigma70_10, sigma70_10_inf_val,promoter_name,10); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 70(Dave)"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(17); scoreTable.setMaxDistance(19); //adding sigma 70 -35 promoter sequence, from DAVE char [] sigma70_35 = new char[] {'T','T','T','T','A','A'}; double [] sigma70_35_inf_val = new double[] {0.11,0.2,0.13,0.04,0.06,0.07 }; scoreTable = new ScoreTable(); scoreTable.createTable(sigma70_35, sigma70_35_inf_val,promoter_name,35); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 70(Dave)"); }//end if if(consensuses[1]){ //adding sigma 32 -15 promoter sequence, from Dave char [] sigma32_10 = new char[] {'C','C','C','A','A','T','T','T'}; double [] sigma32_10_inf_val = new double[] {0.43,0.86,0.73,0.22,0.49,0.29,0.08,0.15}; String promoter_name = "sigma 32(Dave)"; scoreTable = new ScoreTable(); scoreTable.createTable(sigma32_10, sigma32_10_inf_val,promoter_name,15); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 32(Dave)"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(9); scoreTable.setMaxDistance(11); //adding sigma 32 -35 promoter sequence, from Dave char [] sigma32_35 = new char[] {'T','T','T','A','A','A','A','A'}; double [] sigma32_35_inf_val = new double[] {0.37,0.43,0.16,0.27,0.38,0.35,0.12,0.12}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma32_35, sigma32_35_inf_val,promoter_name,31); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 32(Dave)"); }//end if if(consensuses[2]){ //adding sigma 54 -12 promoter sequence, from Dave char [] sigma54_10 = new char[] {'C','T','G','G','C'}; double [] sigma54_10_inf_val = new double[] {0.10,0.26,0.27,0.43,0.20}; String promoter_name = "sigma 54(Dave)"; scoreTable = new ScoreTable(); scoreTable.createTable(sigma54_10, sigma54_10_inf_val,promoter_name,12); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 54(Dave)"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(4); scoreTable.setMaxDistance(7); //adding sigma 54 -24 promoter sequence, (scored) char [] sigma54_35 = new char[] {'T','G','G','G','C','A'}; double [] sigma54_35_inf_val = new double[] {0.11,0.46,1.0,0.51,0.70,0.11}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma54_35, sigma54_35_inf_val,promoter_name,24); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 54(Dave)"); }//end if if(consensuses[3]){ //adding sigma 38 -10 promoter sequence, String promoter_name = "sigma 38(Dave)"; char [] sigma38_10 = new char[] {'T','A','A','A','T','T','T'}; double [] sigma38_10_inf_val = new double[] {0.30,0.63,0.18,0.04,0.30,0.59,0.15}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma38_10, sigma38_10_inf_val,promoter_name,10); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 38(Dave)"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(16); scoreTable.setMaxDistance(18); //adding sigma 38 -35 promoter sequence, (scored) char [] sigma38_35 = new char[] {'T','T','T','T','A','A'}; double [] sigma38_35_inf_val = new double[] {0.08,0.16,0.24,0.08,0.07,0.11}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma38_35, sigma38_35_inf_val,promoter_name,35); score.addElement(scoreTable); //scoreTable.printResultTable("sigma 38(Dave)"); }//end if if(consensuses[4]){ //adding all promoters from Lisser and Margalit -10 String promoter_name = "sigma all"; char [] sigmaAll_10 = new char[] {'T','A','T','A','A','T'}; double [] sigmaAll_10_inf_val = new double[] {0.61,0.93,0.44,0.32,0.31,0.28}; scoreTable = new ScoreTable(); scoreTable.createTable(sigmaAll_10, sigmaAll_10_inf_val, promoter_name, 10); score.addElement(scoreTable); //scoreTable.printResultTable("sigma all"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(15); scoreTable.setMaxDistance(21); //adding new sigma -35 char [] sigmaAll_35 = new char[] {'T','T','G','A','C','A'}; double [] sigmaAll_35_inf_val = new double[] {0.87,0.85,0.40,0.42,0.35,1.04}; scoreTable = new ScoreTable(); scoreTable.createTable(sigmaAll_35, sigmaAll_35_inf_val,promoter_name,35); score.addElement(scoreTable); //scoreTable.printResultTable("sigma all"); }//end if if(consensuses[5]){ //adding sigma 70 from regulonDB, -10 String promoter_name = "sigma_70_regulonDB"; char [] sigma_70_regulonDB_10 = new char[] {'T','A','A','A','A','T'}; double [] sigma_70_regulonDB_10_inf_val = new double[] {0.24,0.36,0.24,0.14,0.12,0.28}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma_70_regulonDB_10, sigma_70_regulonDB_10_inf_val,promoter_name,10); score.addElement(scoreTable); //scoreTable.printResultTable("sigma_70_regulonDB_10"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(15); scoreTable.setMaxDistance(21); //adding new sigma -35 char [] sigma_70_regulonDB_35 = new char[] {'T','T','T','T','T','T'}; double [] sigma_70_regulonDB_35_inf_val = new double[] {0.01,0.05,0.16,0.16,0.06,0.02}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma_70_regulonDB_35, sigma_70_regulonDB_35_inf_val,promoter_name,35); score.addElement(scoreTable); //scoreTable.printResultTable("sigma_70_regulonDB_35"); }//end if if(consensuses[6]){ //adding sigma32 from regulonDB, -10 String promoter_name = "sigma_32_regulonDB"; char [] sigma_32_regulonDB_10 = new char[] {'C','C','C','C','A','T','T'}; double [] sigma_32_regulonDB_10_inf_val = new double[] {0.32,0.57,0.70,0.58,0.31,0.66,0.30}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma_32_regulonDB_10, sigma_32_regulonDB_10_inf_val,promoter_name,10); score.addElement(scoreTable); //scoreTable.printResultTable("sigma_32_regulonDB_10"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(10); scoreTable.setMaxDistance(12); //adding new sigma -35 char [] sigma_32_regulonDB_35 = new char[] {'T','A','A','A','A','A'}; double [] sigma_32_regulonDB_35_inf_val = new double[] {0.14,0.13,0.20,0.35,0.23,0.19}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma_32_regulonDB_35, sigma_32_regulonDB_35_inf_val,promoter_name,35); score.addElement(scoreTable); //scoreTable.printResultTable("sigma_32_regulonDB_35"); }//end if if(consensuses[7]){ //adding sigma24 from regulonDB, -10 String promoter_name = "sigma_24_regulonDB"; char [] sigma_24_regulonDB_10 = new char[] {'A','G','T','C','T','G','A','A'}; double [] sigma_24_regulonDB_10_inf_val = new double[] {0.53,0.17,0.36,0.72,0.47,0.47,0.86,0.29}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma_24_regulonDB_10, sigma_24_regulonDB_10_inf_val,promoter_name,10); score.addElement(scoreTable); //scoreTable.printResultTable("sigma_24_regulonDB_10"); //setting the min and max distances between the two sequences scoreTable.setMinDistance(16); scoreTable.setMaxDistance(18); //adding new sigma -35 char [] sigma_24_regulonDB_35 = new char[] {'G','G','A','A','A','A'}; double [] sigma_24_regulonDB_35_inf_val = new double[] {0.17,0.08,0.37,0.18,0.26,0.10}; scoreTable = new ScoreTable(); scoreTable.createTable(sigma_24_regulonDB_35, sigma_24_regulonDB_35_inf_val,promoter_name,35); score.addElement(scoreTable); //scoreTable.printResultTable("sigma_24_regulonDB_35"); }//end if } }//end class PromoterScoreManager