void printList(numList & L) { // Print the integers in list L, 5 per line. for (int i=1; i <= L.size(); i++) { cout << " " << L.getnum(i) ; if (!(i%5) ) cout << endl; // Start new line after every 5th one. } if (!((i-1)%5)) cout << endl; // End last line if needed. } // end printList
int printBase(numList bases) { for (int i = 0 ; i < bases.size(); i ++) { cout << bases[i] << "\t"; } return 0; }
num S(numList& a) { int f_size = sizeof...(g); int g_size = a.size(); numList b; func g_i[sizeof...(g)] = { g... }; for (int i = 0; i < f_size; i++) b.push_back(g_i[i](a)); return f(b); }
// correct MD sepearte list // also collect deletion base list string correctMDstring(numList MDnum, stringList MDLetter, stringList &deletions) { string MDList; int i = 0; //make deletion list for (int i = 0; i < MDnum.size(); i ++) { if (MDLetter[i][0] == '^') { deletions.push_back(MDLetter[i]); } } MDList = creatMDstring(MDnum,MDLetter); return MDList; }
// create sequence-like MD string // returning a line with mismatch and match annotation // for each base, for example: // MD:1A20 // result: =A==================== string creatMDstring(numList MDnum, stringList MDletter) { string MDstring; for (int i = 0; i < MDnum.size(); i++) { if (MDletter[i][0] != '^' && MDletter[i] != "N" && MDletter[i] != "END") { MDstring.append(string(MDnum[i],'=')); MDstring.append(MDletter[i]); } else { MDstring.append(string(MDnum[i],'=')); } } return MDstring; }