}
static
{
- int[][][] propMatrix = new int[3][maxProteinIndex][maxProteinIndex];
+ int[][] propMatrixF = new int[maxProteinIndex][maxProteinIndex],
+ propMatrixPos = new int[maxProteinIndex][maxProteinIndex],
+ propMatrixEpos = new int[maxProteinIndex][maxProteinIndex];
for (int i=0;i<maxProteinIndex;i++)
{
String ic="";
- if (aa.length<i) {
+ if (aa.length>i) {
ic+=aa[i];
}
else {ic = "-";}
- propMatrix[0][i][i]=propHash.size();
- propMatrix[1][i][i]=propHash.size();
- propMatrix[2][i][i]=propHash.size();
+ propMatrixF[i][i]=propHash.size();
+ propMatrixPos[i][i]=propHash.size();
+ propMatrixEpos[i][i]=propHash.size();
for (int j=i+1;j<maxProteinIndex; j++)
{
String jc="";
- if (aa.length<j) {
+ if (aa.length>j) {
jc+=aa[j];
}
else {jc = "-";}
- propMatrix[0][i][j]=0;
- propMatrix[1][i][j]=0;
- propMatrix[2][i][j]=0;
+ propMatrixF[i][j]=0;
+ propMatrixPos[i][j]=0;
+ propMatrixEpos[i][j]=0;
for (Enumeration<String> en= (Enumeration<String>)propHash.keys(); en.hasMoreElements(); )
{
String ph = en.nextElement();
Map<String,Integer> pph=(Map<String,Integer>)propHash.get(ph);
- propMatrix[0][i][j]+= pph.get(ic).equals(pph.get(jc)) ? pph.get(ic) : -1;
- propMatrix[1][i][j]+= pph.get(ic).equals(pph.get(jc)) ? 1 : -1;
- propMatrix[2][i][j]+= pph.get(ic).equals(pph.get(jc)) ? pph.get(ic)*2 : 0;
- }
+ if (pph.get(ic)!=null && pph.get(jc)!=null) {
+ int icp=pph.get(ic).intValue(),jcp=pph.get(jc).intValue();
+
+ propMatrixPos[i][j] += icp == jcp ? icp : -1;
+ propMatrixPos[j][i] += icp == jcp ? icp : -1;
+ propMatrixF[i][j] += icp == jcp ? 2 : -1;
+ propMatrixF[j][i] += icp == jcp ? 2 : -1;
+ propMatrixEpos[i][j] += icp == jcp ? (1+icp * 2) : -1;
+ propMatrixEpos[j][i] += icp == jcp ? (1+icp * 2) : -1;
+ }}
}
}
- scoreMatrices.put("Conservation Pos", new ScoreMatrix("Conservation Pos",propMatrix[0],0));
- scoreMatrices.put("Conservation Both", new ScoreMatrix("Conservation Both",propMatrix[1],0));
- scoreMatrices.put("Conservation EnhPos", new ScoreMatrix("Conservation EnhPos",propMatrix[2],0));
+ scoreMatrices.put("Conservation Pos", new ScoreMatrix("Conservation Pos",propMatrixF,0));
+ scoreMatrices.put("Conservation Both", new ScoreMatrix("Conservation Both",propMatrixPos,0));
+ scoreMatrices.put("Conservation EnhPos", new ScoreMatrix("Conservation EnhPos",propMatrixEpos,0));
scoreMatrices.put("PID", new PIDScoreModel());
}