+ static
+ {
+ int[][] propMatrixF = new int[maxProteinIndex][maxProteinIndex], propMatrixPos = new int[maxProteinIndex][maxProteinIndex], propMatrixEpos = new int[maxProteinIndex][maxProteinIndex];
+ for (int i = 0; i < maxProteinIndex; i++)
+ {
+ int maxF = 0, maxP = 0, maxEP = 0;
+ String ic = "";
+ if (aa.length > i)
+ {
+ ic += aa[i];
+ }
+ else
+ {
+ ic = "-";
+ }
+ for (int j = i + 1; j < maxProteinIndex; j++)
+ {
+ String jc = "";
+ if (aa.length > j)
+ {
+ jc += aa[j];
+ }
+ else
+ {
+ jc = "-";
+ }
+ propMatrixF[i][j] = 0;
+ propMatrixPos[i][j] = 0;
+ propMatrixEpos[i][j] = 0;
+ for (Enumeration<String> en = propHash.keys(); en
+ .hasMoreElements();)
+ {
+ String ph = en.nextElement();
+ Map<String, Integer> pph = (Map<String, Integer>) propHash
+ .get(ph);
+ if (pph.get(ic) != null && pph.get(jc) != null)
+ {
+ int icp = pph.get(ic).intValue(), jcp = pph.get(jc).intValue();
+ // Still working on these definitions.
+ propMatrixPos[i][j] += icp == jcp && icp > 0 ? 2 : 0;
+ propMatrixPos[j][i] += icp == jcp && icp > 0 ? 2 : 0;
+ propMatrixF[i][j] += icp == jcp ? 2 : 0;
+ propMatrixF[j][i] += icp == jcp ? 2 : 0;
+ propMatrixEpos[i][j] += icp == jcp ? (1 + icp * 2) : 0;
+ propMatrixEpos[j][i] += icp == jcp ? (1 + icp * 2) : 0;
+ }
+ }
+ if (maxF < propMatrixF[i][j])
+ {
+ maxF = propMatrixF[i][j];
+ }
+ if (maxP < propMatrixPos[i][j])
+ {
+ maxP = propMatrixPos[i][j];
+ }
+ if (maxEP < propMatrixEpos[i][j])
+ {
+ maxEP = propMatrixEpos[i][j];
+ }
+ }
+ propMatrixF[i][i] = maxF;
+ propMatrixPos[i][i] = maxP;
+ propMatrixEpos[i][i] = maxEP;
+ }
+ // JAL-1512 comment out physicochemical score matrices for 2.8.1 release
+ // scoreMatrices.put("Conservation Pos", new
+ // ScoreMatrix("Conservation Pos",propMatrixPos,0));
+ // scoreMatrices.put("Conservation Both", new
+ // ScoreMatrix("Conservation Both",propMatrixF,0));
+ // scoreMatrices.put("Conservation EnhPos", new
+ // ScoreMatrix("Conservation EnhPos",propMatrixEpos,0));
+ scoreMatrices.put("PID", new PIDScoreModel());
+ }