| 1 | /*
|
|---|
| 2 | * main.cpp
|
|---|
| 3 | *
|
|---|
| 4 | * Created on: Feb 24, 2014
|
|---|
| 5 | * Author: Ismail
|
|---|
| 6 | */
|
|---|
| 7 |
|
|---|
| 8 | #include <time.h>
|
|---|
| 9 | #include <iostream>
|
|---|
| 10 | #include <stdio.h>
|
|---|
| 11 | #include <algorithm>
|
|---|
| 12 | #include <fstream>
|
|---|
| 13 | #include <string>
|
|---|
| 14 | #include <vector>
|
|---|
| 15 | #include <cstring>
|
|---|
| 16 | #include <cmath>
|
|---|
| 17 | #include <map>
|
|---|
| 18 | #include "functions.h"
|
|---|
| 19 | #include <stdio.h>
|
|---|
| 20 | #include <ctype.h>
|
|---|
| 21 | #include <sstream>
|
|---|
| 22 | using namespace std;
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 | int main()
|
|---|
| 26 | {
|
|---|
| 27 |
|
|---|
| 28 | //cout << -DBL_MAX << endl;
|
|---|
| 29 | //cout << "Enter the second number: ";
|
|---|
| 30 | //cin >> num2;
|
|---|
| 31 | //outputFile << "1" << "\t\t\t" << "0.7" << "\t\t\t" << "0.8" << endl;
|
|---|
| 32 | //cout << "Enter the third number: ";
|
|---|
| 33 | //cin >> num3;
|
|---|
| 34 | //outputFile << num3 << endl;
|
|---|
| 35 | //cout << "Enter the fourth number: ";
|
|---|
| 36 | //cin >> num4;
|
|---|
| 37 | //outputFile << num4 << endl;
|
|---|
| 38 | //cout << "Enter the fifth number: ";
|
|---|
| 39 | //cin >> num5;
|
|---|
| 40 | //outputFile << num5 << endl;
|
|---|
| 41 |
|
|---|
| 42 | //cout << "Done!\n";
|
|---|
| 43 |
|
|---|
| 44 | //string number;
|
|---|
| 45 | //ostringstream strstream;
|
|---|
| 46 |
|
|---|
| 47 | /*
|
|---|
| 48 | strstream << 111;
|
|---|
| 49 | number = strstream.str();
|
|---|
| 50 | cout << number << endl;
|
|---|
| 51 | strstream.str("");
|
|---|
| 52 | strstream << 110;
|
|---|
| 53 | number = strstream.str();
|
|---|
| 54 | cout << number << endl;
|
|---|
| 55 | */
|
|---|
| 56 |
|
|---|
| 57 |
|
|---|
| 58 | // 141 142 143
|
|---|
| 59 | // 141 142 144
|
|---|
| 60 | // 141 143 144
|
|---|
| 61 | // 142 143 144
|
|---|
| 62 |
|
|---|
| 63 | //cout << "Hello World!" << endl;
|
|---|
| 64 |
|
|---|
| 65 | //int a = 10;
|
|---|
| 66 | //int b = 20;
|
|---|
| 67 | //double c = (double)a/b;
|
|---|
| 68 |
|
|---|
| 69 | string one = "AAA";
|
|---|
| 70 | string two = "AAA";
|
|---|
| 71 |
|
|---|
| 72 | if (one == two)
|
|---|
| 73 | {
|
|---|
| 74 | int wait = 0;
|
|---|
| 75 | }
|
|---|
| 76 |
|
|---|
| 77 | //int dim3;
|
|---|
| 78 | //for (dim3 = one.length(); dim3 >= 0; dim3--)
|
|---|
| 79 | //{
|
|---|
| 80 | //cout << dim3 << " ";
|
|---|
| 81 | //}
|
|---|
| 82 |
|
|---|
| 83 | int no_of_seqs = 3;
|
|---|
| 84 | functions obj;
|
|---|
| 85 |
|
|---|
| 86 | //obj.x1 = "GCGCCCUUAGCUC"; //obj.x1 = "GCGCCCUUAGCUC";
|
|---|
| 87 | //obj.x2 = "GGCCCUAGCU"; //obj.x2 = "G-GCCCU-AGCU-";
|
|---|
| 88 | //obj.x3 = "GCGCCCUACUC"; //obj.x3 = "GCGCCCU-A-CUC";
|
|---|
| 89 | //obj.x1 = "GGGAAAUUAAUGUGAA"; //obj.x1 = "GGGAAAUUAAUGUGAA" "UGGGAAAUUAAUGUGAA";
|
|---|
| 90 | //obj.x2 = "GGGAAUAAUGUGAA"; //obj.x2 = "GGGA-AU-AAUGUGAA" "UGG-AAAUUAAUG-GAA";
|
|---|
| 91 | //obj.x3 = "GGGAAUUAAUGUGAA"; //obj.x3 = "GGGA-AUUAAUGUGAA" "UGG-AAAUUAAUGUGAA";
|
|---|
| 92 | //obj.x1 = "GCGC";//obj.x1 = "GCGC";
|
|---|
| 93 | //obj.x2 = "GCC"; //obj.x3 = "GC.C";
|
|---|
| 94 | //obj.x3 = "GC"; //obj.x2 = "GC..";
|
|---|
| 95 | //obj.x1 = "ACCCGGCCAUAGUGGCCGGGCAACACCCGGUCUCGUUUCGAACCCGGAAGUUAAGCCGGCCACGUCAGAACGGCCGUGAGGUCCGAGAGGCCUCGCAGCCGUUCUGAGCUGGGAU";
|
|---|
| 96 | //obj.x2 = "ACCCGGCCAUAGCGGCCGGGCAACACCCGGACUCAUGUCGAACCCGGAAGUUAAGCCGGCCGCGUUGGGGGAUGCUGUGGGGUCCGCGAGGCCCCGCAGCGCCCCCAAGCCGGGAU";
|
|---|
| 97 | //obj.x3 = "ACCCGGCAAUAGGCGCCGGUGCUACGCCCGGUCUCUUCAGAACCCGGAAGCUAAGGCCGGCGCCGCGGACGGGAGUACUGGGGUCCGCGAGGCCCCGGGAAACCGCCGUGCUGGGA";
|
|---|
| 98 |
|
|---|
| 99 | //obj.x1 = "ACCCGGUCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUAGUGGGGCCGUGGAUACCGUGAGGAUCCGCAGCCCCACUAAGCUGGGAU";
|
|---|
| 100 | //obj.x2 = "ACCCGGCCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUGGUGGGGCCGUGGAUACCGUGAGGAUCCGCAGCCCCACUAAGCUGGGAU";
|
|---|
| 101 | //obj.x3 = "ACCCGGUCAUAGUGAGCGGGUAACACCCGGACUCGUUUCGAACCCGGAAGUUAAGCCGCUCACGUCAGAGGGGCCGUGGGAUCCGAGAGGGCCCGCAGCCUCUCUGAGCUGGGAU";
|
|---|
| 102 |
|
|---|
| 103 | //obj.x1 = "GUAGCGGCCACAGCGGUGGGGUUCCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCACCAGCGUUCCGGGGAUACUGGAGUGCGCGACCCUCUGGGAAACCGGGUUCGCCGCUAC";
|
|---|
| 104 | //obj.x2 = "AGUGGUGGCCAUAUCGGCGGGGUUCCUCCCCGUACCCAUCCUGAACACGGAAGAUAAGCCCGCCAGCGUCCGGCAAUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCAC";
|
|---|
| 105 | //obj.x3 = "GGCGGCCACAGCGGUGGGGUUGCCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCACCAGCGUUCCAGGGAUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCA";
|
|---|
| 106 |
|
|---|
| 107 | //obj.x1 = "UAAGGCGGCCAUAGCGGUGGGGUUACUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCGCCUGCGUUCCGGUCAGUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCUACU";
|
|---|
| 108 | //obj.x2 = "GCGGCCAGGGCGGAGGGGAAACACCCGUACCCAUUCCGAACACGGAAGUGAAGCCCUCCAGCGAACCAGCUAGUACUAGAGUGGGAGACCCUCUGGGAGCGCUGGUUCGCCGCC";
|
|---|
| 109 | //obj.x3 = "UUGGCGACCAUAGCGGCGAGUGACCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCUCGCCUGCGUUUCGGUCAGUACUGGAUUGGGCGACCCUCUGGGAAAUCUGAUUCGCCGCCACC";
|
|---|
| 110 |
|
|---|
| 111 | //obj.x1 = "GCGGCCACAGCGGCGGGGCGACUCCCGUACCCAUCCCGAACACGGCAGAUAAGCCCGCCAGCGUUCCAGCGAGUACUGGAGUGUGCGAACCUCUGGGAAAACUG";
|
|---|
| 112 | //obj.x2 = "GGGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCGCCUGCGUUCUGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCCCU";
|
|---|
| 113 | //obj.x3 = "GGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCACCUGCGUUCUGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCC";
|
|---|
| 114 |
|
|---|
| 115 |
|
|---|
| 116 | //obj.x1 = "AAUU"; //"A-AUU"
|
|---|
| 117 | //obj.x2 = "AUAU"; //"AUAU-"
|
|---|
| 118 | //obj.x3 = "AAU"; //"A--U-"
|
|---|
| 119 |
|
|---|
| 120 | for (int count = 1; count < pow(2, no_of_seqs); count++)
|
|---|
| 121 | {
|
|---|
| 122 | obj.states.push_back(obj.dec_2_bin((long)count));
|
|---|
| 123 | //cout << obj.states[count-1] << endl;
|
|---|
| 124 | }
|
|---|
| 125 |
|
|---|
| 126 | obj.string_parser_prob("hmmparam_states_3seq.txt"); // reading state transition parameters
|
|---|
| 127 | obj.string_parser_prob("hmmparam_emissions_3seq.txt"); // reading state emission parameters
|
|---|
| 128 | obj.prob_matrix_fill(); // forming matrix of all probabilities of emission
|
|---|
| 129 | // cout << obj.emission_double.size() << endl;
|
|---|
| 130 | obj.vector_assigner();
|
|---|
| 131 |
|
|---|
| 132 | obj.map_fill();
|
|---|
| 133 |
|
|---|
| 134 | char c[] = "emissions.txt";
|
|---|
| 135 | obj.string_parser_emission(c);
|
|---|
| 136 |
|
|---|
| 137 |
|
|---|
| 138 | /*// viterbi testing
|
|---|
| 139 | obj.viterbi_matrix_initialisation();
|
|---|
| 140 | obj.viterbi_3seq();
|
|---|
| 141 | cout << "x1_aligned: " << obj.x1_aligned_reverse << endl;
|
|---|
| 142 | cout << "x2_aligned: " << obj.x2_aligned_reverse << endl;
|
|---|
| 143 | cout << "x3_aligned: " << obj.x3_aligned_reverse << endl;*/
|
|---|
| 144 |
|
|---|
| 145 | //cout << "state trans: " << obj.prev_state_to_111["111"] << endl;
|
|---|
| 146 |
|
|---|
| 147 | //cout << "index for '..C': " << obj.emission_indexes["..C"] << endl;
|
|---|
| 148 | //cout << "index for '..G': " << obj.emission_indexes["..G"] << endl;
|
|---|
| 149 | //cout << "index for 'AAA': " << obj.emission_indexes["AAA"] << endl;
|
|---|
| 150 |
|
|---|
| 151 | // Reading Sequences
|
|---|
| 152 |
|
|---|
| 153 | // printing sequences
|
|---|
| 154 | // char a[] = "3_aligned_seq.aa";
|
|---|
| 155 | // char a[] = "RF00005.seed.aa";
|
|---|
| 156 | // char a[] = "RF00100.aa"; // 45 choose 3 possible combinations
|
|---|
| 157 | // char a[] = "RF01689.aa"; // 144 choose 3 possible combinations
|
|---|
| 158 | // obj.readfasta(a);
|
|---|
| 159 |
|
|---|
| 160 | /*char a[] = "5s-rRNA.aa"; // 144 choose 3 possible combinations
|
|---|
| 161 | obj.readfasta(a);
|
|---|
| 162 | //cout << "length of seqs: " << obj.seqs.size() << endl;
|
|---|
| 163 |
|
|---|
| 164 | //char b[] = "45choose3.txt";
|
|---|
| 165 | char b[] = "120choose3.txt"; // testing for 487343 different combinations
|
|---|
| 166 | obj.string_parser(b);
|
|---|
| 167 | obj.standardiser();*/
|
|---|
| 168 |
|
|---|
| 169 | //cout << "obj.seq_combinations.size: " << obj.seq_combinations.size() << endl;
|
|---|
| 170 |
|
|---|
| 171 | //cout << "final combination: " << obj.seq_combinations[280839][0] << " " << obj.seq_combinations[280839][1] << " " << obj.seq_combinations[280839][2] << endl;
|
|---|
| 172 |
|
|---|
| 173 | //cout << "seq1: " << obj.seqs[0] << endl;
|
|---|
| 174 | //cout << "seq2: " << obj.seqs[1] << endl;
|
|---|
| 175 | //cout << "seq3: " << obj.seqs[2] << endl;
|
|---|
| 176 |
|
|---|
| 177 | //int seq_count;
|
|---|
| 178 | //cout << "size of seq_comb: " << obj.seq_combinations.size() << endl;
|
|---|
| 179 |
|
|---|
| 180 | //ofstream outputFile;
|
|---|
| 181 | //outputFile.open("measurementparameters.txt");
|
|---|
| 182 | cout << "combo#" << "\t\t" << "PPV" << "\t\t\t" << "Sensitivity" << endl;
|
|---|
| 183 | //outputFile << "combo#" << "\t\t" << "PPV" << "\t\t\t" << "Sensitivity" << endl;
|
|---|
| 184 |
|
|---|
| 185 | char a[] = "5s-rRNA.aa"; // 144 choose 3 possible combinations
|
|---|
| 186 | obj.readfasta(a);
|
|---|
| 187 |
|
|---|
| 188 | char b[] = "120choose3.txt"; // testing for 487343 different combinations
|
|---|
| 189 | obj.string_parser(b);
|
|---|
| 190 | obj.standardiser();
|
|---|
| 191 |
|
|---|
| 192 | string known1, known2, known3;
|
|---|
| 193 |
|
|---|
| 194 | //obj.x1_aligned_reverse = "AAA";
|
|---|
| 195 | //obj.x2_aligned_reverse = "AAG";
|
|---|
| 196 | //obj.x3_aligned_reverse = "A.A";
|
|---|
| 197 |
|
|---|
| 198 | //obj.x1_aligned_reverse = "ACCCGGUCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUAGUGGG.GCCGUGGAUACCGUGAGGAUCCGCAG.CCCCACUAAGCUGGGAU";
|
|---|
| 199 | //obj.x2_aligned_reverse = "ACCCGGCCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUGGUGGG.GCCGUGGAUACCGUGAGGAUCCGCAG.CCCCACUAAGCUGGGAU";
|
|---|
| 200 | //obj.x3_aligned_reverse = "ACCCGGUCAUAGUGAGCGGGUAACACCCGGACUCGUUUCGAACCCGGAAGUUAAGCCGCUCA.CGUCAGAGGGGCCGUGGGAUCCGAGAGGGCCCGCAGCCUCUCUGA.GCUGGGAU";
|
|---|
| 201 |
|
|---|
| 202 | //obj.x1_aligned_reverse = "ACCCGGCCAUAGUGGCCGG.GCAACACCCGGUCUCGUUUCGAACCCGGAAGUUAAGCCGGCCACGUCAGAACG....GCCGUGAGGUCCGAGAGGCCUCGCAGCCGUUCUGAGCUGGGAU";
|
|---|
| 203 | //obj.x2_aligned_reverse = "ACCCGGCCAUAGCGGCCGG.GCAACACCCGGACUCAUGUCGAACCCGGAAGUUAAGCCGGCCGCGUUGG...GGGAUGCUGUGGGGUCCGCGAGGCCCCGCAGCGCCCCCAAGCCGGGAU";
|
|---|
| 204 | //obj.x3_aligned_reverse = "ACCCGGCAAUAGGCGCCGGUGCUACGCCCGGUCUC.UUCAGAACCCGGAAGCUAAGGCCGGCGCCGCGG.ACGGGA.GUACUGGGGUCCGCGAGGCCCCGGGAAACCGCCGUGCUGGGA.";
|
|---|
| 205 |
|
|---|
| 206 | //obj.known1 = "ACCCGGCCAUAGU.GGCCGGGCAACACCCGGUCUCGUUUCGAACCCGGAAGUUAAGCCGGCCACGUCAG..AACG.GCCGUGAGGUCCGAGAGG.CCUCGCAGCCGUU.CUGAGCUGGGAU";
|
|---|
| 207 | //obj.known2 = "ACCCGGCCAUAGC.GGCCGGGCAACACCCGGACUCAUGUCGAACCCGGAAGUUAAGCCGGCCGCGUUGG..GGGAUGCUGUGGGGUCCGCGAGGCCCC.GCAGCGCCC.CCAAGCCGGGAU";
|
|---|
| 208 | //obj.known3 = "ACCCGGCAAUAGGCGCCGGUGCUACGCCCGGUCUCUUCA.GAACCCGGAAGCUAAGGCCGGCG.CCGCGGACGGGAGUACUGGGGUCCGCGAGGCCCCGGGAA.ACCGCCGU.GCUGGGA.";
|
|---|
| 209 |
|
|---|
| 210 | obj.x1_aligned_reverse = "G..CGGCCACAGCGGCGGGGCGACUCCCGUACCCAUCCCGAACACGGCAGAUAAGCCCGCCAGCGUUCCAGCGAGUACUGGAGUGUGCGAACCUCUGGGAAAACUG.............";
|
|---|
| 211 | obj.x2_aligned_reverse = "GGGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCGCCUGCGUUCUGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCCCU";
|
|---|
| 212 | obj.x3_aligned_reverse = "GG.CGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCACCUGCGUUCUGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCC..";
|
|---|
| 213 |
|
|---|
| 214 | obj.known1 = "..GCGGCCACAGCGGCGGGGCGACUCCCGUACCCAUCCCGAACACGGCAGAUAAGCCCGCCAGCG.UUCCAGCGA.GUACUGGAGUGUGCGAACCUCUGGGAA.AACU....G........";
|
|---|
| 215 | obj.known2 = "GGGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCGCCUGCGUUC..UGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCCCU";
|
|---|
| 216 | obj.known3 = ".GGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCACCUGCGUUC..UGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCC..";
|
|---|
| 217 |
|
|---|
| 218 |
|
|---|
| 219 | obj.alignment_scorer();
|
|---|
| 220 | cout << "score_known: " << obj.score_known << endl;
|
|---|
| 221 | cout << "score_pred: " << obj.score_pred << endl;
|
|---|
| 222 | int wait = 1;
|
|---|
| 223 |
|
|---|
| 224 |
|
|---|
| 225 |
|
|---|
| 226 | /*for (int i = 0; i < 50; i++)
|
|---|
| 227 | {
|
|---|
| 228 | int index1 = obj.seq_combinations[i][0] - 1;
|
|---|
| 229 | int index2 = obj.seq_combinations[i][1] - 1;
|
|---|
| 230 | int index3 = obj.seq_combinations[i][2] - 1;
|
|---|
| 231 | //cout << "index1: " << index1 << endl;
|
|---|
| 232 | //cout << "index2: " << index2 << endl;
|
|---|
| 233 | //cout << "index3: " << index3 << endl;
|
|---|
| 234 | obj.x1 = obj.seqs[index1];
|
|---|
| 235 | obj.x2 = obj.seqs[index2];
|
|---|
| 236 | obj.x3 = obj.seqs[index3];
|
|---|
| 237 |
|
|---|
| 238 | obj.x1.erase(std::remove(obj.x1.begin(), obj.x1.end(), 'X'), obj.x1.end());
|
|---|
| 239 | obj.x2.erase(std::remove(obj.x2.begin(), obj.x2.end(), 'X'), obj.x2.end());
|
|---|
| 240 | obj.x3.erase(std::remove(obj.x3.begin(), obj.x3.end(), 'X'), obj.x3.end());
|
|---|
| 241 |
|
|---|
| 242 | //cout << "i: " << i << endl;
|
|---|
| 243 | //cout << "obj.seq_combinations[i][0]: " << obj.seq_combinations[i][0] << endl;
|
|---|
| 244 | //cout << "obj.seq_combinations[i][1]: " << obj.seq_combinations[i][1] << endl;
|
|---|
| 245 | //cout << "obj.seq_combinations[i][2]: " << obj.seq_combinations[i][2] << endl;
|
|---|
| 246 | //cout << "x1_orig: " << obj.x1 << endl;
|
|---|
| 247 | //cout << "x2_orig: " << obj.x2 << endl;
|
|---|
| 248 | //cout << "x3_orig: " << obj.x3 << endl;
|
|---|
| 249 |
|
|---|
| 250 | obj.standardiser2();
|
|---|
| 251 | known1 = obj.x1;
|
|---|
| 252 | known2 = obj.x2;
|
|---|
| 253 | known3 = obj.x3;
|
|---|
| 254 | //cout << "after processing: " << endl;
|
|---|
| 255 | //cout << "known1: " << known1 << endl;
|
|---|
| 256 | //cout << "known2: " << known2 << endl;
|
|---|
| 257 | //cout << "known3: " << known3 << endl;
|
|---|
| 258 |
|
|---|
| 259 | obj.standardiser3();
|
|---|
| 260 | //cout << "x1: " << obj.x1 << endl;
|
|---|
| 261 | //cout << "x2: " << obj.x2 << endl;
|
|---|
| 262 | //cout << "x3: " << obj.x3 << endl;
|
|---|
| 263 |
|
|---|
| 264 | obj.viterbi_matrix_initialisation();
|
|---|
| 265 | obj.viterbi_3seq();
|
|---|
| 266 |
|
|---|
| 267 | //cout << "x1: " << obj.x1 << endl;
|
|---|
| 268 | //cout << "x2: " << obj.x2 << endl;
|
|---|
| 269 | //cout << "x3: " << obj.x3 << endl;
|
|---|
| 270 | //cout << "x1_aligned: " << obj.x1_aligned_reverse << endl;
|
|---|
| 271 | //cout << "x2_aligned: " << obj.x2_aligned_reverse << endl;
|
|---|
| 272 | //cout << "x3_aligned: " << obj.x3_aligned_reverse << endl;
|
|---|
| 273 |
|
|---|
| 274 | obj.sensitivity_and_ppv_calculator(known1, known2, known3);
|
|---|
| 275 |
|
|---|
| 276 | obj.x1_aligned.clear();
|
|---|
| 277 | obj.x2_aligned.clear();
|
|---|
| 278 | obj.x3_aligned.clear();
|
|---|
| 279 | obj.x1_aligned_reverse.clear();
|
|---|
| 280 | obj.x2_aligned_reverse.clear();
|
|---|
| 281 | obj.x3_aligned_reverse.clear();
|
|---|
| 282 |
|
|---|
| 283 | cout << i+1 << "\t\t\t" << obj.ppv << "\t\t\t" << obj.sensitivity << endl;
|
|---|
| 284 | //outputFile << i+1 << "\t\t\t" << obj.ppv << "\t\t\t" << obj.sensitivity << endl;
|
|---|
| 285 | }
|
|---|
| 286 |
|
|---|
| 287 | //outputFile.close();
|
|---|
| 288 | cout << "Done!" << endl;*/
|
|---|
| 289 |
|
|---|
| 290 |
|
|---|
| 291 | //for (seq_count = 0; seq_count < obj.seq_combinations.size(); seq_count++)
|
|---|
| 292 | //{
|
|---|
| 293 | // cout << "index: " << seq_count << endl; // << " " << obj.seq_combinations[seq_count][0] << " "<< obj.seq_combinations[seq_count][1] << " " << obj.seq_combinations[seq_count][2] << endl;
|
|---|
| 294 | //}
|
|---|
| 295 |
|
|---|
| 296 | /*
|
|---|
| 297 | obj.standardiser();
|
|---|
| 298 | //obj.emission_prob_calc();
|
|---|
| 299 | *
|
|---|
| 300 | *
|
|---|
| 301 | */
|
|---|
| 302 |
|
|---|
| 303 | /*
|
|---|
| 304 | string onefourtyone = "AUACUGAAGUUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGUAAAGUCGGAGCGCCACCCAGUAUAGUCCGUUGUUGAAUGAAGGCCAGGGAAAGUCUAGUUCUACUAAUAAUAA";
|
|---|
| 305 | string onefourtytwo = "GUACUGUUAUUAAGGUGGGAAAUGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAUAGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUUACAAUCUUACAAUGAAAAA";
|
|---|
| 306 | string onefourtythree = "UUCCUAAAAGCAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGUGAUAGUCCGAAUGCCACCUAGGAAUAGAUAGAGCAAGGAGACUCAAUGAAUAAAGUAACU";
|
|---|
| 307 | string onefourtyfour = "AGGCUGAAAUGCAUGGUGGGAAAUCAGUGUGAAAUUCAUUGGCUGUUCCUGCAACCGUAAAGUCGGAGCGCCACCCAGCUUAGUCCGCUGAUGAAUGAUGGCCAGGAAAAGUCUAAUUCUAUAAUGAAAAA";
|
|---|
| 308 | */
|
|---|
| 309 |
|
|---|
| 310 | //cout << onefourtyone << endl;
|
|---|
| 311 | //cout << onefourtytwo << endl;
|
|---|
| 312 | //cout << onefourtythree << endl;
|
|---|
| 313 |
|
|---|
| 314 | //obj.x1 = onefourtyone;
|
|---|
| 315 | //obj.x2 = onefourtytwo;
|
|---|
| 316 | //obj.x3 = onefourtythree;
|
|---|
| 317 |
|
|---|
| 318 | //obj.x1 = onefourtyone;
|
|---|
| 319 | //obj.x2 = onefourtytwo;
|
|---|
| 320 | //obj.x3 = onefourtythree;
|
|---|
| 321 |
|
|---|
| 322 | // rRNA seqs:
|
|---|
| 323 | //obj.x1 = "ACCCGGCCAUAGUGGCCGGGCAACACCCGGUCUCGUUUCGAACCCGGAAGUUAAGCCGGCCACGUCAGAACGGCCGUGAGGUCCGAGAGGCCUCGCAGCCGUUCUGAGCUGGGAU";
|
|---|
| 324 | //obj.x2 = "ACCCGGCCAUAGCGGCCGGGCAACACCCGGACUCAUGUCGAACCCGGAAGUUAAGCCGGCCGCGUUGGGGGAUGCUGUGGGGUCCGCGAGGCCCCGCAGCGCCCCCAAGCCGGGAU";
|
|---|
| 325 | //obj.x3 = "ACCCGGCAAUAGGCGCCGGUGCUACGCCCGGUCUCUUCAGAACCCGGAAGCUAAGGCCGGCGCCGCGGACGGGAGUACUGGGGUCCGCGAGGCCCCGGGAAACCGCCGUGCUGGGA";
|
|---|
| 326 |
|
|---|
| 327 | //obj.x1 = "ACCCGGUCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUAGUGGGGCCGUGGAUACCGUGAGGAUCCGCAGCCCCACUAAGCUGGGAU";
|
|---|
| 328 | //obj.x2 = "ACCCGGCCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUGGUGGGGCCGUGGAUACCGUGAGGAUCCGCAGCCCCACUAAGCUGGGAU";
|
|---|
| 329 | //obj.x3 = "ACCCGGUCAUAGUGAGCGGGUAACACCCGGACUCGUUUCGAACCCGGAAGUUAAGCCGCUCACGUCAGAGGGGCCGUGGGAUCCGAGAGGGCCCGCAGCCUCUCUGAGCUGGGAU";
|
|---|
| 330 |
|
|---|
| 331 | //obj.x1 = "GUAGCGGCCACAGCGGUGGGGUUCCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCACCAGCGUUCCGGGGAUACUGGAGUGCGCGACCCUCUGGGAAACCGGGUUCGCCGCUAC";
|
|---|
| 332 | //obj.x2 = "AGUGGUGGCCAUAUCGGCGGGGUUCCUCCCCGUACCCAUCCUGAACACGGAAGAUAAGCCCGCCAGCGUCCGGCAAUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCAC";
|
|---|
| 333 | //obj.x3 = "GGCGGCCACAGCGGUGGGGUUGCCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCACCAGCGUUCCAGGGAUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCA";
|
|---|
| 334 |
|
|---|
| 335 | //obj.x1 = "UAAGGCGGCCAUAGCGGUGGGGUUACUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCGCCUGCGUUCCGGUCAGUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCUACU";
|
|---|
| 336 | //obj.x2 = "GCGGCCAGGGCGGAGGGGAAACACCCGUACCCAUUCCGAACACGGAAGUGAAGCCCUCCAGCGAACCAGCUAGUACUAGAGUGGGAGACCCUCUGGGAGCGCUGGUUCGCCGCC";
|
|---|
| 337 | //obj.x3 = "UUGGCGACCAUAGCGGCGAGUGACCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCUCGCCUGCGUUUCGGUCAGUACUGGAUUGGGCGACCCUCUGGGAAAUCUGAUUCGCCGCCACC";
|
|---|
| 338 |
|
|---|
| 339 | //obj.x1 = "GCGGCCACAGCGGCGGGGCGACUCCCGUACCCAUCCCGAACACGGCAGAUAAGCCCGCCAGCGUUCCAGCGAGUACUGGAGUGUGCGAACCUCUGGGAAAACUG";
|
|---|
| 340 | //obj.x2 = "GGGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCGCCUGCGUUCUGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCCCU";
|
|---|
| 341 | //obj.x3 = "GGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCACCUGCGUUCUGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCC";
|
|---|
| 342 |
|
|---|
| 343 |
|
|---|
| 344 | //obj.x1 = "AUACUGAAGUUUGGUGGGGAAUCAGUGUG"; //"AUACUGAAG.UUUGGUGGGGAAUCAGUGUG"
|
|---|
| 345 | //obj.x2 = "GUACUGUUAUUAAGGUGGGAAAUGAUGUG"; //"GUACUGUUAUUAAGGUGGGAAA.UGAUGUG"
|
|---|
| 346 | //obj.x3 = "UUCCUAAAAGCAUAGUGGGAAAGAGACGUG"; //"UUCCUAAAAGCAUAGUGGGAAAGAGACGUG"
|
|---|
| 347 |
|
|---|
| 348 |
|
|---|
| 349 | //obj.x1 = "GCGC"; //obj.x1 = "GCGC";
|
|---|
| 350 | //obj.x2 = "GCG"; //obj.x2 = "GCG-";
|
|---|
| 351 | //obj.x3 = "GC"; //obj.x3 = "G--C";
|
|---|
| 352 |
|
|---|
| 353 | //obj.x1 = "GCGC"; //obj.x1 = "GCGC";
|
|---|
| 354 | //obj.x2 = "GGC"; //obj.x3 = "G-GC";
|
|---|
| 355 | //obj.x3 = "GG"; //obj.x2 = "G-G-";
|
|---|
| 356 |
|
|---|
| 357 | //int sum = 0;
|
|---|
| 358 |
|
|---|
| 359 |
|
|---|
| 360 | /*
|
|---|
| 361 | // verifying emission probabilites
|
|---|
| 362 | cout << "total emissions in state 010: " << obj.emission_in_states_count[10] << endl;
|
|---|
| 363 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 364 | {
|
|---|
| 365 | if (iter->first[0] == obj.gap && iter->first[1] != obj.gap && iter->first[2] == obj.gap)
|
|---|
| 366 | {
|
|---|
| 367 | //cout << "symbol: " << iter->first << " with count: " << iter->second << endl;
|
|---|
| 368 | cout << "symbol: " << iter->first << " with prob: " << iter->second << endl;
|
|---|
| 369 | sum += iter->second;
|
|---|
| 370 | }
|
|---|
| 371 | }
|
|---|
| 372 |
|
|---|
| 373 | cout << sum << endl;
|
|---|
| 374 |
|
|---|
| 375 | // verifying state transitions
|
|---|
| 376 | cout << obj.prev_state_to_001["10"] << endl;
|
|---|
| 377 | cout << obj.prev_state_to_010["10"] << endl;
|
|---|
| 378 | cout << obj.prev_state_to_011["10"] << endl;
|
|---|
| 379 | cout << obj.prev_state_to_100["10"] << endl;
|
|---|
| 380 | cout << obj.prev_state_to_101["10"] << endl;
|
|---|
| 381 | cout << obj.prev_state_to_110["10"] << endl;
|
|---|
| 382 | cout << obj.prev_state_to_111["10"] << endl;
|
|---|
| 383 |
|
|---|
| 384 |
|
|---|
| 385 |
|
|---|
| 386 |
|
|---|
| 387 | //cout << "size of emission prob. collection: " << obj.emission_prob_collection.size() << endl;
|
|---|
| 388 | //obj.final_probability_calc();
|
|---|
| 389 |
|
|---|
| 390 | //double sum = 0;
|
|---|
| 391 |
|
|---|
| 392 |
|
|---|
| 393 | // traversing emission probabilities calculated from entire set of data
|
|---|
| 394 | cout << "For state 001" << endl;
|
|---|
| 395 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 396 | {
|
|---|
| 397 | if (iter->first[0] == obj.gap && iter->first[1] == obj.gap && iter->first[2] != obj.gap)
|
|---|
| 398 | {
|
|---|
| 399 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 400 | sum += iter->second;
|
|---|
| 401 | }
|
|---|
| 402 | }
|
|---|
| 403 |
|
|---|
| 404 |
|
|---|
| 405 | cout << "For state 010" << endl;
|
|---|
| 406 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 407 | {
|
|---|
| 408 | if (iter->first[0] == obj.gap && iter->first[1] != obj.gap && iter->first[2] == obj.gap)
|
|---|
| 409 | {
|
|---|
| 410 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 411 | sum += iter->second;
|
|---|
| 412 | }
|
|---|
| 413 | }
|
|---|
| 414 |
|
|---|
| 415 | cout << "For state 011" << endl;
|
|---|
| 416 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 417 | {
|
|---|
| 418 | if (iter->first[0] == obj.gap && iter->first[1] != obj.gap && iter->first[2] != obj.gap)
|
|---|
| 419 | {
|
|---|
| 420 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 421 | sum += iter->second;
|
|---|
| 422 | }
|
|---|
| 423 | }
|
|---|
| 424 |
|
|---|
| 425 | cout << "For state 100" << endl;
|
|---|
| 426 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 427 | {
|
|---|
| 428 | if (iter->first[0] != obj.gap && iter->first[1] == obj.gap && iter->first[2] == obj.gap)
|
|---|
| 429 | {
|
|---|
| 430 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 431 | sum += iter->second;
|
|---|
| 432 | }
|
|---|
| 433 | }
|
|---|
| 434 |
|
|---|
| 435 | cout << "For state 101" << endl;
|
|---|
| 436 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 437 | {
|
|---|
| 438 | if (iter->first[0] != obj.gap && iter->first[1] == obj.gap && iter->first[2] != obj.gap)
|
|---|
| 439 | {
|
|---|
| 440 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 441 | sum += iter->second;
|
|---|
| 442 | }
|
|---|
| 443 | }
|
|---|
| 444 |
|
|---|
| 445 | cout << "For state 110" << endl;
|
|---|
| 446 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 447 | {
|
|---|
| 448 | if (iter->first[0] != obj.gap && iter->first[1] != obj.gap && iter->first[2] == obj.gap)
|
|---|
| 449 | {
|
|---|
| 450 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 451 | sum += iter->second;
|
|---|
| 452 | }
|
|---|
| 453 | }
|
|---|
| 454 |
|
|---|
| 455 | cout << "For state 111" << endl;
|
|---|
| 456 | for ( map<string, double>::const_iterator iter = obj.emission_prob.begin(); iter != obj.emission_prob.end(); ++iter)
|
|---|
| 457 | {
|
|---|
| 458 | if (iter->first[0] != obj.gap && iter->first[1] != obj.gap && iter->first[2] != obj.gap)
|
|---|
| 459 | {
|
|---|
| 460 | cout << "emission: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 461 | sum += iter->second;
|
|---|
| 462 | }
|
|---|
| 463 | }*/
|
|---|
| 464 |
|
|---|
| 465 |
|
|---|
| 466 | //cout << "sum of of emission probabilities in state: " << sum;
|
|---|
| 467 |
|
|---|
| 468 | //for ( map<string, double>::const_iterator iter = obj.prev_state_to_001.begin(); iter != obj.prev_state_to_001.end(); ++iter)
|
|---|
| 469 | //{
|
|---|
| 470 | // cout << "state from: " << iter->first << " " << "prob: " << iter->second << endl;
|
|---|
| 471 | //}
|
|---|
| 472 |
|
|---|
| 473 | /*
|
|---|
| 474 | string number;
|
|---|
| 475 | stringstream strstream;
|
|---|
| 476 | for(int it = 0; it < obj.states.size(); ++it)
|
|---|
| 477 | {
|
|---|
| 478 | strstream.str("");
|
|---|
| 479 | strstream << obj.states[it];
|
|---|
| 480 | number = strstream.str();
|
|---|
| 481 | cout << "to state 001 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_001[number] << endl;
|
|---|
| 482 | cout << "to state 010 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_010[number] << endl;
|
|---|
| 483 | cout << "to state 011 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_011[number] << endl;
|
|---|
| 484 | cout << "to state 100 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_100[number] << endl;
|
|---|
| 485 | cout << "to state 101 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_101[number] << endl;
|
|---|
| 486 | cout << "to state 110 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_110[number] << endl;
|
|---|
| 487 | cout << "to state 111 from " << obj.states[it] << " " << "with prob: " << obj.prev_state_to_111[number] << endl;
|
|---|
| 488 | }
|
|---|
| 489 | */
|
|---|
| 490 |
|
|---|
| 491 |
|
|---|
| 492 | /*cout << "printing emission_double" << endl;
|
|---|
| 493 | for (int i = 0; i < obj.emission_double.size(); i++)
|
|---|
| 494 | {
|
|---|
| 495 | for (int j = 0; j < obj.emission_double[0].size(); j++)
|
|---|
| 496 | {
|
|---|
| 497 | cout << obj.emission_double[i][j] << " ";
|
|---|
| 498 | }
|
|---|
| 499 | cout << endl;
|
|---|
| 500 | }*/
|
|---|
| 501 |
|
|---|
| 502 |
|
|---|
| 503 | //cout << "index of ..A: " << obj.emission_indexes["..A"] << endl;
|
|---|
| 504 | //cout << "index of ..C: " << obj.emission_indexes["..C"] << endl;
|
|---|
| 505 | //cout << "value of prob1: " << obj.emission_double[obj.emission_indexes["..A"]][0] << endl;
|
|---|
| 506 | //cout << "value of prob2: " << obj.emission_double[obj.emission_indexes["..C"]][0] << endl;
|
|---|
| 507 |
|
|---|
| 508 | //obj.viterbi_matrix_initialisation();
|
|---|
| 509 | //obj.viterbi_3seq();
|
|---|
| 510 | //obj.forward_algo_3seq();
|
|---|
| 511 | //obj.backward_algo_3seq();
|
|---|
| 512 | //obj.max_expected_accuracy();
|
|---|
| 513 |
|
|---|
| 514 | //cout << "x1_aligned: " << obj.x1_aligned_reverse << endl;
|
|---|
| 515 | //cout << "x2_aligned: " << obj.x2_aligned_reverse << endl;
|
|---|
| 516 | //cout << "x3_aligned: " << obj.x3_aligned_reverse << endl;
|
|---|
| 517 |
|
|---|
| 518 | //cout << "aligned1: " << obj.align1 << endl;
|
|---|
| 519 | //cout << "aligned2: " << obj.align2 << endl;
|
|---|
| 520 | //cout << "aligned3: " << obj.align3 << endl;
|
|---|
| 521 |
|
|---|
| 522 | /*cout << "x1: " << obj.x1 << endl;
|
|---|
| 523 | cout << "x2: " << obj.x2 << endl;
|
|---|
| 524 | cout << "x3: " << obj.x3 << endl;
|
|---|
| 525 | cout << "x1_aligned_reversed: " << obj.x1_aligned << endl;
|
|---|
| 526 | cout << "x2_aligned_reversed: " << obj.x2_aligned << endl;
|
|---|
| 527 | cout << "x3_aligned_reversed: " << obj.x3_aligned << endl;*/
|
|---|
| 528 |
|
|---|
| 529 | //obj.x1_aligned_reverse = "AUACUG.AAGUUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGUAA.........AGUCGGAGCGCCACCCAGUAUAGUCCGUUGUU.GAAUGAAGGCCAGGGAAAGUCUAGUUCUACUAAUAAUAA.......";
|
|---|
| 530 | //obj.x2_aligned_reverse = "GUACUGUUAUUAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAUAGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUUACAAUCUUACAAUGAAAAA.......";
|
|---|
| 531 | //obj.x3_aligned_reverse = "UUCCUAAAAGCAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGUGAU........AGUCCGAAUGCCACCUAGGAA............UAGAUAGAGCAAGGAGA..........CUCAAUGAAUAAAGUAACU";
|
|---|
| 532 |
|
|---|
| 533 | //string one_known = "AUACUGAAG.UUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGU...AA.A.....GUCGGAGCGCCACCCAGUAU.AGUCCGUUGUUGAAUGAAGGCCAGGGAAAGUC..U.AGUUCUACUAAUAAUA";
|
|---|
| 534 | //string two_known = "GUACUGUUAUUAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAU.AGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUU..ACAAUCUUAC.AAUGAAA";
|
|---|
| 535 | //string three_known = "UUCCUAAAAGCAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGU...GAUA.....GUCCGAAUGCCACCUAGGAAUAGA...........U..AGAGCAAGGAGACUCAAUGAA...UAA.AGUAACU";
|
|---|
| 536 |
|
|---|
| 537 | //string one_known = "AUACUGAAG..UUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGU...AA.A.....GUCGGAGCGCCACCCAGUAUAGUCCGUUGUUGAAUGAAGGCCAGGGAAAGUCU.AGUUCUACUAAUAAUAA.";
|
|---|
| 538 | //string two_known = "GUACUGUUAU.UAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAUAGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUUACAAUCUUAC.AAUGAAAAA";
|
|---|
| 539 | //string three_known = "AGGCUGAAAUGCAUGGUGGGAAAUCAGUGUGAAAUUCAUUGGCUGUUCCUGCAACCGU...AA.A.....GUCGGAGCGCCACCCAGCUUAGUCCGCUGAUGAAUGAUGGCCAGGAAAAGUCU.AAUUCUAU.AAUGAAAAA";
|
|---|
| 540 |
|
|---|
| 541 | //string one_known = "AUACUGAAG..UUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGUAA.AGUCGGAGCGCCACCCAGUAU.AGUCCGUUGUUGAAUGAAGGCCAGGGAAAGUC..U.AGUUCUACUAAUAAUAA.";
|
|---|
| 542 | //string two_known = "UUCCUAAAAG.CAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGUGAUAGUCCGAAUGCCACCUAGGAAUAGA...........U..AGAGCAAGGAGACUCAAUGAA...UAA.AGUAACU..";
|
|---|
| 543 | //string three_known = "AGGCUGAAAUGCAUGGUGGGAAAUCAGUGUGAAAUUCAUUGGCUGUUCCUGCAACCGUAA.AGUCGGAGCGCCACCCAGCUU.AGUCCGCUGAUGAAUGAUGGCCAGGAAAAGUC..U.AAUUCUAU.AAUGAAAAA";
|
|---|
| 544 |
|
|---|
| 545 | //string one_known = "GUACUGUUAU.UAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAU.AGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUU..ACAAUCUUAAAUGAAAAA";
|
|---|
| 546 | //string two_known = "UUCCUAAAAG.CAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGU...GAUA.....GUCCGAAUGCCACCUAGGAAUAGA...........U..AGAGCAAGGAGACUCAAUGAA...UAAGUAACU..";
|
|---|
| 547 | //string three_known = "AGGCUGAAAUGCAUGGUGGGAAAUCAGUGUGAAAUUCAUUGGCUGUUCCUGCAACCGU...AA.A.....GUCGGAGCGCCACCCAGCUU.AGUCCGCUGAUGAAUGAUGGCCAGGAAAAGUC..U.AAUUCUAAAUGAAAAA";
|
|---|
| 548 |
|
|---|
| 549 | // rRNA seqs:
|
|---|
| 550 | //string one_known = "ACCCGGCCAUAGU.GGCCGGGCAACACCCGGUCUCGUUUCGAACCCGGAAGUUAAGCCGGCCACGUCAG..AACG.GCCGUGAGGUCCGAGAGG.CCUCGCAGCCGUU.CUGAGCUGGGAU";
|
|---|
| 551 | //string two_known = "ACCCGGCCAUAGC.GGCCGGGCAACACCCGGACUCAUGUCGAACCCGGAAGUUAAGCCGGCCGCGUUGG..GGGAUGCUGUGGGGUCCGCGAGGCCCC.GCAGCGCCC.CCAAGCCGGGAU";
|
|---|
| 552 | //string three_known = "ACCCGGCAAUAGGCGCCGGUGCUACGCCCGGUCUCUUCA.GAACCCGGAAGCUAAGGCCGGCG.CCGCGGACGGGAGUACUGGGGUCCGCGAGGCCCCGGGAA.ACCGCCGU.GCUGGGA.";
|
|---|
| 553 |
|
|---|
| 554 | //string one_known = "ACCCGGUCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUAGUGGG.GCCGUGGAUACCGUGAGGAUCCGCAG.CCCCACUAAGCUGGGAU";
|
|---|
| 555 | //string two_known = "ACCCGGCCACAGUGAGCGGGCAACACCCGGACUCAUUUCGAACCCGGAAGUUAAGCCGCUCACGUUGGUGGG.GCCGUGGAUACCGUGAGGAUCCGCAG.CCCCACUAAGCUGGGAU";
|
|---|
| 556 | //string three_known = "ACCCGGUCAUAGUGAGCGGGUAACACCCGGACUCGUUUCGAACCCGGAAGUUAAGCCGCUCA.CGUCAGAGGGGCCGUGGGAUCCGAGAGGGCCCGCAGCCUCUCUGA.GCUGGGAU";
|
|---|
| 557 |
|
|---|
| 558 | //string one_known = ".GUAGCGGCCACAGCGGUGGGGUUCC.UC.CCGUACCCAUCCCGAACACGGAAGAUAAGCCCACCAGCGUUCCGGGGA.UACUGGAGUGCGCGACCCUCUGGGAA.ACCGGGUUCGCCGCUAC";
|
|---|
| 559 | //string two_known = "AGUGGUGGCCAUAUCGGCGGGGUUCC.UCCCCGUACCCAUCCUGAACACGGAAGAUAAGCCCGCCAGCG..UCCGGCAAUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGU.UCGCCGCCAC";
|
|---|
| 560 | //string three_known = "...GGCGGCCACAGCGGUGGGGUUGCCUC.CCGUACCCAUCCCGAACACGGAAGAUAAGCCCACCAGCGUUCCAGGGA.UACUGGAGUGCGCGAGCCUCUGGGAA.AUCCGGUUCGCCGCCA.";
|
|---|
| 561 |
|
|---|
| 562 | //string one_known = "UAAGGCGGCCAUAGCGGUGGGGUUACUCCCGUACCCAUCCCGAACACGGAAGAUAAGCCCGCCUGCGUUCCGGUCAGUACUGGAGUGCGCGAGCCUCUGGGAAAUCCGGUUCGCCGCCUACU";
|
|---|
| 563 | //string two_known = "....GCGGCCAGGGCGGAGGGGAAACACCCGUACCCAUUCCGAACACGGAAGUGAAGCCCUCCAGCGAACCAGCUAGUACUAGAGUGGGAGACCCUCUGGGAGCGCUGGUUCGCCGCC....";
|
|---|
| 564 | //string three_known = ".UUGGCGACCAUAGCGGCGAGUGACCUCCCGUACCCAUCCCGAACACGGAAGAUAAGCUCGCCUGCGUUUCGGUCAGUACUGGAUUGGGCGACCCUCUGGGAAAUCUGAUUCGCCGCCACC.";
|
|---|
| 565 |
|
|---|
| 566 | /*string one_known = "..GCGGCCACAGCGGCGGGGCGACUCCCGUACCCAUCCCGAACACGGCAGAUAAGCCCGCCAGCG.UUCCAGCGA.GUACUGGAGUGUGCGAACCUCUGGGAA.AACU....G........";
|
|---|
| 567 | string two_known = "GGGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCGCCUGCGUUC..UGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCCCU";
|
|---|
| 568 | string three_known = ".GGCGGCCAGAGCGGUGAGGUUCCACCCGUACCCAUCCCGAACACGGAAGUUAAGCUCACCUGCGUUC..UGGUCAGUACUGGAGUGAGCGAUCCUCUGGGAAAUCCAGUUCGCCGCCC..";
|
|---|
| 569 |
|
|---|
| 570 | obj.sensitivity_and_ppv_calculator(one_known, two_known, three_known);*/
|
|---|
| 571 | //cout << "sensitivity: " << obj.sensitivity << endl;
|
|---|
| 572 | //cout << "ppv: " << obj.ppv << endl;
|
|---|
| 573 |
|
|---|
| 574 | //comb 1:
|
|---|
| 575 | //"AUACUGAAG.UUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGU...AA.A.....GUCGGAGCGCCACCCAGUAU.AGUCCGUUGUUGAAUGAAGGCCAGGGAAAGUC..U.AGUUCUACUAAUAAUA"
|
|---|
| 576 | //"GUACUGUUAUUAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAU.AGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUU..ACAAUCUUAC.AAUGAAA"
|
|---|
| 577 | //"UUCCUAAAAGCAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGU...GAUA.....GUCCGAAUGCCACCUAGGAAUAGA...........U..AGAGCAAGGAGACUCAAUGAA...UAA.AGUAACU"
|
|---|
| 578 |
|
|---|
| 579 | //comb 2:
|
|---|
| 580 | //AUACUGAAG..UUUGGUGGGGAAUCAGUGUGAAAUUCAUUGGCUCUACCUGGAACCGU...AA.A.....GUCGGAGCGCCACCCAGUAUAGUCCGUUGUUGAAUGAAGGCCAGGGAAAGUCU.AGUUCUACUAAUAAUAA.
|
|---|
| 581 | //GUACUGUUAU.UAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAUAGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUUACAAUCUUAC.AAUGAAAAA
|
|---|
| 582 | //AGGCUGAAAUGCAUGGUGGGAAAUCAGUGUGAAAUUCAUUGGCUGUUCCUGCAACCGU...AA.A.....GUCGGAGCGCCACCCAGCUUAGUCCGCUGAUGAAUGAUGGCCAGGAAAAGUCU.AAUUCUAU.AAUGAAAAA
|
|---|
| 583 |
|
|---|
| 584 | //comb 4:
|
|---|
| 585 | //GUACUGUUAU.UAAGGUGGGAAA.UGAUGUGAAAUUCAUCAGCUGUGCUCGCAACGGUAAAUUAGUUAAAGUCCGAAGGCCACUCAGUAU.AGUCCGGUGUUAGAAAGUAAUCGAGAAGAAUU..ACAAUCUUAAAUGAAAAA
|
|---|
| 586 | //UUCCUAAAAG.CAUAGUGGGAAAGAGACGUGUAAUUCGUCCACAUUACUUGAUACGGU...GAUA.....GUCCGAAUGCCACCUAGGAAUAGA...........U..AGAGCAAGGAGACUCAAUGAA...UAAGUAACU..
|
|---|
| 587 | //AGGCUGAAAUGCAUGGUGGGAAAUCAGUGUGAAAUUCAUUGGCUGUUCCUGCAACCGU...AA.A.....GUCGGAGCGCCACCCAGCUU.AGUCCGCUGAUGAAUGAUGGCCAGGAAAAGUC..U.AAUUCUAAAUGAAAAA
|
|---|
| 588 |
|
|---|
| 589 | return 0;
|
|---|
| 590 | }
|
|---|