git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tests for Aptx tree created from a Phylogeny object added
[jalview.git]
/
src
/
jalview
/
analysis
/
AAFrequency.java
diff --git
a/src/jalview/analysis/AAFrequency.java
b/src/jalview/analysis/AAFrequency.java
index
132abc0
..
e4f2dfa
100755
(executable)
--- a/
src/jalview/analysis/AAFrequency.java
+++ b/
src/jalview/analysis/AAFrequency.java
@@
-20,10
+20,6
@@
*/
package jalview.analysis;
*/
package jalview.analysis;
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.List;
-
import jalview.datamodel.AlignedCodonFrame;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignedCodonFrame;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
@@
-41,6
+37,11
@@
import jalview.util.Format;
import jalview.util.MappingUtils;
import jalview.util.QuickSort;
import jalview.util.MappingUtils;
import jalview.util.QuickSort;
+import java.awt.Color;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.List;
+
/**
* Takes in a vector or array of sequences and column start and column end and
* returns a new Hashtable[] of size maxSeqLength, if Hashtable not supplied.
/**
* Takes in a vector or array of sequences and column start and column end and
* returns a new Hashtable[] of size maxSeqLength, if Hashtable not supplied.
@@
-146,14
+147,13
@@
public class AAFrequency
{
if (sequences[row] == null)
{
{
if (sequences[row] == null)
{
- System.err
- .println("WARNING: Consensus skipping null sequence - possible race condition.");
+ System.err.println(
+ "WARNING: Consensus skipping null sequence - possible race condition.");
continue;
}
continue;
}
- char[] seq = sequences[row].getSequence();
- if (seq.length > column)
+ if (sequences[row].getLength() > column)
{
{
- char c = seq[column];
+ char c = sequences[row].getCharAt(column);
residueCounts.add(c);
if (Comparison.isNucleotide(c))
{
residueCounts.add(c);
if (Comparison.isNucleotide(c))
{
@@
-291,7
+291,7
@@
public class AAFrequency
/**
* Derive the gap count annotation row.
*
/**
* Derive the gap count annotation row.
*
- * @param consensus
+ * @param gaprow
* the annotation row to add annotations to
* @param profiles
* the source consensus data
* the annotation row to add annotations to
* @param profiles
* the source consensus data
@@
-300,11
+300,11
@@
public class AAFrequency
* @param endCol
* end column (exclusive)
*/
* @param endCol
* end column (exclusive)
*/
- public static void completeGapAnnot(AlignmentAnnotation consensus,
+ public static void completeGapAnnot(AlignmentAnnotation gaprow,
ProfilesI profiles, int startCol, int endCol, long nseq)
{
ProfilesI profiles, int startCol, int endCol, long nseq)
{
- if (consensus == null || consensus.annotations == null
- || consensus.annotations.length < endCol)
+ if (gaprow == null || gaprow.annotations == null
+ || gaprow.annotations.length < endCol)
{
/*
* called with a bad alignment annotation row
{
/*
* called with a bad alignment annotation row
@@
-313,8
+313,9
@@
public class AAFrequency
return;
}
// always set ranges again
return;
}
// always set ranges again
- consensus.graphMax = nseq;
- consensus.graphMin = 0;
+ gaprow.graphMax = nseq;
+ gaprow.graphMin = 0;
+ double scale = 0.8 / nseq;
for (int i = startCol; i < endCol; i++)
{
ProfileI profile = profiles.get(i);
for (int i = startCol; i < endCol; i++)
{
ProfileI profile = profiles.get(i);
@@
-324,16
+325,17
@@
public class AAFrequency
* happens if sequences calculated over were
* shorter than alignment width
*/
* happens if sequences calculated over were
* shorter than alignment width
*/
- consensus.annotations[i] = null;
+ gaprow.annotations[i] = null;
return;
}
final int gapped = profile.getNonGapped();
return;
}
final int gapped = profile.getNonGapped();
- String description = String.valueOf(gapped);
+ String description = "" + gapped;
- consensus.annotations[i] = new Annotation("", description, '0',
- gapped);
+ gaprow.annotations[i] = new Annotation("", description, '\0', gapped,
+ jalview.util.ColorUtils.bleachColour(Color.DARK_GRAY,
+ (float) scale * gapped));
}
}
}
}
@@
-342,7
+344,8
@@
public class AAFrequency
* <ul>
* <li>the full profile (percentages of all residues present), if
* showSequenceLogo is true, or</li>
* <ul>
* <li>the full profile (percentages of all residues present), if
* showSequenceLogo is true, or</li>
- * <li>just the modal (most common) residue(s), if showSequenceLogo is false</li>
+ * <li>just the modal (most common) residue(s), if showSequenceLogo is
+ * false</li>
* </ul>
* Percentages are as a fraction of all sequence, or only ungapped sequences
* if ignoreGaps is true.
* </ul>
* Percentages are as a fraction of all sequence, or only ungapped sequences
* if ignoreGaps is true.
@@
-363,8
+366,8
@@
public class AAFrequency
String description = null;
if (counts != null && showSequenceLogo)
{
String description = null;
if (counts != null && showSequenceLogo)
{
- int normaliseBy = ignoreGaps ? profile.getNonGapped() : profile
- .getHeight();
+ int normaliseBy = ignoreGaps ? profile.getNonGapped()
+ : profile.getHeight();
description = counts.getTooltip(normaliseBy, dp);
}
else
description = counts.getTooltip(normaliseBy, dp);
}
else
@@
-421,8
+424,8
@@
public class AAFrequency
QuickSort.sort(values, symbols);
int nextArrayPos = 2;
int totalPercentage = 0;
QuickSort.sort(values, symbols);
int nextArrayPos = 2;
int totalPercentage = 0;
- final int divisor = ignoreGaps ? profile.getNonGapped() : profile
- .getHeight();
+ final int divisor = ignoreGaps ? profile.getNonGapped()
+ : profile.getHeight();
/*
* traverse the arrays in reverse order (highest counts first)
/*
* traverse the arrays in reverse order (highest counts first)
@@
-539,8
+542,8
@@
public class AAFrequency
{
continue;
}
{
continue;
}
- List<char[]> codons = MappingUtils
- .findCodonsFor(seq, col, mappings);
+ List<char[]> codons = MappingUtils.findCodonsFor(seq, col,
+ mappings);
for (char[] codon : codons)
{
int codonEncoded = CodingUtils.encodeCodon(codon);
for (char[] codon : codons)
{
int codonEncoded = CodingUtils.encodeCodon(codon);
@@
-620,10
+623,10
@@
public class AAFrequency
int modalCodonEncoded = codons[codons.length - 1];
int modalCodonCount = sortedCodonCounts[codons.length - 1];
int modalCodonEncoded = codons[codons.length - 1];
int modalCodonCount = sortedCodonCounts[codons.length - 1];
- String modalCodon = String.valueOf(CodingUtils
- .decodeCodon(modalCodonEncoded));
- if (sortedCodonCounts.length > 1
- && sortedCodonCounts[codons.length - 2] == sortedCodonCounts[codons.length - 1])
+ String modalCodon = String
+ .valueOf(CodingUtils.decodeCodon(modalCodonEncoded));
+ if (sortedCodonCounts.length > 1 && sortedCodonCounts[codons.length
+ - 2] == sortedCodonCounts[codons.length - 1])
{
/*
* two or more codons share the modal count
{
/*
* two or more codons share the modal count
@@
-682,8
+685,8
@@
public class AAFrequency
{
if (samePercent.length() > 0)
{
{
if (samePercent.length() > 0)
{
- mouseOver.append(samePercent).append(": ")
- .append(lastPercent).append("% ");
+ mouseOver.append(samePercent).append(": ").append(lastPercent)
+ .append("% ");
}
samePercent.setLength(0);
samePercent.append(codon);
}
samePercent.setLength(0);
samePercent.append(codon);