for (int i = start; i < end; i++) // foreach column
{
- int canonicalOrWobblePairCount = 0;
+ int canonicalOrWobblePairCount = 0, canonical = 0;
int otherPairCount = 0;
int nongap = 0;
maxResidue = "-";
}
if (Rna.isCanonicalOrWobblePair(c, cEnd))
{
- values['(']++;
- maxResidue = "(";
canonicalOrWobblePairCount++;
+ if (Rna.isCanonicalPair(c, cEnd))
+ {
+ canonical++;
+ }
}
else
{
- values['[']++;
- maxResidue = "[";
otherPairCount++;
}
pairs[c][cEnd]++;
residueHash.put(PAIRPROFILE, pairs);
}
-
+ values['('] = canonicalOrWobblePairCount;
+ values['['] = canonical;
+ values['{'] = otherPairCount;
/*
* the count is the number of valid pairs (as a percentage, determines
* the relative size of the profile logo)
int count = canonicalOrWobblePairCount;
/*
- * currently displaying as '(' if most pairs are valid, or as
- * '[' if there are more invalid than valid pairs
+ * display '(' if most pairs are canonical, or as
+ * '[' if there are more wobble pairs.
*/
- if (!maxResidue.equals("-"))
+ if (canonicalOrWobblePairCount > 0 || otherPairCount > 0)
{
- maxResidue = canonicalOrWobblePairCount >= otherPairCount ? "("
+ if (canonicalOrWobblePairCount >= otherPairCount)
+ {
+ maxResidue = (canonicalOrWobblePairCount - canonical) < canonical ? "("
: "[";
+ }
+ else
+ {
+ maxResidue = "{";
+ }
}
residueHash.put(MAXCOUNT, new Integer(count));
residueHash.put(MAXRESIDUE, maxResidue);
{
values[')'] = values['('];
values[']'] = values['['];
+ values['}'] = values['{'];
values['('] = 0;
values['['] = 0;
- maxResidue = maxResidue.equals("(") ? ")" : "]";
+ values['{'] = 0;
+ maxResidue = maxResidue.equals("(") ? ")"
+ : maxResidue.equals("[") ? "]" : "}";
residueHash = new Hashtable();
if (profile)