diff --git a/examples/HIV-1_latent.xml b/examples/HIV-1_latent.xml
new file mode 100644
index 0000000..f9fd745
--- /dev/null
+++ b/examples/HIV-1_latent.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/HIV-1_C.xml b/examples/HIV_models/HIV-1_C.xml
new file mode 100755
index 0000000..3f5178c
--- /dev/null
+++ b/examples/HIV_models/HIV-1_C.xml
@@ -0,0 +1,515 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9705
+
+ CTGGAAGGGTTAATTTACTCCAAGAAAAGGCAAGACATCCTTGATTTGTGGGTTTATAACACACAAGGCTTCTTTCCTGATTGGCAAAACTACACACCGGGACCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTTCAAGCTAGTACCAGTTGACCCAAGGGAAGTAGAAGAAGCCAACGAAGGAGAAAACAACTGTCTGCTACACCCTATGAGCCAACATGGAATGGATGATGATCACAGAGAAGTATTAAAGTGGAAGTTTGACAGTCAACTAGCACACAAACACATGGCCCGCGAGCTACATCCGGAGTTTTACAAAGACTGCTGACACAAAAGGGACTTTCCGCTGGGACTTTCCACTTGGGCGTTCCAGGAGGTGGGGTCTGGGCGGGACCGGGGAGTGGCCAGCCCTCAGATGCTGCATATAAGCAGCTGCTTTTCGCCTGTACTGGGTCTCTCTAGGTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTGCCTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTCTAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCATTTTGGTTGCGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACTTGAAAGCGAAAGTAAGACCAGAGGAGATCTCTCGACGCAGGACTCGGCTTGCTGAAGTGCACTCGGCAAGAGGCGAGAGCGGCGACTGGTGAGTACGCCAATTTTATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAATATTAAGAGGGGGAAAATTAGATAAATGGGAAAAAATTAGGTTAAGGCCAGGGGGAAAGAAAAAATATCAGCTAAAACACCTAGTATGGGCAAGCAGGGAGCTGGAAAAATTTGCACTTAACCCTGACCTTTTAGAAACATCAGAAGGCTGTAAACAAATAATAAGACAGCTACACCCAGCTCTCCAGACAGGAACAGAGGAACTCAAATCACTATATAACACAGTAGCAACTCTCTATTGTGTACATAAAAATATAGATGTGCGAGACACCAAGGAGGCCTTAGACAGGATAGAGGAGGAACAAAACAAATGTCAGCAAAAAACACAGCAGGCAGCAGCGGCTGACGGACAGGTCAGTCGAAATTTTCCTATAGTACAGAATCTTCAAGGGCAAATGGTACACCAGCCCTTATCACCTAGAACTTTGAATGCTTGGGTAAAAGTAGTAGAGGAGAAGGGTTTCAACCCAGAGGTAATACCCATGTTTACAGCATTATCAGAAGGAGCCACCCCACAAGATATGAACACTATGTTAAATACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGATACCATCAATGAGGAGGCTGCAGAGTGGGATAGATTACATCCAGTACAGGCAGGGCCTGTTGCACCAGGCCAAATAAGGGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGCATGGATGACAAGTAACCCACCTGTTCCAGTGGGAGACATCTATAAAAGATGGATAATTCTGGGGTTAAATAAAATAGTAAGAATGTATAGCCCTGTCAGCATTTTGGACATAAAACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGATCGGTTCTTTAAAACTTTAAGGGCTGAACAGGCTACACAAGATGTAAAAAATTGGATGACAGACACCCTGTTGGTCCAAAATGCGAACCCAGATTGCAAGACCATTTTAAGAGCACTAGGACCAGGGGCTACATTAGAGGAAATGATGACAGCATGTCAAGGAGTGGGAGGACCTAGCCACAAAGCAAGAGTGTTAGCCGAGGCAATGAGCCAAACAAACACAAACATACTGATGCAGAGAAGCAATTTCAAAGGCACTAGAAGAATTGTTAAATGTTTCAACTGTGGCAAGGAAGGGCACATAGCCAAAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGACTGTACAGAAAGGCAGGCTAATTTTTTAGGGAAAATTTGGCCTTCCCACAAGGGGAGGCCAGGGAATTTCCTTCAGAACAGGCCAGAGCCAACAGCCCCACCACTAGAACCAACAGCCCCACCAGCAGAGAGCTCCACCCCCGCTCTGAAGCAGGAGCAGAAAGACAGGGAACCCTCAATTTCCCTCAAATCACTCTTTGGCAACGACCCCTTGTCACAATAAGAGTAGGGGGACAAATAAAGGAGGCTCTATTAGACACAGGAGCAGATGACACAGTATTAGAAGAATTAAGTTTGCCAGGAAAATGGAAACCAAAAATGATAGGAGGAATTGGAGGATTTATCAAAGTAAGACAGTATGATCAAATATCTATAGAAATTTGTGGAAAAAAGGCTATAGGTACAGTATTGGTAGGACCTACACCTGTCAACATAATTGGAAGAAACATGTTGACTCAGCTTGGATGCACCCTAAATTTTCCAATTAGTCCCATTGAAACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAGGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAACAGCAATTTGTGAAGAAATGGAAAAGGAAGGAAAAATTACAAAAATTGGGCCTGAAAACCCATATAACACTCCAGTATTTGCCATTAAAAAGAAGGACAGTACAAAGTGGAGAAAATTAGTAGATTTCAGGGAACTTAATAAAAGGACTCAAGACTTTTGGGAAGTTCAATTAGGAATACCACACCCAGCAGGGTTAAAAAAGAAAAAATCAGTGACAGTACTGGATGTGGGGGATGCATATTTTTCAGTTCCTTTAGATAAAGATTTCAGGAAATATACTGCATTCACCATACCTAGTATAAACAATGAAACACCAGGAATTAGATATCAATATAATGTGCTTCCACAAGGATGGAAAGGATCACCAGCAATATTCCAGAGTAGCATGACAAAAATCTTAGAGCCCTTTAGAGCAAAAAACCCAGAAATAGTCATCTATCAATATATGGATGACTTATATGTAGGGTCTGACTTAGAAATAGGGCAACATAGAGCAAAAATAGAGGAGTTAAGAAAACACCTATTGAAATGGGGATTTACCACACCAGACAAGAAACATCAGAAGGAGCCCCCATTTCTTTGGATGGGGTATGAACTCCATCCTGACAAATGGACAGTACAGTCTATACAGCTACCGGAAAAGGACAGCTGGACTGTCAATGATATACAGAAGTTAGTGGGAAAATTAAACTGGGCAAGTCAGATTTACCCAGGAATTAAAGTAAAGCAAATGTGTAAACTCCTTAGGGGAGCCAAAGCACTAACAGATGTAGTACCACTGACTGAAGAAGCAGAATTAGAATTGGCAGAGAACAGGGAAATTCTAAAAGAACCAGTACATGGAGTATATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAACAGGGAGATGACCAGTGGACATATCAAATTTACCAAGAACCATTCAAAAATCTAAAAACAGGAAAATATGCAAAACAGAGAACTGCCCACACAAATGATGTAAAACAATTAACTGAGGCAGTGCAGAAAATATGCATGGAAAGCATAGTAATATGGGGGAAGATTCCTAAGTTTAGACTACCCATCCAAAAGGAAACATGGGAGACATGGTGGACAGACTACTGGCAAGCCACCTGGATTCCTGAGTGGGAATTTATTAATACCCCTCCCCTAGTAAAATTATGGTATCAGCTGGAGAAGGAACCCATAGCAGGGGCAGAAACTTTCTATGTAGATGGAGCAGCTAATAGGGAAACTAAAAAGGGAAAAGCAGGTTATGTTACTGACAGAGGAAGGCAGAAAGTTGTTTCTCTAACTGGAACAACAAATCAAAAGACTGAGTTACAAGCAATTCAGCTAGCTTTGCAAGACTCAGGATCAGAAGTAAATATAGTAACAGACTCACAGTATGCATTAGGAATCATTCAAGCACAACCAGATAAGAGTGAATCAGAGTTAGTCAATCAAATAATAGAACAGCTAATAAAAAAGGAAAGAATCTACCTGTCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTAAGTAGTGGAATCAGGAAAGTACTGTTTCTAGATGGAATAGATAAAGCTCAAGAAGACCATGAAAGATATCACAGCAATTGGAGAGCGATGGCTAGCGAGTTTAATCTGCCACCCATAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGGGAAGCCATACATGGACAAGTAGACTGTAGTCCAGGGGTATGGCAACTAGATTGTACACACTTAGAAGGGAAAATCATCCTGGTAGCAGTCCATGTAGCCAGTGGATACATAGAAGCAGAAGTCATCCCAACAGAAACAGGACAAGAAACAGCATACTATATACTAAAATTAGCAGGAAGATGGCCAGTCAAAGTAATACATACAGACAATGGCCCTAATTTTACCAGTGCTGCAGTTAAGGCAGCCTGTTGGTGGGCAGGTATCCAACAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAGGGAGTAGTGGAATCCATGAATAAAGAATTAAAGAAAATCATAGGGCAAGTAAGAGATCAAGCTGAGCACCTTAAGACAGCAGTACAAATGGCAGTGTTCATTCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACACTGCAGGGGAAAGAATAATAGACATAATAGCAACAGACATACAAACTAAGCAATTACAAAAACAAATTATAAAAATTCAAAATTTTCGGGTTTATTACAGAGACAGCAGAGATCCAATTTGGAAAGGACCAGCCAAACTACTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAACAGTGACATAAAGGTAGTACCAAGAAGGAAAGCAAAGATTATTAAGGACTATGGAAAACAGATGGCAGGTGCTGATTGTGTGGCAGGTAGACAGGATGAAGATTAGAACATGGAATAGTCTAGTAAAGCACCATATGTATGTTTCAAGGAGAGCTGATGGATGGTTTTACAGACATCACTATGAAAGCAGACATCCAAAAATAAGTTCAGAAGTACACATCCCATTAGGGGATGCTAGATTAGTAATAAAAACATATTGGGGTTTGCAGACAGGAGAAAGAGCTTGGCATTTGGGTCATGGAGTCTCCATAGAATGGAGACTGAAAAGATATAGCACACAAGTAGACCCTGACCTGGCAGATCAACTAATTCATATGCATTATTTTGATTGTTTTGCAGACTCTGCCATAAGACAAGCCATACTAGGACACGTAGTTAGCCCTAGGTGTGACTATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTGACAGCATTGATAAAGCCAAAAAAGATAAAGCCACCTCTGCCTAGTGTTAGCAAGTTAGTAGAGGATAAATGGAACAAGCCCCAGAAGACCAGGGGCCGCAGAGGGAACCATACAATGAATGGACACTAGAGCTTCTAGAGGAACTCAAGCAGGAAGCTGTCAGACACTTTCCTAGGCCATGGCTTCACAGTTTAGGACAACATATCTATGAAACCTATGGGGACACTTGGACGGGAGTTGAAGCCATAATAAGAATTCTGCAACAACTGTTGTTTGTTCATTTCAGAATTGGGTGCCAGCATAGCAGAATAGGCATTATACGACAGAGAAGAGCAAGAAATGGAGCCAATAGATCCTAAACTAGAGCCCTGGAATCATCCAGGAAGCCAGCCTAAGACTGCTTGTAATAAGTGCTATTGTAAAAAATGTAGCTATCATTGTCTAGTTTGCTTTCAGACAAAAGGCTTAGGCATTTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGCGCTCCTCCAAGCAGTAAGGATCATCAAAATCCTCTACCAAAGCAGTAAGTATATGTAATGTTAGACTTAGTAGCAAGAGTAGATTATAGAATAGGAGTAGGAGCATTAATAGTAGCACTAATCATAGCAATAGTTGTGTGGATCCTAGCATATATAGAATATAAAAGGTGGTTAAAACAAAAGAAAATAGACTGGTTAATTAAAAGAATTAGGGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAGGGGGATACAGAGGAATTATCAACAATGGTGGATATGGAGCATCTTGGCCTTTTGGATGTTAATGGTTAGTGTGAGGGGAAACTTGTGGGTTACAGTCTATTATGGGGTACCTGTGTGGAAAGAAGCAAAAACTACTCTATTCTGTGCATCAGATGCTAAAGCATATGACAAGGAAGTGCATAATGTCTGGGCTACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAATAAAATTGGAAAATGTAACAGAAAATTTTAATATGTGGAAAAATGATATGGTGGATCAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTGAAGTTGACCCCACTTTGTGTCACTTTAAACTGTAGTCATAATATTACGGTTAATGGTACCATGGGAAATGGTACCAGGGGAAATGATAGTACGATTGGGAAAATGGGAGATGAAATGACAAATTGCTCTTTCAATGCAACCACAGAAATAAAAGATAAGAAAAAGCTAGAATATGCACTTTTTTATAAACTTGATGTAGTAACACTTGAGGAAAACTCCAGTGAGTACAGATTAATAAATTGTAATACCTCAGTAGTTACACAAGCCTGTCCAAAGGTTTCGTTTCACCCAATTCCTATACATTATTGTGCTCCTGCTGGTTATGCGATTCTAAAGTGTAATAATAAGACATTCAATGGAACAGGACCATGCAATAAGATCAGCACTGTACAGTGTACACATGGGATCAAGCCAGTGGTATCTACTCAACTACTGTTAAATGGTAGTCTAGCAGAAAAAGAGATAATAGTTAGATCTGAAAATATACAGGACAATGTCAAAACAATCATAGTACATCTTAATGAATCTGTGAAAATTGAGTGTACAAGGCCCGGCAATAATACAAGAAAAAGTGTGAGGATAGGACCAGGACAAACATTCTTTGCAACAGGAGACATAATAGGAGATATAAGACAAGCATACTGTACCATTAATGGGACTCAATGGAATGACACTTTAAATAGGGTAAGAGAAACATTACAAAGGCACTTCCCTAATAAAACAATAAAATTTAGACCACACTCAGGAGGGGACTTAGAAATTACAACACATAGCTTTAATTGTAGAGGAGAGTTTTTCTATTGCAATACATCAAAAATATTTGATAGTGACAATGCAAACAAAACTTCAGGAAATATCACACTCCCATGCAAAATAAAACAAATCATAAACATGTGGCAGGGGGTAGGAAGAGCAATGTATGCCCCTCCCATTGCAGGAAACATAACATGTACATCAAATATCACAGGACTACTATTGACACGTGATGGAGGCAATGTTACAAATGACACAGAGATATTCAGACCTGGAGGAGGAAATATGAGGGACAATTGGAGAAGTGAATTATACAAATATAAAGTGGTAGAAATTAAGCCATTAGGGATAGCACCCACCAAGGCAAAAAGGCGAGTGGTGGAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTGTATTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCGTCAATAGCGCTGACGGTACAGGCCAGACAATTGTTGTCTGGTATAGTGCAACAGCAAAACAATTTGCTGAGAGCTATAGAGGCGCAACAGCATATGTTGCAACTCACGGTCTGGGGCATTAAACAGCTCCAGGCAAGAGTCCTGGCTATAGAAAGATACCTAGAGGATCAACAGCTCCTAGGGATTTGGGGCTGCTCTGGAAAACTCATCTGCACCACTGCCGTGCCTTGGAACAATAGTTGGAGTAATAAATCTCAAGATGATATTTGGGGCAATATGACCTGGATGCAATGGGACAGAGAAATTAGCAATTACACAGACACAATATACAGGTTGCTTGAAGACTCGCAAATCCAGCAGGAAAAGAATGAAAAGGATTTACTAGCATTGGACAGTTGGCAAAATTTGTGGAATTGGTTTAACATAACAAAATGGCTGTGGTATATAAAAATATTCATAATGATAGTAGGAGGCTTAATAGGTTTAAGAATAATTTTTGCTGTACTATCTATAGTAAATAGAGTTAGGCAGGGATACTCACCTTTGTCGTTTCAGACCCTTATCCCAAACCAGAGGGAACCCGACAGGCTCGGAAGAATCGAAGAAGAAGGTGGAGAGCCAGACAGAAACAGATCCATTCGATTGGTGAACGGATTCTTAGCTCTTACCTGGGACGACCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGATTGAGAGACTTCATATTGGTGACAGTGAGAGTGGTGGAACTTCTGGGACGCAGCAGCTTCAGGGGACTACAGAGGGGGTGGGAAGCCCTTAAGTATCTGGGAAGCCTTGTGCAGTATTGGGGTCTAGAGCTAAAAAAGAGTGCTATTAGTTTGCTTGATACCACAGCAATAGCAGTAGCTGAAGGAACAGATAGGATTATAGAATTCCTACAGAGAATTTGTAGAGCTATCTACCATATACCTAGAAGAATAAGACAGGGCTTTGAAGCAGCTTTGCAATAAAATGGGGGGCAAGTGGTCAAAAAGCAGTATAGTTGGATGGCCTAATGTAAGGGAAAGAATAAGGCGAACTGATCCAGCAGCAGAGGGAGTAGGAGCAGCATCTCGAGACTTAGAGAGACATGGGGCACTTACTACCAGCAACACAGTCAGCAACAATGCTGCATGTGCCTGGCTGGAAGCACAAGAAGAGGAAAAAGAAGTAGGCTTTCCAGTCAGACCTCAAGTGCCTTTAAGACCAATGACTTATAAAGGAGCATTCGATCTCAGCTTCTTTTTAAAAGAAAAGGGGGGACTGGAAGGGTTAATTTACTCCAAGAAAAGGCAAGACATCCTTGATTTGTGGGTTTATAACACACAAGGCTTCTTTCCTGATTGGCAAAACTACACACCGGGACCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTTCAAGCTAGTACCAGTTGACCCAAGGGAAGTAGAAGAAGCCAACGAAGGAGAAAACAACTGTCTGCTACACCCTATGAGCCAACATGGAATGGATGATGATCACAGAGAAGTATTAAAGTGGAAGTTTGACAGTCAACTAGCACACAAACACATGGCCCGCGAGCTACATCCGGAGTTTTACAAAGACTGCTGACACAAAAGGGACTTTCCGCTGGGACTTTCCACTTGGGCGTTCCAGGAGGTGGGGTCTGGGCGGGACCGGGGAGTGGCCAGCCCTCAGATGCTGCATATAAGCAGCTGCTTTTCGCCTGTACTGGGTCTCTCTAGGTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTGCCTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTCTAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCATTTTGGTTGCGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 792-2270
+
+
+
+ pol
+ aminoAcid
+ 2072-5074
+
+
+
+ vif
+ aminoAcid
+ 5022-5597
+
+
+
+ vpu
+ aminoAcid
+ 6039-6293
+
+
+
+ env
+ aminoAcid
+ 6217-8775
+
+
+
+ NEF
+ aminoAcid
+ 8780-9400
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-492
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1000
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-191
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-84
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-852
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/activegrowth_high.xml b/examples/HIV_models/activegrowth_high.xml
new file mode 100755
index 0000000..50620f0
--- /dev/null
+++ b/examples/HIV_models/activegrowth_high.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 500
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/activegrowth_low.xml b/examples/HIV_models/activegrowth_low.xml
new file mode 100755
index 0000000..059d686
--- /dev/null
+++ b/examples/HIV_models/activegrowth_low.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 5
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/fitness_hla.xml b/examples/HIV_models/fitness_hla.xml
new file mode 100755
index 0000000..9a129eb
--- /dev/null
+++ b/examples/HIV_models/fitness_hla.xml
@@ -0,0 +1,2114 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ gag
+ 26
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 65
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 76
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 79
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+
+
+
+
+ gag
+ 81
+
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 104
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 268
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 331
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 390
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 439
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 470
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 479
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 200
+
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 275
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 288
+
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 454
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 461
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 466
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 468
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 0.98
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ RT
+ 469
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ IN
+ 91
+
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ IN
+ 119
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ IN
+ 138
+
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ IN
+ 173
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ IN
+ 218
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 18
+
+ 1.01
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 18
+
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 23
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 40
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 83
+
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 87
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 91
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 93
+
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 94
+
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.02
+ 1.02
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 94
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 101
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 104
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 105
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 170
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 182
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 188
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.99
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.01
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 194
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.02
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 0.98
+ 1.00
+ 1.00
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/fitness_none.xml b/examples/HIV_models/fitness_none.xml
new file mode 100755
index 0000000..8ae10ec
--- /dev/null
+++ b/examples/HIV_models/fitness_none.xml
@@ -0,0 +1,237 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/indel.xml b/examples/HIV_models/indel.xml
new file mode 100755
index 0000000..d9875e9
--- /dev/null
+++ b/examples/HIV_models/indel.xml
@@ -0,0 +1,242 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+ 0.08 1
+ 6E-4
+ 6E-4
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/latencydeath_high.xml b/examples/HIV_models/latencydeath_high.xml
new file mode 100755
index 0000000..34f93b6
--- /dev/null
+++ b/examples/HIV_models/latencydeath_high.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0084
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/latencydeath_low.xml b/examples/HIV_models/latencydeath_low.xml
new file mode 100755
index 0000000..f2743c8
--- /dev/null
+++ b/examples/HIV_models/latencydeath_low.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.00373
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/latencygrowth_high.xml b/examples/HIV_models/latencygrowth_high.xml
new file mode 100755
index 0000000..9589777
--- /dev/null
+++ b/examples/HIV_models/latencygrowth_high.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.0045
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/latencygrowth_low.xml b/examples/HIV_models/latencygrowth_low.xml
new file mode 100755
index 0000000..bd910fd
--- /dev/null
+++ b/examples/HIV_models/latencygrowth_low.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.002
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/latencyrate_high.xml b/examples/HIV_models/latencyrate_high.xml
new file mode 100755
index 0000000..fb89782
--- /dev/null
+++ b/examples/HIV_models/latencyrate_high.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0052 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/latencyrate_low.xml b/examples/HIV_models/latencyrate_low.xml
new file mode 100755
index 0000000..df67b36
--- /dev/null
+++ b/examples/HIV_models/latencyrate_low.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0013 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/mutrate_high.xml b/examples/HIV_models/mutrate_high.xml
new file mode 100755
index 0000000..bd8df2a
--- /dev/null
+++ b/examples/HIV_models/mutrate_high.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-4
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/mutrate_low.xml b/examples/HIV_models/mutrate_low.xml
new file mode 100755
index 0000000..b2bd24d
--- /dev/null
+++ b/examples/HIV_models/mutrate_low.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-6
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/reactivation_high.xml b/examples/HIV_models/reactivation_high.xml
new file mode 100755
index 0000000..848d70b
--- /dev/null
+++ b/examples/HIV_models/reactivation_high.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00216 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/reactivation_low.xml b/examples/HIV_models/reactivation_low.xml
new file mode 100755
index 0000000..bc15bef
--- /dev/null
+++ b/examples/HIV_models/reactivation_low.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00054 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/recomb.xml b/examples/HIV_models/recomb.xml
new file mode 100755
index 0000000..670907a
--- /dev/null
+++ b/examples/HIV_models/recomb.xml
@@ -0,0 +1,951 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 200000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+ 0.07
+ 1.4E-5
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/size_1.xml b/examples/HIV_models/size_1.xml
new file mode 100755
index 0000000..c03c640
--- /dev/null
+++ b/examples/HIV_models/size_1.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 1
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/examples/HIV_models/size_100.xml b/examples/HIV_models/size_100.xml
new file mode 100755
index 0000000..e1d387c
--- /dev/null
+++ b/examples/HIV_models/size_100.xml
@@ -0,0 +1,947 @@
+
+ 1
+
+
+ 0 0.0026 0.00108 0
+
+
+ 9719
+
+ TGGAAGGGCTAATTCACTCCCAACGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTAGCAGAACTACACACCAGGGCCAGGGATCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGAGAAGTTAGAAGAAGCCAACAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGAATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACATGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCAGTGGCGCCCGAACAGGGACCTGAAAGCGAAAGGGAAACCAGAGGAGCTCTCTCGACGCAGGACTCGGCTTGCTGAAGCGCGCACGGCAAGAGGCGAGGGGCGGCGACTGGTGAGTACGCCAAAAATTTTGACTAGCGGAGGCTAGAAGGAGAGAGATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACAGCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTGTGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGACAAGATAGAGGAAGAGCAAAACAAAAGTAAGAAAAAAGCACAGCAAGCAGCAGCTGACACAGGACACAGCAATCAGGTCAGCCAAAATTACCCTATAGTGCAGAACATCCAGGGGCAAATGGTACATCAGGCCATATCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTCAGCCCAGAAGTGATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACACAGTGGGGGGACATCAAGCAGCCATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGAGTGCATCCAGTGCATGCAGGGCCTATTGCACCAGGCCAGATGAGAGAACCAAGGGGAAGTGACATAGCAGGAACTACTAGTACCCTTCAGGAACAAATAGGATGGATGACAAATAATCCACCTATCCCAGTAGGAGAAATTTATAAAAGATGGATAATCCTGGGATTAAATAAAATAGTAAGAATGTATAGCCCTACCAGCATTCTGGACATAAGACAAGGACCAAAGGAACCCTTTAGAGACTATGTAGACCGGTTCTATAAAACTCTAAGAGCCGAGCAAGCTTCACAGGAGGTAAAAAATTGGATGACAGAAACCTTGTTGGTCCAAAATGCGAACCCAGATTGTAAGACTATTTTAAAAGCATTGGGACCAGCGGCTACACTAGAAGAAATGATGACAGCATGTCAGGGAGTAGGAGGACCCGGCCATAAGGCAAGAGTTTTGGCTGAAGCAATGAGCCAAGTAACAAATTCAGCTACCATAATGATGCAGAGAGGCAATTTTAGGAACCAAAGAAAGATTGTTAAGTGTTTCAATTGTGGCAAAGAAGGGCACACAGCCAGAAATTGCAGGGCCCCTAGGAAAAAGGGCTGTTGGAAATGTGGAAAGGAAGGACACCAAATGAAAGATTGTACTGAGAGACAGGCTAATTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCAACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGATAGACAAGGAACTGTATCCTTTAACTTCCCTCAGGTCACTCTTTGGCAACGACCCCTCGTCACAATAAAGATAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGAAATGAGTTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGTTTTATCAAAGTAAGACAGTATGATCAGATACTCATAGAAATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCTACACCTGTCAACATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTTCCCATTAGCCCTATTGAGACTGTACCAGTAAAATTAAAGCCAGGAATGGATGGCCCAAAAGTTAAACAATGGCCATTGACAGAAGAAAAAATAAAAGCATTAGTAGAAATTTGTACAGAGATGGAAAAGGAAGGGAAAATTTCAAAAATTGGGCCTGAAAATCCATACAATACTCCAGTATTTGCCATAAAGAAAAAAGACAGTACTAAATGGAGAAAATTAGTAGATTTCAGAGAACTTAATAAGAGAACTCAAGACTTCTGGGAAGTTCAATTAGGAATACCACATCCCGCAGGGTTAAAAAAGAAAAAATCAGTAACAGTACTGGATGTGGGTGATGCATATTTTTCAGTTCCCTTAGATGAAGACTTCAGGAAGTATACTGCATTTACCATACCTAGTATAAACAATGAGACACCAGGGATTAGATATCAGTACAATGTGCTTCCACAGGGATGGAAAGGATCACCAGCAATATTCCAAAGTAGCATGACAAAAATCTTAGAGCCTTTTAGAAAACAAAATCCAGACATAGTTATCTATCAATACATGGATGATTTGTATGTAGGATCTGACTTAGAAATAGGGCAGCATAGAACAAAAATAGAGGAGCTGAGACAACATCTGTTGAGGTGGGGACTTACCACACCAGACAAAAAACATCAGAAAGAACCTCCATTCCTTTGGATGGGTTATGAACTCCATCCTGATAAATGGACAGTACAGCCTATAGTGCTGCCAGAAAAAGACAGCTGGACTGTCAATGACATACAGAAGTTAGTGGGGAAATTGAATTGGGCAAGTCAGATTTACCCAGGGATTAAAGTAAGGCAATTATGTAAACTCCTTAGAGGAACCAAAGCACTAACAGAAGTAATACCACTAACAGAAGAAGCAGAGCTAGAACTGGCAGAAAACAGAGAGATTCTAAAAGAACCAGTACATGGAGTGTATTATGACCCATCAAAAGACTTAATAGCAGAAATACAGAAGCAGGGGCAAGGCCAATGGACATATCAAATTTATCAAGAGCCATTTAAAAATCTGAAAACAGGAAAATATGCAAGAATGAGGGGTGCCCACACTAATGATGTAAAACAATTAACAGAGGCAGTGCAAAAAATAACCACAGAAAGCATAGTAATATGGGGAAAGACTCCTAAATTTAAACTGCCCATACAAAAGGAAACATGGGAAACATGGTGGACAGAGTATTGGCAAGCCACCTGGATTCCTGAGTGGGAGTTTGTTAATACCCCTCCCTTAGTGAAATTATGGTACCAGTTAGAGAAAGAACCCATAGTAGGAGCAGAAACCTTCTATGTAGATGGGGCAGCTAACAGGGAGACTAAATTAGGAAAAGCAGGATATGTTACTAATAGAGGAAGACAAAAAGTTGTCACCCTAACTGACACAACAAATCAGAAGACTGAGTTACAAGCAATTTATCTAGCTTTGCAGGATTCGGGATTAGAAGTAAACATAGTAACAGACTCACAATATGCATTAGGAATCATTCAAGCACAACCAGATCAAAGTGAATCAGAGTTAGTCAATCAAATAATAGAGCAGTTAATAAAAAAGGAAAAGGTCTATCTGGCATGGGTACCAGCACACAAAGGAATTGGAGGAAATGAACAAGTAGATAAATTAGTCAGTGCTGGAATCAGGAAAGTACTATTTTTAGATGGAATAGATAAGGCCCAAGATGAACATGAGAAATATCACAGTAATTGGAGAGCAATGGCTAGTGATTTTAACCTGCCACCTGTAGTAGCAAAAGAAATAGTAGCCAGCTGTGATAAATGTCAGCTAAAAGGAGAAGCCATGCATGGACAAGTAGACTGTAGTCCAGGAATATGGCAACTAGATTGTACACATTTAGAAGGAAAAGTTATCCTGGTAGCAGTTCATGTAGCCAGTGGATATATAGAAGCAGAAGTTATTCCAGCAGAAACAGGGCAGGAAACAGCATATTTTCTTTTAAAATTAGCAGGAAGATGGCCAGTAAAAACAATACATACTGACAATGGCAGCAATTTCACCGGTGCTACGGTTAGGGCCGCCTGTTGGTGGGCGGGAATCAAGCAGGAATTTGGAATTCCCTACAATCCCCAAAGTCAAGGAGTAGTAGAATCTATGAATAAAGAATTAAAGAAAATTATAGGACAGGTAAGAGATCAGGCTGAACATCTTAAGACAGCAGTACAAATGGCAGTATTCATCCACAATTTTAAAAGAAAAGGGGGGATTGGGGGGTACAGTGCAGGGGAAAGAATAGTAGACATAATAGCAACAGACATACAAACTAAAGAATTACAAAAACAAATTACAAAAATTCAAAATTTTCGGGTTTATTACAGGGACAGCAGAAATCCACTTTGGAAAGGACCAGCAAAGCTCCTCTGGAAAGGTGAAGGGGCAGTAGTAATACAAGATAATAGTGACATAAAAGTAGTGCCAAGAAGAAAAGCAAAGATCATTAGGGATTATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTTTAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCCTCATCCAAGAATAAGTTCAGAAGTACACATCCCACTAGGGGATGCTAGATTGGTAATAACAACATATTGGGGTCTGCATACAGGAGAAAGAGACTGGCATTTGGGTCAGGGAGTCTCCATAGAATGGAGGAAAAAGAGATATAGCACACAAGTAGACCCTGAACTAGCAGACCAACTAATTCATCTGTATTACTTTGACTGTTTTTCAGACTCTGCTATAAGAAAGGCCTTATTAGGACACATAGTTAGCCCTAGGTGTGAATATCAAGCAGGACATAACAAGGTAGGATCTCTACAATACTTGGCACTAGCAGCATTAATAACACCAAAAAAGATAAAGCCACCTTTGCCTAGTGTTACGAAACTGACAGAGGATAGATGGAACAAGCCCCAGAAGACCAAGGGCCACAGAGGGAGCCACACAATGAATGGACACTAGAGCTTTTAGAGGAGCTTAAGAATGAAGCTGTTAGACATTTTCCTAGGATTTGGCTCCATGGCTTAGGGCAACATATCTATGAAACTTATGGGGATACTTGGGCAGGAGTGGAAGCCATAATAAGAATTCTGCAACAACTGCTGTTTATCCATTTTCAGAATTGGGTGTCGACATAGCAGAATAGGCGTTACTCGACAGAGGAGAGCAAGAAATGGAGCCAGTAGATCCTAGACTAGAGCCCTGGAAGCATCCAGGAAGTCAGCCTAAAACTGCTTGTACCAATTGCTATTGTAAAAAGTGTTGCTTTCATTGCCAAGTTTGTTTCATAACAAAAGCCTTAGGCATCTCCTATGGCAGGAAGAAGCGGAGACAGCGACGAAGAGCTCATCAGAACAGTCAGACTCATCAAGCTTCTCTATCAAAGCAGTAAGTAGTACATGTAATGCAACCTATACCAATAGTAGCAATAGTAGCATTAGTAGTAGCAATAATAATAGCAATAGTTGTGTGGTCCATAGTAATCATAGAATATAGGAAAATATTAAGACAAAGAAAAATAGACAGGTTAATTGATAGACTAATAGAAAGAGCAGAAGACAGTGGCAATGAGAGTGAAGGAGAAATATCAGCACTTGTGGAGATGGGGGTGGAGATGGGGCACCATGCTCCTTGGGATGTTGATGATCTGTAGTGCTACAGAAAAATTGTGGGTCACAGTCTATTATGGGGTACCTGTGTGGAAGGAAGCAACCACCACTCTATTTTGTGCATCAGATGCTAAAGCATATGATACAGAGGTACATAATGTTTGGGCCACACATGCCTGTGTACCCACAGACCCCAACCCACAAGAAGTAGTATTGGTAAATGTGACAGAAAATTTTAACATGTGGAAAAATGACATGGTAGAACAGATGCATGAGGATATAATCAGTTTATGGGATCAAAGCCTAAAGCCATGTGTAAAATTAACCCCACTCTGTGTTAGTTTAAAGTGCACTGATTTGAAGAATGATACTAATACCAATAGTAGTAGCGGGAGAATGATAATGGAGAAAGGAGAGATAAAAAACTGCTCTTTCAATATCAGCACAAGCATAAGAGGTAAGGTGCAGAAAGAATATGCATTTTTTTATAAACTTGATATAATACCAATAGATAATGATACTACCAGCTATAAGTTGACAAGTTGTAACACCTCAGTCATTACACAGGCCTGTCCAAAGGTATCCTTTGAGCCAATTCCCATACATTATTGTGCCCCGGCTGGTTTTGCGATTCTAAAATGTAATAATAAGACGTTCAATGGAACAGGACCATGTACAAATGTCAGCACAGTACAATGTACACATGGAATTAGGCCAGTAGTATCAACTCAACTGCTGTTAAATGGCAGTCTAGCAGAAGAAGAGGTAGTAATTAGATCTGTCAATTTCACGGACAATGCTAAAACCATAATAGTACAGCTGAACACATCTGTAGAAATTAATTGTACAAGACCCAACAACAATACAAGAAAAAGAATCCGTATCCAGAGAGGACCAGGGAGAGCATTTGTTACAATAGGAAAAATAGGAAATATGAGACAAGCACATTGTAACATTAGTAGAGCAAAATGGAATAACACTTTAAAACAGATAGCTAGCAAATTAAGAGAACAATTTGGAAATAATAAAACAATAATCTTTAAGCAATCCTCAGGAGGGGACCCAGAAATTGTAACGCACAGTTTTAATTGTGGAGGGGAATTTTTCTACTGTAATTCAACACAACTGTTTAATAGTACTTGGTTTAATAGTACTTGGAGTACTGAAGGGTCAAATAACACTGAAGGAAGTGACACAATCACCCTCCCATGCAGAATAAAACAAATTATAAACATGTGGCAGAAAGTAGGAAAAGCAATGTATGCCCCTCCCATCAGTGGACAAATTAGATGTTCATCAAATATTACAGGGCTGCTATTAACAAGAGATGGTGGTAATAGCAACAATGAGTCCGAGATCTTCAGACCTGGAGGAGGAGATATGAGGGACAATTGGAGAAGTGAATTATATAAATATAAAGTAGTAAAAATTGAACCATTAGGAGTAGCACCCACCAAGGCAAAGAGAAGAGTGGTGCAGAGAGAAAAAAGAGCAGTGGGAATAGGAGCTTTGTTCCTTGGGTTCTTGGGAGCAGCAGGAAGCACTATGGGCGCAGCCTCAATGACGCTGACGGTACAGGCCAGACAATTATTGTCTGGTATAGTGCAGCAGCAGAACAATTTGCTGAGGGCTATTGAGGCGCAACAGCATCTGTTGCAACTCACAGTCTGGGGCATCAAGCAGCTCCAGGCAAGAATCCTGGCTGTGGAAAGATACCTAAAGGATCAACAGCTCCTGGGGATTTGGGGTTGCTCTGGAAAACTCATTTGCACCACTGCTGTGCCTTGGAATGCTAGTTGGAGTAATAAATCTCTGGAACAGATTTGGAATCACACGACCTGGATGGAGTGGGACAGAGAAATTAACAATTACACAAGCTTAATACACTCCTTAATTGAAGAATCGCAAAACCAGCAAGAAAAGAATGAACAAGAATTATTGGAATTAGATAAATGGGCAAGTTTGTGGAATTGGTTTAACATAACAAATTGGCTGTGGTATATAAAATTATTCATAATGATAGTAGGAGGCTTGGTAGGTTTAAGAATAGTTTTTGCTGTACTTTCTATAGTGAATAGAGTTAGGCAGGGATATTCACCATTATCGTTTCAGACCCACCTCCCAACCCCGAGGGGACCCGACAGGCCCGAAGGAATAGAAGAAGAAGGTGGAGAGAGAGACAGAGACAGATCCATTCGATTAGTGAACGGATCCTTGGCACTTATCTGGGACGATCTGCGGAGCCTGTGCCTCTTCAGCTACCACCGCTTGAGAGACTTACTCTTGATTGTAACGAGGATTGTGGAACTTCTGGGACGCAGGGGGTGGGAAGCCCTCAAATATTGGTGGAATCTCCTACAGTATTGGAGTCAGGAACTAAAGAATAGTGCTGTTAGCTTGCTCAATGCCACAGCCATAGCAGTAGCTGAGGGGACAGATAGGGTTATAGAAGTAGTACAAGGAGCTTGTAGAGCTATTCGCCACATACCTAGAAGAATAAGACAGGGCTTGGAAAGGATTTTGCTATAAGATGGGTGGCAAGTGGTCAAAAAGTAGTGTGATTGGATGGCCTACTGTAAGGGAAAGAATGAGACGAGCTGAGCCAGCAGCAGATAGGGTGGGAGCAGCATCTCGAGACCTGGAAAAACATGGAGCAATCACAAGTAGCAATACAGCAGCTACCAATGCTGCTTGTGCCTGGCTAGAAGCACAAGAGGAGGAGGAGGTGGGTTTTCCAGTCACACCTCAGGTACCTTTAAGACCAATGACTTACAAGGCAGCTGTAGATCTTAGCCACTTTTTAAAAGAAAAGGGGGGACTGGAAGGGCTAATTCACTCCCAAAGAAGACAAGATATCCTTGATCTGTGGATCTACCACACACAAGGCTACTTCCCTGATTGGCAGAACTACACACCAGGGCCAGGGGTCAGATATCCACTGACCTTTGGATGGTGCTACAAGCTAGTACCAGTTGAGCCAGATAAGATAGAAGAGGCCAATAAAGGAGAGAACACCAGCTTGTTACACCCTGTGAGCCTGCATGGGATGGATGACCCGGAGAGAGAAGTGTTAGAGTGGAGGTTTGACAGCCGCCTAGCATTTCATCACGTGGCCCGAGAGCTGCATCCGGAGTACTTCAAGAACTGCTGACATCGAGCTTGCTACAAGGGACTTTCCGCTGGGGACTTTCCAGGGAGGCGTGGCCTGGGCGGGACTGGGGAGTGGCGAGCCCTCAGATCCTGCATATAAGCAGCTGCTTTTTGCCTGTACTGGGTCTCTCTGGTTAGACCAGATCTGAGCCTGGGAGCTCTCTGGCTAACTAGGGAACCCACTGCTTAAGCCTCAATAAAGCTTGCCTTGAGTGCTTCAAGTAGTGTGTGCCCGTCTGTTGTGTGACTCTGGTAACTAGAGATCCCTCAGACCCTTTTAGTCAGTGTGGAAAATCTCTAGCA
+
+
+
+ gag
+ aminoAcid
+ 790-2289
+
+
+
+ pol
+ aminoAcid
+ 2085-5093
+
+
+
+ PR
+ aminoAcid
+ 2253-2549
+
+
+ RT
+ aminoAcid
+ 2550-4229
+
+
+ IN
+ aminoAcid
+ 4230-5093
+
+
+
+ vif
+ aminoAcid
+ 5041-5616
+
+
+
+ vpr
+ aminoAcid
+ 5559-5847
+
+
+
+ vpu
+ aminoAcid
+ 6062-6307
+
+
+
+ env
+ aminoAcid
+ 6225-8792
+
+
+
+ NEF
+ aminoAcid
+ 8797-9414
+
+
+
+
+ plasma
+
+
+
+
+
+ gag
+ 1-500
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ gag
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ pol
+ 1-1003
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1-192
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vif
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ vpu
+ 1-82
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ vpu
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ env
+ 1-856
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ env
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 1-206
+
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+ 1.00
+
+
+
+
+ NEF
+ 1
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.00
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+
+
+ NEF
+ 21
+
+ 0.001
+ 0.001
+ 0.001
+ 1.464
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.515
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 28
+
+ 0.001
+ 0.001
+ 1.000
+ 0.851
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 33
+
+ 1.293
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 43
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.694
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 57
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.009
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.008
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+
+
+
+
+ NEF
+ 71
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.854
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 76
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.843
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 80
+
+ 0.001
+ 0.001
+ 0.186
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.832
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 88
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.870
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 102
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.466
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.754
+ 0.001
+
+
+
+
+ NEF
+ 123
+
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.064
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 133
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.599
+ 1.000
+ 0.001
+ 0.001
+
+
+
+
+ NEF
+ 135
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.135
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+
+
+
+
+ NEF
+ 143
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.941
+
+
+
+
+ NEF
+ 188
+
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.689
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 1.000
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+ 0.001
+
+
+
+
+ dynamicPopulation
+
+
+ 10
+ all
+
+
+
+
+ 50
+ 100000
+
+
+
+
+
+ 9.3E-5
+
+ 0.42 2.49 0.29
+ 1.73 0.23 4.73
+ 6.99 0.20 0.60
+ 1.02 2.56 0.88
+
+
+
+
+
+
+
+
+
+
+ active
+ 1400
+
+
+
+ treatment
+ 1400
+
+
+
+
+
+
+
+
+
+ 140
+ alignment_plasma.fasta
+
+ 100
+ FASTA
+
+
+
+
+
+
+
+ latent_reservoir
+
+ dynamicPopulation
+
+
+ 0
+ all
+
+
+
+
+ 0.003
+ 0.0056
+
+
+
+
+
+
+ 0.0
+
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+
+
+
+
+
+
+
+
+
+ epoch
+ 2800
+
+
+
+
+ 1680
+ alignment_latent_1680.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 1960
+ alignment_latent_1960.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2240
+ alignment_latent_2240.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2520
+ alignment_latent_2520.fasta
+
+ 10
+ FASTA
+
+
+
+
+ 2800
+ alignment_latent_2800.fasta
+
+ 10
+ FASTA
+
+
+
+
+
+
+
diff --git a/src/santa/simulator/NegBinIndelModel.java b/src/santa/simulator/NegBinIndelModel.java
index 28a8643..3fa253f 100644
--- a/src/santa/simulator/NegBinIndelModel.java
+++ b/src/santa/simulator/NegBinIndelModel.java
@@ -1,7 +1,6 @@
package santa.simulator;
-import santa.simulator.Random;
import org.apache.commons.math3.distribution.PascalDistribution;
public class NegBinIndelModel extends IndelModel {
diff --git a/src/santa/simulator/Random.java b/src/santa/simulator/Random.java
index a9d1270..7471469 100644
--- a/src/santa/simulator/Random.java
+++ b/src/santa/simulator/Random.java
@@ -1,6 +1,10 @@
package santa.simulator;
import java.util.Collection;
+import java.util.List;
+import java.util.Collections;
+import java.util.ListIterator;
+import java.util.RandomAccess;
import org.apache.commons.math3.random.RandomDataGenerator;
@@ -38,6 +42,10 @@ public static int[] nextPermutation(int i, int i1) {
public static long nextPoisson(double v) {
return randomData.nextPoisson(v);
}
+
+ public static int nextBinomial(int n, double p) {
+ return randomData.nextBinomial(n, p);
+ }
public static Object[] nextSample(Collection> collection, int i) {
return randomData.nextSample(collection, i);
@@ -70,6 +78,42 @@ public static void shuffle(int[] numbers) {
}
}
+ // From java.util.Collections
+ // Added so that all random calls go through this class
+ public static void shuffle(List> list) {
+ int size = list.size();
+ if (size < 5000 || list instanceof RandomAccess) {
+ for (int i=size; i>1; i--)
+ Collections.swap(list, i-1, nextInt(0, i - 1));
+ } else {
+ Object arr[] = list.toArray();
+
+ // Shuffle array
+ for (int i=size; i>1; i--)
+ swap(arr, i-1, nextInt(0, i - 1));
+
+ // Dump array back into list
+ // instead of using a raw type here, it's possible to capture
+ // the wildcard but it will require a call to a supplementary
+ // private method
+ ListIterator it = list.listIterator();
+ for (int i=0; i epochs;
- private final Selector selector;
- private final SamplingSchedule samplingSchedule;
-
- private final Population population;
-
- public enum InoculumType {
- NONE,
- CONSENSUS,
- RANDOM,
- ALL
- };
-
- //Default constructor
- public Simulation (
- int populationSize,
- Selector selector,
- PopulationGrowth growth,
- InoculumType inoculumType,
- GenePool genePool,
- List epochs,
- SamplingSchedule samplingSchedule) {
-
- this.populationSize = populationSize;
- this.inoculumType = inoculumType;
- this.epochs = epochs;
- this.samplingSchedule = samplingSchedule;
- this.genePool = genePool;
- this.selector = selector;
-
- population = new Population(genePool, selector, growth, samplingSchedule.isSamplingTrees() ? new Phylogeny(populationSize) : null);
+ private List epochs;
+ private Compartments compartments;
+ private static Logger memlogger = Simulator.memlogger;
+
+ public Simulation(Compartments compartments) {
+ this.compartments = compartments;
+
+ // split CompartmentEpochs so that they have the same time slices
+ this.epochs = new ArrayList<>();
+ int compartmentEpochIndex = 0;
+ boolean cont = true;
+
+ while (cont) {
+ int minGenerations = Integer.MAX_VALUE;
+ ArrayList compartmentEpochs = new ArrayList();
+
+ for (Compartment compartment: compartments) {
+ CompartmentEpoch currentCompartmentEpoch = compartment.getEpochs().get(compartmentEpochIndex);
+ compartmentEpochs.add(currentCompartmentEpoch);
+
+ if (minGenerations > currentCompartmentEpoch.getGenerationCount()) {
+ minGenerations = currentCompartmentEpoch.getGenerationCount();
+ }
+ }
+
+ for (Compartment compartment: compartments) {
+ List compartmentsEpochs = compartment.getEpochs();
+ CompartmentEpoch currentCompartmentEpoch = compartmentsEpochs.get(compartmentEpochIndex);
+
+ if (minGenerations < currentCompartmentEpoch.getGenerationCount()) {
+ compartmentsEpochs.add(compartmentEpochIndex + 1, new CompartmentEpoch(
+ currentCompartmentEpoch.getName(),
+ currentCompartmentEpoch.getGenerationCount() - minGenerations,
+ currentCompartmentEpoch.getFitnessFunction(),
+ currentCompartmentEpoch.getMutator(),
+ currentCompartmentEpoch.getReplicator()));
+ }
+
+ currentCompartmentEpoch.setGenerationCount(minGenerations);
+
+ if (compartmentsEpochs.size() <= compartmentEpochIndex + 1)
+ cont = false;
+ }
+
+ this.epochs.add(new SimulationEpoch(compartmentEpochs, minGenerations));
+
+ /*
+ * TODO:
+ * Add check for duplicate epoch names
+ * Add check / deal with different overall epoch length
+ */
+
+ compartmentEpochIndex++;
+ }
}
public void run(int replicate, Logger logger) {
-
- samplingSchedule.initialize(replicate);
-
- EventLogger.setReplicate(replicate);
-
- logger.finer("Initializing population: " + populationSize + " viruses.");
-
- List inoculum = new ArrayList();
- if (inoculumType == InoculumType.CONSENSUS) {
- inoculum.add(GenomeDescription.getConsensus());
- } else if (inoculumType == InoculumType.ALL) {
- inoculum.addAll(GenomeDescription.getSequences());
- } else if (inoculumType == InoculumType.RANDOM) {
- List sequences = GenomeDescription.getSequences();
- if (sequences.size() == 1) {
- inoculum.add(sequences.get(0));
- } else {
- inoculum.add(sequences.get(Random.nextInt(0, sequences.size() - 1)));
- }
- } else { // NONE
- // do nothing
- }
- population.initialize(inoculum, populationSize);
-
+ for (Compartment compartment: compartments) {
+ compartment.initalize(replicate, logger);
+ }
+
int generation = 1;
int epochCount = 0;
@@ -89,28 +83,29 @@ public void run(int replicate, Logger logger) {
EventLogger.setEpoch(epochCount);
generation = epoch.run(this, logger, generation);
- if(population.getCurrentGeneration().size() == 0) {
+
+ boolean allDead = true;
+
+ for (Compartment compartment: compartments) {
+ if (!compartment.getPopulation().getCurrentGeneration().isEmpty()) {
+ allDead = false;
+ break;
+ }
+ }
+
+ if (allDead) {
System.err.println("Population crashed after "+generation+" generations.");
return;
}
epochCount++;
}
- samplingSchedule.cleanUp();
- }
-
- public GenePool getGenePool() {
- return genePool;
- }
-
- public Population getPopulation() {
- return population;
- }
-
- public int getPopulationSize() {
- return populationSize;
+
+ for (Compartment compartment: compartments) {
+ compartment.cleanup(replicate, logger);
+ }
}
-
- public SamplingSchedule getSamplingSchedule() {
- return samplingSchedule;
+
+ public Compartments getCompartments() {
+ return compartments;
}
}
diff --git a/src/santa/simulator/SimulationEpoch.java b/src/santa/simulator/SimulationEpoch.java
index 6c2699d..b04e574 100644
--- a/src/santa/simulator/SimulationEpoch.java
+++ b/src/santa/simulator/SimulationEpoch.java
@@ -1,116 +1,74 @@
-/*
- * Created on Mar 12, 2007
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
package santa.simulator;
-import santa.simulator.fitness.FitnessFunction;
-import santa.simulator.genomes.GenePool;
-import santa.simulator.mutators.Mutator;
-import santa.simulator.population.Population;
-import santa.simulator.replicators.Replicator;
-import santa.simulator.samplers.SamplingSchedule;
-
+import java.util.ArrayList;
import java.util.logging.Logger;
-
import static santa.simulator.Simulator.readableByteCount;
import static santa.simulator.Simulator.usedMemory;
+import santa.simulator.compartments.Compartment;
+import santa.simulator.compartments.CompartmentEpoch;
+import santa.simulator.compartments.Compartments;
+import java.util.List;
+/**
+ *
+ * @author Andrew Rambaut
+ */
public class SimulationEpoch {
- private String name;
private int generationCount;
- private FitnessFunction fitnessFunction;
- private Mutator mutator;
- private Replicator replicator;
- private static Logger memlogger = Simulator.memlogger;
-
- public SimulationEpoch(String name, int generationCount,
- FitnessFunction fitnessFunction, Mutator mutator,
- Replicator replicator) {
- this.name = name;
+ private List compartmentEpochs;
+ private String name;
+ private static Logger memlogger = Simulator.memlogger;
+
+ public SimulationEpoch(List epochs, int generationCount) {
+ this.compartmentEpochs = epochs;
this.generationCount = generationCount;
- this.fitnessFunction = fitnessFunction;
- this.mutator = mutator;
- this.replicator = replicator;
+
+ this.name = null;
+
+ for (CompartmentEpoch epoch: compartmentEpochs) {
+ if (name == null) {
+ epoch.getName();
+ } else {
+ this.name += ", " + epoch.getName();
+ }
+
+ }
}
-
+
public int run(Simulation simulation, Logger logger, int startGeneration) {
- System.err.println("Starting epoch: " + (name != null ? name : "(unnamed)"));
-
- Population population = simulation.getPopulation();
- GenePool genePool = simulation.getGenePool();
- SamplingSchedule samplingSchedule = simulation.getSamplingSchedule();
+ Compartments compartments = simulation.getCompartments();
final int endGeneration = startGeneration + generationCount;
- memlogger.fine("@start of Epoch Memory used = " + readableByteCount(usedMemory()));
+ System.err.println("Starting epochs: " + name);
+
+ memlogger.fine("@start of Epoch Memory used = " + readableByteCount(usedMemory()));
for (int generation = startGeneration; generation < endGeneration; ++generation) {
EventLogger.setEpoch(generation);
-
- fitnessFunction.updateGeneration(generation, population);
-
- if (generation == startGeneration) {
- // adapt to this epoch, and the new generation
- population.updateAllFitnesses(fitnessFunction);
-
- System.err.println("Initial population: fitness = " + population.getMeanFitness() +
- ", distance = " + population.getMeanDistance() +
- ", max freq = " + population.getMaxFrequency() +
- ", genepool size = " + genePool.getUniqueGenomeCount() +
- " (" + genePool.getUnusedGenomeCount() + " available)");
+
+ int i = 0;
+ int totalPopulation = 0;
+ for (Compartment compartment: compartments) {
+ totalPopulation += compartmentEpochs.get(i++).step(compartment, logger, startGeneration, generation);
}
-
- population.selectNextGeneration(generation, replicator, mutator, fitnessFunction);
- if(population.getCurrentGeneration().size() == 0) {
+
+ if (totalPopulation == 0) {
return generation;
}
+ if (compartments.getNumCompartments() > 1)
+ compartments.genomeTransfer(generation, compartmentEpochs);
+
if (generation % 100 == 0) {
- if (population.getPhylogeny() != null)
- population.getPhylogeny().pruneDeadLineages();
-
- memlogger.finest("Generation "+ generation +
- " used memory: " + readableByteCount(usedMemory()));
-
- System.err.print("Generation " + generation + ": fitness = " + population.getMeanFitness() +
- ", distance = " + population.getMeanDistance() +
- ", max freq = " + population.getMaxFrequency() +
- ", genepool size = " + genePool.getUniqueGenomeCount() +
- " (" + genePool.getUnusedGenomeCount() + " available)");
- if (population.getPhylogeny() != null) {
- population.getPhylogeny().pruneDeadLineages();
- System.err.println(", phylogeny size = " + population.getPhylogeny().getSize() +
- " (used = " + population.getPhylogeny().getLineageCount()+ ")" +
- ", tmrca = " + population.getPhylogeny().getMRCA().getGeneration() );
- } else
- System.err.println();
- } else {
- logger.finest("Generation " + generation + ": fitness = " + population.getMeanFitness() +
- ", distance = " + population.getMeanDistance() +
- ", max freq = " + population.getMaxFrequency() +
- ", genepool size= " + genePool.getUniqueGenomeCount() +
- "(" + genePool.getUnusedGenomeCount() + " available)");
+ memlogger.finest("Generation "+ generation + " used memory: " + readableByteCount(usedMemory()));
}
-
- samplingSchedule.doSampling(generation, population);
}
return endGeneration;
}
-
- public FitnessFunction getFitnessFunction() {
- return fitnessFunction;
- }
-
- public Mutator getMutator() {
- return mutator;
- }
-
- public Replicator getReplicator() {
- return replicator;
+
+ public String getName() {
+ return name;
}
-
}
diff --git a/src/santa/simulator/SimulatorMain.java b/src/santa/simulator/SimulatorMain.java
index ee6db7b..ea14e20 100644
--- a/src/santa/simulator/SimulatorMain.java
+++ b/src/santa/simulator/SimulatorMain.java
@@ -21,7 +21,7 @@ public static void main(String[] args) {
Simulator simulator;
if (args.length > 0) {
- simulator = simulatorFactory(args);
+ simulator = simulatorFactory(args);
Logger.getLogger("santa.simulator").addHandler(new ConsoleHandler());
diff --git a/src/santa/simulator/SimulatorParser.java b/src/santa/simulator/SimulatorParser.java
index b2d39b9..a6947bc 100644
--- a/src/santa/simulator/SimulatorParser.java
+++ b/src/santa/simulator/SimulatorParser.java
@@ -1,6 +1,7 @@
package santa.simulator;
+import santa.simulator.compartments.CompartmentEpoch;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
@@ -17,6 +18,13 @@
import static java.nio.file.Paths.get;
import org.jdom2.Element;
+import santa.simulator.compartments.Compartment;
+import santa.simulator.compartments.Compartments;
+import santa.simulator.compartments.DoubleProb;
+import santa.simulator.compartments.FitnessProb;
+import santa.simulator.compartments.MatrixTransfer;
+import santa.simulator.compartments.TimedTransfer;
+import santa.simulator.compartments.TransferProb;
import santa.simulator.fitness.AgeDependentFitnessFactor;
import santa.simulator.fitness.BetaDistributedPurifyingFitnessModel;
@@ -24,6 +32,7 @@
import santa.simulator.fitness.FitnessFactor;
import santa.simulator.fitness.FitnessFunction;
import santa.simulator.fitness.FrequencyDependentFitnessFactor;
+import santa.simulator.fitness.NoFitnessFactor;
import santa.simulator.fitness.PopulationSizeDependentFitnessFactor;
import santa.simulator.fitness.PurifyingFitnessFactor;
import santa.simulator.fitness.PurifyingFitnessModel;
@@ -56,8 +65,8 @@
import santa.simulator.samplers.StatisticsSampler;
import santa.simulator.samplers.TreeSampler;
import santa.simulator.samplers.GenomeDescriptionSampler;
-import santa.simulator.IndelModel;
import santa.simulator.selectors.BinarySearchSelector;
+import santa.simulator.selectors.ClonalExpansionSelector;
import santa.simulator.selectors.DynamicSelector;
import santa.simulator.selectors.Selector;
@@ -73,7 +82,18 @@ public class SimulatorParser {
private final static String REPLICATE_COUNT = "replicates";
private final static String SIMULATION = "simulation";
-
+
+ private final static String COMPARTMENT = "compartment";
+ private final static String TRANSFER_RATES = "transferRates";
+
+ private final static String FITNESS_TRANSFER = "transferFitness";
+
+ private final static String TIMED_TRANSFER = "timedTransfer";
+ private final static String TO_COMPARTMENT = "toCompartment";
+ private final static String FROM_COMPARTMENT = "fromCompartment";
+ private final static String TRANSFER_GENERATION = "generation";
+ private final static String TRANSFER_AMOUNT = "amountToTransfer";
+
private final static String EPOCH = "epoch";
private final static String NAME = "name";
private final static String GENERATION_COUNT = "generationCount";
@@ -83,6 +103,10 @@ public class SimulatorParser {
private final static String POPULATION_TYPE = "populationType";
private final static String STATIC_POPULATION = "staticPopulation";
private final static String DYNAMIC_POPULATION = "dynamicPopulation";
+ private final static String EXPONENTIAL_POPULATION = "exponentialPopulation";
+ private final static String LOGISTIC_POPULATION = "logisticPopulation";
+ private final static String MAX_POPULATION_SIZE = "maxPopulationSize";
+
private final static String RECOMBINATION_HOTSPOTS = "recombinationHotSpots";
private final static String RECOMBINATION_HOTSPOT = "recombinationHotSpot";
@@ -95,8 +119,10 @@ public class SimulatorParser {
private final static String INOCULUM_ALL = "all";
private final static String GROWTH_MODEL = "growthModel";
- private final static String GROWTH_RATE = "growthRate";
+ private final static String GROWTH_RATE = "growthRate";
private final static String CARRYING_POPULATION = "carryingPopulation";
+ private final static String SPLIT_PROBABILITY = "split";
+ private final static String DEATH_PROBABILITY = "death";
private final static String GENOME_DESCRIPTION = "genome";
private final static String GENOME_LENGTH = "length";
@@ -148,6 +174,7 @@ public class SimulatorParser {
private final static String EMPIRICAL_FITNESS_FUNCTION = "empiricalFitness";
private final static String POPULATION_SIZE_DEPENDENT_FITNESS_FUNCTION = "populationSizeDependentFitness";
private final static String MAX_POP_SIZE = "maxPopulationSize";
+ private final static String NO_FITNESS_FUNCTION = "noFitness";
private final static String MUTATOR = "mutator";
private final static String REPLICATOR = "replicator";
@@ -198,7 +225,7 @@ public class SimulatorParser {
/*
* Object Cache methods
*/
- private Map objectIdMap = new HashMap();
+ private Map objectIdMap = new HashMap<>();
private Object lookupObjectById(String id, Class extends Object> expectedType) throws ParseException {
@@ -295,79 +322,203 @@ Simulator parse(Element element) throws ParseException {
return simulator;
}
- //Default populationType is dynamicPopulation but in the xml file static population could be selected
- Simulation parseSimulation(Element element) throws ParseException {
-
- Simulation.InoculumType inoculumType = Simulation.InoculumType.NONE;
-
- int populationSize = -1;
-
- boolean genomeDescription = false;
- for (Object o : element.getChildren()) {
- Element e = (Element)o;
- if (e.getName().equals(GENOME_DESCRIPTION)) {
- parseGenomeDescription(e);
- genomeDescription = true;
- }
- }
-
- if (!genomeDescription) {
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + GENOME_DESCRIPTION + "> is missing");
- }
-
- for (Object o : element.getChildren()) {
- Element e = (Element)o;
- if (e.getName().equals(POPULATION)) {
-
- for (Object o1 : e.getChildren()) {
- Element e1 = (Element)o1;
- if (e1.getName().equals(POPULATION_SIZE)) {
- try {
- populationSize = parseInteger(e1, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + POPULATION + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(INOCULUM)) {
- String v = e1.getTextNormalize();
- if (v.equals(INOCULUM_NONE)) {
- inoculumType = Simulation.InoculumType.NONE;
- } else if (v.equals(INOCULUM_CONSENSUS)) {
- inoculumType = Simulation.InoculumType.CONSENSUS;
- } else if (v.equals(INOCULUM_RANDOM)) {
- inoculumType = Simulation.InoculumType.RANDOM;
- } else if (v.equals(INOCULUM_ALL)) {
- inoculumType = Simulation.InoculumType.ALL;
- } else {
- // do nothing
- }
- } else {
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + e.getName() + "> is unrecognized");
- }
- }
- } else if (!e.getName().equals(GENOME_DESCRIPTION) &&
- !e.getName().equals(GENE_POOL) &&
- !e.getName().equals(FITNESS_FUNCTION) &&
- !e.getName().equals(MUTATOR) &&
- !e.getName().equals(REPLICATOR) &&
- !e.getName().equals(SAMPLING_SCHEDULE) &&
- !e.getName().equals(EVENT_LOGGER) &&
- !e.getName().equals(EPOCH) &&
- !e.getName().equals(POPULATION_TYPE) &&
+ Simulation parseSimulation(Element element) throws ParseException {
+ Compartments compartments = null;
+ ArrayList compartmentList = new ArrayList<>();
+
+ boolean genomeDescription = false;
+ for (Object o : element.getChildren()) {
+ Element e1 = (Element)o;
+ if (e1.getName().equals(GENOME_DESCRIPTION)) {
+ parseGenomeDescription(e1);
+ genomeDescription = true;
+ }
+ }
+
+ if (!genomeDescription) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + GENOME_DESCRIPTION + "> is missing");
+ }
+
+ ArrayList transferRates = new ArrayList<>();
+ ArrayList transferEvents = new ArrayList<>();
+
+ Element e = element.getChildren().get(0);
+ switch (e.getName()) {
+ case TRANSFER_RATES:
+ case TIMED_TRANSFER:
+ case FITNESS_TRANSFER:
+ for (Object o: element.getChildren()) {
+ Element e2 = (Element)o;
+ switch (e2.getName()) {
+ case COMPARTMENT:
+ compartmentList.add(parseCompartment(e2));
+ break;
+ case TRANSFER_RATES:
+ double[] parsedRates = parseNumberList(e2);
+
+ for (int i = 0; i < parsedRates.length; i++) {
+ transferRates.add(new DoubleProb(parsedRates[i]));
+ }
+
+ break;
+ case FITNESS_TRANSFER:
+ for (Object o3: e2.getChildren()) {
+ Element e3 = (Element)o3;
+
+ if (e3.getName().equals(FITNESS_FUNCTION)) {
+ FitnessFunction fitness = parseFitnessFunction(e3);
+
+ transferRates.add(new FitnessProb(fitness));
+ } else {
+ throw new ParseException("Error parsing <" + FITNESS_TRANSFER + "> element: <" + e3.getName() + "> is unrecognized");
+ }
+ }
+ break;
+ case TIMED_TRANSFER:
+ transferEvents.add(parseTransferEvent(e2));
+ break;
+ case GENOME_DESCRIPTION:
+ break;
+ default:
+ throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + e2.getName() + "> is unrecognized");
+ }
+ }
+
+ if (transferRates.isEmpty() && transferEvents.isEmpty()) {
+ throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + TRANSFER_RATES + "> is missing");
+ }
+
+ if (compartmentList.isEmpty()) {
+ throw new ParseException("Error parsing <" + SIMULATION + "> no <" + COMPARTMENT + "> found");
+ }
+
+ if (transferRates.isEmpty() && transferRates.size() != compartmentList.size() * compartmentList.size()) {
+ throw new ParseException(
+ "Error parsing <" +
+ SIMULATION +
+ "> element: <" +
+ TRANSFER_RATES +
+ "> should be size (" +
+ compartmentList.size() * compartmentList.size() +
+ "), but was (" +
+ transferRates.size() +
+ ") instead"
+ );
+ }
+
+ break;
+ default:
+ transferRates.add(new DoubleProb(1));
+
+ compartmentList.add(parseCompartment(element));
+ break;
+ }
+
+ if (!transferEvents.isEmpty()) {
+ ArrayList compartmentNames = new ArrayList<>();
+
+ for (Compartment compartment: compartmentList) {
+ compartmentNames.add(compartment.getName());
+ }
+
+ for (TimedTransfer.TransferEvent event: transferEvents) {
+ if (!event.findCompartmentIndices(compartmentNames)) {
+ throw new ParseException("Compartment not found for timedTransfer");
+ }
+ }
+
+ compartments = new Compartments(compartmentList, new TimedTransfer(transferEvents));
+ } else {
+ compartments = new Compartments(compartmentList, new MatrixTransfer(transferRates, compartmentList.size()));
+ }
+
+ return new Simulation(compartments);
+ }
+
+ //Default populationType is dynamicPopulation but in the xml file static population could be selected
+ Compartment parseCompartment(Element element) throws ParseException {
+ Compartment.InoculumType inoculumType = Compartment.InoculumType.NONE;
+ int populationSize = -1;
+ int maxPopulationSize = -1;
+ double growthRate = -1;
+
+ for (Object o : element.getChildren()) {
+ Element e = (Element)o;
+ if (e.getName().equals(POPULATION)) {
+ for (Object o1 : e.getChildren()) {
+ Element e1 = (Element)o1;
+ switch (e1.getName()) {
+ case POPULATION_SIZE:
+ try {
+ populationSize = parseInteger(e1, 0, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + POPULATION + "> element: " + pe.getMessage());
+ }
+ break;
+ case MAX_POPULATION_SIZE:
+ try {
+ maxPopulationSize = parseInteger(e1, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + POPULATION + "> element: " + pe.getMessage());
+ }
+ break;
+ case GROWTH_RATE:
+ try {
+ growthRate = parseDouble(e1, 0, Double.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + POPULATION + "> element: " + pe.getMessage());
+ }
+ break;
+ case INOCULUM:
+ String v = e1.getTextNormalize();
+ switch (v) {
+ case INOCULUM_NONE:
+ inoculumType = Compartment.InoculumType.NONE;
+ break;
+ case INOCULUM_CONSENSUS:
+ inoculumType = Compartment.InoculumType.CONSENSUS;
+ break;
+ case INOCULUM_RANDOM:
+ inoculumType = Compartment.InoculumType.RANDOM;
+ break;
+ case INOCULUM_ALL:
+ inoculumType = Compartment.InoculumType.ALL;
+ break;
+ // do nothing
+ default:
+ break;
+ }
+ break;
+ default:
+ throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
+ }
+ } else if ( !e.getName().equals(GENE_POOL) &&
+ !e.getName().equals(FITNESS_FUNCTION) &&
+ !e.getName().equals(MUTATOR) &&
+ !e.getName().equals(REPLICATOR) &&
+ !e.getName().equals(SAMPLING_SCHEDULE) &&
+ !e.getName().equals(EVENT_LOGGER) &&
+ !e.getName().equals(EPOCH) &&
+ !e.getName().equals(POPULATION_TYPE) &&
!e.getName().equals(GROWTH_MODEL) &&
- !e.getName().equals(RECOMBINATION_HOTSPOTS)) {
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + e.getName() + "> is unrecognized");
- }
- }
+ !e.getName().equals(RECOMBINATION_HOTSPOTS) &&
+ !e.getName().equals(NAME) &&
+ !e.getName().equals(GENOME_DESCRIPTION)) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
+ }
+ }
if (populationSize == -1) {
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + POPULATION_SIZE + "> is missing");
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + POPULATION_SIZE + "> is missing");
}
if (!GenomeDescription.isSet()) {
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + GENOME_DESCRIPTION + "> is missing");
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + GENOME_DESCRIPTION + "> is missing");
}
+ String compartmentName = "";
SamplingSchedule samplingSchedule = null;
GenePool genePool = null;
@@ -376,61 +527,76 @@ Simulation parseSimulation(Element element) throws ParseException {
Replicator defaultReplicator = null;
String populationType = null;
- DynamicSelector dynamicSelector = null;
+ Selector dynamicSelector = null;
- List recombinationHotSpots = new ArrayList();
+ List recombinationHotSpots = new ArrayList<>();
for (Object o : element.getChildren()) {
Element e = (Element)o;
String name = e.getName();
- if (name.equals(GENE_POOL)) {
- genePool = parseGenePool(e);
- } else if (name.equals(SAMPLING_SCHEDULE)) {
- samplingSchedule = parseSamplingSchedule(e);
- } else if (name.equals(EVENT_LOGGER)) {
- parseEventLogger(e);
- } else if (name.equals(FITNESS_FUNCTION)) {
- defaultFitnessFunction = parseFitnessFunction(e);
- } else if (name.equals(MUTATOR)) {
- defaultMutator = parseMutator(e);
- } else if (name.equals(RECOMBINATION_HOTSPOTS)){
- recombinationHotSpots = parseRecombinationHotSpots(e);
- GenomeDescription.setHotSpots(recombinationHotSpots);
- } else if (name.equals(POPULATION_TYPE)){
- populationType = (String) e.getTextNormalize();
- } else if (name.equals(REPLICATOR)) {
- defaultReplicator = parseReplicator(e);
- } else if (name.equals(GROWTH_MODEL)) {
- dynamicSelector = parseGrowthModel(e);
- }
+ switch (name) {
+ case NAME:
+ compartmentName = (String)e.getTextNormalize();
+ break;
+ case GENE_POOL:
+ genePool = parseGenePool(e);
+ break;
+ case SAMPLING_SCHEDULE:
+ samplingSchedule = parseSamplingSchedule(e);
+ break;
+ case EVENT_LOGGER:
+ parseEventLogger(e);
+ break;
+ case FITNESS_FUNCTION:
+ defaultFitnessFunction = parseFitnessFunction(e);
+ break;
+ case MUTATOR:
+ defaultMutator = parseMutator(e);
+ break;
+ case RECOMBINATION_HOTSPOTS:
+ recombinationHotSpots = parseRecombinationHotSpots(e);
+ GenomeDescription.setHotSpots(recombinationHotSpots);
+ break;
+ case POPULATION_TYPE:
+ populationType = (String)e.getTextNormalize();
+ break;
+ case REPLICATOR:
+ defaultReplicator = parseReplicator(e);
+ break;
+ case GROWTH_MODEL:
+ dynamicSelector = parseGrowthModel(e);
+ break;
+ default:
+ break;
+ }
}
if (samplingSchedule == null)
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + SAMPLING_SCHEDULE + "> is missing");
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + SAMPLING_SCHEDULE + "> is missing");
if (genePool == null) {
genePool = new SimpleGenePool();
}
if (defaultFitnessFunction == null)
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + FITNESS_FUNCTION + "> is missing");
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + FITNESS_FUNCTION + "> is missing");
if (defaultMutator == null)
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + MUTATOR + "> is missing");
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + MUTATOR + "> is missing");
if (defaultReplicator == null)
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + REPLICATOR + "> is missing");
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + REPLICATOR + "> is missing");
if (populationType == null) {
populationType = STATIC_POPULATION;
}
- List epochs = new ArrayList();
+ List epochs = new ArrayList<>();
for (Object o : element.getChildren()) {
Element e = (Element)o;
if (e.getName().equals(EPOCH)) {
- SimulationEpoch epoch = parseSimulationEpoch(e,
+ CompartmentEpoch epoch = parseSimulationEpoch(e,
defaultFitnessFunction, defaultMutator, defaultReplicator);
epochs.add(epoch);
@@ -438,51 +604,113 @@ Simulation parseSimulation(Element element) throws ParseException {
}
if (epochs.isEmpty())
- throw new ParseException("Error parsing <" + SIMULATION + "> element: <" + EPOCH + "> is missing");
-
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + EPOCH + "> is missing");
- if (populationType.equals(STATIC_POPULATION)) {
- Selector selector = new BinarySearchSelector();
- PopulationGrowth growth = new StaticPopulationGrowth(populationSize);
- return new Simulation(populationSize, selector, growth, inoculumType, genePool, epochs, samplingSchedule);
- } else if (populationType.equals(DYNAMIC_POPULATION)) {
- PopulationGrowth growth = new DynamicPopulationGrowth();
- Selector selector = null;
+ Selector selector;
+ PopulationGrowth growth;
+
+ switch (populationType) {
+ case STATIC_POPULATION:
+ selector = new BinarySearchSelector();
+ growth = new StaticPopulationGrowth(populationSize);
+ return new Compartment(compartmentName, populationSize, selector, growth, inoculumType, genePool, epochs, samplingSchedule);
+ case DYNAMIC_POPULATION:
+ growth = new DynamicPopulationGrowth();
+ selector = null;
+
if (dynamicSelector == null) {
selector = new DynamicSelector();
} else {
selector = dynamicSelector;
}
-
- return new Simulation(populationSize, selector, growth, inoculumType, genePool, epochs, samplingSchedule);
- }
- else throw new ParseException("unrecognized population type. should be either staticPopulation or dynamicPopulation.");
-
+
+ return new Compartment(compartmentName, populationSize, selector, growth, inoculumType, genePool, epochs, samplingSchedule);
+ default:
+ throw new ParseException("unrecognized population type. should be either staticPopulation or dynamicPopulation.");
+ }
}
- DynamicSelector parseGrowthModel(Element element) throws ParseException {
+ Selector parseGrowthModel(Element element) throws ParseException {
double growthRate = -1;
double carryingPopulation = -1;
+ double split = -1;
+ double death = -1;
for (Object o : element.getChildren()) {
Element e = (Element)o;
- if (e.getName().equals(GROWTH_RATE)) {
- growthRate = Double.parseDouble(e.getTextNormalize());
- } else if (e.getName().equals(CARRYING_POPULATION)) {
- carryingPopulation = Double.parseDouble(e.getTextNormalize());
- } else {
- throw new ParseException("Error parsing <" + GROWTH_MODEL + "> element: unknown XML element within " + GROWTH_MODEL);
- }
+ switch (e.getName()) {
+ case GROWTH_RATE:
+ growthRate = Double.parseDouble(e.getTextNormalize());
+ break;
+ case CARRYING_POPULATION:
+ carryingPopulation = Double.parseDouble(e.getTextNormalize());
+ break;
+ case SPLIT_PROBABILITY:
+ split = Double.parseDouble(e.getTextNormalize());
+ break;
+ case DEATH_PROBABILITY:
+ death = Double.parseDouble(e.getTextNormalize());
+ break;
+ default:
+ throw new ParseException("Error parsing <" + GROWTH_MODEL + "> element: unknown XML element within " + GROWTH_MODEL);
+ }
}
if (growthRate != -1 && carryingPopulation != -1) {
return new DynamicSelector(growthRate, carryingPopulation);
+ } else if (split != -1 && death != -1) {
+ return new ClonalExpansionSelector(split, death);
} else {
return null;
}
+ }
+
+ TimedTransfer.TransferEvent parseTransferEvent(Element element) throws ParseException {
+ String toCompartment = null;
+ String fromCompartment = null;
+ int generation = -1;
+ int amountToTransfer = -1;
+
+ for (Object o : element.getChildren()) {
+ Element e = (Element)o;
+ switch (e.getName()){
+ case TO_COMPARTMENT:
+ toCompartment = e.getTextNormalize();
+ break;
+ case FROM_COMPARTMENT:
+ fromCompartment = e.getTextNormalize();
+ break;
+ case TRANSFER_GENERATION:
+ generation = Integer.parseInt(e.getTextNormalize());
+ break;
+ case TRANSFER_AMOUNT:
+ amountToTransfer = Integer.parseInt(e.getTextNormalize());
+ break;
+ default:
+ throw new ParseException("Error parsing <" + TIMED_TRANSFER + "> element: unknown XML element within " + TIMED_TRANSFER);
+ }
+ }
+
+ if (toCompartment == null) {
+ throw new ParseException("Error parsing <" + TIMED_TRANSFER + "> element: " + TO_COMPARTMENT + " was not found");
+ }
+
+ if (fromCompartment == null) {
+ throw new ParseException("Error parsing <" + TIMED_TRANSFER + "> element: " + FROM_COMPARTMENT + " was not found");
+ }
+
+ if (generation < 0) {
+ throw new ParseException("Error parsing <" + TIMED_TRANSFER + "> element: " + TRANSFER_GENERATION + " is negative or was not found");
+ }
+
+ if (amountToTransfer < 0) {
+ throw new ParseException("Error parsing <" + TIMED_TRANSFER + "> element: " + TRANSFER_AMOUNT + " is negative or was not found");
+ }
+
+ return new TimedTransfer.TransferEvent(toCompartment, fromCompartment, generation, amountToTransfer);
}
- SimulationEpoch parseSimulationEpoch(Element element,
+ CompartmentEpoch parseSimulationEpoch(Element element,
FitnessFunction fitnessFunction, Mutator mutator,
Replicator replicator) throws ParseException {
@@ -512,50 +740,60 @@ SimulationEpoch parseSimulationEpoch(Element element,
for (Object o : element.getChildren()) {
Element e = (Element)o;
- if (e.getName().equals(FITNESS_FUNCTION)) {
- fitnessFunction = parseFitnessFunction(e);
- } else if (e.getName().equals(MUTATOR)) {
- mutator = parseMutator(e);
- } else if (e.getName().equals(REPLICATOR)) {
- replicator = parseReplicator(e);
- }
+ switch (e.getName()) {
+ case FITNESS_FUNCTION:
+ fitnessFunction = parseFitnessFunction(e);
+ break;
+ case MUTATOR:
+ mutator = parseMutator(e);
+ break;
+ case REPLICATOR:
+ replicator = parseReplicator(e);
+ break;
+ default:
+ break;
+ }
}
- return new SimulationEpoch(name, generationCount, fitnessFunction, mutator, replicator);
+ return new CompartmentEpoch(name, generationCount, fitnessFunction, mutator, replicator);
}
private void parseGenomeDescription(Element element) throws ParseException {
int genomeLength = -1;
- List features = new ArrayList();
+ List features = new ArrayList<>();
List sequences = null;
for (Object o : element.getChildren()) {
Element e = (Element)o;
- if (e.getName().equals(GENOME_LENGTH)) {
- try {
- genomeLength = parseInteger(e, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + GENOME_DESCRIPTION + "> element: " + pe.getMessage());
- }
- } else if (e.getName().equals(FEATURE)) {
- features.add(parseFeature(e));
- } else if (e.getName().equals(SEQUENCES)) {
- if (e.getAttributeValue(FILENAME) != null) {
- try {
- // quick and dirty one-liner to read in a text file.
- // http://jdevelopment.nl/java-7-oneliner-read-file-string/
- String text = new String(readAllBytes(get(e.getAttributeValue(FILENAME))));
- sequences = parseAlignment(text);
- } catch (IOException eio) {
- throw new ParseException("Error parsing <" + SEQUENCES + "> file attribute: Cannot open file " + eio.getMessage());
- }
- } else {
- sequences = parseAlignment(e.getTextTrim());
- }
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
- }
+ switch (e.getName()) {
+ case GENOME_LENGTH:
+ try {
+ genomeLength = parseInteger(e, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + GENOME_DESCRIPTION + "> element: " + pe.getMessage());
+ }
+ break;
+ case FEATURE:
+ features.add(parseFeature(e));
+ break;
+ case SEQUENCES:
+ if (e.getAttributeValue(FILENAME) != null) {
+ try {
+ // quick and dirty one-liner to read in a text file.
+ // http://jdevelopment.nl/java-7-oneliner-read-file-string/
+ String text = new String(readAllBytes(get(e.getAttributeValue(FILENAME))));
+ sequences = parseAlignment(text);
+ } catch (IOException eio) {
+ throw new ParseException("Error parsing <" + SEQUENCES + "> file attribute: Cannot open file " + eio.getMessage());
+ }
+ } else {
+ sequences = parseAlignment(e.getTextTrim());
+ }
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
+ }
}
if (genomeLength == -1) {
@@ -570,30 +808,37 @@ private Feature parseFeature(Element element) throws ParseException {
String name = null;
Feature.Type type = Feature.Type.NUCLEOTIDE;
String sites = null;
- List parts = new ArrayList();
+ List parts = new ArrayList<>();
for (Object o : element.getChildren()) {
Element e = (Element) o;
- if (e.getName().equals(NAME)) {
- name = e.getTextNormalize();
- } else if (e.getName().equals(TYPE)) {
- if (e.getTextNormalize().equals(AMINO_ACID)) {
- type = Feature.Type.AMINO_ACID;
- } else if (e.getTextNormalize().equals(NUCLEOTIDE)) {
- type = Feature.Type.NUCLEOTIDE;
- } else {
- String msg = String.format("Error parsing <%s> element: <%s> should be '%s' or '%s'",
- element.getName(), e.getName(),NUCLEOTIDE, AMINO_ACID);
- throw new ParseException(msg);
- }
- } else if (e.getName().equals(COORDINATES)) {
- sites = e.getTextNormalize();
- parts = Arrays.asList(sites.split(","));
- } else {
- throw new ParseException("Error parsing <" + element.getName()
- + "> element: <" + e.getName() + "> is unrecognized");
- }
+ switch (e.getName()) {
+ case NAME:
+ name = e.getTextNormalize();
+ break;
+ case TYPE:
+ switch (e.getTextNormalize()) {
+ case AMINO_ACID:
+ type = Feature.Type.AMINO_ACID;
+ break;
+ case NUCLEOTIDE:
+ type = Feature.Type.NUCLEOTIDE;
+ break;
+ default:
+ String msg = String.format("Error parsing <%s> element: <%s> should be '%s' or '%s'",
+ element.getName(), e.getName(),NUCLEOTIDE, AMINO_ACID);
+ throw new ParseException(msg);
+ }
+ break;
+ case COORDINATES:
+ sites = e.getTextNormalize();
+ parts = Arrays.asList(sites.split(","));
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName()
+ + "> element: <" + e.getName() + "> is unrecognized");
+ }
}
Feature feature = new Feature(name, type);
@@ -646,7 +891,7 @@ private RecombinationHotSpot parseRecombinationHotSpot(Element element) throws P
}
private List parseRecombinationHotSpots(Element element) throws ParseException{
- List recombinationHotSpots = new ArrayList();
+ List recombinationHotSpots = new ArrayList<>();
for (Object o : element.getChildren()) {
Element e = (Element) o;
RecombinationHotSpot segment = null;
@@ -659,30 +904,41 @@ private List parseRecombinationHotSpots(Element element) t
}
private FitnessFunction parseFitnessFunction(Element element) throws ParseException {
- List components = new ArrayList();
+ List components = new ArrayList<>();
for (Object o : element.getChildren()) {
Element e = (Element) o;
FitnessFactor factor = null;
- if (e.getName().equals(NEUTRAL_MODEL_FITNESS_FUNCTION)) {
- // don't need to add a factor to the product
- } else if (e.getName().equals(PURIFYING_FITNESS_FUNCTION)) {
- factor = parsePurifyingFitnessFunction(e);
- } else if (e.getName().equals(EMPIRICAL_FITNESS_FUNCTION)) {
- factor = parseEmpiricalFitnessFunction(e);
- } else if (e.getName().equals(FREQUENCY_DEPENDENT_FITNESS_FUNCTION)) {
- factor = parseFrequencyDependentFitnessFunction(e);
- } else if (e.getName().equals(AGE_DEPENDENT_FITNESS_FUNCTION)) {
- factor = parseAgeDependentFitnessFunction(e);
- } else if (e.getName().equals(EXPOSURE_DEPENDENT_FITNESS_FUNCTION)) {
- factor = parseExposureDependentFitnessFunction(e);
- } else if (e.getName().equals(POPULATION_SIZE_DEPENDENT_FITNESS_FUNCTION)) {
- factor = parsePopulationSizeDependentFitnessFunction(e);
- } else {
- throw new ParseException("Error parsing <" + element.getName()
- + "> element: <" + e.getName() + "> is unrecognized");
- }
+ switch (e.getName()) {
+ // don't need to add a factor to the product
+ case NEUTRAL_MODEL_FITNESS_FUNCTION:
+ break;
+ case PURIFYING_FITNESS_FUNCTION:
+ factor = parsePurifyingFitnessFunction(e);
+ break;
+ case EMPIRICAL_FITNESS_FUNCTION:
+ factor = parseEmpiricalFitnessFunction(e);
+ break;
+ case FREQUENCY_DEPENDENT_FITNESS_FUNCTION:
+ factor = parseFrequencyDependentFitnessFunction(e);
+ break;
+ case AGE_DEPENDENT_FITNESS_FUNCTION:
+ factor = parseAgeDependentFitnessFunction(e);
+ break;
+ case EXPOSURE_DEPENDENT_FITNESS_FUNCTION:
+ factor = parseExposureDependentFitnessFunction(e);
+ break;
+ case POPULATION_SIZE_DEPENDENT_FITNESS_FUNCTION:
+ factor = parsePopulationSizeDependentFitnessFunction(e);
+ break;
+ case NO_FITNESS_FUNCTION:
+ factor = parseNoFitnessFunction(e);
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName()
+ + "> element: <" + e.getName() + "> is unrecognized");
+ }
if (factor != null) {
components.add(factor);
@@ -809,6 +1065,12 @@ private FitnessFactor parsePopulationSizeDependentFitnessFunction(Element elemen
return new PopulationSizeDependentFitnessFactor((int) maxPopSize, declineRate, factor.feature, factor.sites);
}
+ private FitnessFactor parseNoFitnessFunction(Element element) throws ParseException {
+ FeatureAndSites factor = parseFeatureAndSites(element);
+
+ return new NoFitnessFactor(factor.feature, factor.sites);
+ }
+
/**
* @param element
* @return
@@ -993,9 +1255,9 @@ private FeatureAndSites parseFeatureAndSites(Element element) throws ParseExcept
}
}
- if (sites == null || sites.size() == 0) {
+ if (sites == null || sites.isEmpty()) {
// assume the full length of the feature
- sites = new TreeSet();
+ sites = new TreeSet<>();
for (int i = 0; i < feature.getLength(); i++) {
sites.add(i);
}
@@ -1017,54 +1279,55 @@ private PurifyingFitnessModel parsePurifyingFitnessModel(Element element, Featur
for (Object o:element.getChildren()) {
Element e = (Element) o;
- if (e.getName().equals(BETA_DISTIBUTED)) {
-
- // Carrasco et al (2007) J Virology 81:12979-12984
- double a = 1.151;
- double b = 1.709;
- double pLethal = 0.4;
-
- int alphabetSize = alphabet.getStateCount();
- int sites = factor.sites.size();
-
- Element aChild = e.getChild("a");
- a = Double.parseDouble(aChild.getText());
- Element bChild = e.getChild("b");
- b = Double.parseDouble(bChild.getText());
- Element pChild = e.getChild("pLethal");
- pLethal = Double.parseDouble(pChild.getText());
-
- return new BetaDistributedPurifyingFitnessModel(a,b, pLethal, alphabetSize, sites);
- }
- else if (e.getName().equals(VALUES)) {
- double[] fitnesses;
- try {
- fitnesses = parseNumberList(e);
-
- // confirm that we parsed one fitness value for each possible state.
- if (fitnesses.length != alphabet.getStateCount()) {
- throw new ParseException("expected " + alphabet.getStateCount() +" fitnesses, got " + fitnesses.length);
- }
- } catch (ParseException e1) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + e1.getMessage());
- }
-
- return new PurifyingFitnessValuesModel(fitnesses);
- } else if (e.getName().equals(MINIMUM_FITNESS)) {
- try {
- minimumFitness = parseDouble(e, 0, 1);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
- }
- } else if (e.getName().equals(LOW_FITNESS)) {
- try {
- lowFitness = parseDouble(e, 0, 1);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
- }
- } else {
- throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e.getName() + "> is unrecognized");
- }
+ switch (e.getName()) {
+ case BETA_DISTIBUTED:
+ // Carrasco et al (2007) J Virology 81:12979-12984
+ double a = 1.151;
+ double b = 1.709;
+ double pLethal = 0.4;
+
+ int alphabetSize = alphabet.getStateCount();
+ int sites = factor.sites.size();
+
+ Element aChild = e.getChild("a");
+ a = Double.parseDouble(aChild.getText());
+ Element bChild = e.getChild("b");
+ b = Double.parseDouble(bChild.getText());
+ Element pChild = e.getChild("pLethal");
+ pLethal = Double.parseDouble(pChild.getText());
+
+ return new BetaDistributedPurifyingFitnessModel(a,b, pLethal, alphabetSize, sites);
+ case VALUES:
+ double[] fitnesses;
+ try {
+ fitnesses = parseNumberList(e);
+
+ // confirm that we parsed one fitness value for each possible state.
+ if (fitnesses.length != alphabet.getStateCount()) {
+ throw new ParseException("expected " + alphabet.getStateCount() +" fitnesses, got " + fitnesses.length);
+ }
+ } catch (ParseException e1) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + e1.getMessage());
+ }
+
+ return new PurifyingFitnessValuesModel(fitnesses);
+ case MINIMUM_FITNESS:
+ try {
+ minimumFitness = parseDouble(e, 0, 1);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ case LOW_FITNESS:
+ try {
+ lowFitness = parseDouble(e, 0, 1);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ default:
+ throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e.getName() + "> is unrecognized");
+ }
}
if (minimumFitness == -1 || lowFitness == -1) {
throw new ParseException("Error parsing <" + element.getName() + "> element: expecting either a <" + VALUES
@@ -1135,13 +1398,17 @@ private PurifyingFitnessRank parsePurifyingFitnessRank(Element element, FeatureA
if (breakTiesElement == null)
throw new ParseException("Error parsing <" + element.getName() + "> element: missing <" + BREAK_TIES + ">");
String breakTies = breakTiesElement.getTextNormalize();
- if (breakTies.equals(BREAK_TIES_RANDOM))
- breakTiesRandom = true;
- else if (breakTies.equals(BREAK_TIES_ORDERED))
- breakTiesRandom = false;
- else
- throw new ParseException("Error parsing <" + BREAK_TIES + "> element: value must be one of '"
- + BREAK_TIES_RANDOM + "' or '" + BREAK_TIES_ORDERED + "'");
+ switch (breakTies) {
+ case BREAK_TIES_RANDOM:
+ breakTiesRandom = true;
+ break;
+ case BREAK_TIES_ORDERED:
+ breakTiesRandom = false;
+ break;
+ default:
+ throw new ParseException("Error parsing <" + BREAK_TIES + "> element: value must be one of '"
+ + BREAK_TIES_RANDOM + "' or '" + BREAK_TIES_ORDERED + "'");
+ }
for (Object o:element.getChildren()) {
Element e = (Element) o;
@@ -1149,30 +1416,35 @@ else if (breakTies.equals(BREAK_TIES_ORDERED))
if (e.getName().equals(ORDER)) {
String v = e.getTextNormalize();
- if (v.equals(ORDER_OBSERVED_FREQUENCY)) {
- order = OrderEnum.OBSERVED;
- } else if (v.equals(ORDER_CHEMICAL)) {
- order = OrderEnum.CLASSES;
- orderSetClasses = parseProbableSetClasses(alphabet, CHEMICAL_CLASSES);
- } else if (v.equals(ORDER_HYDROPATHY)) {
- order = OrderEnum.CLASSES;
- orderSetClasses = parseProbableSetClasses(alphabet, HYDROPATHY_CLASSES);
- } else if (v.equals(ORDER_VOLUME)) {
- order = OrderEnum.CLASSES;
- orderSetClasses = parseProbableSetClasses(alphabet, VOLUME_CLASSES);
- } else {
- if (v.contains("|")) {
- order = OrderEnum.CLASSES;
- orderSetClasses = parseProbableSetClasses(alphabet, v);
- } else {
- order = OrderEnum.STATES;
- stateOrder = new ArrayList();
-
- for (int i = 0; i < v.length(); ++i) {
- stateOrder.add(alphabet.parse(v.charAt(i)));
- }
- }
- }
+ switch (v) {
+ case ORDER_OBSERVED_FREQUENCY:
+ order = OrderEnum.OBSERVED;
+ break;
+ case ORDER_CHEMICAL:
+ order = OrderEnum.CLASSES;
+ orderSetClasses = parseProbableSetClasses(alphabet, CHEMICAL_CLASSES);
+ break;
+ case ORDER_HYDROPATHY:
+ order = OrderEnum.CLASSES;
+ orderSetClasses = parseProbableSetClasses(alphabet, HYDROPATHY_CLASSES);
+ break;
+ case ORDER_VOLUME:
+ order = OrderEnum.CLASSES;
+ orderSetClasses = parseProbableSetClasses(alphabet, VOLUME_CLASSES);
+ break;
+ default:
+ if (v.contains("|")) {
+ order = OrderEnum.CLASSES;
+ orderSetClasses = parseProbableSetClasses(alphabet, v);
+ } else {
+ order = OrderEnum.STATES;
+ stateOrder = new ArrayList();
+
+ for (int i = 0; i < v.length(); ++i) {
+ stateOrder.add(alphabet.parse(v.charAt(i)));
+ }
+ } break;
+ }
} else if (e.getName().equals(PROBABLE_SET)) {
probableNumber = parseInteger(e, 1, alphabet.getStateCount());
} else if (!e.getName().equals(BREAK_TIES)) {
@@ -1212,12 +1484,12 @@ else if (breakTies.equals(BREAK_TIES_ORDERED))
}
private List> parseProbableSetClasses(SequenceAlphabet alphabet, String str) throws ParseException {
- Set completeCheck = new HashSet();
- List> classes = new ArrayList>();
+ Set completeCheck = new HashSet<>();
+ List> classes = new ArrayList<>();
String[] sets = str.split("\\|");
for (String set : sets) {
- Set stateSet = new HashSet();
+ Set stateSet = new HashSet<>();
for (int i = 0; i < set.length(); i++) {
byte symbol = alphabet.parse(set.charAt(i));
stateSet.add(symbol);
@@ -1237,7 +1509,7 @@ private List> parseProbableSetClasses(SequenceAlphabet alphabet, Strin
}
private List parseAlignment(String text) throws ParseException {
- List result = new ArrayList();
+ List result = new ArrayList<>();
int firstLength = 0;
String[] seqStrings;
@@ -1300,7 +1572,7 @@ public double[] parseNumberList(Element element) throws ParseException {
}
private Set parseSites(Element element, Feature feature) throws ParseException {
- Set result = new TreeSet();
+ Set result = new TreeSet<>();
String sites = element.getTextNormalize();
String[] parts = sites.split(",");
@@ -1347,7 +1619,7 @@ private void addSite(Set result, int j, Feature feature) throws ParseEx
}
private Mutator parseMutator(Element element) throws ParseException {
- if (element.getChildren().size() == 0) {
+ if (element.getChildren().isEmpty()) {
throw new ParseException("Error parsing <" + element.getName() + "> element: the element is empty");
}
@@ -1366,38 +1638,46 @@ private Mutator parseMutator(Element element) throws ParseException {
for (Object o : e.getChildren()) {
Element e1 = (Element)o;
try {
- // this should really be a switch statement if we could use a modern java implementation...
- if (e1.getName().equals(MUTATION_RATE)) {
- mutationRate = parseDouble(e1, 0.0, Double.MAX_VALUE);
- } else if (e1.getName().equals(TRANSITION_BIAS)) {
- transitionBias = parseDouble(e1, 0.0, Double.MAX_VALUE);
- } else if (e1.getName().equals(RATE_BIAS)) {
- rateBiases = parseNumberList(e1);
- if (rateBiases.length != 12) {
- throw new ParseException("expected 12 rate biases, got " + rateBiases.length);
- }
- } else if (e1.getName().equals(INSERT_PROB)) {
- // http://abacus.gene.ucl.ac.uk/software/indelible/manual/model.shtml#[indelmodel]
- if (insertProb != -1.0) {
- throw new ParseException("insertion probability is already set - see previous <" + INSERT_PROB + "> or <" + INDEL_PROB + ">.");
- }
- insertProb = parseDouble(e1, 0.0, 1.0);
- } else if (e1.getName().equals(DELETE_PROB)) {
- if (deleteProb != -1.0) {
- throw new ParseException("deletion probability already set - see previous <" + DELETE_PROB + "> or <" + INDEL_PROB + ">.");
- }
- deleteProb = parseDouble(e1, 0.0, 1.0);
- } else if (e1.getName().equals(INDEL_PROB)) {
- if (insertProb != -1.0 || deleteProb != -1.0) {
- throw new ParseException("insertion or deletion probability already set - see previous <" + DELETE_PROB + ">, <" + INSERT_PROB + ">, or <" + INDEL_PROB + ">.");
- }
- insertProb = parseDouble(e1, 0.0, 1.0);
- deleteProb = insertProb;
- } else if (e1.getName().equals(INDEL_MODEL)) {
- indelModel = parseIndelModel(e1);
- } else {
- throw new ParseException("element is unrecognized");
- }
+ // this should really be a switch statement if we could use a modern java implementation...
+ switch (e1.getName()) {
+ case MUTATION_RATE:
+ mutationRate = parseDouble(e1, 0.0, Double.MAX_VALUE);
+ break;
+ case TRANSITION_BIAS:
+ transitionBias = parseDouble(e1, 0.0, Double.MAX_VALUE);
+ break;
+ case RATE_BIAS:
+ rateBiases = parseNumberList(e1);
+ if (rateBiases.length != 12) {
+ throw new ParseException("expected 12 rate biases, got " + rateBiases.length);
+ }
+ break;
+ case INSERT_PROB:
+ // http://abacus.gene.ucl.ac.uk/software/indelible/manual/model.shtml#[indelmodel]
+ if (insertProb != -1.0) {
+ throw new ParseException("insertion probability is already set - see previous <" + INSERT_PROB + "> or <" + INDEL_PROB + ">.");
+ }
+ insertProb = parseDouble(e1, 0.0, 1.0);
+ break;
+ case DELETE_PROB:
+ if (deleteProb != -1.0) {
+ throw new ParseException("deletion probability already set - see previous <" + DELETE_PROB + "> or <" + INDEL_PROB + ">.");
+ }
+ deleteProb = parseDouble(e1, 0.0, 1.0);
+ break;
+ case INDEL_PROB:
+ if (insertProb != -1.0 || deleteProb != -1.0) {
+ throw new ParseException("insertion or deletion probability already set - see previous <" + DELETE_PROB + ">, <" + INSERT_PROB + ">, or <" + INDEL_PROB + ">.");
+ }
+ insertProb = parseDouble(e1, 0.0, 1.0);
+ deleteProb = insertProb;
+ break;
+ case INDEL_MODEL:
+ indelModel = parseIndelModel(e1);
+ break;
+ default:
+ throw new ParseException("element is unrecognized");
+ }
} catch(ParseException pe) {
throw new ParseException("element: <" + e1.getName() + ">: " + pe.getMessage());
@@ -1466,104 +1746,106 @@ private IndelModel parseIndelModel(Element element) throws ParseException {
private Replicator parseReplicator(Element element) throws ParseException {
- if (element.getChildren().size() == 0) {
+ if (element.getChildren().isEmpty()) {
throw new ParseException("Error parsing <" + element.getName() + "> element: the element is empty");
}
Element e = (Element)element.getChildren().get(0);
- if (e.getName().equals(CLONAL_REPLICATOR)) {
- return new ClonalReplicator();
- } else if (e.getName().equals(RECOMBINANT_REPLICATOR_WITH_HOTSPOTS)) {
- double dualInfectionProbability = -1.0;
- double recombinationProbability = -1.0;
-
- for (Object o : e.getChildren()) {
- Element e1 = (Element)o;
- if (e1.getName().equals(DUAL_INFECTION_PROBABILITY)) {
- try {
- dualInfectionProbability = parseDouble(e1, 0.0, 1.0);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(RECOMBINATION_PROBABILITY)) {
- try {
- recombinationProbability = parseDouble(e1, 0.0, 1.0);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
- }
- } else {
- throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e1.getName() + "> is unrecognized");
- }
-
- }
- if (dualInfectionProbability < 0.0) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + DUAL_INFECTION_PROBABILITY + "> is missing");
- }
-
- if (recombinationProbability < 0.0) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + RECOMBINATION_PROBABILITY + "> is missing");
- }
-
- return new RecombinantReplicatorWithHotSpots(dualInfectionProbability, recombinationProbability);
- }
-
- else if (e.getName().equals(RECOMBINANT_REPLICATOR)) {
- double dualInfectionProbability = -1.0;
- double recombinationProbability = -1.0;
-
- for (Object o : e.getChildren()) {
- Element e1 = (Element)o;
- if (e1.getName().equals(DUAL_INFECTION_PROBABILITY)) {
- try {
- dualInfectionProbability = parseDouble(e1, 0.0, 1.0);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(RECOMBINATION_PROBABILITY)) {
- try {
- recombinationProbability = parseDouble(e1, 0.0, 1.0);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
- }
- } else {
- throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e1.getName() + "> is unrecognized");
- }
-
- }
- if (dualInfectionProbability < 0.0) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + DUAL_INFECTION_PROBABILITY + "> is missing");
- }
-
- if (recombinationProbability < 0.0) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + RECOMBINATION_PROBABILITY + "> is missing");
- }
-
- return new RecombinantReplicator(dualInfectionProbability, recombinationProbability);
- }
-
-
- else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
- }
+ switch (e.getName()) {
+ case CLONAL_REPLICATOR:
+ return new ClonalReplicator();
+ case RECOMBINANT_REPLICATOR_WITH_HOTSPOTS:
+ {
+ double dualInfectionProbability = -1.0;
+ double recombinationProbability = -1.0;
+
+ for (Object o : e.getChildren()) {
+ Element e1 = (Element)o;
+ if (e1.getName().equals(DUAL_INFECTION_PROBABILITY)) {
+ try {
+ dualInfectionProbability = parseDouble(e1, 0.0, 1.0);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
+ }
+ } else if (e1.getName().equals(RECOMBINATION_PROBABILITY)) {
+ try {
+ recombinationProbability = parseDouble(e1, 0.0, 1.0);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
+ }
+ } else {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
+
+ }
+ if (dualInfectionProbability < 0.0) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + DUAL_INFECTION_PROBABILITY + "> is missing");
+ }
+
+ if (recombinationProbability < 0.0) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + RECOMBINATION_PROBABILITY + "> is missing");
+ }
+
+ return new RecombinantReplicatorWithHotSpots(dualInfectionProbability, recombinationProbability);
+ }
+ case RECOMBINANT_REPLICATOR:
+ {
+ double dualInfectionProbability = -1.0;
+ double recombinationProbability = -1.0;
+
+ for (Object o : e.getChildren()) {
+ Element e1 = (Element)o;
+ switch (e1.getName()) {
+ case DUAL_INFECTION_PROBABILITY:
+ try {
+ dualInfectionProbability = parseDouble(e1, 0.0, 1.0);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
+ } break;
+ case RECOMBINATION_PROBABILITY:
+ try {
+ recombinationProbability = parseDouble(e1, 0.0, 1.0);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + e.getName() + "> element: " + pe.getMessage());
+ } break;
+ default:
+ throw new ParseException("Error parsing <" + e.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
+
+ }
+ if (dualInfectionProbability < 0.0) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + DUAL_INFECTION_PROBABILITY + "> is missing");
+ }
+
+ if (recombinationProbability < 0.0) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + RECOMBINATION_PROBABILITY + "> is missing");
+ }
+
+ return new RecombinantReplicator(dualInfectionProbability, recombinationProbability);
+ }
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
+ }
}
private GenePool parseGenePool(Element element) throws ParseException {
- if (element.getChildren().size() == 0) {
+ if (element.getChildren().isEmpty()) {
throw new ParseException("Error parsing <" + element.getName() + "> element: the element is empty");
}
Element e = (Element)element.getChildren().get(0);
- if (e.getName().equals(SIMPLE_GENE_POOL)) {
- // SimpleGenome/GenePool uses a simple format where the whole sequence is stored
- return new SimpleGenePool();
- } else if (e.getName().equals(COMPACT_GENE_POOL)) {
- // CompactGenome/GenePool uses a compact format where only changes are stored
- return new CompactGenePool();
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
- }
+ switch (e.getName()) {
+ case SIMPLE_GENE_POOL:
+ // SimpleGenome/GenePool uses a simple format where the whole sequence is stored
+ return new SimpleGenePool();
+ case COMPACT_GENE_POOL:
+ // CompactGenome/GenePool uses a compact format where only changes are stored
+ return new CompactGenePool();
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e.getName() + "> is unrecognized");
+ }
}
@@ -1592,23 +1874,28 @@ private void parseSampler(Element element, SamplingSchedule samplingSchedule) th
for (Object o : element.getChildren()) {
Element e1 = (Element)o;
- if (e1.getName().equals(AT_FREQUENCY)) {
- try {
- frequency = parseInteger(e1, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(AT_GENERATION)) {
- try {
- generation = parseInteger(e1, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(FILE_NAME)) {
- fileName = e1.getTextNormalize();
- } else {
- // skip over it
- }
+ switch (e1.getName()) {
+ case AT_FREQUENCY:
+ try {
+ frequency = parseInteger(e1, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ case AT_GENERATION:
+ try {
+ generation = parseInteger(e1, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ case FILE_NAME:
+ fileName = e1.getTextNormalize();
+ break;
+ // skip over it
+ default:
+ break;
+ }
}
@@ -1624,21 +1911,30 @@ private void parseSampler(Element element, SamplingSchedule samplingSchedule) th
for (Object o : element.getChildren()) {
Element e1 = (Element)o;
- if (e1.getName().equals(ALIGNMENT)) {
- sampler = parseAlignmentSampler(e1, samplingSchedule, fileName);
- } else if (e1.getName().equals(GENOMEDESCRIPTION)) {
- sampler = parseGenomeDescriptionSampler(e1, samplingSchedule, fileName);
- } else if (e1.getName().equals(TREE)) {
- sampler = parseTreeSampler(e1, samplingSchedule, fileName);
- } else if (e1.getName().equals(ALLELE_FREQUENCY)) {
- sampler = parseAlleleFrequencySampler(e1, samplingSchedule, fileName);
- } else if (e1.getName().equals(STATISTICS)) {
- sampler = parseStatisticsSampler(e1, samplingSchedule, fileName);
- } else if (e1.getName().equals(AT_FREQUENCY) || e1.getName().equals(AT_GENERATION) || e1.getName().equals(FILE_NAME)) {
- // skip over it
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
- }
+ switch (e1.getName()) {
+ case ALIGNMENT:
+ sampler = parseAlignmentSampler(e1, samplingSchedule, fileName);
+ break;
+ case GENOMEDESCRIPTION:
+ sampler = parseGenomeDescriptionSampler(e1, samplingSchedule, fileName);
+ break;
+ case TREE:
+ sampler = parseTreeSampler(e1, samplingSchedule, fileName);
+ break;
+ case ALLELE_FREQUENCY:
+ sampler = parseAlleleFrequencySampler(e1, samplingSchedule, fileName);
+ break;
+ case STATISTICS:
+ sampler = parseStatisticsSampler(e1, samplingSchedule, fileName);
+ break;
+ // skip over it
+ case AT_FREQUENCY:
+ case AT_GENERATION:
+ case FILE_NAME:
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
}
@@ -1664,31 +1960,35 @@ private Sampler parseGenomeDescriptionSampler(Element element, SamplingSchedule
for (Object o : element.getChildren()) {
Element e1 = (Element)o;
- if (e1.getName().equals(SAMPLE_SIZE)) {
- try {
- sampleSize = parseInteger(e1, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(SCHEDULE)) {
- String[] values = e1.getTextTrim().split("\\s+");
- schedule = new TreeMap();
- try {
- for (int i = 0; i element: "
- + e.getMessage());
- }
- } else if (e1.getName().equals(LABEL)) {
- label = e1.getTextNormalize();
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
- }
+ switch (e1.getName()) {
+ case SAMPLE_SIZE:
+ try {
+ sampleSize = parseInteger(e1, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ case SCHEDULE:
+ String[] values = e1.getTextTrim().split("\\s+");
+ schedule = new TreeMap<>();
+ try {
+ for (int i = 0; i element: "
+ + e.getMessage());
+ }
+ break;
+ case LABEL:
+ label = e1.getTextNormalize();
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
}
@@ -1713,51 +2013,57 @@ private Sampler parseAlignmentSampler(Element element, SamplingSchedule sampling
for (Object o : element.getChildren()) {
Element e1 = (Element)o;
- if (e1.getName().equals(SAMPLE_SIZE)) {
- try {
- sampleSize = parseInteger(e1, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(SCHEDULE)) {
- String[] values = e1.getTextTrim().split("\\s+");
- schedule = new TreeMap();
- try {
- for (int i = 0; i element: "
- + e.getMessage());
- }
- } else if (e1.getName().equals(FORMAT)) {
- String formatText = e1.getTextNormalize();
- if (formatText.equalsIgnoreCase("NEXUS")) {
- format = AlignmentSampler.Format.NEXUS;
- } else if (formatText.equalsIgnoreCase("FASTA")) {
- format = AlignmentSampler.Format.FASTA;
- } else if (formatText.equalsIgnoreCase("XML")) {
- format = AlignmentSampler.Format.XML;
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + FORMAT + "> value of " + formatText + " is unrecognized");
- }
- } else if (e1.getName().equals(CONSENSUS)) {
- String booleanText = e1.getTextNormalize();
- if (booleanText.equalsIgnoreCase("TRUE")) {
- consensus = true;
- } else if (booleanText.equalsIgnoreCase("FALSE")) {
- consensus = false;
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + CONSENSUS + "> value " + booleanText + " is unrecognized");
- }
- } else if (e1.getName().equals(LABEL)) {
- label = e1.getTextNormalize();
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
- }
+ switch (e1.getName()) {
+ case SAMPLE_SIZE:
+ try {
+ sampleSize = parseInteger(e1, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ case SCHEDULE:
+ String[] values = e1.getTextTrim().split("\\s+");
+ schedule = new TreeMap<>();
+ try {
+ for (int i = 0; i element: "
+ + e.getMessage());
+ }
+ break;
+ case FORMAT:
+ String formatText = e1.getTextNormalize();
+ if (formatText.equalsIgnoreCase("NEXUS")) {
+ format = AlignmentSampler.Format.NEXUS;
+ } else if (formatText.equalsIgnoreCase("FASTA")) {
+ format = AlignmentSampler.Format.FASTA;
+ } else if (formatText.equalsIgnoreCase("XML")) {
+ format = AlignmentSampler.Format.XML;
+ } else {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + FORMAT + "> value of " + formatText + " is unrecognized");
+ }
+ break;
+ case CONSENSUS:
+ String booleanText = e1.getTextNormalize();
+ if (booleanText.equalsIgnoreCase("TRUE")) {
+ consensus = true;
+ } else if (booleanText.equalsIgnoreCase("FALSE")) {
+ consensus = false;
+ } else {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + CONSENSUS + "> value " + booleanText + " is unrecognized");
+ }
+ break;
+ case LABEL:
+ label = e1.getTextNormalize();
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
}
@@ -1778,40 +2084,45 @@ private Sampler parseTreeSampler(Element element, SamplingSchedule samplingSched
for (Object o : element.getChildren()) {
Element e1 = (Element)o;
- if (e1.getName().equals(SAMPLE_SIZE)) {
- try {
- sampleSize = parseInteger(e1, 1, Integer.MAX_VALUE);
- } catch (ParseException pe) {
- throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
- }
- } else if (e1.getName().equals(SCHEDULE)) {
- String[] values = e1.getTextTrim().split("\\s+");
- schedule = new TreeMap();
- try {
- for (int i = 0; i element: "
- + e.getMessage());
- }
- } else if (e1.getName().equals(FORMAT)) {
- String formatText = e1.getTextNormalize();
- if (formatText.equalsIgnoreCase("NEXUS")) {
- format = TreeSampler.Format.NEXUS;
- } else if (formatText.equalsIgnoreCase("NEWICK")) {
- format = TreeSampler.Format.NEWICK;
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + FORMAT + "> value of " + formatText + " is unrecognized");
- }
- } else if (e1.getName().equals(LABEL)) {
- label = e1.getTextNormalize();
- } else {
- throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
- }
+ switch (e1.getName()) {
+ case SAMPLE_SIZE:
+ try {
+ sampleSize = parseInteger(e1, 1, Integer.MAX_VALUE);
+ } catch (ParseException pe) {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: " + pe.getMessage());
+ }
+ break;
+ case SCHEDULE:
+ String[] values = e1.getTextTrim().split("\\s+");
+ schedule = new TreeMap();
+ try {
+ for (int i = 0; i element: "
+ + e.getMessage());
+ }
+ break;
+ case FORMAT:
+ String formatText = e1.getTextNormalize();
+ if (formatText.equalsIgnoreCase("NEXUS")) {
+ format = TreeSampler.Format.NEXUS;
+ } else if (formatText.equalsIgnoreCase("NEWICK")) {
+ format = TreeSampler.Format.NEWICK;
+ } else {
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + FORMAT + "> value of " + formatText + " is unrecognized");
+ }
+ break;
+ case LABEL:
+ label = e1.getTextNormalize();
+ break;
+ default:
+ throw new ParseException("Error parsing <" + element.getName() + "> element: <" + e1.getName() + "> is unrecognized");
+ }
}
diff --git a/src/santa/simulator/Virus.java b/src/santa/simulator/Virus.java
index 424b7c4..e32cef2 100644
--- a/src/santa/simulator/Virus.java
+++ b/src/santa/simulator/Virus.java
@@ -1,6 +1,8 @@
package santa.simulator;
+import java.util.ArrayList;
+import santa.simulator.compartments.Compartment;
import santa.simulator.genomes.Genome;
/**
@@ -16,6 +18,10 @@ public Virus() {
public Virus(Genome genome, Virus parent) {
this.genome = genome;
this.parent = parent;
+ if (parent != null) {
+ this.age = parent.age;
+ this.lastCompartment = parent.lastCompartment;
+ }
}
public Genome getGenome() {
@@ -34,12 +40,21 @@ public double getFitness() {
return genome.getFitness();
}
+ public int getAge() {
+ return age;
+ }
+
+ public Compartment getLastCompartment() {
+ return lastCompartment;
+ }
+
public void setGenome(Genome genome) {
this.genome = genome;
}
public void setParent(Virus parent) {
this.parent = parent;
+ setAge(parent.age);
}
public int getOffspringCount() {
@@ -49,9 +64,18 @@ public int getOffspringCount() {
public void setOffspringCount(int offspringCount) {
this.offspringCount = offspringCount;
}
-
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public void setLastCompartment(Compartment lastCompartment) {
+ this.lastCompartment = lastCompartment;
+ }
+
private Genome genome = null;
private Virus parent = null;
private int offspringCount = 0;
-
+ private int age = 0;
+ private Compartment lastCompartment = null;
}
diff --git a/src/santa/simulator/compartments/Compartment.java b/src/santa/simulator/compartments/Compartment.java
new file mode 100644
index 0000000..7bbced2
--- /dev/null
+++ b/src/santa/simulator/compartments/Compartment.java
@@ -0,0 +1,118 @@
+package santa.simulator.compartments;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+import santa.simulator.EventLogger;
+import santa.simulator.Random;
+import santa.simulator.genomes.GenePool;
+import santa.simulator.genomes.GenomeDescription;
+import santa.simulator.genomes.Sequence;
+import santa.simulator.phylogeny.Phylogeny;
+import santa.simulator.population.Population;
+import santa.simulator.population.PopulationGrowth;
+import santa.simulator.samplers.SamplingSchedule;
+import santa.simulator.selectors.Selector;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class Compartment {
+ private int populationSize;
+ private String name;
+ private Compartment.InoculumType inoculumType;
+ private GenePool genePool;
+ private List epochs;
+ private Selector selector;
+ private SamplingSchedule samplingSchedule;
+ private Population population;
+
+ public enum InoculumType {
+ NONE,
+ CONSENSUS,
+ RANDOM,
+ ALL
+ };
+
+ //Default constructor (dynamic)
+ public Compartment (
+ String name,
+ int populationSize,
+ Selector selector,
+ PopulationGrowth growth,
+ InoculumType inoculumType,
+ GenePool genePool,
+ List epochs,
+ SamplingSchedule samplingSchedule) {
+
+ this.name = name;
+ this.populationSize = populationSize;
+ this.inoculumType = inoculumType;
+ this.epochs = epochs;
+ this.samplingSchedule = samplingSchedule;
+ this.genePool = genePool;
+ this.selector = selector;
+
+ population = new Population(genePool, selector, growth, samplingSchedule.isSamplingTrees() ? new Phylogeny(populationSize) : null);
+ }
+
+ public void initalize(int replicate, Logger logger) {
+ samplingSchedule.initialize(replicate);
+
+ EventLogger.setReplicate(replicate);
+
+ logger.finer("Initializing population: " + populationSize + " viruses.");
+
+ List inoculum = new ArrayList<>();
+ if (null == inoculumType) { // NONE
+ // do nothing
+ } else switch (inoculumType) {
+ case CONSENSUS:
+ inoculum.add(GenomeDescription.getConsensus());
+ break;
+ case ALL:
+ inoculum.addAll(GenomeDescription.getSequences());
+ break;
+ case RANDOM:
+ List sequences = GenomeDescription.getSequences();
+ if (sequences.size() == 1) {
+ inoculum.add(sequences.get(0));
+ } else {
+ inoculum.add(sequences.get(Random.nextInt(0, sequences.size() - 1)));
+ }
+ break;
+ default:
+ break;
+ }
+ population.initialize(inoculum, populationSize);
+ }
+
+ public void cleanup(int replicate, Logger logger) {
+ samplingSchedule.cleanUp();
+ }
+
+ public GenePool getGenePool() {
+ return genePool;
+ }
+
+ public Population getPopulation() {
+ return population;
+ }
+
+ public int getPopulationSize() {
+ return populationSize;
+ }
+
+ public SamplingSchedule getSamplingSchedule() {
+ return samplingSchedule;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List getEpochs() {
+ return epochs;
+ }
+}
diff --git a/src/santa/simulator/compartments/CompartmentEpoch.java b/src/santa/simulator/compartments/CompartmentEpoch.java
new file mode 100644
index 0000000..7a80a41
--- /dev/null
+++ b/src/santa/simulator/compartments/CompartmentEpoch.java
@@ -0,0 +1,122 @@
+
+package santa.simulator.compartments;
+
+
+import java.util.logging.Logger;
+import santa.simulator.fitness.FitnessFunction;
+import santa.simulator.genomes.GenePool;
+import santa.simulator.mutators.Mutator;
+import santa.simulator.population.Population;
+import santa.simulator.replicators.Replicator;
+import santa.simulator.samplers.SamplingSchedule;
+
+/*
+ * @author Andrew Rambaut
+ * @author Bradley R. Jones
+*/
+public class CompartmentEpoch {
+ private String name;
+ private int generationCount;
+ private FitnessFunction fitnessFunction;
+ private Mutator mutator;
+ private Replicator replicator;
+
+ public CompartmentEpoch(String name, int generationCount,
+ FitnessFunction fitnessFunction, Mutator mutator,
+ Replicator replicator) {
+ this.name = name;
+ this.generationCount = generationCount;
+ this.fitnessFunction = fitnessFunction;
+ this.mutator = mutator;
+ this.replicator = replicator;
+ }
+
+ @SuppressWarnings("empty-statement")
+ public int step(Compartment compartment, Logger logger, int startGeneration, int generation) {
+ Population population = compartment.getPopulation();
+ GenePool genePool = compartment.getGenePool();
+ SamplingSchedule samplingSchedule = compartment.getSamplingSchedule();
+
+ if (population.getCurrentGeneration().isEmpty())
+ return 0;
+
+ fitnessFunction.updateGeneration(generation, population);
+
+ if (generation == startGeneration) {
+ // adapt to this epoch, and the new generation
+ population.updateAllFitnesses(fitnessFunction);
+
+ System.err.println("Initial population:" +
+ " compartment = " + compartment.getName() +
+ ", population = " + population.getCurrentGeneration().size() +
+ ", fitness = " + population.getMeanFitness() +
+ ", distance = " + population.getMeanDistance() +
+ ", max freq = " + population.getMaxFrequency() +
+ ", genepool size = " + genePool.getUniqueGenomeCount() +
+ " (" + genePool.getUnusedGenomeCount() + " available)");
+ }
+
+ population.selectNextGeneration(generation, replicator, mutator, fitnessFunction);
+
+ if (population.getCurrentGeneration().isEmpty())
+ return 0;
+
+ if (generation % 10 == 0) {
+ if (population.getPhylogeny() != null)
+ population.getPhylogeny().pruneDeadLineages();
+
+ System.err.print("Generation " + generation +
+ ": compartment = " + compartment.getName() +
+ ", population = " + population.getCurrentGeneration().size() +
+ ", fitness = " + population.getMeanFitness() +
+ ", distance = " + population.getMeanDistance() +
+ ", max freq = " + population.getMaxFrequency() +
+ ", genepool size = " + genePool.getUniqueGenomeCount() +
+ " (" + genePool.getUnusedGenomeCount() + " available)");
+ if (population.getPhylogeny() != null) {
+ population.getPhylogeny().pruneDeadLineages();
+ System.err.println(", phylogeny size = " + population.getPhylogeny().getSize() +
+ " (used = " + population.getPhylogeny().getLineageCount()+ ")" +
+ ", tmrca = " + population.getPhylogeny().getMRCA().getGeneration() );
+ } else
+ System.err.println();
+ } else {
+ logger.finest("Generation " + generation +
+ ": compartment = " + compartment.getName() +
+ ", population = " + population.getCurrentGeneration().size() +
+ " fitness = " + population.getMeanFitness() +
+ ", distance = " + population.getMeanDistance() +
+ ", max freq = " + population.getMaxFrequency() +
+ ", genepool size= " + genePool.getUniqueGenomeCount() +
+ "(" + genePool.getUnusedGenomeCount() + " available)");
+ }
+
+ samplingSchedule.doSampling(generation, population);
+
+ return population.getPopulationSize();
+ }
+
+ public FitnessFunction getFitnessFunction() {
+ return fitnessFunction;
+ }
+
+ public Mutator getMutator() {
+ return mutator;
+ }
+
+ public Replicator getReplicator() {
+ return replicator;
+ }
+
+ public int getGenerationCount() {
+ return generationCount;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setGenerationCount(int generationCount) {
+ this.generationCount = generationCount;
+ }
+}
diff --git a/src/santa/simulator/compartments/Compartments.java b/src/santa/simulator/compartments/Compartments.java
new file mode 100644
index 0000000..3065e3e
--- /dev/null
+++ b/src/santa/simulator/compartments/Compartments.java
@@ -0,0 +1,33 @@
+package santa.simulator.compartments;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class Compartments implements Iterable {
+ private Transfer transfer;
+ private List compartments;
+ private int numCompartments;
+
+ public Compartments(List compartments, Transfer transfer) {
+ this.compartments = compartments;
+ this.numCompartments = compartments.size();
+ this.transfer = transfer;
+ }
+
+ public void genomeTransfer(int generation, List currentEpochs) {
+ transfer.genomeTransfer(compartments, generation, currentEpochs);
+ }
+
+ public int getNumCompartments() {
+ return numCompartments;
+ }
+
+ @Override
+ public Iterator iterator() {
+ return compartments.iterator();
+ }
+}
diff --git a/src/santa/simulator/compartments/DoubleProb.java b/src/santa/simulator/compartments/DoubleProb.java
new file mode 100644
index 0000000..f2aca2c
--- /dev/null
+++ b/src/santa/simulator/compartments/DoubleProb.java
@@ -0,0 +1,19 @@
+package santa.simulator.compartments;
+
+import santa.simulator.Virus;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class DoubleProb implements TransferProb {
+ private double transferRate;
+
+ public DoubleProb(double transferRate) {
+ this.transferRate = transferRate;
+ }
+
+ public double getProb(Virus virus, int generation) {
+ return transferRate;
+ }
+}
diff --git a/src/santa/simulator/compartments/FitnessProb.java b/src/santa/simulator/compartments/FitnessProb.java
new file mode 100644
index 0000000..f28f887
--- /dev/null
+++ b/src/santa/simulator/compartments/FitnessProb.java
@@ -0,0 +1,24 @@
+package santa.simulator.compartments;
+
+import santa.simulator.Virus;
+import santa.simulator.fitness.FitnessFunction;
+import santa.simulator.genomes.Genome;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class FitnessProb implements TransferProb {
+ public FitnessFunction fitness;
+
+ public FitnessProb(FitnessFunction fitness) {
+ this.fitness = fitness;
+ }
+
+ public double getProb(Virus virus, int generation) {
+ Genome genome = virus.getGenome().copy();
+ fitness.computeLogFitness(genome);
+
+ return genome.getFitness();
+ }
+}
diff --git a/src/santa/simulator/compartments/MatrixTransfer.java b/src/santa/simulator/compartments/MatrixTransfer.java
new file mode 100644
index 0000000..fd2ec9e
--- /dev/null
+++ b/src/santa/simulator/compartments/MatrixTransfer.java
@@ -0,0 +1,99 @@
+package santa.simulator.compartments;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeSet;
+import santa.simulator.Random;
+import santa.simulator.Virus;
+import santa.simulator.fitness.FitnessFunction;
+import santa.simulator.genomes.GenePool;
+import santa.simulator.genomes.Genome;
+import santa.simulator.genomes.Mutation;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class MatrixTransfer implements Transfer {
+
+ private TransferProb[][] transferProbs;
+ private int numCompartments;
+
+ public MatrixTransfer(List transferRates, int numCompartments) {
+ this.numCompartments = numCompartments;
+ this.transferProbs = new TransferProb[this.numCompartments][this.numCompartments];
+
+ for (int i = 0; i < transferRates.size(); i++) {
+ this.transferProbs[i / this.numCompartments][i % this.numCompartments] = transferRates.get(i);
+ }
+ }
+
+ @Override
+ public void genomeTransfer(List compartments, int generation, List currentEpochs) {
+ if (numCompartments > 1) {
+ ArrayList< ArrayList> allVirusesToAdd = new ArrayList<>(numCompartments);
+
+ for (int i = 0; i < numCompartments; i++) {
+ allVirusesToAdd.add(new ArrayList());
+ }
+
+ for (int compartmentFromID = 0; compartmentFromID < numCompartments; compartmentFromID++) {
+ Compartment migrator = compartments.get(compartmentFromID);
+ List viruses = migrator.getPopulation().getCurrentGeneration();
+ GenePool genePool = migrator.getGenePool();
+
+ for (int virusID = 0; virusID < viruses.size(); virusID++) {
+ double transfer = Random.nextUniform(0, 1);
+ Virus virus = viruses.get(virusID);
+
+ for (int compartmentToID = 0; compartmentToID < numCompartments; compartmentToID++) {
+ double prob = transferProbs[compartmentFromID][compartmentToID].getProb(virus, generation);
+
+ if (transfer < prob) {
+ if (compartmentFromID != compartmentToID) {
+ ArrayList virusesToAdd = allVirusesToAdd.get(compartmentToID);
+ Genome genome = virus.getGenome();
+
+ // record compartment entry
+ virus.setAge(generation);
+ virus.setLastCompartment(migrator);
+
+ virusesToAdd.add(virus);
+ viruses.remove(virusID);
+ genePool.killGenome(genome);
+
+ virusID--;
+ }
+
+ break;
+ } else {
+ transfer -= prob;
+ }
+ }
+ }
+ }
+
+ for (int compartmentToID = 0; compartmentToID < numCompartments; compartmentToID++) {
+ List virusesToAdd = allVirusesToAdd.get(compartmentToID);
+
+ if (!virusesToAdd.isEmpty()) {
+ FitnessFunction fitnessFunction = currentEpochs.get(compartmentToID).getFitnessFunction();
+ GenePool compartmentGenePool = compartments.get(compartmentToID).getGenePool();
+ List viruses = compartments.get(compartmentToID).getPopulation().getCurrentGeneration();
+
+ // fix later to remove create less genomes
+ for (Virus v : virusesToAdd) {
+ Genome genome = v.getGenome();
+ Genome newGenome = compartmentGenePool.createGenome(genome.getSequence(), genome.getDescription());
+
+ v.setGenome(newGenome);
+ fitnessFunction.computeLogFitness(newGenome);
+ compartmentGenePool.duplicateGenome(newGenome, new TreeSet(), fitnessFunction);
+ }
+
+ viruses.addAll(virusesToAdd);
+ }
+ }
+ }
+ }
+}
diff --git a/src/santa/simulator/compartments/TimedTransfer.java b/src/santa/simulator/compartments/TimedTransfer.java
new file mode 100644
index 0000000..84a517d
--- /dev/null
+++ b/src/santa/simulator/compartments/TimedTransfer.java
@@ -0,0 +1,110 @@
+package santa.simulator.compartments;
+
+import java.util.List;
+import java.util.TreeSet;
+import santa.simulator.Random;
+import santa.simulator.Virus;
+import santa.simulator.fitness.FitnessFunction;
+import santa.simulator.genomes.GenePool;
+import santa.simulator.genomes.Genome;
+import santa.simulator.genomes.Mutation;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class TimedTransfer implements Transfer {
+ private List transferEvents;
+ private int currentIndex = 0;
+
+ public TimedTransfer(List transferEvents) {
+ this.transferEvents = transferEvents;
+
+ // sort in order of generation
+ transferEvents.sort(null);
+ }
+
+ public void genomeTransfer(List compartments, int generation, List currentEpochs) {
+ TransferEvent nextEvent = null;
+
+ if (currentIndex < transferEvents.size())
+ nextEvent = transferEvents.get(currentIndex);
+
+ while (nextEvent != null && nextEvent.getGeneration() == generation) {
+ Compartment fromCompartment = compartments.get(nextEvent.getFromCompartmentIndex());
+ Compartment toCompartment = compartments.get(nextEvent.getToCompartmentIndex());
+ List fromViruses = fromCompartment.getPopulation().getCurrentGeneration();
+ List toViruses = toCompartment.getPopulation().getCurrentGeneration();
+ GenePool toGenePool = fromCompartment.getGenePool();
+ GenePool fromGenePool = toCompartment.getGenePool();
+ FitnessFunction fitness = currentEpochs.get(nextEvent.getToCompartmentIndex()).getFitnessFunction();
+
+ Object[] virusesToTransfer = Random.nextSample(fromViruses, nextEvent.getAmountToTransfer());
+
+ for (Object o: virusesToTransfer) {
+ Virus virus = (Virus)o;
+ Genome genome = virus.getGenome();
+
+ fromViruses.remove(virus);
+ fromGenePool.killGenome(genome);
+
+ virus.setAge(generation);
+ virus.setLastCompartment(fromCompartment);
+
+ Genome newGenome = toGenePool.createGenome(genome.getSequence(), genome.getDescription());
+ virus.setGenome(newGenome);
+ fitness.computeLogFitness(newGenome);
+ fromGenePool.duplicateGenome(newGenome, new TreeSet(), fitness);
+ toViruses.add(virus);
+ }
+
+ if (++currentIndex < transferEvents.size())
+ nextEvent = transferEvents.get(currentIndex);
+ else
+ nextEvent = null;
+ }
+ }
+
+ public static class TransferEvent implements Comparable {
+ private String fromCompartment;
+ private String toCompartment;
+ private int fromCompartmentIndex;
+ private int toCompartmentIndex;
+ private int generation;
+ private int amountToTransfer;
+
+ public TransferEvent(String fromCompartment, String toCompartment, int generation, int amountToTransfer) {
+ this.fromCompartment = fromCompartment;
+ this.toCompartment = toCompartment;
+ this.generation = generation;
+ this.amountToTransfer = amountToTransfer;
+ }
+
+ public boolean findCompartmentIndices(List compartmentNames) {
+ fromCompartmentIndex = compartmentNames.indexOf(fromCompartment);
+ toCompartmentIndex = compartmentNames.indexOf(toCompartment);
+
+ return fromCompartmentIndex != -1 && toCompartmentIndex != -1;
+ }
+
+ public int getFromCompartmentIndex() {
+ return fromCompartmentIndex;
+ }
+
+ public int getToCompartmentIndex() {
+ return toCompartmentIndex;
+ }
+
+ public int getGeneration() {
+ return generation;
+ }
+
+ public int getAmountToTransfer() {
+ return amountToTransfer;
+ }
+
+ public int compareTo(TransferEvent event) {
+ return Integer.compare(this.generation, event.generation);
+ }
+ }
+}
diff --git a/src/santa/simulator/compartments/Transfer.java b/src/santa/simulator/compartments/Transfer.java
new file mode 100644
index 0000000..f58cca8
--- /dev/null
+++ b/src/santa/simulator/compartments/Transfer.java
@@ -0,0 +1,11 @@
+package santa.simulator.compartments;
+
+import java.util.List;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public interface Transfer {
+ void genomeTransfer(List compartments, int generation, List currentEpochs);
+}
diff --git a/src/santa/simulator/compartments/TransferProb.java b/src/santa/simulator/compartments/TransferProb.java
new file mode 100644
index 0000000..560855f
--- /dev/null
+++ b/src/santa/simulator/compartments/TransferProb.java
@@ -0,0 +1,11 @@
+package santa.simulator.compartments;
+
+import santa.simulator.Virus;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public interface TransferProb {
+ public double getProb(Virus virus, int generation);
+}
\ No newline at end of file
diff --git a/src/santa/simulator/fitness/AbstractSiteFitnessFactor.java b/src/santa/simulator/fitness/AbstractSiteFitnessFactor.java
index 96eca48..2cf99e0 100644
--- a/src/santa/simulator/fitness/AbstractSiteFitnessFactor.java
+++ b/src/santa/simulator/fitness/AbstractSiteFitnessFactor.java
@@ -35,7 +35,7 @@ public double computeLogFitness(byte[] sequence) {
if (this.logFitness.length != sequence.length) {
logFitness = Double.NEGATIVE_INFINITY;
} else {
- for (int site = 0; site < this.logFitness.length; site++) {
+ for (int site: getSites()) {
logFitness += this.logFitness[site][sequence[site]];
if (logFitness == Double.NEGATIVE_INFINITY) {
break;
@@ -59,6 +59,7 @@ public double getLogFitnessChange(StateChange change) {
double fit = 0; // neutral fitness
double[] logFitnessPosition = null;
try {
+ if (getSites().contains(change.position))
logFitnessPosition = logFitness[change.position];
} catch(IndexOutOfBoundsException e) {
// catch IndexOutOfBoundsException b/c insertions may have
diff --git a/src/santa/simulator/fitness/BetaDistributedPurifyingFitnessModel.java b/src/santa/simulator/fitness/BetaDistributedPurifyingFitnessModel.java
index 6c0aa59..955e589 100644
--- a/src/santa/simulator/fitness/BetaDistributedPurifyingFitnessModel.java
+++ b/src/santa/simulator/fitness/BetaDistributedPurifyingFitnessModel.java
@@ -7,6 +7,7 @@
import org.apache.commons.math3.exception.OutOfRangeException;
import org.apache.commons.math3.distribution.BetaDistribution;
+import org.apache.commons.math3.random.RandomGenerator;
/**
* A distribution of fitness effects motivated by
@@ -25,13 +26,14 @@ public class BetaDistributedPurifyingFitnessModel implements PurifyingFitnessMod
int alphabetSize;
public BetaDistributedPurifyingFitnessModel(double a, double b, double pLethal, int alphabetSize, int sites) {
-
+ RandomGenerator rng = Random.randomData.getRandomGenerator();
+
this.alphabetSize = alphabetSize;
this.pLethal = pLethal;
fitnesses = new double[sites][alphabetSize];
- beta = new BetaDistribution(Random.randomData.getRandomGenerator(), a, b);
+ beta = new BetaDistribution(rng, a, b);
for (int i = 0; i < sites; i++) {
@@ -40,11 +42,11 @@ public BetaDistributedPurifyingFitnessModel(double a, double b, double pLethal,
f.add(1.0);
for (int j = 1; j < alphabetSize; j++) {
- if (Math.random() < pLethal) {
+ if (rng.nextDouble() < pLethal) {
f.add(0.0);
} else {
try {
- f.add(beta.inverseCumulativeProbability(Math.random()));
+ f.add(beta.inverseCumulativeProbability(rng.nextDouble()));
} catch (OutOfRangeException e) {
e.printStackTrace();
}
diff --git a/src/santa/simulator/fitness/NoFitnessFactor.java b/src/santa/simulator/fitness/NoFitnessFactor.java
new file mode 100644
index 0000000..2604cc5
--- /dev/null
+++ b/src/santa/simulator/fitness/NoFitnessFactor.java
@@ -0,0 +1,32 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package santa.simulator.fitness;
+
+import java.util.Set;
+import santa.simulator.genomes.Feature;
+import santa.simulator.genomes.StateChange;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class NoFitnessFactor extends AbstractFitnessFactor {
+
+ public NoFitnessFactor(Feature feature, Set sites) {
+ super(feature, sites);
+ }
+
+ @Override
+ public double computeLogFitness(byte[] states) {
+ return Double.NEGATIVE_INFINITY;
+ }
+
+ @Override
+ public double getLogFitnessChange(StateChange change) {
+ return 0;
+ }
+
+}
diff --git a/src/santa/simulator/fitness/PurifyingFitnessRank.java b/src/santa/simulator/fitness/PurifyingFitnessRank.java
index 6962db3..2cac47e 100644
--- a/src/santa/simulator/fitness/PurifyingFitnessRank.java
+++ b/src/santa/simulator/fitness/PurifyingFitnessRank.java
@@ -1,7 +1,7 @@
package santa.simulator.fitness;
import santa.simulator.genomes.*;
-
+import santa.simulator.Random;
import java.util.*;
@@ -229,7 +229,7 @@ private List createHistogram(SequenceAlphabet alphabet, boolean
}
if (breakTiesRandomly)
- Collections.shuffle(counts);
+ Random.shuffle(counts);
Collections.sort(counts);
return counts;
diff --git a/src/santa/simulator/genomes/BaseGenePool.java b/src/santa/simulator/genomes/BaseGenePool.java
index e164d9e..1289bf1 100644
--- a/src/santa/simulator/genomes/BaseGenePool.java
+++ b/src/santa/simulator/genomes/BaseGenePool.java
@@ -12,9 +12,10 @@
public abstract class BaseGenePool implements GenePool {
protected int uniqueGenomeCount = 0;
protected final int[][] stateFrequencies;
- protected final LinkedList genomes = new LinkedList();
- protected final LinkedList unusedGenomes = new LinkedList();
+ protected final LinkedList genomes = new LinkedList<>();
+ protected final LinkedList unusedGenomes = new LinkedList<>();
+ @Override
public LinkedList getGenomes() {
return genomes;
}
@@ -26,6 +27,7 @@ public BaseGenePool() {
stateFrequencies = new int[GenomeDescription.root.getGenomeLength()][4];
}
+ @Override
public void initialize() {
unusedGenomes.clear();
//unusedGenomes.addAll(genomes);
@@ -34,6 +36,7 @@ public void initialize() {
}
+ @Override
public Genome createGenome(Sequence sequence, GenomeDescription gd) {
Genome newGenome = createGenome(sequence);
newGenome.setDescription(gd);
@@ -42,6 +45,7 @@ public Genome createGenome(Sequence sequence, GenomeDescription gd) {
}
+ @Override
public int[][] getStateFrequencies() {
calculateStateFrequencies();
return stateFrequencies;
@@ -71,6 +75,7 @@ private boolean uniformPool() {
* frequencies.
*
**/
+ @Override
public int[][] getStateFrequencies(Feature feature, Set sites) {
int[][] freqs = new int[sites.size()][feature.getAlphabet().getStateCount()];
@@ -110,6 +115,7 @@ public int[][] getStateFrequencies(Feature feature, Set sites) {
* meaningful consensus without first aligning the sequences.
**/
+ @Override
public Sequence getConsensusSequence() {
/*
* Fail if all genomes do not have the same GenomeDescription.
@@ -154,6 +160,7 @@ private void calculateStateFrequencies() {
}
}
+ @Override
public void updateAllFitnesses(FitnessFunction fitnessFunction) {
for (Genome genome : genomes) {
fitnessFunction.computeLogFitness(genome);
@@ -166,6 +173,7 @@ public void updateAllFitnesses(FitnessFunction fitnessFunction) {
* @param genome2 another genome
* @return the hamming distance
*/
+ @Override
public int hammingDistance(Genome genome1, Genome genome2) {
return hammingDistance(genome1.getSequence(), genome2.getSequence());
}
@@ -180,10 +188,12 @@ public int hammingDistance(Sequence sequence1, Sequence sequence2) {
return distance;
}
+ @Override
public int getUniqueGenomeCount() {
return uniqueGenomeCount;
}
+ @Override
public int getUnusedGenomeCount() {
return unusedGenomes.size();
}
diff --git a/src/santa/simulator/genomes/BaseGenome.java b/src/santa/simulator/genomes/BaseGenome.java
index 2e1584b..cd6a188 100644
--- a/src/santa/simulator/genomes/BaseGenome.java
+++ b/src/santa/simulator/genomes/BaseGenome.java
@@ -16,16 +16,19 @@ public BaseGenome() {
this.descriptor = GenomeDescription.root;
}
+ @Override
public void setDescription(GenomeDescription gd) {
this.descriptor = gd;
assert(this.descriptor.getGenomeLength() == getLength());
}
// REMIND - do we still need this?
+ @Override
public GenomeDescription getDescription() {
return descriptor;
}
+ @Override
public int getTotalMutationCount() {
return totalMutationCount;
}
@@ -38,22 +41,27 @@ protected void incrementTotalMutationCount() {
totalMutationCount++;
}
+ @Override
public int getFrequency() {
return frequency;
}
+ @Override
public void setFrequency(int frequency) {
this.frequency = frequency;
}
+ @Override
public void incrementFrequency() {
frequency++;
}
+ @Override
public double getLogFitness() {
return logFitness;
}
+ @Override
public void setLogFitness(double logFitness) {
if (logFitness != this.logFitness) {
this.logFitness = logFitness;
@@ -61,6 +69,7 @@ public void setLogFitness(double logFitness) {
}
}
+ @Override
public double getFitness() {
if (!fitnessKnown) {
fitness = Math.exp(logFitness);
@@ -69,10 +78,12 @@ public double getFitness() {
return fitness;
}
+ @Override
public FitnessFunction.FitnessGenomeCache getFitnessCache() {
return fitnessCache;
}
+ @Override
public void setFitnessCache(FitnessFunction.FitnessGenomeCache fitnessCache) {
this.fitnessCache = fitnessCache;
}
@@ -82,6 +93,7 @@ public void setFitnessCache(FitnessFunction.FitnessGenomeCache fitnessCache) {
*
* @return byte array of nucleotides (encoded as integer states)
**/
+ @Override
public byte[] getNucleotides(Feature feature) {
byte[] nucleotides = null;
Feature f = descriptor.getFeature(feature.getName());
@@ -99,6 +111,7 @@ public byte[] getNucleotides(Feature feature) {
}
+ @Override
public byte[] getStates(Feature feature) {
Sequence seq = new SimpleSequence(getNucleotides(feature));
return seq.getStates(feature.getAlphabet());
@@ -122,10 +135,11 @@ public byte[] getStates(Feature feature) {
* information. Other fitness functions ignore the data computed
* here.
*
- * @param feature Feature object over which the changes should be computed.
+ * @param featureByName Feature object over which the changes should be computed.
* @param mutations set of mutations that are inducing changes.
* @return list of objects
**/
+ @Override
public List getChanges(Feature featureByName, SortedSet mutations) {
List changes = new ArrayList();
@@ -226,11 +240,11 @@ public List getChanges(Feature featureByName, SortedSet m
}
+ @Override
public int binomialDeviate(double mutationRate) {
return descriptor.binomialDeviate(mutationRate);
}
-
/**
* Reference to an GenomeDescription. It is through the
* decription that one can obtain Feature coordinates and SiteMaps
diff --git a/src/santa/simulator/genomes/CompactGenome.java b/src/santa/simulator/genomes/CompactGenome.java
index 6d0a216..db361ee 100644
--- a/src/santa/simulator/genomes/CompactGenome.java
+++ b/src/santa/simulator/genomes/CompactGenome.java
@@ -174,4 +174,12 @@ static void setMasterSequence(Sequence masterSequence) {
private static Sequence masterSequence = null;
+ @Override
+ public Genome copy() {
+ CompactGenome g = new CompactGenome();
+
+ g.duplicate(this);
+
+ return g;
+ }
}
diff --git a/src/santa/simulator/genomes/Genome.java b/src/santa/simulator/genomes/Genome.java
index 9810f5b..1e98bb9 100644
--- a/src/santa/simulator/genomes/Genome.java
+++ b/src/santa/simulator/genomes/Genome.java
@@ -56,5 +56,7 @@ public interface Genome {
GenomeDescription getDescription();
void setDescription(GenomeDescription gd);
+
+ Genome copy();
}
diff --git a/src/santa/simulator/genomes/SimpleGenome.java b/src/santa/simulator/genomes/SimpleGenome.java
index 02ad2f6..792d235 100644
--- a/src/santa/simulator/genomes/SimpleGenome.java
+++ b/src/santa/simulator/genomes/SimpleGenome.java
@@ -11,7 +11,7 @@ public SimpleGenome() {
public void duplicate(SimpleGenome source) {
this.sequence = new SimpleSequence(source.sequence);
- this.fitnessCache = source.fitnessCache.clone();
+ this.fitnessCache = source.fitnessCache.clone();
this.descriptor = source.descriptor;
setLogFitness(source.getLogFitness());
assert(this.descriptor.getGenomeLength() == this.sequence.getLength());
@@ -134,6 +134,14 @@ public boolean delete(int position, int count) {
public boolean insert(int position, SimpleSequence seq) {
return sequence.insertSequence(position, seq);
}
+
+ public Genome copy() {
+ SimpleGenome g = new SimpleGenome();
+
+ g.duplicate(this);
+
+ return g;
+ }
// private members
diff --git a/src/santa/simulator/mutators/AbstractMutator.java b/src/santa/simulator/mutators/AbstractMutator.java
index 756fc6d..64fb292 100644
--- a/src/santa/simulator/mutators/AbstractMutator.java
+++ b/src/santa/simulator/mutators/AbstractMutator.java
@@ -23,7 +23,10 @@ public SortedSet mutate(Genome genome) {
// iterate. This would avoid the sort at the end.
SortedSet mutations = new TreeSet();
- int mutationCount = genome.binomialDeviate(mutationRate);
+ int mutationCount = 0;
+
+ if (mutationRate > 0)
+ mutationCount = genome.binomialDeviate(mutationRate);
// We expect only a few mutations per genome. Therefore, simply check
// by looping over the already generated mutations to avoid duplicates hits.
diff --git a/src/santa/simulator/replicators/RecombinantReplicator.java b/src/santa/simulator/replicators/RecombinantReplicator.java
index b253a53..ff78f7e 100644
--- a/src/santa/simulator/replicators/RecombinantReplicator.java
+++ b/src/santa/simulator/replicators/RecombinantReplicator.java
@@ -1,7 +1,6 @@
package santa.simulator.replicators;
import java.util.Arrays;
-import java.util.Comparator;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.List;
diff --git a/src/santa/simulator/samplers/AlignmentSampler.java b/src/santa/simulator/samplers/AlignmentSampler.java
index 237ce2d..f21b677 100644
--- a/src/santa/simulator/samplers/AlignmentSampler.java
+++ b/src/santa/simulator/samplers/AlignmentSampler.java
@@ -44,7 +44,7 @@ public enum Format {
* @param consensus write the consensus sequence of the sample rather than writing the sample ?
* @param schedule amount of sequences to sample at irregular intervals
* @param format format
- * @param label label with possible %g, %s, %t, and %f variables
+ * @param label label with possible %g, %s, %r, %a, %c and %f variables
* @param fileName name of the file to write the samples
*/
public AlignmentSampler(Feature feature, Set sites, int sampleSize, boolean consensus,
@@ -69,7 +69,7 @@ public AlignmentSampler(Feature feature, Set sites, int sampleSize, boo
public void initialize(int replicate) {
this.replicate = replicate;
- String fName = substituteVariables(fileName, 0, 0, 0.0);
+ String fName = substituteVariables(fileName, 0, 0, null, 0.0);
try {
destination = new PrintStream(fName);
@@ -96,11 +96,25 @@ public void initialize(int replicate) {
}
}
- private String substituteVariables(String name, int generation, int seq, double fitness) {
+ private String substituteVariables(String name, int generation, int seq, Virus virus, double fitness) {
String result = name.replaceAll("%r", String.valueOf(replicate+1));
result = result.replaceAll("%g", String.valueOf(generation));
result = result.replaceAll("%s", String.valueOf(seq));
result = result.replaceAll("%f", String.valueOf(fitness));
+
+ if (virus != null) {
+ // generation when lineage entered its compartment
+ result = result.replaceAll("%a", String.valueOf(virus.getAge()));
+
+ // track last compartment
+ if (virus.getLastCompartment() != null) {
+ result = result.replace("%c", virus.getLastCompartment().getName());
+ }
+ }
+
+ result = result.replaceAll("%a", "NA");
+ result = result.replaceAll("%c", "NA");
+
return result;
}
@@ -166,14 +180,14 @@ protected Virus[] getSample(int generation, Population population) {
private void writeNexusFormat(int generation, Virus[] sample) {
if (consensus) {
- String l = substituteVariables(label, generation, 0, 0.0);
+ String l = substituteVariables(label, generation, 0, null, 0.0);
destination.print(l + "\t");
destination.println(computeConsensus(sample));
} else {
int i = 1;
for (Virus virus : sample) {
- String l = substituteVariables(label, generation, i, virus.getFitness());
+ String l = substituteVariables(label, generation, i, virus, virus.getFitness());
destination.print(l + "\t");
@@ -231,7 +245,7 @@ private String computeConsensus(Virus[] sample) {
private void writeFastaFormat(int generation, Virus[] sample) {
if (consensus) {
- String l = substituteVariables(label, generation, 0, 0.0);
+ String l = substituteVariables(label, generation, 0, null, 0.0);
destination.println(">" + l);
destination.println(computeConsensus(sample));
@@ -239,7 +253,7 @@ private void writeFastaFormat(int generation, Virus[] sample) {
int i = 1;
for (Virus virus : sample) {
- String l = substituteVariables(label, generation, i, virus.getFitness());
+ String l = substituteVariables(label, generation, i, virus, virus.getFitness());
destination.println(">" + l);
destination.println(virus.getGenome().getSequence().getNucleotides());
@@ -255,7 +269,7 @@ private void writeXMLFormat(int generation, Virus[] sample) {
destination.println("");
int i = 1;
for (Virus virus : sample) {
- String l = substituteVariables(label, generation, i, virus.getFitness());
+ String l = substituteVariables(label, generation, i, virus, virus.getFitness());
destination.println("\t");
destination.println("\t\t" + virus.getGenome().getSequence().getNucleotides());
destination.println("\t");
diff --git a/src/santa/simulator/selectors/ClonalExpansionSelector.java b/src/santa/simulator/selectors/ClonalExpansionSelector.java
new file mode 100644
index 0000000..d45f833
--- /dev/null
+++ b/src/santa/simulator/selectors/ClonalExpansionSelector.java
@@ -0,0 +1,43 @@
+package santa.simulator.selectors;
+
+import java.util.Collections;
+import java.util.List;
+import santa.simulator.Random;
+import santa.simulator.Virus;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class ClonalExpansionSelector implements Selector {
+ private double splitProbability;
+ private double deathProbability;
+ private double persistProbability;
+
+ public ClonalExpansionSelector(double splitProbability, double deathProbability) {
+ this.splitProbability = splitProbability;
+ this.deathProbability = deathProbability;
+ this.persistProbability = 1 - deathProbability;
+ }
+
+ public void selectParents(List currentGeneration, List selectedParents, int sampleSize) {
+ for(int i = 0; i < currentGeneration.size(); ++i) {
+ double fitness = currentGeneration.get(i).getFitness();
+ int nbChildren = 0;
+
+ double draw = Random.nextUniform(0, 1);
+ if (draw < persistProbability * fitness) {
+ if (draw < splitProbability * fitness) {
+ nbChildren = 2;
+ } else {
+ nbChildren = 1;
+ }
+ }
+
+ for(long n = 0; n < nbChildren * sampleSize; ++n) {
+ selectedParents.add(i);
+ }
+ }
+ Random.shuffle(selectedParents);
+ }
+}
diff --git a/src/santa/simulator/selectors/DynamicSelector.java b/src/santa/simulator/selectors/DynamicSelector.java
index 7647e54..a4ec651 100644
--- a/src/santa/simulator/selectors/DynamicSelector.java
+++ b/src/santa/simulator/selectors/DynamicSelector.java
@@ -1,6 +1,5 @@
package santa.simulator.selectors;
-import java.util.Collections;
import java.util.List;
import santa.simulator.Random;
@@ -24,20 +23,27 @@ public DynamicSelector(double growthRate, double carryingPopulation) {
this.carryingPopulation = carryingPopulation;
}
+ @Override
public void selectParents(List currentGeneration, List selectedParents, int nbOfParents) {
+ Random.shuffle(currentGeneration);
for(int i = 0; i < currentGeneration.size(); ++i) {
double fitness = currentGeneration.get(i).getFitness();
- //Abbas: The below formulation of logistic growth was implemented by Gertjan
+
+ //Abbas: The below formulation of logistic growth was implemented by Gertjan
//It was noticed that for slower growth rates, the simulator overshoots the carrying size.
//A slightly different formulation is introduced according to: https://www.maa.org/press/periodicals/loci/joma/logistic-growth-model-background-logistic-modeling
//expectedProgenyCount = Math.max(fitness * (1 + growthRate*(1-selectedParents.size()/carryingPopulation)),Double.MIN_VALUE);
- expectedProgenyCount = Math.max(fitness * growthRate*(1-selectedParents.size()/carryingPopulation),Double.MIN_VALUE);
- long nbChildren = fitness == 0 ? 0 : Random.nextPoisson(expectedProgenyCount);
+ expectedProgenyCount = fitness * growthRate * (1 - selectedParents.size() / carryingPopulation);
+
+ // Set to zero if infinite fitness is observed (this usually happens if zero fitness is changed to nonzero fitness)
+ long nbChildren = 0;
+ if (fitness > 0 && Double.isFinite(fitness) && expectedProgenyCount > Double.MIN_VALUE)
+ nbChildren = Random.nextPoisson(expectedProgenyCount);
for(long n = 0; n < nbChildren * nbOfParents; ++n) {
selectedParents.add(i);
}
}
- Collections.shuffle(selectedParents);
+ Random.shuffle(selectedParents);
}
}
diff --git a/src/santa/simulator/selectors/RouletteWheelSelector.java b/src/santa/simulator/selectors/RouletteWheelSelector.java
index 5633313..c34148e 100644
--- a/src/santa/simulator/selectors/RouletteWheelSelector.java
+++ b/src/santa/simulator/selectors/RouletteWheelSelector.java
@@ -35,7 +35,7 @@ public void selectParents(List currentGeneration, List selectedP
i++;
} while (i < populationSize);
- Collections.shuffle(selectedParents);
+ Random.shuffle(selectedParents);
}
private final void calculateCumulativeFitness(List currentGeneration) {
diff --git a/test/santa/simulator/RandomTest.java b/test/santa/simulator/RandomTest.java
new file mode 100644
index 0000000..615a9c0
--- /dev/null
+++ b/test/santa/simulator/RandomTest.java
@@ -0,0 +1,67 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package santa.simulator;
+
+import java.util.ArrayList;
+import java.io.FileWriter;
+
+/**
+ *
+ * @author Bradley R. Jones
+ */
+public class RandomTest {
+
+ private static final long SEED = 1989;
+
+ public RandomTest() {
+ }
+
+ // Not a real test
+ public ArrayList generatePoissons() {
+ Random.setSeed(SEED);
+
+ final long count = 1000;
+ final double mean1 = 1.0;
+ final double mean2 = 100000.0;
+ final double mean3 = 0.1;
+
+ ArrayList list = new ArrayList();
+
+ System.out.println("Mean: " + mean1);
+ for (long i = 0; i < count; i++)
+ list.add(Random.nextPoisson(mean1));
+ System.out.println("Mean: " + mean2);
+ for (long i = 0; i < count; i++)
+ list.add(Random.nextPoisson(mean2));
+ System.out.println("Mean: " + mean3);
+ for (long i = 0; i < count; i++)
+ list.add(Random.nextPoisson(mean3));
+
+ return list;
+ }
+
+ public static void main(String[] args) {
+ try {
+ if (args.length > 0) {
+ String filename = args[0];
+ FileWriter writer = new FileWriter(filename);
+
+ RandomTest test = new RandomTest();
+ ArrayList poissons = test.generatePoissons();
+
+ for (long value: poissons) {
+ writer.write("" + value + "\n");
+ }
+
+ writer.close();
+ } else {
+ throw new Exception("Need to specify output filename.");
+ }
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+}