void alignSeqs(ProbabilisticModelPtr model, SequenceList seqs1, SequenceList seqs2, vector<std::string> names1, vector<std::string> names2, ostream & output, ostream & states_output) { if(seqs1.size() != seqs2.size()) { cerr << "Both files must to have the same amount of sequences." << endl; exit(-1); } for(int i = 0; i < (int)seqs1.size(); i++) { Sequence s1,s2,path; std::stringstream aux1,aux2,aux3; vector<Matrix> a; model->pairDecodable()->viterbi(seqs1[i], seqs2[i], path, s1, s2, a); aux1 << names1[i] << "_" << names2[i] << "_al1" ; aux2 << names1[i] << "_" << names2[i] << "_al2" ; aux3 << names1[i] << "_" << names2[i] << "_path" ; SequenceEntry out1(model->alphabet()); SequenceEntry out2(model->alphabet()); SequenceEntry out3(model->pairDecodable()->getStateNames()); out1.setName(aux1.str()); out2.setName(aux2.str()); out3.setName(aux3.str()); out1.setSequence(s1); out2.setSequence(s2); out3.setSequence(path); output << out1; output << out2 << endl; states_output << out3 << endl; } }
unsigned int NRows(void) const { return sequences->size(); }