package statalign.model.ext.plugins.structalign;
import java.util.ArrayList;
import statalign.base.Utils;
import statalign.base.Vertex;
import statalign.base.Tree;
import statalign.model.ext.plugins.structalign.Funcs;
public class Subtree {
public static ArrayList<Integer> getSubtreeLeaves(Tree tree, Vertex subtreeRoot, int nLeaves) {
ArrayList<Integer> subtreeLeaves = Funcs.collectLeaves(subtreeRoot);
if(subtreeLeaves.contains(0)){ // check if subtree contains reference protein
ArrayList<Integer> complement = new ArrayList<Integer>(0);
for(int i = 0; i < nLeaves; i++)
complement.add(i);
for(int i = 0; i < subtreeLeaves.size(); i++) {
complement.remove(subtreeLeaves.get(i));
}
subtreeLeaves = complement;
}
// if (Utils.DEBUG) {
// System.out.print(" {");
// for(int i = 0; i < subtreeLeaves.size(); i++){
// int j = subtreeLeaves.get(i);
// System.out.print(j);
// if (i < (subtreeLeaves.size() - 1)) {
// System.out.print(",");
// }
// }
// System.out.println("} ");
// }
return subtreeLeaves;
}
}