/**
* compute the PID vector used by the redundancy filter.
- * @param originalSequences - sequences in alignment that are to filtered
- * @param omitHidden - null or strings to be analysed (typically, visible portion of each sequence in alignment)
- * @param start - first column in window for calculation
- * @param end - last column in window for calculation
- * @param ungapped - if true then use ungapped sequence to compute PID
- * @return vector containing maximum PID for i-th sequence and any sequences longer than that seuqence
+ *
+ * @param originalSequences
+ * - sequences in alignment that are to filtered
+ * @param omitHidden
+ * - null or strings to be analysed (typically, visible portion of
+ * each sequence in alignment)
+ * @param start
+ * - first column in window for calculation
+ * @param end
+ * - last column in window for calculation
+ * @param ungapped
+ * - if true then use ungapped sequence to compute PID
+ * @return vector containing maximum PID for i-th sequence and any sequences
+ * longer than that seuqence
*/
- public static float[] computeRedundancyMatrix(SequenceI[] originalSequences,
- String[] omitHidden, int start, int end, boolean ungapped)
+ public static float[] computeRedundancyMatrix(
+ SequenceI[] originalSequences, String[] omitHidden, int start,
+ int end, boolean ungapped)
{
- int height=originalSequences.length;
+ int height = originalSequences.length;
float[] redundancy = new float[height];
- int[] lngth=new int[height];
+ int[] lngth = new int[height];
for (int i = 0; i < height; i++)
{
redundancy[i] = 0f;
- lngth[i]=-1;
+ lngth[i] = -1;
}
-
// long start = System.currentTimeMillis();
float pid;
String seqi, seqj;
for (int i = 0; i < height; i++)
{
-
+
for (int j = 0; j < i; j++)
{
if (i == j)
seqi = omitHidden[i];
seqj = omitHidden[j];
}
- if (lngth[i]==-1)
+ if (lngth[i] == -1)
{
- String ug=AlignSeq.extractGaps(Comparison.GapChars, seqi);
- lngth[i]=ug.length();
+ String ug = AlignSeq.extractGaps(Comparison.GapChars, seqi);
+ lngth[i] = ug.length();
if (ungapped)
{
- seqi=ug;
+ seqi = ug;
}
}
- if (lngth[j]==-1)
+ if (lngth[j] == -1)
{
- String ug=AlignSeq.extractGaps(Comparison.GapChars, seqj);
- lngth[j]=ug.length();
+ String ug = AlignSeq.extractGaps(Comparison.GapChars, seqj);
+ lngth[j] = ug.length();
if (ungapped)
{
- seqj=ug;
+ seqj = ug;
}
}
pid = Comparison.PID(seqi, seqj);
- // use real sequence length rather than string length
- if (lngth[j]<lngth[i])
+ // use real sequence length rather than string length
+ if (lngth[j] < lngth[i])
{
redundancy[j] = Math.max(pid, redundancy[j]);
}