public static void sortByGroup(AlignmentI align) {\r
int nSeq = align.getHeight();\r
Vector groups = align.getGroups();\r
public static void sortByGroup(AlignmentI align) {\r
int nSeq = align.getHeight();\r
Vector groups = align.getGroups();\r
\r
public static void sortBy(AlignmentI align, AlignmentOrder order) {\r
// Get an ordered vector of sequences which may also be present in align\r
Vector tmp = order.getOrder();\r
// if (tmp.size()<align.getHeight())\r
// addStrays(align, tmp);\r
\r
public static void sortBy(AlignmentI align, AlignmentOrder order) {\r
// Get an ordered vector of sequences which may also be present in align\r
Vector tmp = order.getOrder();\r
// if (tmp.size()<align.getHeight())\r
// addStrays(align, tmp);\r
- setOrder(align, tmp);\r
- }\r
+ if (lastOrder==order)\r
+ sortOrderAscending=!sortOrderAscending;\r
+ else\r
+ sortOrderAscending=true;\r
+ if (sortOrderAscending)\r
+ setOrder(align, tmp);\r
+ else\r
+ setReverseOrder(align, vectorSubsetToArray(tmp, align.getSequences()));\r
+ }\r
+ static NJTree lastTree = null;\r
static boolean sortTreeAscending = true;\r
\r
public static Vector getOrderByTree(AlignmentI align, NJTree tree) {\r
static boolean sortTreeAscending = true;\r
\r
public static Vector getOrderByTree(AlignmentI align, NJTree tree) {\r
public static void sortByTree(AlignmentI align, NJTree tree) {\r
Vector tmp = getOrderByTree(align, tree);\r
// tmp should properly permute align with tree.\r
public static void sortByTree(AlignmentI align, NJTree tree) {\r
Vector tmp = getOrderByTree(align, tree);\r
// tmp should properly permute align with tree.\r