alignment add_internal(alignment A,const SequenceTree& T) { // Complain if A and T don't correspond if (A.n_sequences() != T.n_leaves()) throw myexception()<<"Number of sequence in alignment doesn't match number of leaves in tree" <<"- can't add internal sequences"; // Add empty sequences vector<sequence> S; for(int i=T.n_leaves();i<T.n_nodes();i++) { sequence s; if (T.label(i) == "") throw myexception()<<"Adding internal sequences: Tree has missing internal node name!"; s.name = T.label(i); S.push_back(s); } A.add_sequences(S); return A; }