import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.datamodel.SequenceNode;
+import jalview.ext.treeviewer.TreeI;
+import jalview.ext.treeviewer.TreeNodeI;
import jalview.util.QuickSort;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.forester.phylogeny.Phylogeny;
-import org.forester.phylogeny.PhylogenyNode;
-import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
-
/**
* Routines for manipulating the order of a multiple sequence alignment TODO:
* this class retains some global states concerning sort-order which should be
static TreeModel lastTree = null;
- static Phylogeny lastAptxTree = null;
+ static TreeI lastExternalTree = null;
static boolean sortTreeAscending = true;
}
// NOTE: DO NOT USE align.setSequenceAt() here - it will NOT work
- List<SequenceI> asq;
- synchronized (asq = align.getSequences())
+ List<SequenceI> asq = align.getSequences();
+ synchronized (asq)
{
for (int i = 0; i < len; i++)
{
public static void setOrder(AlignmentI align, SequenceI[] seqs)
{
// NOTE: DO NOT USE align.setSequenceAt() here - it will NOT work
- List<SequenceI> algn;
- synchronized (algn = align.getSequences())
+ List<SequenceI> algn = align.getSequences();
+ synchronized (algn)
{
List<SequenceI> tmp = new ArrayList<>();
- private static List<SequenceI> getOrderByTree(Phylogeny aptxTree,
- Map<PhylogenyNode, SequenceI> nodesWithBoundSeqs)
+ private static List<SequenceI> getOrderByTree(TreeI aptxTree,
+ Map<TreeNodeI, SequenceI> nodesWithBoundSeqs)
{
List<SequenceI> seqsByTreeOrder = new ArrayList<>();
if (!aptxTree.isEmpty())
{
- for (final PhylogenyNodeIterator iter = aptxTree
- .iteratorPreorder(); iter.hasNext();)
+ for (final Iterator<TreeNodeI> iter = aptxTree
+ .iterateInPreOrder(); iter.hasNext();)
{
- PhylogenyNode treeNode = iter.next();
+ TreeNodeI treeNode = iter.next();
seqsByTreeOrder.add(nodesWithBoundSeqs.get(treeNode));
}
* tree which has
*/
public static void sortByTree(AlignmentI align,
- Map<PhylogenyNode, SequenceI> aptxNodesWithSeqs,
- Phylogeny aptxTree) throws IllegalArgumentException
+ Map<TreeNodeI, SequenceI> nodesBoundToSequences,
+ TreeI treeI) throws IllegalArgumentException
{
- List<SequenceI> tmp = getOrderByTree(aptxTree, aptxNodesWithSeqs);
+ List<SequenceI> tmp = getOrderByTree(treeI, nodesBoundToSequences);
if (!tmp.isEmpty())
{
- if (lastAptxTree != aptxTree)
+ if (lastExternalTree != treeI)
{
sortTreeAscending = true;
- lastAptxTree = aptxTree;
+ lastExternalTree = treeI;
}
else
{
for (int i = 0; i < alignment.length; i++)
{
- ids[i] = (new Float(alignment[i].getName().substring(8)))
+ ids[i] = (Float.valueOf(alignment[i].getName().substring(8)))
.floatValue();
}
if (method != FEATURE_SCORE && method != FEATURE_LABEL
&& method != FEATURE_DENSITY)
{
- String msg = String
- .format("Implementation Error - sortByFeature method must be either '%s' or '%s'",
- FEATURE_SCORE, FEATURE_DENSITY);
+ String msg = String.format(
+ "Implementation Error - sortByFeature method must be either '%s' or '%s'",
+ FEATURE_SCORE, FEATURE_DENSITY);
System.err.println(msg);
return;
}
- flipFeatureSortIfUnchanged(method, featureTypes, groups, startCol, endCol);
+ flipFeatureSortIfUnchanged(method, featureTypes, groups, startCol,
+ endCol);
SequenceI[] seqs = alignment.getSequencesArray();
* get sequence residues overlapping column region
* and features for residue positions and specified types
*/
- String[] types = featureTypes == null ? null : featureTypes
- .toArray(new String[featureTypes.size()]);
+ String[] types = featureTypes == null ? null
+ : featureTypes.toArray(new String[featureTypes.size()]);
List<SequenceFeature> sfs = seqs[i].findFeatures(startCol + 1,
endCol + 1, types);