import java.util.*; /** * Class that calculates thresholds for every chosen promoter * sequence. Also calculates threshold for a user defined * consensus sequence. * @author Gard Thomassen * @see Interaction * @see Control * @see Invoke * @see ProgramManager * @see PromoterScoreManager * @see ScoreTable */ public class Threshold{ public Vector score; /** * Constructor, establishes a pointer to the score Vector * @param s vector containing score tables */ public Threshold(Vector s){ score = s; } /** * Method that iterates through all given sequences and * sets a threshold for this sequences * @param thresholds an array holding all the user defined thresholds */ public void setThreshold(double [] thresholds){ boolean more = true; int i = 0; double max; double threshold; ScoreTable table = (ScoreTable)score.elementAt(i); int counter = 0; //iterating through all objects in score vector while(more){ max = 0; for(int n=0; n= table.T_score[n] && table.A_score[n] >= table.C_score[n] && table.A_score[n] >= table.G_score[n]) max += (double)table.A_score[n]; else if (table.T_score[n] >= table.A_score[n] && table.T_score[n] >= table.C_score[n] && table.T_score[n] >= table.G_score[n]) max += (double)table.T_score[n]; else if (table.C_score[n] >= table.T_score[n] && table.C_score[n] >= table.A_score[n] && table.C_score[n] >= table.G_score[n]) max += (double)table.C_score[n]; else max += (double)table.G_score[n]; }//end for //set threshold as product of threshold and max score table.setThreshold(max*(thresholds[counter]/100)); //for debugging //System.out.println("threshold% :"+ thresholds[counter]); //System.out.println("threshold set to: "+ table.getThreshold()); i += 1; //takes care of iteration if(i < score.size()){ table = (ScoreTable)score.elementAt(i); counter ++; } else{ more = false; } }//end while }//end setThreshold } //end class Threshold