diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml
index 8366308..7077ffd 100644
--- a/.github/workflows/pytest.yml
+++ b/.github/workflows/pytest.yml
@@ -36,6 +36,7 @@ jobs:
run: |
python -m pip install --upgrade pip
python -m pip install pytest
+ python -m pip install scikit-learn==1.6.1
python -m pip install .
- name: Test with pytest
run: |
diff --git a/data/sequence_data/chen/test.txt b/data/sequence_data/chen/test.txt
new file mode 100644
index 0000000..6d6c457
--- /dev/null
+++ b/data/sequence_data/chen/test.txt
@@ -0,0 +1,146 @@
+GACGAACAATAAGGCCTCCCTAACGGGGGGCCTTTTTTATTGATAACAAAA 0.9943801281330785
+CCGGCTCATTGCAGCGAAATAATCCTCTCTTTATCTGCTATACCTGGT 0.7752808988764045
+ttcctgacttAAGCGGCGCTGGTTATCCATcggagccatc 0.8427672955974843
+accaggtataGCAGATAAAGAGAGGATTATTTCGCTGCaatgagccgg 0.6389891696750902
+TAGCGTGCTAACCACGCACGCTATTTTTTGTA 0.5305164319248826
+tacaaaaaaaGCCTCCACTGGGAGGCtttcaggcgc 0.4818652849740932
+CCTGGTAAGACGCCGCAGCGTCGCATCAGGTTTGTTGAG 0.0
+tggaaattaaTGCGCTGGCGGCAATGGCAcagcacagaa 0.0
+ttttagctatAAAAAAACCCGCCGAAGCGGGTTTTTTcgaaaattgt 0.5614035087719298
+TCGGTTACATGTTCGCATGTAACCGATTATCAAAA 0.0
+CGACGATGCCATTCGTGGCATCGTCGTTAAAATAA 0.0
+CTCGGTACCAAAGACGAACAATAAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCC 0.9960885551122585
+GGCGTGAGATTGGAATACAATTTCGCGCCTTTTGTT 0.0990990990990992
+CTCGGTACCAAATTCCAGAAAAGAGGCCTCCCGAAAGGGGGGCCTTTTTTCGTTTTGGTCC 0.9973830895245074
+GTTGCCATTTGCCCTCCGCTGCGGCGGGGGGCTTTTAACCGGG 0.8516320474777448
+caaccatccgAAACCGCTCTCATCCATTCGATGAGAGCGGTTTttttaattac 0.8861047835990888
+tggggagactAAGGCAGCCAGATGGCTGCCTTttttacaggt 0.8525073746312685
+AAAACTCCAGGCCGGGTACGGTGTTTTACGCCGCATCCGGCATTACAAAAT 0.0
+CCTGGTAAGACGCAGATGCGTCTTATCAGGTTTTTTTTT 0.0825688073394496
+ctctttgacgGGCCAATAGCGATATTGGCCATTTTTTTagcgcaacat 0.896049896049896
+TCGGTTACATGTTCGCATGTAACCGATTTTCTCTG 0.8938428874734607
+caatccatgtAAAAAAAGGGCCCTGAAATTCAGGACCCTTTCtggcatcagc 0.45945945945945954
+TCGGTTACCGCTTCGGCGGTAACCGATTAAAATAA 0.0
+CGACGATATTCGTATCGTCGTTTTTTGGG 0.4117647058823529
+TCGGTTACCGCTTCGGCGGTAACCGATTTATTGTC 0.5983935742971889
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTTTTTTTGGTCC 0.9946638207043756
+CGACGATATTCGTATCGTCGTTTTTTTTT 0.31506849315068497
+ggggaaataaACGGCCCATCCATGAGGAATGGGCCGTgaaaggagat 0.8531571218795888
+ataacagaaaACTCCCCCGCGAGAAGCGGGGGAGTcgctggttaa 0.07407407407407418
+CGACGATGCCATTCGTGGCATCGTCGTTTTGTTGG 0.3939393939393939
+tagcaacaaaAAAGCCGACTCACTTGCAGTCGGCTTTctcattttaa 0.8522895125553914
+acaagaaaaaAGGCACGTCATCTGACGTGCCttttttattt 0.9921334172435494
+cagccactgcTCTGACCACAAGTAATTGTTCAGAttgataaaac 0.0
+CCCCGATTTATCGGGGTTTTTTGTTATCTGACTACAGAATAACTGGGCTTTAGGCCCTTTTTTT 0.8593530239099859
+TGATCATCAAGGCTTCCTTCGGGAAGCCTTTCTACGTTA 0.8275862068965517
+GCCGGATCGGCGCACTGATCCGGCTTTTGCAAC 0.0
+AAGACCCCCGCACCGAAAGGTCCGGGGGTTTTTTTT 0.9752413963852439
+AAAGTCAAAATGCCCGATCGAGGATCGGGCATTTTTGTAGC 0.765807962529274
+tgcgttatttTCGGCACCTTTTATGTAGCGAAGGTGCCGGaatatattct 0.3197278911564626
+agttttaacgAAGGGGTGGTTTCACCCCTTttgtctttct 0.7762863534675615
+GCCGCCAGTTCCGCTGGCGGCATTTT 0.19999999999999996
+CGACGATGTTCGCATCGTCGTTAAAATAA 0.0
+cgataaaaaaAGCCTGCCAGATGGCAGGCTatttaataac 0.24812030075187974
+CCCGCTTCGGCGGGTTTTTTTTT 0.9582985821517932
+AAAAAAAAAAAACACCCTAACGGGTGTTTTTTTTTTTTTGGTCTCCC 0.9964526427811281
+CCTGGTAAGACGCGAACAGCGTCGCATCAGGTTTTGCAAC 0.0
+TTTAATATGACACCGGACTCCGTTCCTCGATGGGGTCCGGTTGTTTTATTCAC 0.0
+GGGCGGTCGAACAGATCGCCCTTGTTGTAT 0.0
+AGCAGGAAAGAGTAAGGCTGAACCTTCATGTTCAACCTTACTCTCATTTAC 0.3197278911564626
+tattgattatAAAGGGCTTTAATTTTTGGCCCTTTtatttttggt 0.8347107438016529
+CCCGCATGTTCGCATGCGGGTTTTTTTTT 0.7252747252747254
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCC 0.9958317702471761
+CGACGATATTCGTATCGTCGTTTATTGTC 0.4949494949494949
+gtttctcgcgCAGGCGCTGAAAATAGCGCCTGtttttatttc 0.43181818181818177
+GATCCAGCCCATTCGTGGGCTGGATCTTAAAATAA 0.2063492063492064
+TTCTGTGCTGTGCCATTGCCGCCAGCGCATTAATTTCCA 0.15966386554621848
+TCGGTTACATGTTCGCATGTAACCGATTTTTTTTT 0.5515695067264574
+AACGAGAAAAGCCAACCTGCGGGTTGGCTTTTTTATGCA 0.9355670103092784
+GGGCGGTCAGATGATCGCCCTTTTTTTTT 0.9666332999666333
+tcggtcggtcCCCTCGCCCCTCTGGGGAGAGGGttagggtgag 0.33333333333333337
+ACGGCCCTGAACAAGGGCCGTTTGTTGTAT 0.0
+CCCGCATGTTCGCATGCGGGTTTATTGTC 0.5726495726495726
+aaaaatatgaATATATTCCGGCGCTTAATGCCACGCCGGAACATATcgaaatgatg 0.8425196850393701
+CCAATTATTGAACACCCGAAAGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9936520027931187
+GACGAACAATAACACCCTAACGGGTGTTTTTTTGTTTCTGGTCTCCC 0.983878768337901
+GCCGGAGCGGCGCACTGCTCCGGCTTTTGCAAC 0.19999999999999996
+TTCCAGAAAAGAGGCCTCCCAAATCGGGGGGCCTTTTTTATTGATAACAAAA 0.9931544359255202
+ACGGCCCTGAACAAGGGCCGTTTTTGCAAC 0.6168582375478927
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTTATAGCGGTCC 0.9789517996211324
+gcgtaaaaaaGCACCTTTTTAGGTGCttttttgtgg 0.8
+TTCCGCTGAAGGCGTAATTGTTTAAATAACATTACGCCGCCTGGCCTT 0.7890295358649789
+taacgtagaaAGGCTTCCCGAAGGAAGCCttgatgatca 0.0
+gaacacatttGTCGGATGCGGCGCGAGCGCCTTATCCGACctacggttcg 0.6515679442508711
+CGACGTTCGCGTCGTTTTTTGGG 0.22480620155038766
+CAGATTGCTGACAACGTGCGCGTTGTTCATGCCGGA 0.6402877697841727
+CCTGGTAAGACGCCGCAGCGTCTTATCAGGTTTTTTGTA 0.2063492063492064
+GCCCGGACCAGGCCGCAGGGGGGAAACTCTGCGGCCTTTTTCGTTCTTACT 0.9178981937602627
+aataagcaatAACGGTACGACAGCTGTGTCGTGCCGTttgttttttc 0.3464052287581699
+atcaaaaaggAGCCGCCTGAGGGCGGCTtctttttgtg 0.9139414802065404
+TCTAACTAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTTCTTTTCAACAAAA 0.9814436815735758
+CGACGATGCCATTCGTGGCATCGTCGTTTATTGTC 0.5689655172413792
+ttgaagataaAAAACCCTCTGTAGTAACAGAGGGTTTTgttcattcat 0.8373983739837398
+CCCGCTTCGGCGGGTTATCAAAA 0.0
+GATCCAGCTTCGGCTGGATCTTTTCTCTG 0.8990918264379415
+GACGAACAATAAGGCCTCCCTTTAGGGGGGGCCTTTTTTATTGATAACAAAA 0.9635302698760029
+tccggcaattAAAAAAGCGGCTAACCACGCCGCTTTTTTtacgtctgca 0.9916114419931213
+CTCGGTACCAAATTCCAGAAAAGAGGGGAGCGGGAAACCGCTCCCCTTTTTTCGTTTTGGTCC 0.9921550168667137
+TCGGTTACCGCTTCGGCGGTAACCGATTTTTTGGG 0.6309963099630996
+CGAACCGTAGGTCGGATAAGGCGCTCGCGCCGCATCCGACAAATGTGTTC 0.0825688073394496
+TAGCGTGACCGGAGATTCGGTCACGCTATTTTTTTTT 0.4285714285714286
+CGCCCGCGAACAGCGGGCGTTTTGCAAC 0.4117647058823529
+TCGGTTACCGCTTCGGCGGTAACCGATTTTTTTTT 0.4974874371859297
+GATCCAGCCCATTCGTGGGCTGGATCTTTATTGTC 0.6677740863787376
+cgcaaaaaaaAGCCAGCCTGTTTCCAGACTGGCttttgtgctt 0.7382198952879582
+GGCTCAAAGACCCGCTGCGGCGGGTTTTTTTGTCT 0.896049896049896
+GTAACAACGGAAACCGGCCATTGCGCCGGTTTTTTTTGGCCT 0.9847071417647958
+tccggcatgaACAACGCGCACGTTGTcagcaatctg 0.8427672955974843
+ttagtgcccaGGGTTCCCTCTCACCCTAACCCTCTCCCCGGTGGGGCGAGGGGACTgaccgagcgc 0.8058252427184466
+CGATTGAGCCTTCCAGTCCTTCGGGACTGGAATTTTTTTGTT 0.4444444444444444
+CGACGATACCATTCGTGGTATCGTCGTTTTCTCTG 0.8287671232876712
+AGGCCTCCCCGCAGGGGGGCCTTTTTTTGTA 0.5121951219512195
+CGCCCGCGAACAGCGGGCGTTGTTGTAT 0.0
+GACGAACAATAAGGCCTCCCAAATCGGGGGGCCTTTTTTCTTTTCAACAAAA 0.9736217356897916
+tacttcttacTCGCCCATCTGCAACGGATGGGCGAatttataccc 0.6563573883161512
+CCCGCATGCCATTCGTGGCATGCGGGTTAAAATAA 0.0
+CGACGATGCCATTCGTGGCATCGTCGTTTTTTGGG 0.6212121212121212
+agaaacagcaaacaatccaaaacgccgcgttcagcggcgttttttctgcttttct 0.9596122778675282
+ACTATTTTCTAAAGGCGCTTCGGCGCCTTTTTAGTCAGAT 0.7929606625258799
+aacggtttatTAGTCTGGAGACGGCAGACTAtcctcttccc 0.9445676274944568
+ATGGGAGGCGTTTCGTCGTGTGAAACAGAATGCGAAGACGAACAATAAAGGCCTCCCAAATCGGGGGGCCTTTTTT 0.9532273152478952
+cgcaaataacCAGGAGATAAAACCGACCACGGCACCAGGCAGTGACCATGTGGTTTCTTCAtcctcagtaa 0.9559082892416226
+aagtcaaaagcctccggtcggaggcttttgacttt 0.8868778280542986
+ttcctgatgtAATGCCGGATGACCTTCGTGTCATCCGGCATTtttcttttca 0.9546485260770975
+CCAATTATTGAACACCCTAACGGGTGTTTTTTCTTTTCTGGTCTCCC 0.985505145673286
+aggccaaaaaAAACCGGCGCAATGGCCGGTTTccgttgttac 0.07407407407407418
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTATTTTTCGGTCC 0.9420289855072463
+catgactaaaAACAGCAGCAGTAAAACAGACCCTACTGCTGTTaaaacaagcg 0.04761904761904767
+TACGAATAAACGGCTCAGAAATGAGCCGTTTATTTTTTC 0.9090909090909091
+CCAATTATTGAACACCCTAACGGGTGTTTTTATTTTTCTGGTCTCCC 0.9836947660198924
+aagatgaacaAAACTAAAGCGCCACAAGGGCGCTTTAGTTTgttttccggt 0.7607655502392344
+CTCGGTACCAAAAAAAAAAAAAAAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCC 0.9967691910054277
+TAATCGGATGCAGGCAGGGGAAGTGTCTGTTTACCCTGCCTGGTCTGATACG 0.4923857868020305
+ctgatgaaaaGGTGCCGGATGATGTGAATCATCCGGCACtggattatta 0.4974874371859297
+CGACGTTCGCGTCGTTATCAAAA 0.0
+CTAAAGCGCCGAACAGGCGCTTTAGTTGTTGTAT 0.14529914529914523
+cataaaaaaaGGGCCTAAAGCCCagttattctg 0.2063492063492064
+CCCGCTTCGGCGGGTTTTTTGGG 0.5726495726495726
+GATCCAGCCCATTCGTGGGCTGGATCTTTTGTTGG 0.4382022471910112
+AACTCCGCTGTTGCCCTGTTTCAGGGCAATTTTGCAACC 0.6047430830039525
+TTTTCGAAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTTATTGATAACAAAA 0.9967320261437909
+acgcgtacaaCCGCGTGGGGAGACGACGCGGatttttaact 0.0
+TAGCGTGACCGGCGCATCGGTCACGCTATTTGTTGAG 0.0
+AGGCCTCCCAGATGGGGGGCCTTTTTTTTTT 0.9242424242424242
+ACGGCCCTAGATAGGGCCGTTTTTTTTTT 0.9651567944250871
+CGACGATACCATTCGTGGTATCGTCGTTAAAATAA 0.0
+CCCGCTTCGGCGGGTTTTCTCTG 0.8986828774062816
+GACGAACAATAAGGCCGCAAATCGCGGCCTTTTTTATTGATAACAAAA 0.9921911603935655
+cataaaaaaaCCCGCTTGCGCGGGctttttcaca 0.16666666666666663
+gtattcgcgcACCCCGGTCTAGCCGGGGTCATTTTTTagtggctttt 0.8366013071895425
+TAGCGTGACCGGCGCATCGGTCACGCTATTTTGCAAC 0.0
+aacgcatgagAAAGCCCCCGGAAGATCACCTTCCGGGGGCTTTtttattgcgc 0.9939246658566221
+TTCCAGAAAAGACACCCTAACGGGTGTTTTTTCGTTTTTGGTCTCCC 0.99153403318659
+ATCTCTCTACGCCCTCACCCGTACAGGGTGAGGGCAATAATCTTT 0.7429305912596401
+CCCGCACTTAACCCGCTTCGGCGGGTTTTTGTTTTT 0.9511957052220595
+CCTGGTAAGACGCTAACCACGCGTCTTATCAGGTTGTTGTAT 0.0
+GCCGGAGCGGTAACCACCTGCTCCGGCTTTTTTGTA 0.5305164319248826
diff --git a/data/sequence_data/chen/train.txt b/data/sequence_data/chen/train.txt
new file mode 100644
index 0000000..04f8c5d
--- /dev/null
+++ b/data/sequence_data/chen/train.txt
@@ -0,0 +1,290 @@
+aaagattattGCCCTCACCCTGTACGGGTGAGGGCgtagagagat 0.0
+CGACGATGTTCGCATCGTCGTTTTGTTGG 0.17355371900826444
+TAAAGAAACTCGCCGGATGAAAAGTCATCCGGCGTCATATTACT 0.0
+CTCGGTACCAAATTCCAGAAAAGACACCCGAAAGGGTGTTTTTTCGTTTTGGTCC 0.9933844932521831
+GACGAACAATAAGCGGCAAATCGCCGCTTTTTTATTGATAACAAAA 0.9484801648634724
+aggggtaaaaCCGTCCAGGAGCAGGGaaaagggcag 0.8680738786279684
+ctaagcgttgTCCCCAGTGGGGAtgtgacgaag 0.3006993006993006
+gaaacgaaaaGAGGGAGACTAGCTCCCTCTttcaactggc 0.5652173913043478
+TGCCGGGATAACCACTCCCGGCATTTTTTGTA 0.4623655913978495
+cagtaatgctGGCGCGCCCCCTCGCGCCtgaaaattac 0.3939393939393939
+cagtgaaaaaTGGCGCCCATCGGCGCCAtttttttatg 0.9732477260567148
+CCTGGTAAGACGCCGCAGCGTCGCATCAGGTTTTGCAAC 0.019607843137254943
+GTTATTAAATAGCCTGCCATCTGGCAGGCTTTTTTTATCG 0.8887652947719689
+caacaatgacAAGCGGTGGAGATCTTCTCTGCCGCTTtttttttcat 0.9688473520249221
+ggctggaaaaCCTGGCTCGTATGCGTAAGCAGGacattatttt 0.4285714285714286
+ccataaaaaaGCGCCATTCAGCGCCTTTTTAtcatcccctt 0.7916666666666666
+agaataaattCAACCGCCCGTCAGGGCGGTTGtcatatggag 0.8864926220204313
+caagcactgcAAAAAACAGCCGGACGGTTTTCACCTCCGGCTATTTTTTtaattgtgat 0.8666666666666667
+TAGCGTGACCGGTAACCACTCGGTCACGCTATTTTTTGTA 0.13793103448275856
+ACGGCCCTTAACCACAGGGCCGTTTTTTTGTA 0.7942386831275721
+acatttaataAAAAAAGGGCGGTCGCAAGATCGCCCTTTTTTacgtatgaca 0.9778858911985847
+acgagccaatAAAAATACCGGCGTTATGCCGGTATTTTTttacgaaaga 0.9085923217550275
+TAAGAAAAGCGAGAGTTACAGCTCTCACTTATTTGTT 0.15966386554621848
+GACGAACAATAACACCCTAACGGGTGTTTTTTATTGATTGGTCTCCC 0.9289267945984364
+aaacacgtagGCCTGATAAGCGAAGCGCATCAGGCagttttgcgt 0.32432432432432434
+TTCCAGAAAAGACACCCTAACGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9912334531428071
+AGCCCCTCAATCGAGGGGCTTTTTTTTGC 0.9787685774946921
+CGACGTTCGCGTCGTTTTGTTGG 0.13043478260869557
+GCCGGAGCGGGAACACTGCTCCGGCTTTTGCAAC 0.0
+taacaatcagAAATGCCGGGAATAAATCCCGGCATTTtcataatcag 0.6453900709219857
+CGACGATGTTCGCATCGTCGTTTATTGTC 0.6124031007751938
+TAATAATCCAGTGCCGGATGATTCACATCATCCGGCACCTTTTCATCAG 0.019607843137254943
+AAAAGGGGCCTGAGTGGCCCCTTTTTTCA 0.8932764140875133
+gaggtgatttAAATTCATCCCCGGCGGCAAGCCGGGGAGATTTcattacggca 0.6563573883161512
+CCAATTATTGAACACCCAAATCGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9892680832796737
+ttacccgcaaAGTGCGCTGCTGCTTAGCAGCGCACTgcttggtggg 0.5652173913043478
+CTGATTATGAAAATGCCGGGATTTATTCCCGGCATTTCTGATTGTTA 0.6309963099630996
+aagaattaaaAATGTTACGGGTAACTGTTATCGGTAACATTgtccagccgg 0.5652173913043478
+AAGGACACCAGAGCCTGCCAATGGCAGGCTCAGACTGATGA 0.7668997668997669
+TCGGTTACATGTTCGCATGTAACCGATTTTTTGGG 0.4219653179190751
+GGGCGGTCTAACCACGATCGCCCTTTTTTGTA 0.5283018867924529
+AATTCCATCGGGTCCGAATTTTCGGACCTTTTCTCCGC 0.9552572706935123
+CTCACCCTAACCCTCTCCCCAGAGGGGCGAGGGGACCGACCGA 0.8552821997105644
+TACCATGTCCTTATTGACCCCGTATATTACGGGGTCGTTTTTGTGCGGAAT 0.504950495049505
+AGGCCTCCCCGCAGGGGGGCCTTTTGTTGAG 0.46808510638297873
+cgaataatccGATTACGGCTACGCTTCTAATGTTCCCCTTGAATGGAGTCGAAGAATGCGTAATCccacgctgtt 0.2592592592592593
+ttaacccctaCCCCACGCGTACAACCGCGTGGGGagacgacgcg 0.19999999999999996
+aaaagaggtgGCCAGGGGGATCACCTGGCAgcatgctgcc 0.7899159663865546
+GGCAATAACTCTTTTCGCCGAGCAGGATGCTCGCGAAAAGAAACTGTGATT 0.3197278911564626
+CGCCCGCTAACCACGCGGGCGTTTTTTGTA 0.6453900709219857
+ATTTGTACCGAAAACCCCGGGGCGTGCTCCGGGGTTTTTTCTTATCAA 0.9253174010455564
+CCCTCTTGATAACCCAAGAGGGCATTTTTTA 0.0990990990990992
+GCCGGAGCGGCGCACTGCTCCGGCTTTGTTGAG 0.04761904761904767
+taacaaaaaaCCCCGATAAATCGGGGctttatataa 0.0
+TGCCGGGACGCATCCCGGCATTTTGCAAC 0.15254237288135586
+ACCGGAAAACAAACTAAAGCGCCCTTGTGGCGCTTTAGTTTTGTTCATCTT 0.9460625674217907
+CTGAGTGAACTCCCATGAGCATAGATAACTATGTGAATGGGATGAGCGAAGG 0.3670886075949368
+aaggttgaaaAATAAAAACGGCGCTAAAAAGCGCCGTTTTTTTTgacggtggta 0.988537368179734
+gcctttcaaaAGTAAGCAACGTCTGCTTACTgcccctctac 0.8826291079812206
+ccgtattaccCCGCGCCGGGAATGCGCGGccgccaattt 0.5260663507109005
+tttaaagagcAAACCCCTCAAACGAGGGGTTTtttgttgttt 0.9204455051710422
+ACGGCCCTCGCAAGGGCCGTTTTTTTGTA 0.8141263940520446
+GATCCAGCTTCGGCTGGATCTTTATTGTC 0.6226415094339622
+GGGCGGTCCGCAGATCGCCCTTTTTTGTA 0.5283018867924529
+GCTGATGCCAGAAAGGGTCCTGAATTTCAGGGCCCTTTTTTTACATGGATTG 0.9803188348750246
+CGACGTTCGCGTCGTTTATTGTC 0.4252873563218391
+AGGCCTCCCTAACCACGGGGGGCCTTTGTTGTAT 0.23076923076923084
+CCTGGTAAGACGCTAACCACGCGTCTTATCAGGTTTTTTGTA 0.0
+TCGGTTACATGTTCGCATGTAACCGATTTTGTTGG 0.3548387096774194
+CGACGTTCGCGTCGTTTTCTCTG 0.7578692493946732
+CTCGGTACCAAATCTAACTAAAAAGACGCTGAAAAGCGTCTTTTTTCTTTTCGGTCC 0.9891821722198183
+CTAAAGCGCCCGCAGGCGCTTTAGTTTGTTGAG 0.23664122137404586
+GTTTAACGGCTCTGGCGGAGCTCCCAGGCTCCGCCAGATTTATTTACT 0.0
+tgcctcaattAGCGGCTCATGTAGCCGCTttttctgcgc 0.9681630054122891
+GCCAGTTGAAAGAGGGAGCTAGTCTCCCTCTTTTCGTTTC 0.9185667752442996
+CCAATTATTGAAGGGGAGCGGGAAACCGCTCCCCTTTTTTTGTTTCTGGTCTCCC 0.9954863461972466
+agaaatcatccttagcgaaagctaaggattttttttatctg 0.9383857054836722
+GGGCGGTCCGCAGATCGCCCTTTTGCAAC 0.576271186440678
+atgaccttttGCACCGCTTTGCGGTGCTttcctggaag 0.7890295358649789
+GACGAACAATAACACCCAAATCGGGTGTTTTTTATTGATAACAAAA 0.84779299847793
+TACGTAAAAACCCGCTTCGGCGGGTTTTTACTTT 0.9655765920826161
+ctatcctcttCCCGGTCCCCTATGCCGGGttttttttat 0.84472049689441
+taaggttgaaAAATAAAAACGGCGCTAAAAAGCGCCGTTTTTTTTgacggtggta 0.9897351673167727
+gggtaaaaaaATGCCTGACTGCTTTGTGCGATCAGGCATtctcgaatta 0.0
+ccgtttaacaCGTTCTGGATGAAATCCATATCGcgatagcgca 0.8007968127490039
+GCCGGATCGGTAACCACCTGATCCGGCTTTTTTGTA 0.4565217391304348
+CTAAAGCGCCTAACCACGGCGCTTTAGTTTTTTGTA 0.8266897746967071
+TAGCGTGCCGCAGCACGCTATTTTGCAAC 0.25373134328358216
+CCCGCATGTTCGCATGCGGGTTTTCTCTG 0.8941798941798942
+TCGGTTACATGTTCGCATGTAACCGATTTCAACAA 0.0
+CGACGATACCATTCGTGGTATCGTCGTTTCAACAA 0.0
+CTCGGTACCAAACCAATTATTGAAGACGCTGAAAAGCGTCTTTTTTTGTTTCGGTCC 0.9913815392570887
+tttaaaagatTATCGGGAGAGTTACCTCCCGATAtaaaaggaag 0.7807017543859649
+GACGAACAATAAGGCCTCCCGAAAGGGGGGCCTTTTTTATTGATAACAAAA 0.993993993993994
+GACGAACAATAAGGCCTCCCAAATCGGGGGGCCTTTTTTCGTTTTAACAAAA 0.9602701628923321
+GCCGGATCGGTAACCACCTGATCCGGCTTGTTGTAT 0.0
+CTCGGTACCAAAGAAAAATAAAAAGACGCTGAAAAGCGTCTTTTTATTTTTCGGTCC 0.9894957983193278
+GATCTAACTAAAAAGGCCGCTCTGCGGCCTTTTTTCTTTTCACT 0.9852005327808199
+TGCCGGGACGCATCCCGGCATTTGTTGAG 0.04761904761904767
+cgtgttcctgAACGCCCGCATATGCGGGCGTTttgctttttg 0.9594155844155844
+CCCGCTTCGGCGGGTTAAAATAA 0.0
+AGCCTCCCAGTGGAGGCTTTTTTTGT 0.7389033942558747
+aagcacgaaaAAGGGAGCGATGAATTATCGCTCCCTTgtcttataac 0.5475113122171946
+CTAAAGCGCCCGCAGGCGCTTTAGTTTTTTGTA 0.7916666666666666
+tgcggagggaGTGGAAACGCCTCAGCCGGAACTGACCGAGGCGGTATAACttaacgcagt 0.8579545454545454
+CGACGTTCGCGTCGTTAAAATAA 0.5305164319248826
+cacagaatctAAGATCCCTGCCATTTGGCGGGGATTTTtttatttgtt 0.8675496688741722
+CCTGGTAAGACGCGAACAGCGTCGCATCAGGTTGTTGTAT 0.0
+gaagttcaagGGCGCATCTACTGATGTGCCttttttattt 0.797979797979798
+AATAAATGGATGCCCTGCGTAAGCGGGGCATTTTTCTTCCT 0.9623918766453554
+CTCGGTACCAAAGACGAACAATAAGACGCTGAAAAGCGTCTTTTTTATTGATGGTCC 0.9777133942500558
+CGACGATGCCATTCGTGGCATCGTCGTTTTCTCTG 0.8685939553219448
+GATCCAGCCCATTCGTGGGCTGGATCTTTCAACAA 0.0
+CTCGGTACCAAACCAATTATTGAAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCC 0.9954096855634611
+CGACGATATTCGTATCGTCGTTTTCTCTG 0.7005988023952096
+GGGCGGTCGAACAGATCGCCCTTTTGCAAC 0.23076923076923084
+AGGCCTCCCTAACCACGGGGGGCCTTTTTTTGTA 0.7787610619469026
+CGACGATATTCGTATCGTCGTTTCAACAA 0.0
+CCCGCATGCCATTCGTGGCATGCGGGTTTTGTTGG 0.4219653179190751
+GACGAACAATAAGGCCTCCCAAATCGGGGGGCCTTTTTTTGTTTCAACAAAA 0.9871134020618557
+tgcaaaaaaaTCGGGCAGCGTCGTGCTGCCCGtgtgcatact 0.47916666666666663
+tctgaatgcgTGCCCATTCCTGACGGAATGGGCAtttctgcgca 0.9390615478366849
+tgtaagagatAAAAAAGGCCGGAGCATGCTCCGGCCttcgttttca 0.9450247388675096
+AGGCCTCCCCGCAGGGGGGCCTTTTTGCAAC 0.2907801418439716
+CGCCCGCCGCAGCGGGCGTTTTGCAAC 0.5867768595041323
+CTAAAGCGCCTAACCACGGCGCTTTAGTTGTTGTAT 0.0
+ctaatcttttCAACGCCTGGCACTGCCGGGCGTTGTTCTTTTTaacttcaggc 0.9325691166554282
+gaacttgtagGCCTGATAAGCGCAGCGTATCAGGCaatttttata 0.4252873563218391
+CCAATTATTGAACACCCTTTAGGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9875992063492064
+CCCGCATGCCATTCGTGGCATGCGGGTTATCAAAA 0.0
+ccttcgctcaTCCCATTCACATAGTTATCTATGCTCATGGGAgttcactcag 0.7872340425531915
+CCCTCTTGGGTTATCAAGAGGGTCATTATATTT 0.0
+TGCCGGGAGAACATCCCGGCATTGTTGTAT 0.0
+ccgccttcacAAATGCCGCCACTCAAACAGAGCGGCATTTttcttccccg 0.9683544303797469
+TAGCGTGACCGGTAACCACTCGGTCACGCTATTGTTGTAT 0.0
+tcgaaaagaaCCCGGTAGCGTCACAACTACCGGGcgaacaaact 0.11504424778761058
+ATCTCCTTTCACGGCCCATTCCTCATGGATGGGCCGTTTATTTCCCC 0.9515269025690741
+TCGGTTACATGTTCGCATGTAACCGATTAAAATAA 0.0
+tagggaaaaaTGCCTGATAGCGCTTCGCTTATCAGGCctacccgcgc 0.44134078212290506
+TGAACAACATCGCGCTTATCGTTAAGGTAAGCGCGTATTTTTTTTACCCGCCAG 0.9264705882352942
+tgtagttgtaAGGCCGTGCTTCCGAAAGGAATGCGCGGCTTattttcgttt 0.8542274052478134
+agagaatataaaaagccagattattaatccggcttttttattattt 0.24812030075187974
+tccctgtcttCCCCCACATGCTGTGGGGGttttttttat 0.8727735368956743
+GATCCAGCCCATTCGTGGGCTGGATCTTTTTTTTT 0.9518304431599229
+cagataaaaaaaatccttagctttcgctaaggatgatttct 0.9909608605260779
+CTGAAATATCCAGCGGATCAAGAAAATTCGTTGGATATTTTTT 0.4565217391304348
+TGCCGGGATAACCACTCCCGGCATTGTTGTAT 0.029126213592232997
+ACAATTTTCGAAAAAACCCGCTTCGGCGGGTTTTTTTATAGCTAAAA 0.9883422709256237
+CCTGGTAAGACGCAGATGCGTCGCATCAGGTTTTTTTTT 0.0
+tgattatgcgAGCAGACTCGCACTCCTGCCAGTCTGCTGcaaaagaaag 0.15254237288135586
+TAGCGTAAAAGCAAAACACAAATCTATCCATGCAAGCATTCACCGCCGGTTTACTGGCGGTTTTTTTTCGCCGTCATA 0.9529411764705882
+aagttatgcgAAAATGCCGGTCTTGTTACCGGCATTTTttatggagaa 0.9065420560747663
+GCCGGAGCGGCGCACTGCTCCGGCTTTTTTGTA 0.3670886075949368
+taaagtatgtATCCCCAAAATAATTCGAGTCATTGCATCTGTGGCTAGAAGTATGAAGGGAttaaccataa 0.0
+atcaaataatGCCTGATAGCACATATCAGGCgttgtcctca 0.9251497005988024
+acgcgtaaatAAAAAAGGCGCTAGTGAAAGCGCCCTTTTTTgtcattatgc 0.3548387096774194
+GGGAAGAGGATAGTCTGCCGTCTCCAGACTAATAAACCGTT 0.8535871156661786
+gctcataagtAAAAAACGGCACCTGGTGCCGTTTTTTtgtctgaaac 0.8043052837573386
+TACCACCGTCAAAAAAAACGGCGCTTTTTAGCGCCGTTTTTATTTTTCAACCTT 0.9782135076252724
+gataaatcagAAACATAAAGGCGCTTTCGGGTGCCTTTATTATTTccagtgaaac 0.7925311203319503
+gcggagaaaaGGTCCGAAAATTCGGACCcgatggaatt 0.05660377358490576
+TAGCGTGACCGGGAACATCGGTCACGCTATTTTGCAAC 0.0
+GCATAATGACAAAAAAGGGCGCTTTCACTAGCGCCTTTTTTATTTACGCGT 0.9396863691194209
+TAGCGTGCTAACCACGCACGCTATTGTTGTAT 0.0
+TCAAACGAAACCAGGCTATACTCAAGCCTGGTTTTTTGATGG 0.3975903614457831
+CTTATTCCATAACAAAGCCGGGTAATTCCCGGCTTTGTTGTATCTGAAC 0.9643366619115549
+CTCGGTACCAAATTCCAGAAAAGAGACGCTAAATCAGCGTCTTTTTTCGTTTTGGTCC 0.9932768589485007
+caaattaagcAGAAGGCCATCCTGACGGATGGCCTTTTtgcgtttcta 0.9685534591194969
+TTTTCGAAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTTTATAGCAACAAAA 0.9918982419184963
+CCCGCATGTTCGCATGCGGGTTTCAACAA 0.0
+CGACGATGTTCGCATCGTCGTTTCAACAA 0.0
+CCGGCTGGACAATGTTACCGATAACAGTTACCCGTAACATTTTTAATTCTT 0.0
+GCCGGATCGGGAACACTGATCCGGCTTTTGCAAC 0.41860465116279066
+CGACGATACCATTCGTGGTATCGTCGTTTTGTTGG 0.3902439024390244
+CCAATTATTGAACACCCTAACGGGTGTTTTTTTTTTTTTGGTCTCCC 0.9912095639943741
+CCTGGTAAGACGCGAACAGCGTCTTATCAGGTTGTTGTAT 0.0
+CACAATGATGCCCGGTTGCTTTTCACAACCGGGCATTTTTTTAAC 0.7076023391812866
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTATTGATGGTCC 0.9732405672999732
+CGACGATACCATTCGTGGTATCGTCGTTTTTTTTT 0.40828402366863903
+TAGCGTGCGAACAGCACGCTATTGTTGTAT 0.0
+taagacgtggCGCATCAGGCATCGTGCACCGAATGCCGGATGCGgcgtgaacgc 0.7867803837953091
+TGCTCGTACCAGGCCCCTGCAATTTCAACAGGGGCCTTTTTTTATCC 0.9591670069416088
+TCGGTTACCGCTTCGGCGGTAACCGATTATCAAAA 0.0
+CCTGGTAAGACGCGAACAGCGTCTTATCAGGTTTTGCAAC 0.1869918699186992
+ataacaaaaaACCCCGCCGGAGCGAGGttttttgtta 0.5454545454545454
+CGACGATGTTCGCATCGTCGTTATCAAAA 0.0
+ATGAATGAACAAAACCCTCTGTTACTACAGAGGGTTTTTTATCTTCAA 0.822380106571936
+ACTGTTATTCGGCGCTCCACGGAGCGCCTTTTTTTCT 0.7792494481236203
+agtaagaacgAAAAAGGCCGCAGAGTTTCCCCCCTGCGGCCtggtccgggc 0.4871794871794871
+AGGCCTCCCGAACAGGGGGGCCTTTGTTGTAT 0.0
+CCCGCATGTTCGCATGCGGGTTTTTTGGG 0.4923857868020305
+gctgttcagaTCACTGGTGCGCGCGGAGTCGCCGCCAGTGAgcaaacgctg 0.8175182481751825
+atttttttaaCGGGGGAGGTTCCCCCGtcagatcatt 0.05660377358490576
+CCTGGTAAGACGCTAACCACGCGTCGCATCAGGTTTTTTGTA 0.0
+CGACGATATTCGTATCGTCGTTATCAAAA 0.0
+CCTGGTAAGACGCCGCAGCGTCTTATCAGGTTTGTTGAG 0.0
+GATCCAGCCCATTCGTGGGCTGGATCTTTTTTGGG 0.6805111821086263
+caatgaaaaaAGGGCCCGCAGGCCCtttgttcgat 0.5555555555555556
+TCTAACTAAAAACACCCTAACGGGTGTTTTTTCTTTTCTGGTCTCCC 0.9904131914485668
+TATAAAAATTGCCTGATACGCTGCGCTTATCAGGCCTACAAGTTC 0.24812030075187974
+CGACGATGTTCGCATCGTCGTTTTTTTTT 0.6062992125984252
+aaagtaaaaaCCCGCCGAAGCGGGtttttacgta 0.8015873015873016
+TAATCGCCTCGCCCCGGTATCGTGCCGGGGCTTTTTCACTT 0.5815899581589958
+AAAAAATCACAGGGCAGGGAAACCTGCCCTTGTTTCAGCG 0.4736842105263158
+TAGCGTGCAGATGCACGCTATTTTTTTTT 0.6951219512195121
+AGTCAGAAAGCCGCCGACATGCTCGGCGGTTTTTCTGAA 0.504950495049505
+ACGGCCCTCGCAAGGGCCGTTTTGTTGAG 0.574468085106383
+aggaaagtaaGTGCCGGATATGAAATCCGGCACctgtcagact 0.0
+CGCCCGCAGATGCGGGCGTTTTTTTTT 0.8798076923076923
+CAGAATAACTGGGCTTTAGGCCCTTTTTTTATG 0.21875
+TAGCGTGACCGGCGCATCGGTCACGCTATTTTTTGTA 0.0825688073394496
+GATCCAGCCCATTCGTGGGCTGGATCTTATCAAAA 0.0
+agttaaccaaAAAGGGGGGATTTTATCTCCCCTTTaatttttcct 0.9845368795422916
+GAAACGAACCGGGAGCGCTGTGAATACAGTGCTCCCTTTTTTTATT 0.9015748031496063
+GCCGGATCGGCGCACTGATCCGGCTTTGTTGAG 0.0
+aacaaaaaaaTTCCAGTCCCGAAGGACTGGAAggctcaatcg 0.4871794871794871
+AAGCACAAAAGCCAGTCTGGAAACAGGCTGGCTTTTTTTTGCG 0.9687695190505934
+CCCAATGACTACTTCCATGCTCAACGCAAAACTACTACCAACTGCGCCATCCGCCGCAGTGGTCGTCGTGCGTGTGGTGGTGGTCGTCGGCAATGCGCCGTAGGGACTGGAACAACACACGATTCCAAAACCCCGCCGGCGCAAACCGGGCGGGGTTTTTCGTTTAAG 0.5348837209302326
+AGGCCTCCCGAACAGGGGGGCCTTTTTGCAAC 0.7252747252747254
+aacagtaactTTTCCGGCTTCCCGTTCGTCAGTACCTCGGGAAGCCGCCAAccaggataaa 0.0
+ACGGCCCTCGCAAGGGCCGTTTTTGCAAC 0.6677740863787376
+CGACGTTCGCGTCGTTTCAACAA 0.0
+GTAAAAATACAGGGCTGGAATCATCCGGCCCTTTTTTCTGAT 0.8204667863554758
+GCACTGATATAACGGGCCTGATGGCCCGTTTTAGTGTTTG 0.8702983138780804
+GAAAAATAAAAACACCCTAACGGGTGTTTTTATTTTTCTGGTCTCCC 0.9895287958115183
+ctctgcacaaACGCCACCTTTTCGGTGGCGttttttatcg 0.9487967229902714
+CTCGGTACCAAATTTTCGAAAAAAGACGCTGAAAAGCGTCTTTTTTTATAGCGGTCC 0.9873112549168888
+agtgaaaagaAAAAAGGCCGCAGAGCGGCCTTTTtagttagatc 0.8454404945904173
+ggaccaaaacGAAAAAAGACGCTTTTCAGCGTCTCTTTTCTGGAATTtggtaccgag 0.7050147492625369
+TAGCGTGACCGGGAACATCGGTCACGCTATTGTTGTAT 0.0
+AAAAGGATTCGCGGCTCTGCTCTTCAGAGCTGCTTTTATGATA 0.9686028257456829
+GACGAACAATAAGGGGAGCGGGAAACCGCTCCCCTTTTTTATTGATAACAAAA 0.9884951679705476
+actccaaaaaAAAACCTGAAAAAAACGGCCTGACGTGAATCAAGCAATTTTTTTCAGGTTTTgcccgcttag 0.24242424242424243
+CCAATTATTGAAGGCCTCCCAAATCGGGGGGCCTTTTTTATTGATAACAAAA 0.9955849889624724
+gacgaacaaTAAGGCCTCCCAAATCGGGGGGCCTTTTTTATTgaTaacaaaa 0.9958937297252906
+CCTGGTAAGACGCCGCAGCGTCTTATCAGGTTTTGCAAC 0.0
+aaataataaaaaagccggattaataatctggctttttatattctct 0.938347718865598
+tccggcaaaaaaacgggcaaggtgtcaccaccctgccctttttctttaaaaccgaaaagattacttcgcgtt 0.6941896024464832
+TCTAACTAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTTATTGATAACAAAA 0.9964098513678467
+ccaggcatcaaataaaacgaaaggctcagtcgaaagactgggcctttcgttttatctgttgtttgtcggtgaacgctctc 0.9880339834868972
+ATGCTAAATTGCCCGATGCGCTGCGCTTATCGGGCCTTCATGGTT 0.0
+AGTATGCACACGGGCAGCACGACGCTGCCCGATTTTTTTGCA 0.8531571218795888
+CCCGCATGCCATTCGTGGCATGCGGGTTTTTTGGG 0.5652173913043478
+ACTGATTTTTAAGGCGACTGATGAGTCGCCTTTTTTTTGTCT 0.9818774918448714
+GTGAAGTAATACAAAACAGGCCCAGGCGGCCTGTTTTGTCTTTTTAATG 0.9521988527724665
+CCAATTATTGAACACCCTAACGGGTGTTTTTTTATAGCTGGTCTCCC 0.9794661190965093
+CCCGCATGCCATTCGTGGCATGCGGGTTTATTGTC 0.6363636363636364
+ttgataagaaAAAACCCCGGAGCACGCCCCGGGGTTTTcggtacaaat 0.5780590717299579
+gctacaaaaaTGCCCGATCCTCGATCGGGCAttttgacttt 0.6763754045307443
+cagccctaatCAGCGTTGCAGGATAAAGCACCGCTCactcttcaac 0.6212121212121212
+ATATTCTGAAATATCCAGCGGATCAAGAAAATTCGTTGGATAT 0.3055555555555556
+tgcttgattaAAAAGGCGCTACTCGGCATGGGGAAGCGCCTTTTttataggtgt 0.9272197962154294
+TGCCGGGACGCATCCCGGCATTTTTTGTA 0.4708994708994708
+TCGGTTACCGCTTCGGCGGTAACCGATTTTCTCTG 0.8939554612937434
+CTCGGTACCAAATCTAACTAAAAAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCC 0.9959148658033417
+AGTTTGTTCGCCCGGTAGTTGTGACGCTACCGGGTTCTTTTCGA 0.8080614203454894
+GCCGGATCGGGAACACTGATCCGGCTTGTTGTAT 0.0
+aacaaataagTGAGAGCTGTAACTCTCgcttttctta 0.0
+CGACGTTCGCGTCGTTTTTTTTT 0.0
+AAGCAGAGAACCCTGGATGAGAGTCCGGGGTTTTTGTTTTT 0.8475609756097561
+gtgtaagtttAGCCGGATAACGCGCCAGATCCGGCTtacatctctg 0.4897959183673469
+CGCAGATAGCAAAAAAGCGCCTTTAGGGCGCTTTTTTACATTGGTGG 0.9851146174456683
+GATCCAGCTTCGGCTGGATCTTTTTTGGG 0.5780590717299579
+ccgattatttACGCAAATTTGCGTgccaaaattt 0.0
+GATCCAGCCCATTCGTGGGCTGGATCTTTTCTCTG 0.8699609882964889
+TTCCAGAAAAGAGGCCTCCCAAATCGGGGGGCCTTTTTTCGTTTTAACAAAA 0.9733262203254202
+CCAATTATTGAACACCCTTCGGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9942062572421785
+TTCAGCCAAAAAACTTAAGACCGCCGGTCTTGTCCACTACCTTGCAGTAATGCGGTGGACAGGATCGGCGGTTTTCTTTTCTCTTCTCAA 0.9973571541836249
+AAAAAAGCCCGCACCTGACAGTGCGGGCTTTTTTTTT 0.9841042759497695
+agtaagcgcgAATATGCCTGATGGTGCAACACCATCAGGCATATTaaattatgct 0.5951417004048583
+CCTGTTGAGTAATAGTCAAAAGCCTCCGGTCGGAGGCTTTTGACTTTCTGCTTAC 0.98113919275745
+aaagaaagaaTTAACGCATCGCATCCAGACTGTTCTGAATGCGACGATAATTAAggtgctttaa 0.019607843137254943
+GATCCAGCTTCGGCTGGATCTTTTGTTGG 0.6563573883161512
+aaagtcaaaagcctccgaccggaggcttttgactt 0.8454404945904173
+AGTCAAAAGCCTCCGACCGGAGGCTTTTGACTATTACT 0.7668997668997669
+CCCGCATGCCATTCGTGGCATGCGGGTTTTCTCTG 0.9052132701421801
+CGACGATGTTCGCATCGTCGTTTTTTGGG 0.4285714285714286
+AAAAAAAAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTTTTTTTTAACAAAA 0.9936515997968512
+GCCGGATCGGCGCACTGATCCGGCTTTTTTGTA 0.15254237288135586
+TTTTCGAAAAAACACCCTAACGGGTGTTTTTTTATAGCTGGTCTCCC 0.9882849109653233
+TTATATAAAGCCCCGATTTATCGGGGTTTTTTGTTA 0.9261992619926199
+atgcaggaaaGCAGGCTGGAGCTACCCAGCCTGCagtgaaatta 0.893048128342246
+CCAATTATTGAAGGCCGCTAACGCGGCCTTTTTTTGTTTCTGGTCTCCC 0.9956827699348099
+agacaaaaaaACCCGCCGCAGCGGGtctttgagcc 0.9363057324840764
+GGGCGGTCTAACCACGATCGCCCTTGTTGTAT 0.1071428571428572
+aaaaacaaaaACCCCGGACTCTCATCCAGGGttctctgctt 0.8745294855708908
+attttgtaatGCCGGATGCGGCGTAAAACACCGTACCCGGCctggagtttt 0.3377483443708609
+agtaaataaaTCTGGCGGAGCCTGGGAGCTCCGCCAGAgccgttaaac 0.504950495049505
+CTCGGTACCAAAAAAAAAAAAAAAGACGCTGAAAAGCGTCTTTTTTTTTTTTGGTCC 0.9963758924364875
+AAAGCCCCCGGAAGATCACCTTCCGGGGGCTTT 0.7245179063360881
diff --git a/data/sequence_data/chen/validation.txt b/data/sequence_data/chen/validation.txt
new file mode 100644
index 0000000..0a3a5e5
--- /dev/null
+++ b/data/sequence_data/chen/validation.txt
@@ -0,0 +1,146 @@
+GATCCAGCTTCGGCTGGATCTTTTTTTTT 0.7807017543859649
+aaaatcaaaggatcttcttgagatccttttttt 0.5614035087719298
+gaaaaaataaACGGCTCATTTCTGAGCCGtttattcgta 0.646643109540636
+CGGCCCGCCTATGGCGGGCCGTTTTGTAT 0.8839907192575406
+CTGCCCTTTTCCCTGCTCCTGGACGGTTTTACCCCT 0.5454545454545454
+gggtcaaagaGGCATGATGCGACGCTTGTTCCTGCGCTTTGTTCATGCCGgatgcggcta 0.6855345911949686
+TTTTCGAAAAAACACCCTAACGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9959158668572595
+TGTGAAAAAGCCCGCGCAAGCGGGTTTTTTTATG 0.9790224459827984
+CCCGCATGTTCGCATGCGGGTTATCAAAA 0.180327868852459
+CTCGGTACCAAATTCCAGAAAAGAGACGCTTTCGAGCGTCTTTTTTCGTTTTGGTCC 0.9961766392659147
+agaaaaaaagGCGCTCCGTGGAGCGCCgaataacagt 0.23076923076923084
+gaaccacctcCTTAGCCTGTGTAATCTCCCTTACACGGGCTTATTTTTTacgcgtaata 0.7995991983967936
+CTCGGTACCAAATTCCAGAAAAGAGACGCTTTTAGAGCGTCTTTTTTCGTTTTGGTCC 0.9953831948291783
+GCCGGAGCGGAGATCTGCTCCGGCTTTTTTTTT 0.6666666666666667
+CCCGCTTCGGCGGGTTTTGTTGG 0.33333333333333337
+gttaaaaaaaTGCCCGGTTGTGAAAAGCAACCGGGcatcattgtg 0.8076923076923077
+CCCGCATGTTCGCATGCGGGTTAAAATAA 0.0
+CCTGGTAAGACGCCGCAGCGTCGCATCAGGTTTTTTGTA 0.09090909090909094
+CTCGGTACCAAATTCCAGAAAAGAGGCCGCGAAAGCGGCCTTTTTTCGTTTTGGTCC 0.9963092821553792
+CCAATTATTGAAGCGGCTAACGCCGCTTTTTTTGTTTCTGGTCTCCC 0.985169805724455
+tgatgtaagtAAAAGAGCCGGCCCAACGGCCGGCTTTTTTctggtaatct 0.31506849315068497
+GGTATTCATTGCCTGATGCGACGCTTACGCGTCTTATCATGCCTACGGGAACCTGA 0.8694516971279374
+caggcatcaaATAAAACGAAAGGCTCAGTCGAAAGACTGGGCCTTTCGTTTTATctgttgtttg 0.9833277759253084
+CGACGATACCATTCGTGGTATCGTCGTTATCAAAA 0.0
+CCCGCATGTTCGCATGCGGGTTTTGTTGG 0.3197278911564626
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTTGTTTCGGTCC 0.9861495844875346
+CCTGTCCTGATCGTTTCCTGAACGATAAATTGTGA 0.7050147492625369
+AGTAAAACCCATGCCGGATGCGCCAGCATCCGGCATAATACCGATTAC 0.07407407407407418
+GACGAACAATAAGGCCTCCCAAATCGGGGGGCCTTTTTTTTTTTTAACAAAA 0.9768946395563771
+aaaaacaaaaACCCGCCGAAGCGGGTtaagtgcggg 0.5024875621890547
+aatcgcgttaCGGGGAGGAAGTTTTTTCAGATACTCCCggaacgcctg 0.5951417004048583
+ACGGCCCTTAACCACAGGGCCGTTTGTTGTAT 0.0
+TCTAACTAAAAACACCCTAACGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9938886512253254
+CCAATTATTGAAGGCCTCCCTAACGGGGGGCCTTTTTTTGTTTCTGGTCTCCC 0.9959446855103613
+CTAAAGCGCCAGATGGCGCTTTAGTTTTTTTTT 0.8194945848375451
+GGGCGGTCCGCAGATCGCCCTTTGTTGAG 0.0
+cgtctgcgtaTGGAACGTGGTAACGGTTCTActgaagattt 0.8296422487223168
+gtaagcagaaAGTCAAAAGCCTCCGACCGGAGGCTTTTGACTattactcaac 0.6491228070175439
+ctctggtagtCCTGGTAAGACGCGAACAGCGTCGCATCAGGcatattgcca 0.9527410207939508
+ggaaacacagAAAAAAGCCCGCACCTGACAGTGCGGGCTTTTTTTTTcgaccaaagg 0.9968
+CGACGATATTCGTATCGTCGTTTTGTTGG 0.1071428571428572
+cttgaaaaatAAAGTATTAGCGTTCTGCGTTAAGACTTTtttcatgggt 0.1869918699186992
+aaccatgaagGCCCGATAAGCGCAGCGCATCGGGCaatttagcat 0.4444444444444444
+CTAAGCGGGCAAAACCTGAAAAAAATTGCTTGATTCACGTCAGGCCGTTTTTTTCAGGTTTTTTTTTGGAGT 0.8181818181818181
+CGACGATATTCGTATCGTCGTTAAAATAA 0.0
+gctccgccgtCACGGTTGCAGGAAAGCTAAGGGACTTAGCCTGCGGCGGTTTTGTttggcttcag 0.4565217391304348
+GACGAACAATAAGACGCTAAATCAGCGTCTTTTTTATTGATAACAAAA 0.9494438827098078
+aattattggcAAAAGGCAACCACAGGCTGCCTTTTtctttgactc 0.019607843137254943
+TAGCGTGCCGCAGCACGCTATTTTTTGTA 0.5884773662551441
+agcgtcaaaaGGCCGGATTTTCCGGCCttttttatta 0.9447208402432283
+aagtcgcaccAAAGGGGAGCGGGAAACCGCTCCCCTTTtatatttagc 0.9307958477508651
+aagtgaaaaaGCCCCGGCACGATACCGGGGCgaggcgatta 0.0
+CTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTCTTTTCGGTCC 0.9848369977255497
+TTAAAGCACCTTAATTATCGTCGCATTCAGAACAGTCTGGATGCGATGCGTTAATTCTTTCTTT 0.5475113122171946
+gcttgctgaggatcctaaagccccgaattttttataaattcggggctttttt 0.9791796793670623
+AAGAACGAGTAAAAGGTCGGTTTAACCGGCCTTTTTATTTTGTGA 0.9734888653234358
+cagaaatcatccttagcgaaagctaaggattttttttatctg 0.9291784702549575
+CTAAAGCGCCGAACAGGCGCTTTAGTTTTGCAAC 0.6428571428571428
+AAAAAAAAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTTATTGATAACAAAA 0.9957755998648192
+AGGCGACTGACGAAACCTCGCTCCGGCGGGGTTTTTTGTTATCTGCA 0.9836601307189542
+ccaattattgAACACCCTAACGGGTGTTTTTTTGTTTctggtctccc 0.9922396399192922
+TGTAATTAGATTTGACTGAAATCGTACAGTAAAAAGCGTACAATAAAGGCTCCACGAAAGTGGGGCCTTTTTTAGCGCGA 0.9164578111946533
+GTGAATTGTAGCTGACCTGGGACTTGTACCCGGGTCGGTATTTTTTTGCTTCTGGTCCCGG 0.8171846435100548
+ccatcaaaaaACCAGGCTTGAGTATAGCCTGGtttcgtttga 0.7076023391812866
+gtcagcttgaAAAAAGGGGCCACTCAGGCCCCCTTTTctgaaactcg 0.8654104979811574
+CGACGATGCCATTCGTGGCATCGTCGTTTCAACAA 0.0
+TGCCGGGAAGATTCCCGGCATTTTTTTTT 0.8813760379596678
+tatcataaaaGCAGCTCTGAAGAGCAGAGCCGCgaatcctttt 0.7340425531914894
+cgctgaaacaAGGGCAGGTTTCCCTGCCCTgtgatttttt 0.14529914529914523
+CTAAAGCGCCCGCAGGCGCTTTAGTTTTGCAAC 0.5024875621890547
+taatcattctTAGCGTGACCGGGAAGTCGGTCACGCTAcctcttctga 0.965552876334826
+gtgaataaaaCAACCGGACCCCATCGAGGAACGGAGTCCGGTGtcatattaaa 0.019607843137254943
+GTCAGTCGTCAGACGCCGGTTAATCCGGCGTTTTTTTTGACGCCCAC 0.9342537804076265
+CGCCCGCTAACCACGCGGGCGTTGTTGTAT 0.0825688073394496
+TAGCGTGCCGCAGCACGCTATTTGTTGAG 0.19354838709677413
+CTCGGTACCAAATTTTCGAAAAAAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCC 0.9971714657464502
+CGAGTTTCAGAAAAGGGGGCCTGAGTGGCCCCTTTTTTCAAGCTGAC 0.9139414802065404
+AATGATCTGACGGGGGAACCTCCCCCGTTAAAAAAAT 0.21875
+CGCCCGCCGCAGCGGGCGTTTGTTGAG 0.37106918238993714
+CTCGGTACCAAATTCCAGAAAAGAGACGCTTAACAGCGTCTTTTTTCGTTTTGGTCC 0.995767374925929
+aaagcaaaaaCCCGCCGAAGCGGGtttttacgta 0.7058823529411764
+CGACGATGCCATTCGTGGCATCGTCGTTATCAAAA 0.0
+CGACGATACCATTCGTGGTATCGTCGTTTATTGTC 0.54337899543379
+CCCGCTTCGGCGGGTTTCAACAA 0.0
+tgcataaaaaAGCCAACCCGCAGGTTGGCttttctcgtt 0.9206978588421887
+GATCCAGCTTCGGCTGGATCTTATCAAAA 0.0
+caaacaatccAAAACGCCGCGTTCAGCGGCGTTTTttctgctttt 0.9511957052220595
+TCGGTTACCGCTTCGGCGGTAACCGATTTCAACAA 0.0
+aataaaaaaaGGGAGCACTGTATTCACAGCGCTCCCggttcgtttc 0.23664122137404586
+GTCAGTTTCACCTGTTTTACGTAAAAACCCGCTTCGGCGGGTTTTTACTTTTGG 0.993255092405234
+CTTTCTTTTGCAGCAGACTGGCAGGAGTGCGAGTCTGCTCGCATAATCA 0.4505494505494506
+TGCCGGGAGAACATCCCGGCATTTTGCAAC 0.28057553956834524
+aggaagaaaaATGCCCCGCTTACGCAGGGCAtccatttatt 0.6688741721854304
+GCGCGGGTAGGCCTGATAAGCGAAGCGCTATCAGGCATTTTTCCCTA 0.6996996996996997
+tcgcgctaaaAAAGGCCCCACTTTCGTGGAGCCTTTATTGTACGCTTTTTACTGTACGATTTCAGTCAAAtctaattaca 0.4623655913978495
+TAGCGTGCGAACAGCACGCTATTTTGCAAC 0.0
+AATAATTTCCGCGTCATGCTTCACGCCGCAGATGCGTTGGCTGCG 0.1869918699186992
+TCGGTTACATGTTCGCATGTAACCGATTTATTGTC 0.5555555555555556
+ATGCTTTAGTAAGGGCGCGACGTTTGCGCCCTTTGTAGGCCGG 0.48453608247422675
+tattttttggGCCGGCATGATGCCGGCttttttttat 0.8937300743889479
+caaaataacaAAACCCACCTTAAGGTGGGTTTcgccagagaa 0.3055555555555556
+tcatcagtctGAGCCTGCCATTGGCAGGCTCtggtgtcctt 0.646643109540636
+CGACGATGCCATTCGTGGCATCGTCGTTTTTTTTT 0.4219653179190751
+GCCGGAGCGGGAACACTGCTCCGGCTTGTTGTAT 0.0
+ACCTGTAAAAAAGGCAGCCATCTGGCTGCCTTAGTCTCCCCA 0.9759961593855017
+GATCCAGCTTCGGCTGGATCTTTCAACAA 0.0
+gttatcggtgCAGAGCCCGGGCGAACCGGGCTTTGttttgggtgt 0.3006993006993006
+AAAAAAAAAAAACACCCTAACGGGTGTTTTTTTGTTTCTGGTCTCCC 0.9964464660104474
+ACGGCTTCCCACGTCAGACCAAAACGCGCCAGGTATTTGCGTAGCCGATCCGCGTCATTGACGCTGGCTTTGCCCTGGCGCGAAACGTCAAAAAGCTG 0.6168582375478927
+ttcagaaaaaCCGCCGAGCATGTCGGCGGctttctgact 0.4350282485875706
+CCTGGTAAGACGCTAACCACGCGTCGCATCAGGTTGTTGTAT 0.0
+gttatgagtcAGGAAAAAAGGCGACAGAGTAATCTGTCGCCTTTTTTCTTtgcttgcttt 0.9901039089559623
+gattttatgaAAAACGGCCTGCGGGCCGTTTTgttttgtctg 0.7706422018348624
+CCCGCATGCCATTCGTGGCATGCGGGTTTCAACAA 0.0
+GCCGGAGCGGTAACCACCTGCTCCGGCTTGTTGTAT 0.0
+GTTATAAGACAAGGGAGCGATAATTCATCGCTCCCTTTTTCGTGCTT 0.9686323713927227
+GACGAACAATAAGGCCTCCCAAATCGGGGGGCCTTTTTATTTTTCAACAAAA 0.978401727861771
+TGAAAACGAAGGCCGGAGCATGCTCCGGCCTTTTTTATCTCTTACA 0.9724366041896362
+cctctacctgCTTCGGCCGATAAAGCCGACGataatactcc 0.9191592562651576
+CGCCCGCCGCAGCGGGCGTTTTTTGTA 0.6108949416342413
+ccaataaaaaTGGGGCCTTTCAGCCCCAtcaaacaatg 0.0
+GCCGGATCGGAGATCTGATCCGGCTTTTTTTTT 0.5
+CCAATTATTGAAGACGCTTAACAGCGTCTTTTTTTGTTTCTGGTCTCCC 0.9940539897728624
+CCAATTATTGAACACCCTAACGGGTGTTTTTTCGTTTTTGGTCTCCC 0.9886000911992704
+GATGGCTCCGATGGATAACCAGCGCCGCTTAAGTCAGGAA 0.9487179487179487
+cgtatcagacCAGGCAGGGTAAACAGACACTTCCCCTGCCTGcatccgatta 0.13043478260869557
+CCCGCATGCCATTCGTGGCATGCGGGTTTTTTTTT 0.41860465116279066
+CGACGATACCATTCGTGGTATCGTCGTTTTTTGGG 0.4923857868020305
+GAAAAATAAAAAGGCCTCCCAAATCGGGGGGCCTTTTTATTTTTCAACAAAA 0.9877345762296087
+CCAATTATTGAAGGCCTCCCAAATCGGGGGGCCTTTTTTTGTTTCAACAAAA 0.9828090080797662
+ACTGCGTTAAGTTATACCGCCTCGGTCAGTTCCGGCTGAGGCGTTTCCACTCCCTCCGCA 0.6062992125984252
+aaaagcaaaaGGGCCGCAGATGCGACCCttgtgtatca 0.0
+tccatacaaaACGGCCCGCCATAGGCGGGCCGgatttacatt 0.7732426303854876
+gtaatcggtaTTATGCCGGATGCTGGCGCATCCGGCATgggttttact 0.05660377358490576
+ccgacgtaaaAAGACGGTAAGTATCGCTTTCAGTCTTatgaatatcg 0.44134078212290506
+agaaattgagATTCATCCACTACTTGCATGGATGAGTaatgattaat 0.0
+GATCCAGCTTCGGCTGGATCTTAAAATAA 0.0
+GGCAGCATGCTGCCAGGTGATCCCCCTGGCCACCTCTTTT 0.966688874083944
+GACGAACAATAAGGCCTCCCTTCGGGGGGGCCTTTTTTATTGATAACAAAA 0.9907123618463824
+CGACGATGTTCGCATCGTCGTTTTCTCTG 0.8500749625187406
+tataaacaaaAAAACCCGACTTCACCAGTATTCTCTGGTTATGTCAGGTTTTgcctgcgaat 0.4350282485875706
+ATCGAACAAAGGGCCTGCGGGCCCTTTTTTCATTG 0.9604273842500989
+taacgtaaaaACCCGCTTCGGCGGGtttttttatg 0.9880597014925373
+CATTGTTTGATGGGGCTGAAAGGCCCCATTTTTATTGG 0.9211977935382191
+tcaggttcccGTAGGCATGATAAGACGCGTAAGCGTCGCATCAGGCaatgaatacc 0.3464052287581699
+AGCCCGCCTAATGAGCGGGCTTTTTTTT 0.8522895125553914
diff --git a/data/sequence_data/choe/test.txt b/data/sequence_data/choe/test.txt
new file mode 100644
index 0000000..4c6b97e
--- /dev/null
+++ b/data/sequence_data/choe/test.txt
@@ -0,0 +1,424 @@
+AGAGAAAACACATACGCGTAAATAGAAGCGCGTATGCACACGGAGGGAAAAAAGCCCGGGAGAGTCAATCTCATGTGAGACGACTGTCCGGGGTTTTTTTGTTTTCGGAGA 0.973
+TTCTGCTAATGTGAAATCAAATGTTATAAATCAAGCGGGTGCGGGTAAATTAAATTAAGAAAGTGAAAAACACAAAGGGTGCTAACCTTTGTGTTTTTTAATTAATTAAAA 0.977
+AGCTGGATTTTTGGCTCGTCAAATGGAACAGTAGGTCTTATTCCTTTCTTCGAAAATAGGTATGTAAAGAACAGCTCTCCTTGGGACGCTGTTCTTTTTCATGCGTGCCGA 0.9790000000000001
+AAGTCTTTTTCGGAGGATTAACAGGTATTTTACTGACATTGGTACTCGCTTACTTTTTCATGTAAAAAAAACGCTCCTGCTTTCGCTGGAGCGTTTTATTCTTTCACCGTT 0.9359999999999999
+GCTTTCCTCCTCTGCCGCTTCAGGCGTGCCGCAGGTGGAGAATCTGGAAAACAAAGGCCAGTAATTCGACATCAACCCTGCCCTTCAGGGGTGGGGTTACCTTGCTTATCC 0.9059999999999999
+AAACATAAGACCTGCTTCGTCTTACTTTACCATTTTTCAAATTATATTTGAAAGCAATAACCATCGTTAACCCGGACGTCATACAGTTCGGGTTTCGATTTTTCCATAAAA 0.91
+GGAAATGCTGGCAGCTTACGCGGGTTAATCCCTGTTACGTTTGAATGTAAGCGCATAATCAATCGCGGCCGCGTTAGTACTCACGACGTGGCTGCGTTTTTTCACGGTTAA 0.963
+AGCCTGCGCATCAAAGCAACCGTCTGCCGCTTTCAAAAGTATCAACTTGGCTGTAAGGATATGAAAAACCTTAGTCCGAAATCCGGACTAAGGTTTTTTTATACAATCGCC 0.9990000000000001
+CAATGAGCGCTTCGAGCACTACACGGACGAAAAAATCAAATATTTAGAGCAGATTTTTGAAAAAACGACAAAGCAGCACTGATTACAGTGCTGCTTTTTTTATCCCTGTTT 0.9990000000000001
+TATGGGATATGAATTCATGGGTGCTGATGCGTCCGGATATCATTTGTTTGAGAAAGAGATTACGGCAGAATAAGCGTCCTTTGCAGGGGGCTTTTTTGTCTTTTTCTAAAA 0.8290000000000001
+AAATGAACGTGTTGAAGGTCTTCGGGATGCCACTCGCGCCGATTATGACAGGTTATTCGAGCAAATGAACACGCAGGAGAATTAATTTCTCCTGCTTTTTTCATATGAATT 0.975
+AGCGGAGCGTGCGGCAGCTGAGATTGAAGCGTTTATGAAAAAATCCGCTGTCCCGCAGTAAAAACATAAAAACCGAAATCAATTTGATTTCGGTTTTCTGTTTAAATATTT 0.6409999999999999
+CCTCTCATTGCCGATCCGAAAGAGCTTCGCAGGCAACGAGCAGAAAAATCAGCGAATAAATAACAGACAGAAAAAAGGTGCTCATTGAGCACCTTTTTTAACGTCTTTGAG 0.612
+TTACACTTTGTTTAAAAGCTCTGTGAAGAGTGGAATATTTTTACGTGAATGCAGAAGGTGTGGCATGAAAAAGAGCATTTAGTGTAATGCTCTTTTTGTTTAAAACACTTC 0.752
+GTTGGACGAGCTTGAACATCCCGAACACAAAAATGAACGCTTCACAGTGGTAAGCGAAGCGGAATAATAAAAAACCCGGAGCCAGCTCCGGGTTTTTCTCATTAATAAGTG 1.0
+ATCGAGCACACGGATGCCATTCACGTTTCTTATCCAACCTTCTTCGAGCATTTAAATAAGCTTTCGAAAAAATCCTGAAGTTTTACTTCAGGATTTTTTATGCAGATCATA 0.9620000000000001
+ATTGGCGCCAGCGCAGGCGTTTCTATCGTAAAAGGAGAAAATGCATCAGGCGGAGACAACTATTAAGAGCTGACGGAAGGCAGACTGCTTTCCGTTTTCTGAGGAAACAGT 0.424
+CCTCTATTTACAGCTGGGATGAAGCTGATCGTATTTTAGCTGATCTGGAAACATTATGTAAAGAACACGAGTAGAGGGGAGACCCTCTCTCTTAGTGTTCATCTGTGACGG 0.727
+AGCCGAAGCTGGATGAATAAAACCGAAACTGGATAGATAACTACATGGCTTTTGCCTCATTAATTGAACGCCAGCGCATTCGCCTGCTGCTGGCGTTATTATTCGGTGCCT 0.332
+CCAGCCTGGCAGAACTGCTGAACGCAGGTCTGGGCGGTTCTGATAACGAGTAATCGTTAATCCGCAAATAACGTAAAAACCCGCTTCGGCGGGTTTTTTTATGGGGGGAGT 0.992
+ATTTTTATGAAAAAGCGGTCAGCATGAGAGAGATGATTCAAAGGAACGATTGTTTATATGAAGTATGAGACAAAACCATCTGCTGGCAGATGGTTTTTTTTTATGCAAAAA 0.997
+TATTATCCCACCGTGCGGGGCTGCACTTGGACGAGGAAAGGCTTAGAGATCAAGCCTTAACGAACTAAGACCCCCGCACCGAAAGGTCCGGGGGTTTTTTTTGACCTTAAA 0.7120000000000001
+ATCACAGTTACTACTTCATCGCCTCTTTTATAGAGGATCACCTGCGCTTCCATGCGCAGTATTTACTGAAGTGAAAGTCCGCCCGGTTCGCCGGGCATCTTCTCATCAGAA 0.736
+AGAAACTGGTACTTAAAAGGCATTGAATATAAAGATGGATGGTATGTAGGGAAGTACCAAGCAAATTATTGATTTATCGAGGGGGTGTTCCCCCCTCTTTCATTTTTAGGA 0.951
+TGGATTTTACCTACCGCCACCCCATCTTCCGGTTAGAAATCAAAATTCCGTTTCAGAAATAAAAAAACCTTGAAAAGCCTGGCTTTTCAAGGTTTTTTCCATTATGAGGAT 0.953
+GAAATTCCTTTACTGGCAGATAATAAAATACCTATCCGTGATGAATTGCTTTTGGTCAAGGAGTTACAATAAAAGGCGCTCCTCTAAGGAAGCGCCTTTTGATCATGCGAT 0.32299999999999995
+AACAAAAGCTACAGTTAAAAGATGAGATGCTCAAAATCCTGCAGCAGGAGAGCGTCAAAGAGGTGTAAACTTTCCTAAGCCGCCAGCCAGGCGGCTTTTTTAACAACTGCA 0.738
+TGGCCAGAAACCCGCGCGGCACTGGCGAACATGGTGCAGGCGGCGCAGAACTTGCGTCGGGGGTAAAATCCAAACCGGGTGGTAATACCACCCGGTCTTTTCTCATTACAG 0.82
+AAATTGTCGGTGAAGGCAATCCAAAATTAAAAGACGTTTATGAGGAAATGGAGAAGCATGGGTATACAGAAAACCGCTGACTTGATCAGCGGTTCTTCTCTATCATTAACC 0.5710000000000001
+GCACGTCATAAGGCTAACCTGACTGCACAGATCAACAAACTGGCTTAATCGCCAATTTGCTGAAGCTTTGTGAAAAAGCCCGCGCAAGCGGGTTTTTTTATGCCTGCTGCT 0.985
+AACGTTTTCACACCCTTTCCGGCGGTAAACCGCAGGTTGAAGGTGCTGAAGACTACACCGATTCTGACGATTAATAAAAAGGGCGAAATGCCCTTTTTTTATGTCAGTAGT 0.8759999999999999
+GCAGTCGAGTCGCTTCACGATGCATTTGAGCTTTCAAAACACCCTTCAGCTGTGTAATGACAATCAAAAAGGCGGGACTATGCAGTCACCGCCTTTTTGATTACACTGGGT 0.927
+TCCGGCCTACAGTTCAATGATAGTTCAACAGATTTCGAATATTCTGAAGCAAACTTGAACTTATCATCAGGCGAAGGCCTCTCCTCGCGAGAGGCTTTTTTATTTGATGGG 0.991
+GCCGCGGTCTTTCAGAATATCCTTGAGAAAAAATACGCTCATTATGTTTAAACAAACGTTTCATTAAAAAAAGCCGTTCCCCATGGGACGGCTTTTTTTCTATTGATTCAG 1.0
+ACTGAAATTAAAGTTGCTGCAGATCGGGTAGGGGCATAGCTTAGATAATTGGAAAAGAGGAAAAAAGCTTAATCTTTTTTCGAAGGTTAAGCTTTTTCTTTTATTTATAAA 0.818
+GCAAAGGCTATCAAGCGATGGCTGAAGCCGTTCACAAGCTAGGCTATAAAGAATTATCAGTTTCATAGAAAACGCGCCTCATGACAGGCGCGTTTTTTATGTGTGATCGAA 0.9890000000000001
+TGGACAAAATTGACGCATTAAATAAAGATGAGCGTGTCGGTCCAAATCCTGATGAGCTTCTGTTTTAATCAAAAAACTCCCCGTTATGGGGAGTTTTTTTAGTGCGTTTTT 1.0
+GAAATCACTAACGGTGCCAAAGGCCCTTCTGCTGCAAACGTAATCGCTCTGTAAGATACGTCAGCAAGAATTCAAAACCCGCTTAATCAGCGGGTTTTTTTTGGTCTTTAG 0.998
+GCCTGGTCTTTACTGTGTTGCTGGCAATCCCGTTGGGAATTTATTTCCTTGGCGGCGAAGAGCAGTAAGTAAAAAATAGGCCCGATAACTCGGGCCTTGTCAGTTATTGAA 0.792
+CGGCCAATTTAAATCACTCAACAAAGAAGATGTGCTGTCAATTTTGAAAGCATCACTATAAAAAAAGGGGAAATAGCCGTTTGGCTGCTTCCCTTTTTCTTTTTTGTCAAC 0.92
+AATGCGATGGATATTGCTGAAATCCGCAACAACGCGTCTCCGGCAGATCCGCAAGTTCATTAATGAGTATGTCCGGCAGAGAGGGCTCTGCCGGATTTTACGACTAATACA 0.7879999999999999
+CGGCAACACATCATGCCTCTGCCGCTCCTGCGCGTCCGCAACCTGTTGAGTAATAATTAGCTCAAAGTAATCAAGCCCTGGTAACTGCCAGGGCTTTTTTATTTCATCTTT 0.9590000000000001
+CGGCAGACATTGAATTGTCCTTTTCAAAAGCTTATATACCTGCCAATGAAAAACAATTACGTGCATAAAAAAGCGCAGTCGTGAAGACTGCGCTTTTCTGTTACTGTTACG 0.9790000000000001
+TAAAGTCAGAGCCGTTCACCTGGCTGATTTGCTATTAGAAGCAGCCGGGCACAAAACATCATGAGAAAGCCCAAAACAGACATTGTTTTGGGCTTTTGTGCGTTATTCCAT 0.948
+GTCAATCCAGTTGCTGAATTATGCTGTGGCAAGGCGGACAGCCGCAGTGAAAGCATCTCCGCCTGTACACTAAAACAAAGCCGCCTTGGCTTTGTTTTTTTATTTTCTCCT 0.888
+CAGATCATAGCTCACACCATGATGGATGCAGCAGTGACGGAGGTTTCAGCGATTCCGGCTGTGGCGGCGGAGGGGGCGGCGATTAAACGCCGCCTTTTTTTATTTCATTGA 0.8640000000000001
+AGACGCACCGTGGCAAAATATCGCGATCAAATGAATATTCCGTCATCGGCAGCGAGAAAGCGATATAAATAAAATCCTCCCTAGACGGGAGGATTTTTTTAAGGAATCATC 0.905
+GAGATCGAAAAAAATAAGAGCTTTGAAGAACTCCTAAATGAAAGCCAAATGGATTGGCATCAATATAAATAAACCAGCACCCGTACAGGTGCTGGTTTTTCTGCTATGAGC 0.917
+CATGTTTGCGATGCCAGCTCTTAACGTTCCGGCTGTACCGGCAATTCCGCAGCAGTAATTCACGGCCAAAACGCCGGAGAATTTTCACTCCGGCGTTTTCATCTGAAAACA 0.345
+AGGTGTCCAGACTTGAAAAAGCGGCTATCAAACAAATGAATAAAAATATTCATCAATAATGAAAAGCCTTTAAAACGATGTTGTTTTAAAGGCTTTTCTATTGATTATGGA 1.0
+TTTTTTGATGAAGAGGAATCAGGCAAGGTTACAGCTGTTTGGCGCCTTCATACAGAACAATAATAAAAAACCCGCTCATACTATATGAGCGGGTTTCGTTTGTTTTTTATC 1.0
+TGAATTTGATGAAGCAAAAAGCATAGAGGCTGTTGAAGGCATGAAAAAAATGAAAACAGCAGTCTGAAAAAAGAACGGCCCATCCATGGGCCGTTTTTTTAATTGTTTAAG 0.9890000000000001
+AATATACGGAAAGCAGACACCGTCTCGACAAATTCCGATTTGTTGATTTTGCGCGGCGGGGGAAATGAGAGAGGCGCCTGCCTGCGGCAGCGCGCTTTTTTGTTTGGTATC 0.8290000000000001
+CCCGCGTCCACTGCAATTTATTATGGCTTCCATTATTTTAGTCAGCGGTTTAAAATTGATTTAATGAAGAAGGCTATCCGCTTGAAGGATAGCCTTTTCTTATTATAACGT 0.9390000000000001
+TAAGCGTGATTTATTAAAATCACTACTTGAAGCGAAAGGGATGAAGGTAAAACTCGCAGGCGGTTAACATAAAAAGCCACGGATATATCCGTGGCTTTCGAATATTTTACT 0.7170000000000001
+CAGTTGCCGGAAAATAATTGTGAATATAGATCGTGTATGCATCTAGCTTACATACACTTTATTTCTTCACAGAAAAGCCCCTTTCTAAGGGGCTTTTCATATTTCAAGAGC 0.9890000000000001
+CACGGCTATACGGTGCTGGATATTCAGCAAGACGGGCCGACCATTCGTTATTTAATTCAGAAGTAATCCCTCATTCCCGCTGTGACCCACAGCGGGAACATCGTTACCTTT 0.8109999999999999
+GCCCATGGAAAACCAACCACGCTCGTTGTGCTTTCTTCTTCTAGCTGCCATCCCGCTTTTTGATAACAAAAAACCCGCAGCTATTCTGCGGGTTTTCCTCACTTATTTTTG 0.877
+CGGATTGAAACAAGTGAAGGAAAGGGCTTTAAGGCTGATATTGAAATCGAATTGTAATGGATTTATAACGGAAACGACTTGGCACAGGCCAAGTCTTTTTTATAAAATGGA 0.7
+AGCTTGATATGGATGATTACAGAGCAGCAGAATTAGTCGAAGCATTCATCAAAGAATAAAACACCAAAAGGAAATAGCCATGACGGCTATTTCCTTTTTTATTTGAAAATG 0.997
+TCAGCAGCGGGTTGCGCTCCCTTAATGTGCCTCGCCATATAAATTGAATGGTGCAGGGAGCGCGCAGGGGGCGGCCAATCGCCGCCGCCCCCTGCTGTCCCGGCCTTCGGG 0.44299999999999995
+GCCATACTATTCGCGACGTTATTCTCTTCCCGGCGATGCGCCCACAGAAATAAATTTCACTTTAATGAACGAAGCAGTCAGGCGACTGCTTCGTTCATCGTTCCGCAAATC 0.9440000000000001
+ATCTGGGATCGCGCGGCAGGTCGTCAGGTGACCTCCAGCGCTCACTAAATCACTGAACATTTGTTTTAACCACGGGGCTGCGATGCCCCGTGGTTTTTTATTGTGTTGATG 0.655
+TGGCTAAAGAATGTAATAGTACAGATAAAGAAGTCTTTAAAAAAATTTAAACGGTAACGATTCATAACCTTGATTGGAAAAAATGCCTTTCAAGGTTTTTAATTACAATAA 0.958
+AAGTATGTTGAAGAGATTGAACAGAGGTGTAAACAAAACATTTTGGCGATTGAAATCCAGATGAAAATCAAATAGGAGAGGCGAATGCCTCTCCTCTATTTGTCATCTCAT 0.968
+AGTGATGAAGAACACAACCGTCAAAGGGAAACAGCTGAAGGTGAATAAAGCGAATAAATGATGAATGACCTGCTCCCAGTTAAAGGGGCAGGTCATTTTGCTGCTGGCTGA 0.997
+TATCGCTATGATGACTACGAGCTGAGGGATTTAGAAGAAGTAAAGCATGATGAAAGAGTCACAGTCGAAGGGAAGGTTCATTCAGAGCCTTCTCTTACCTATTACGGAAAA 0.39899999999999997
+ATTCAGCGCAGTGAGCTGGAAAAGCAGGCGATGGAAACCGTCATTAACGCACTGGTAAAATGACCATTCAGGATGAGGCGGTAAGCTTCATCCTGATATTCTTGCTTCAGT 0.89
+AAGCGTGACAACATTTGTTGTAAATCGTTAAGAGCACAAAGACACACATAAATAATAGAGTGTCTGAATTGGCGATTTTCCGATTGGGAAATCGCTTTTTTATTTTGTTGC 0.977
+AAACCAATTTACTGTTCTGCGCCGCGGGAAGAAAAAATACTTCCTTGTGACGTATAAATAAGAAAAAGATCCTTTGCCACTGAAGGCAAAGGATCTTTTTGTTTACCGCAT 0.992
+TCTAAAAAATAGATATGATGCTTGTTTTATCGCTTCAAAATAAACGATGACAACTAGTAAATGCCGCCTTGACCTCTTGTTTAATCAGGCGGCTTTACTTTTATACATAGA 0.961
+CGAATTGTCGGCACATCGAAGTTTGTCTTTTTCCCGTTTAACGAAATGCGTCAAACAAAATAAAAACGCCTTGCTGGCCTAGGACAGCAGGCGTTTTTATTTTGAAAAAGA 0.958
+TCCTCGTGACAATCAAAAATTTACTGGAAGATCCTGAACAGCTTTTATTAGAAGGATAATAAAAAAGGGTACATCACGATAAAGTGATGTACCCTTTTTGATGCATATTTA 0.998
+GGAAATGGAAGATAACGGAGAGCTTGAGAAATTGAAGAAAAAATGGTTCACTGGCGAGAAGTAAAAAAAAGCGGCTCAACTTTTTCGTTGAGCCTTTTTATTGAATAGGAA 0.529
+TTATCCGATTGTGCAAACCATTTTAAGGCGTTCAAGCTTTATGGAAGCTGCTAAATAATTGTCACACAAAACCTCTTCCGCTTCCGGGAGAGGTTTTTTTGAACAGAGCGC 0.9420000000000001
+CATTCAACAAGCACTTACGAATGCAGAATATTGGCATGGTGTTATGGATGTAATTATTAAGAAAGCAAACAAAGTCGCTCAATAACTGAGTGGCTTTTTTCTTTGTCCTCT 0.998
+CCTTATTTGTCTTTGGATGGTTTACCGTGATGACCGTAATAAACAGCGGGTATCCAACCGCACATTAAAACCTGTATCCGATCGGATACAGGTTTATTTTTATGGCTGTAA 0.988
+GAAAAAAATGCCCAAACTGTCAGCAAAGCATTATATGCGATACGTTCTGAACAGCAAAGAACAAAGTAAAAAACGACCTTTACGAAGAGGTCGTTTTTGATTTTTTAATCA 0.988
+TAAAGCACAGCAAATCAAAGAAGACGCGATTGCGCGTGCGAAAGAAGCAGGAAAAACATTCTAATGAAAAAGCCTCCCCTTATTTGGGGAGGCTTTTGTTTTAGTGCTCCA 0.998
+CCACTATGGAAGTGTTCGAAAAGAGGATTGTCTTTTCTGTCTGTCATTCTTAAATAAAAAATAGGGAAAAGGCTTCCGCATAAGACGGGAGCCTTTTTCAAAGGTACTGAA 0.865
+CTAAAGGCCGCGCTCGTCTGACCGTTTCTAAGTAATAAAGCTAACCCCTGAGTGGTTAAGCTCGCATTTCCCAGGGAGTTACGCTTGTTAACTCCCAGTCAATTCACATTC 0.518
+GGTACTTATATCAAGGTACTAAACAACAAATTCCTAATTGAATTAGAAAATCTAAAATCTCATTAATCACAAAAAGAACCCTTTTTGAGGGTTCTTTTTTTATTTCAAATA 1.0
+ATTTCCAGAAGGGCTTTGACGCTATGCGTTCGGGCCAGTCCGGGAAAGTTATTCTGAGCTGGGATTAACACGAACAAGGGCTGGTATTCCAGCCCTTTTATCTGAGGATAA 0.9570000000000001
+GACAGCAAACAAAATGCTGAAAAAAATGGAGAATGCCATGGGTCTTGGAAGAAAAAGACGCTAATCAAAAAACCGCTCTTTGCAAAGAGCGGTTTTTTTCAGTTGACCTTT 0.991
+TCCCTGTCCTCGGCATCCTTGCCTTCCTATTGCCAAGTGACCAGAAGCTGAGAGAATGGCATAGCTGAAAAAACCCCTGCCAGGCGGCAGGGGGTTTTTTAATCCAGCTGG 0.988
+CACTGAGATTTACAACCTAAAAGGCGGCTTTAAAAAATGGGGCGGAAAGATTAAAGCGAAGAAATAAAGCAAACAGCTGTCTGGTAGACAGCTGTTTTTATTTATCTTTCT 0.981
+TCTTATCAAGCGCTCAAAAAGATGAAATCATCAATGTTAACAAAAAGAAACAAAAAAACCGCTGACTCGGCTCCAAATGAGCAAAGTCCAGCGGTTTTTTAATGCACCTTT 0.884
+CTTCATAAGGCATCTATCTCAATTGAAAATGACAAAACGGGTGTAACATACCGCATAGCAGTGCCAAAATAGACTGTAGATGTTTTGCAGTCTATTTTTTTATGTGAAAGA 0.9840000000000001
+TATTAATCATCGTTGGGACATCTTTCTTTGGTGGCTATTAAGAACACACCTTACCTCATATCCATCAGACGCCATAAGAAATCTTTATGGCGTCTGTTTTTTATTAGATTT 0.619
+CTGCTGACGGTATCTACGGGCCTGCGACGAAAGAGAAGATCGCAGCGCAATTAAGCTGATCAAAGACCATAAAAATCCCGGAGCCGCTCCGGGATTTATTTTTTCTTCTTC 0.765
+ATATTGTGACAGTTTGGGTTGACGGCGTAGATGTACAAAAAGGCAGAGTATCGCTGTCTATGGTAAAATAAAAGCACTGCTTACGAGCAGTGTTTTTTCCTATAGAAATAC 0.9079999999999999
+CACAATCAATGATGATGTGAATGCTCCTCTTCTGACTGATTGCTGGCAGCATCGGCGTCTCCGACTTGGACTTTTAAGGTCGGCATGCTATGCTGTTTTTTTGCTGTGACA 0.9159999999999999
+TCGCTGAGTGTGAATACCGCTGCCGCTGGCGGTAACGCCAGCTTAATGACTATAGGTTAAACAGGTAGCCGGAGGATGTTACAACCTCCTCCGGCATCTTTAACGTGGTCG 0.746
+GGCAGCTGTTAACGTAACAGCTATCTGATCGAATCCACTGATCTGAAGTGTGAATACGCTTCAATCTCGCTATAAAGCCTCGTCGAATGCGAGGCTTTTTACTATGCTTTA 0.9640000000000001
+AAGATTTAGCCAGATCATGTGATGCCGCATTTGCAGAAATTGTATAGATGCAGATATAGGGGAACGAAAAAGCTTAGTCATATCGATTAAGCTTTTTCCGCATCCCTTTCA 0.726
+ACAAGCAGAACACCTGATGATTTGGAAGCATTTAACCGCGAATCTTTAAACTTGTTAAAATAACAAGAAGGCACAGACTGTTCGGGTCTGTGCCTTTTTTAAAATTAAGAC 0.968
+TTTGGCACCGGATGCAGAAAAATCTGCCGGGTGATTTAGCCATTCAGGGGCGATAATCCCTTCCGTTTAAAGAGCAAACCCCTCAAACGAGGGGTTTTTTGTTGTTTTTAC 0.961
+GACTGCGATTCAGTCTGCACAGCAGCAGTAATCTCGTCATCATCCGCAGCTTTGCGCTGCGGATATCTGAACCGGAAATAATCACTATTTCCGGTTTTTTATTCTCTTAAT 0.986
+AAGCAGCATTCTGGGCAAAATAAAATCAAATAGCCTACGCAATGTAGGCTTAATGATTAGTCTGAGTTATATTACGGGGCGTTTTTTTAATGCCCCGCTTTACATATATTT 0.9590000000000001
+AAAATATAAAAGTAAAATTTAGAGATGATATAAAAACATTCGGTGCAAAGCATGTTGCAGCGATGAACAAAAGAGCAGTCGTTTATGCTGCTCTTTTCTATTCGTATGTTC 0.47100000000000003
+TTTACGAAGGGCTGTCTATCCTTTCAAGAGCATTAGAGAATGCGAAAAAAGAATAAATCAGTAAGTCTGTCATCCGCAAACTGCGGGAGCAGGCTTTTTTTATTTGACATT 1.0
+CATTATCTGCTATGTTACTGGCCATTTTTGCTTATTATACTAGCTAACTTTAATACAAAACTGCATGAACATAAGTTAAAATATGCTCATGCAGTTTTTTTAGTTTATCTA 0.894
+GCTGCACGCAAGTTTCGTGAGGAAATTCAAACGTATAAAACAGGAAGATAATCGTTCATTTTCCTTCAAAGGGCTGTTCTGTAAAAGGACAGCTTTTTTGCTGTCCATCAA 0.99
+CTCTTGAAAGCAAAAGAAACAGCTACATCTTAAAACCCTCTGTTAAGAGGGGACAGCTTGTCGGCAAGTCCATCCTTGGGCTTAGCAGGCAAGCTTTTTCTTTACGGCATA 0.9520000000000001
+ATGGAGAAAAAATGTCTTTTTAAGAGGATTAGAAAGTCTCCCTGTTTCACTTTCAAAATAACATTCAAAACGCCCCCTTTTAAAAGAGGGGGCGTTTGTGTTTTCTCAGCG 0.9520000000000001
+GAAGAGCCTCAACAATTATTAGAAACATTAGCTGACAATTTACCTGAACAGGAATAACCTGCACATCCAAGCCGAAGGAGGAGATATCCTCCTTCTTGTTTACCTTTTTAT 0.8640000000000001
+ATACAAGCTTGACCAGGATCAATGGTTCCGCATTTTTACAGCCGTACAGGGTTACGATATTCCATAAAAAGCATCAGTTTACCAGCTGATGCTTTTTCAATATTGTCACAC 0.92
+CCTTTCTGAAGATGTAATGAAGACGGTGGATGAAATTGTTGAGTCAACAGCAAAATAATTCAAGTATGAGCTGGGTCATTGTAAATGATCCGGCTTTTTCTTTTTCTCATC 1.0
+CCTTTTCAACGTCTAATTAATTTATTGTCTCATGAGGTTTCGCTAAATCTCATGAAGAGCGCAAAAGTATATAAAATCCACGCAATTGCGTGGATTTTTCATTTCACCGAG 0.987
+CGCAATTGGTATTCAGACAGCTTTTGACAAGTTATAAGTTCTAGTAAATACTAGATAAGGGGATTAATGACATAAAATAGGTTGTTAATTCTCTTATTTTTGTTCAGCTAA 0.511
+TAAATCCGATAACCTGAAAACCGAGATGGATGAGTACATCCGTAACCACTAATCCGTAAGACGTTGGGGAGACTAAGGCAGCCAGATGGCTGCCTTTTTTACAGGTGTTAT 0.9790000000000001
+TGGAGCAGGAAGCATCGCGTAAAAACGCATTTGCAACTGTCGGCGCTTTTCCAGTATGTTGCTAAAGATTTTATGAAAAACGGCCTGCGGGCCGTTTTGTTTTGTCTGGAT 0.8220000000000001
+CCGCTGGCAAAGTATCCATTCAATAACCGAAAGAAGGACCAGCATGAACGGACAAACTCCGGCTCGGCACTACTACAAGAAGCTTGTGCCGAGCCTTATTCTCATTTTGAA 0.527
+TCTGAGATGACGACGAAGGAAATGCTTGAAAATTTGATTTCTCATATTAAAAATGGATATGCAACATAAAAATCCCGCACGCCTTTAGCGGGATTTTTTTATGCGAGAGAA 0.958
+GGTATTTTGCCTGAAGATGAGGATGATAAAGAATTTGTAATTAGTTACCTCGGTCTATAATTAAAAAATGGCTCAGCCCTACTCTGCTGAGCTATTTTTTATAAACCAATC 0.9740000000000001
+AAAAACAAAACGGGCAAAACAGCAGTAGAGCTCGTAGAATCCCTGTTAGGGAAGAAGCTGCTGTAATAAGAAAACCCCCGCACCCGCGGGGGTTTCAGCGTGTCGACAAAC 0.7909999999999999
+GCCGCGTTGTGACTCTGGAAGATAGCCGCAAAGCCCTGGTCGGGAATTTAAAATAATCCTCTATTTTAAGACGGCATAATACTTTTTTATGCCGTTTAATTCTTCGTTTTG 0.8190000000000001
+CGCTTTCGTCCCATTCGGAAATTTTTTGTACGACCGCGGATTAAGGAACTATAAATAAGGAAGCGCAAAAAGGCTGGATCTTTATGATCCAGCCTTTCTTATTAAAACCAC 1.0
+TTAAAGTATTTGAGATATTTTTCGTAAACATTGAGTAAACTGGTGATACAGAAATAGGACATGGAAAATCCCGAGCCGAAACAAGACTCGGGGTTTTTCATTTTTAGGGGG 0.66
+TAGTTATCTATGCTCCTGGGGCTTCACTCACTTGCCGCCTTCCTGCAACGCGAATCATTTAGCGGAAAAATCCTGGGGCTGCCAACTGGCGGCCCTTTTACAAAGAAGGAT 0.425
+GCACTGTGTTCGTGGCAACAACTATTGCAAATGCACCTACACACCAAATTGAAGTTGCACAACGAGGAATGATTTAACCGCCGTCCATCGGCGGTTTTTTCGTCCCCTCTT 0.9470000000000001
+CCACGGCGGGTACGCTCCGTCAGTCCATCGAGAATCGCTAACGCCTTGATCAACCAATAAACCCCGTAAATTGTCCGGCATTTCGTGAGGAATGCCGACATTTATGCTCGC 0.915
+CGCTGAAGACCTTGAAAAGGCATTTCCGGGACTGCTTGAAGCCGTGCTGAATGTAGACCAGGACCGCTGGTGAATCAATCCCCTGTAACGGGGATTTTTTTATGTCCGTAA 0.976
+TGAACTGGAGCTGAATGAGGATACTGTTTTGATTACAGAGTTGTTTGTGCTTGTTAAAGATTAAAAAAGCCTGCGGGGCAAGAACCCCGCAGGCTTTTCATTAACCAGAAA 0.997
+ACGTGTATTTGCACTGGAAAACCGTTCCTTTTATAAACCGACATTTCATAAATAACTTAAAAAGGACTGATGCTGACATATTCAGCTCAGTCCTTTTTGATGCGTCTTTCC 0.98
+TCAGGACGTTCATCTGAAAAGGTTGTTAATACTGTATTTAAAGCTGAATAATTTAGGTTATTTTATAAAATGTATAGCTGTCGATTTTTCGGCAGCTTTTTAGATACTTGT 0.8340000000000001
+TTGTGTTTATCATCATGATCATCCAGCACCTTTCCTACGTCATCTCTTTCAAGAAAAACGAAAAAAACTCCGGCGCGCTGTAATCGGCCGGAGTTTTTTCTTACCAGCTTG 0.856
+CCGTCTGGTATGCAGGTTGTGACTGCAAAATAGTGACCTCGCGCAAAATGCACTAATAAAAACAGGGCTGGCAGGCTAATTCGGGCTTGCCAGCCTTTTTTTGTCTCGCTA 0.519
+ACTCACTTCGTACGCTACAGCGAAATGAAGTTCCCGCAGAACGATAAGAAATAAGTTTCCTCCCTTCCTTGCTAAGCCCTCTCAACCGAGAGGGCTTTTTCAATTCCATTT 0.973
+CAGGCTACGCATCCGCACCGACAGATTACGGGCTCTACCTGTTTATGACAAAAACTGAAAAAGCATAAAAAAGCGGCTCCCTAAATGGAGCCGCTTTTTCGGGAAATAGTC 1.0
+ATATAGACAGGCTTATCAGCATGCTTGATGACCTGGAAGCCAAATACGAACGTTTTAAAAAAGATTGGGAATAAAACCGCGTGCCCGCCGCGGTTTTTTTATTGGCATAAA 0.9520000000000001
+GCAGTAGGTCGGAGTAGACGCGCCAGCGTCGCATCCGACGTTACGCGCCAATGCGGCCTCCGGCACTAACGCAAAAGGGAACCTGATGGTTCCCTTTTTCACATCATTGAC 0.988
+CAGGAGTGGAGTATTATTCTGTCGGACGGAAGGCGGTTGTTCCGTCAGGTGCAATTCAATAGATGAAAAAGAAAGGCTGGTTGCGCACCAGTCTTTTTTTCATCTATTGCG 0.972
+GGAACAGCAGCGCGACGTTATCGCTCGTACCTTTACTGAAAGCCTGTAAGGCTTAAGTAGCAAGTTACTAAGCGGAAGAGGGCGACCTCTTCCGCTTTTTTTCGTTAATAG 0.983
+CTCTTATCATCATTAACGAAAATGTTTGAACAAATTCACGGCGGCACCCATACAGTACATTGGCTTACGTAAAAGAACACGAATACCGTGTTCTTTTTCACATAAAAAAAC 0.9259999999999999
+GGTCATCCAAGATAATGATTTAACGCTTGAAGAGTACTTTGAAAAAGTGAAGAAAATTTAAAATGAAAAGCCCGCTTACACTAGATAAGCGGGCTTCATTGTGTCTGGTGA 1.0
+GCATCTCTCCGGCAACTTTGACGAAATATATGAAATATATTGATGATATTCTAGAATAGTAAATTTTAAAGAGTTGATTTATTTAATCGACTCTTTTTTTGTTAGATAGAT 0.96
+TGTCGGGATACTTGGCAAGAAGTGTGAAAATGCCGGATAAGAGGAACGAAAAAGGATTGAATTGATCAGTAAAAAAGGACCGTTAGCGGGTCCTTTTTTATTTCCAATGGG 0.9159999999999999
+GTCTATGAAATCAGCAATACGATCAACATCCGCACAGGCGAAGAAGGACCTGAAGCACTTTAATATCGGTACGAGATTCGGACACTCCGGATCTCTTTTTTTGTGCACAGA 1.0
+CCCTTTCCTCTATGGCGGAAGAGCTTCGGGATATGACCAAACGATTTAAAATTGAATAATAAGCCTTAACACCCAAGCTTGTTGCGCTTGGGTGTTTTTTTTAGTTTTTTT 0.998
+GTATGGTAAGCTCATTATGGACGGTAATGCCGTAGAAACGATACAAACTCATTTTTCATAAGAATGCAACGGAAAACTGCTGATTTCAGCAGTTTTTTTTCGTTAAAAAAC 1.0
+GCGTAATTCTGGTACGCCTGGCAGATATTTTGCCTGCCGGGCGAACAGTGTGATACATTGCTGTGTCGGGTAAGCCATTACGCTATCCGACACAGTGTTAAATCCTCGCTT 0.466
+CCCAATTAATCTACGCTGTGAACTGCTGATTCCGATCCGTCGTTAACGCTGCAGCTCATCTAATGCAGGGGCGTCCAGATGCGAGATGTCCCCTGCGGTTTCAACGACCCA 0.335
+GTGATGTCTTGTTTACATTATGTTCTATTCGTCATTAACCTCTTGAGCGACAGAGAGGAGTGGGGCATTAACGTTTATGACGGGGAGAGTCCCCGTCGGTTGACATTTACT 0.698
+AAAAGAATCATTCAGCCCAAGTGAAATGCAGGCGATTGCTCAAGAATTAGCCTCGCTTCGTAAATAATGGAGACTGGCCGGAAACTCGGCGAGTCTTTTTTATCATTTCCC 0.607
+GATTTATGGCAAGCCGGAAGCGCAACAGGCATCTGGTGAATAATTAACCATTCCCATACAATTAGTTAACCAAAAAGGGGGGATTTTATCTCCCCTTTAATTTTTCCTCTA 0.912
+ACCTGAAACAGACGTACTGACTGAGCAGGATCAAAATCCGTTTTTAAATGGGTTTTCATTGTAAAAAAAGAGACAAACCGATAAGGTTTGTCTCTTTCTGCATTTAATGGC 0.997
+TAATCGGCTTGGTAATCTATTTCCTGTATTCAAGAAAGCATTCAAAATTAAATCAATAACCTTTTGATAAAGAGAGCGGCCATACAGGCCGCCTCTTTTCTGTTCTTGGCA 0.981
+GTCGAATCAGGCAAAGCCGGTCAAGAAGACATCTGATGAGTAAGATTATCGCGACTTTGTATGCGGTAATGGACAAGCGCCCCCTGCGGGCGCTTTCCTTCGTGATGGCGC 0.374
+GAAAATGGACGATCCGTCTGGTCGCGCGGTTGGTGTTCACCAGTCGGCGTATAAGTAAGAAATGCGAAACAGCCCCGGTGAAATCCGGGGCTGTTTCAGTTATTGAGGTGC 0.56
+TTACGATAGCGGTCAACCTTGTGTTTGCGGGGATCGCTTTATGGTACCATAAGAAATCAAAAAGTAAGCAGCAAGGGTCTTAATCCCTGCTGCTTATTAATGTGTGGATCG 0.9390000000000001
+TGATGTCCGTTGATTTTATGGTACCGGACTCGCATACGCTGCTGGCTGCTGTGTGGTAACAAAACCTCTCTATTAAAAAGGTGCTACGGCACCTTTTTTCTTAGCATTAGA 0.971
+GAAGAAACTTGGTAAACAAGAACCTTCTAAAAACGTTGGCACCTTTTAGCCACGCGAAAAAATTTAGAATGATAATCTTTTTATAAGATTATCATTTTTATTTATTCTATT 0.937
+TCATTGCGACCTTTGGAGAAGGAAACTGGTGGCCGTTCGGCAGGAAGAAAGGAAAAGAGTAATCGAGAGAAGAGTGATGAATGGTCATCACTCTTTTTTCATGACTAAACG 0.9570000000000001
+ATCCTGAAGGAACAATATGACGGTGTCATTTGGCTGGAGCATATCACGCCCTCTGTCATTATCAAGTGAGCGGTGTCCCCTGTGGTAAACAGGGGATTTTTACATATCGCA 0.873
+CATGAAACCGAGCTTGTTCCGGGGGAGGGGAGTCGTTCTGCGGAAGAAGTGTGAAAGGGTATCATTAACATCAGGCCGGATCACATCCGGCCTGGTGTGCTAATGCCTGCA 0.531
+ACGTTGGCAAACATGGCGGAAGAACTTCAGGACATTACGAAGAAATTTAAAATAGAATCATAATGAAACGAGAAAGCGGCATATCTGCTGCTTTCTTTTTTTGTTAAAAAG 1.0
+TGAATTGGTTCCGGGTAAAGTGATTCGCCTGGAAGTTAATGAAGACCGGATTGTCGCCGTCCAGTAAATGATAAAACGAGCCCTTCGGGGCTCGTTTTTGTCTATAAGTTA 0.436
+AAGGAGCGGTGCACCACCACAAGTATTTCTGCAAACAGTTCATCAACGCGCTCGAATGGCTATACGGAAAAAACCGCTCAACCCTATGAGCGGTTTTTTTATGCCTTCTGC 0.97
+ATTCTGTTCCTGGTGAGTTTGTTCATGGGCCGAAAACGACCCTAGATTTCAGACCATTAAGAAAATTTTATCCAAAGCCAGTCCAGCGGACTGGCTTTTGCGGTTTTAGCG 0.946
+GATGCTTCTAATTGGGGCGTCAAAACTGTAAGTGTTAAAGTCTTAAACTAATAATATAGATTGTGATAAAAGACATAAGCTTTTGGCTTGTGTCTTTTTTTGTTCTGCTTA 0.9990000000000001
+TGAACCCATCGCAGCGCAGCGTATCGCTATCAGCGAACGTCCCGCGTTAAATAGCTAACTAGCTATTCTCTTTGCCCCGCCATTCTGGTGGGGCTTTTTTTGTCTTACTTA 1.0
+GCAGCTCGTGCTAACCAGCGTCTGGACAACATGGCTACTAAATACCGCAAGTAATAGTACCTGTGAAGTGAAAAATGGCGCACATTGTGCGCCATTTTTTTTGTCTGCCGT 0.996
+GTGCACGTTCACCACACTATATTGTGATGAATGACAAGAAACACTAACCATGTCTGAATGGTTATAAGACAAGGGAGCGATAATTCATCGCTCCCTTTTTCGTGCTTGCTG 0.976
+ATTACAAAGCACTTGTGCAGGAAATATTAAATGAACCGATCCCGGAAGATATTGATGTAAAGGATGAGGATTAGGACACAATTTGAAATTGTGTCTTTTTTTGTATATTTT 1.0
+TCTCCCTCGCCCCTCCGGGGAGAGGGCCGGGGTGAGGGGAAAAGGCCGCACTGCTCACCAATTTTCTGCTATCCTGCCCCCGCACTAAGGGGGCAGTATGCTAAACATCGT 0.433
+TCAATGGGAAGAAGGCCGGACCATCATTACATACAAGCTGACTTCTTTGCATTCCGTCAATTAAAACAAGCCAAGAGCATAATTGCTCTTGGCTTTTGTTTTTTATACGAG 0.992
+AAAGGGCTGGAAAATCTCTCTGGCGATCTGTACGAGAAGATAACTAAAGCACTGGCTTGATAAATAACCGAATGGCGGCAATAGCGCCGCCATTCGGGGAATTTACCCCTG 0.7929999999999999
+GAAATTTTATTGAGACATATCGCAAGGAAGTTATTGCGTGATGATATATGTGAACGGCCGGTATATGGAGGAGAAAGATGCAGTTCTTTCTCCTTTTGACCATGGGTTTTT 0.371
+ATTGGCCATCATTCCAAGTAACGGCGAACGTTATCTAAGCACGCCGCTGTACCAATTCGATTAAAAAAAGCCAAAACTCCCGGTTCGCCGGGAGTTTTTTTATATTTCGTG 0.997
+GTACGTCACGGCTGTGGATACAGATAAAAAAGAAAGCAAGGAAGCAAAAGTTGTTGTTGAAAAGTAACCAAAAAGCGGTGCTCGATGCACCGCTTTTTTATTTGCGCCCCC 0.997
+ATCAGCAAGCCTGAGATCAGTGATTTGATTAAAAAAGTGGATACGTATGTTATTGAATAAATAAAAACAGCCGTTGCCAGAAAGAGGCACGGCTGTTTTTATTTTAAAAGT 0.978
+GCACGGCATACCGATGACCGGCAAAAACTTTCGAAGTGACTTAACTGAATTGGCAAATCGGTTATCGTCTATTTGACACCCGCACCACGCGGGTGTTTTTTATTGTTTTCC 0.973
+AACCCGCCACAGTAGTTCCTTCTCACCCGGAGGCAAGCACCTCCGGGGCCTTCCTGATACATAAAAAAACGCCTGCTCTTATTACGGAGCAGGCGTTAAAACAGGTCTGTA 0.9079999999999999
+CTGGTGAGGTTTATTTCAGAAACGCATATTTTAAATAAGGCTACGTCTGAAAATAAAAGACCTCAAGGTATATGGGGAGAAAAGCCCCATATACCTTTCTTACTGATGGAG 0.738
+CGACTGGAAACGGATGTTTATGTGCCGTTGGCGTGATGCCTGACTCCAGCTTCCCTTATAAATTCCTGCTTCAAACTGGCGCTACTAATGCGCCACTTTCTTATATGGTCA 0.857
+TTCGGTATTTTACCCTATGGCTTCCGACTTTGGCTGAAACGGAAAAAATAACCGCAAATAAACGAATAAGGTCCTTCAAAAAATGGAGGACCTTATTGATATTCTTCTAAT 0.775
+TCTTGGTGAAGTATTCAACATCTTTTCTGGTGTTGGTAAAAAAGACCAGCCCGGACAAAATCATTGATTCCCTGAATGCCCGCTTAGTCGGGCATTTTCTTTTTCTCAACT 0.8909999999999999
+AGAAGGCCAATATTATCAAATGTATGAACTGCAAAAGGGACAGAAACATTCCATTGCATAACGCTCAAAAACCCAAAACAATCGTGTTTTGGGTTTTTGGTTTATGTAGTC 0.955
+TCAGGCGGTCTTTTATCCATTTGTTTTTAAGAATTCCATTTATCCGCAATAAGTTTATACAGCAAGCTTTCTAAAATCCCGTGAAAAACGGGATTTTTTGCTTTCAGTAGG 1.0
+TAAGTATTCTGATGGGAATTCAAGCCAAAATTTATTGAATTTCATCGAAAATTTAATAAGCTAAATGATGACACTTGTTCAAAACAGAACAAGTGTTCTTTTTTCTATTGA 0.998
+ACGGAGCGCAGAAATCAAAGAACAGTTTGCCGGTGCCGCCTTAGAGAGACATTCTTAGATGTAAGGACAAAAACAGAAGGCACAGTGCCTTCTGTTTTTTATTTTTCCCGC 0.945
+GAATTTTTTATGTCGCCAAAATCCAAAAGAGCGCAGGACTTTTTAGAGAAAATATTATAGAATATAAAAAAGAAGAAGGCTGGCCGCCTCTTCTTTTTTATTGAAGAAACA 0.932
+ACTTTTCTCTACTCATCCTGATTTAGATGAGCGAATCAGACGGCTGGAAGCTAAATAATACAAACACATTGTTCCTCTGAGAGAATTCTCAGAGGTTTTTTATTTTATCCA 0.99
+ACAGGATATGAAAAACGCGACTTTAAAAGCGATATCAAGCGTTAATGGTTGATTGCTAAGTTGTAAATATTTTAACCCGCCGTTCATATGGCGGGTTGATTTTTATATGCC 0.996
+CGAAAGCAAAGTCGTAATTAAGACTGGTGATAACACACGTCTTACGTTCGACCGCCGCGCGATCAGAGAAGTTTCTGCTGCTGAATAACAGCAGGAGCTATACATAGCAAA 0.706
+AGGATGCATCAGCCATGATTGAGAAAAAAGACTAGTTTTCGAATATTATTTGAAACCCCTCAGCCTGCTCTAGTATAATAGGGTGGTTGAGGGGTGAATTTATGTTAGCGT 0.61
+CATTCGGCGTTGGAATTAATCACATATGAAACAGCCCATAGATCTTAGACGATAGGGGGCTATGCGTGAAAACAGAAGTTCACAGCATAGCTCCTTTTTGTATGGGCGCTT 0.9890000000000001
+TCTTAATCATGGTTTTAGCAGAAATCATGCCTATGAACAAAAATGCAAGCCAGCATTAAAAAGCCAAAAACCCAAAACATTTATTGTTTTGGGTTTTTTAGTGGTCACGGC 0.996
+TGAAAGAGATGAAATCAGCCGATATTACGGTTGATGTTGATATCCTAATAGGAATGAAATGAATGGTAGAGGAAAGCTCCGAAAAAAGGAGCTTTCCTTTTTTAATCGGAA 0.976
+ACACCGGAATCAGTGATTGCCCGTACCCGCAAAGAAAACGACCTTGGCGTGGGTTATTATCAGCCGTAATTCTCAGGCCTGCCGTTCCGGTGGGCCTTGTTTTTTCTCTCT 0.738
+CCCTGAGGGTGCACAGCTGCTTCTCGAAGAAATTCAAGCCGCTTTAAAAGAATAAAATTATGCTAAAAAAGGCGGAGTGATATCATCTCCGCCTTTTTTGCGTGCCAATTT 0.975
+TATCGTCGAACTGCCGCACCGTATAGAGCTTAGAAAGTCAACCAAGTCATAAGAAAAACAAAGAGCAAGCTTCACCTTTATGGTGAATTCTTGCTTTTTTCATGGGGAGAA 0.893
+ATAGATAATTGGAGATATTCACAGGCGAAATGTTTACCCGCCTTGAATATGAGCACGATACCCGCTTCTTCAGGCTCCTAAAGCCAGGGCGGGTTTTCTTTAGTTATGGTG 0.8320000000000001
+TGGATCGCCCGACAGCAGAGTGTGCCGCCGCGCTGGATAAAGCGCCGTTACCGACGCCACTGCCGTAATGAAATCTCCCCGGCTTGCCGCCGGGGATGAATTTAAATCACC 0.8029999999999999
+CAACCAAACGAGTAAAACTCTCTTCAAAGATGCCGATATCACTGATGAAACAGTTTCGTTTAACGGGTAACAGCCTTTTCACAAGAGGCTGTTGCTTTTTTATTGTATAAT 0.858
+ATTATCGGTTCAGTGTTCATCACGGTTTTATGCATTGCATTGGTCGCTTCTTTTTCAAAATAAAAACGCCTGCTGTCCTAGGCCAGCAAGGCGTTTTTATTTTGTTTGACG 0.97
+CGTCTGTGCTGGCACTCAACATTCAGCGCGGCGACAGCACCATCTACCTGTTAATGCAGTAATCTCCCTCAACCCCTTCCTGAAAACGGGAAGGGGTTCTCCTTACAATCT 0.8909999999999999
+GCTCATCATAAGAGTGATGACGAATGTTTTATATTAGTTGATGTAAAATAAAATGATCCATGAGACATAACAATGATTTGTTACATCTCATGGATTTTTTTGTTTCAGCGT 0.99
+TATTGCTGTTGTCGTAGTAGGAGTGGTAACGGTTCTGGTCATCCCTGTGTTCGTGCAGCTGATCGGAGGATAAGCCAAGGCTGAATGCCTTGGCTTTTTTTATTTTATGGT 0.9570000000000001
+GCGGACTGACTCAGGATATCAGAAAAAATGACTCAGAAAACAAAGAAGACAAACAAATGTAGGATAAATCGTTTGGGCCGATGAAAAATCGGCTCTTTATTTTGATTTGTT 0.9179999999999999
+ACAAGGCGAATCTGTCTCATTTAAACGGCTATGAAACGAAGCTGACTGGCAAGGTGATATTGGAAACGTAAAAAATCCCTCTTGATAGAGGGATTTTTTCATTCGGAAAAC 0.941
+AGAGATCATACCAACCTATGAGATTCGTAAGCTTGAAGAGCTATATCACATTTTGAATATCGAAAATACCGTCAGCTGCTAATCAGGCTGACGGTATTTCTTTCATAAGAA 0.986
+CATTATCAGTCATCATCAATGGAGAGGTAAAAGATTCATTGGATTTCCAAGTTTGCTGAGTGAATAAAAAATCCCTTCTTATCCAAGAAGGGATTTTGCTTATTAGCCTTC 0.899
+TTTGTCGGCAACGACCATATGGTTGAAGATGTCGAACGCTTTATCCGTGAGTTCCCGGACGCGTAATCTCCTGCGCCTCTCCACACGGAGAGGCGTTTTTATTGCTGCGCA 0.853
+TTGACTTTATAAAAGATGTATCTACTCACGTTAAAGACTTAGAGGGATTTACAAGATAAACCTAATTAAAGAAGGCCTAATAGGAGCCTTCTTTAATTTAATATGTAATCG 0.833
+GCTGAGGTCGATGAAGAGGAATCTGCCGATGCTCAGCCTGAAGGTGAAAACGAACAATAATAGCTTAAGGCGTAACCCTCCCGCGGTTACGTCTTTTGTGCTAGAATGAGA 0.917
+AAATTGAAAGCACGCTGCAAGATGAAGCAGATCGTTTTGCACAAGCGTTATCCTCATAATGGAAAAAACCTTGAAAAGCCAGGCTTTTCAAGGTTTTTTTATTTCTGAAAC 1.0
+AAAGCCATGCTGACAGCGGCCAAGGTCCTTGCCGGCGCTGCGATCACCTATCATCAGCTATAAAAAAACAGCCGGAGTGTTTATTCTCCGGCTGTTTCCTTTAATATCCTC 0.9540000000000001
+TCATTGTTATTGGATCAGTTACAGACATCTCCCGTTTCGAAAAAAGAGTTCTTCATACAAAATAGCAGCCAAATAAGCCGTCCTCAAAGGGCGGTTTTTCATATTATCAGA 0.965
+CAGACTACGCTGCAAAACTTAAGCAATCTGGAAAAAGGCGAAACCTGCCCGAACGAACTGGTTTAATCTTGCCGCTCCCCTGCATTCCAGGGGAGCTGATTCAGATAATCC 0.62
+GGACCACCTGACCGGGCAATTGACCGCATTTGGTGAGTTTATTCAGCGAGTTAAGATCTAAATAAAAAACCCGCCAGCAATCATGCATGGCGGGTTTTTAACGCGCTATCG 0.945
+GAAAAAACTCAAAAAAGGTATACAAGTCCAATGCGTGGAATGCGATTATAAGGAAGAACCACAGAAGTAGCGGTGAGCAGGGTCTTGCTCACCTTCTTTGTGTGTTAAAAG 0.695
+AATTTGTAGCCCGGATAAGGCATTCATGTCACATCCGGCATAAACAAAACGTACGTTGTTAATGTTCGAATGCCCGCGAGTTGAACACGCGGGCATTTTTTTAGAGTTCGC 0.956
+GTTTATATTGAATCATAAATCAGCGGAGTATAAACATTGGATATATGTTACAAAGTAGAGTCCTTAATTACAAAAGCAGGCACTGCGCCTGCTTTTGTTTGGATTATTTAC 0.843
+AAGCATTAGAATTCGAAGAAGCTGGAGCTTCTTAAAAAATAACCAAAAAGCAAGGACTGCTGAAAGGGCTGACATAAGCCTTTTGCCGGCGGTCCTTTTTTAATTCTGATT 0.998
+AACTAGTCAAAAAGACCTTATGATTACAAAATATCGCCTGTAAATAACTGAAAAAATATCAAAAAAAAGAACACCCAGAGCAAGCTCGGGGTGTTCTTTTATGAAACGTTT 0.977
+GCGGTAAGGCACCTAAGATTATGCCGATGCTGCAACATCGTGGCTTGAACATATAAACACCACCAATGGCTGGCCTGAGATATCGCCAGGCCAGCCTGGTTATAGCAGTAA 0.627
+GCCGCTTTCTTTTACCGCAGGCTGATGAATATTAAAAAGAAGCTTGCCGAGCAGCGTTTTCAATAGGAAATGGCAGAGAACTACAGGTTCTCTGCTTTTTTTGTGCTGTTT 0.991
+CTATGCCAATGACGAACCAGCCTTCTGTAAACCAAATGTTTGGCCGTCCGGAAGAAGAAAATGAGTGATCGTTCGGAACGATGTAAATCGTTCCTTTTTTTGTTTTCAAGC 0.868
+TGGCTGCCTATAGTCTAATAGCAGAAGGGGCTAAAGACGATGGTCTAGTAGAATATTTATAAGGCAATGCTGGGCTAGTCTCTAAGATTAGCCTAGTTATCATACGAATAA 0.506
+CGGTTTGTTTTTCTACCCGGTGCATATATGGATGAAGCGGGAGTTTGGCCGTTGGAATGACACAGAAAAAAAGAGAGGATGATGAAGCCTCTCTTTTTTATGAGAATGAGT 0.905
+AACAGCGGCACGCTTGAAGAGACCAAAAGGCAGCTTGATGAAATCATGAACAGCTGGGCATAATACAAAAAACACCGTTCATATTGAACGGTGTTTTTTGGCCATTAAAAA 0.9640000000000001
+GCGGCACGCTGGAAGATCCGAACCTGTTTATTCGTCGTATGAACCAGCTGCTGGTTTCCTGATGTAATGCCGGATGACCTTCGTGTCATCCGGCATTTTTCTTTTCATCAT 0.895
+TTCAAATTGAATCAGCAAAAGCTGCAGGAAGTTAAAAAAGAGCTGCAAAACGATTTAGGTGTATAATGAACGGGATGGCGATTACGCCATCCCGTTTTACATATTTCCTTG 0.98
+TTCGCTTCTGCTGATGGTCGTGTTGATCGCTTTAACAAAAAATACGGTCTTAAGTAATAATAGATTTCTCAACAGGCAAGCAGCAGTCTTGCCTGTTTTTTATATTGTCTA 0.996
+GTTTGATTGAACTGGCGCTGGAGCGTCACGCTGCGGATAACGCATTGAAAACCACAATGTAATATTTTAACGCCCGATAATATTCTTATTGGGCGTTTTCAGTTTCTTCAT 0.8440000000000001
+TGCGCTGATTTTAATCATTTACAAAATCCGGCTGTATCAGTCGAAAAAAGGACAGTCTGCAAAATCATAAAAGACTCAGCTGAAAGCTGAGTCTTTTTTGTGTTCTGTATG 0.991
+GACAGCAGAGGCTGATGGCAATGCAGCAGCAAAGGCTGTATGTATTCCCTTATCATTGGCATTAGAAAGAGGGCAGAAAACATTATGTTTTCTGCTTTTTTTTCGGAAAAA 0.9940000000000001
+AGCAATGGCGAAAAAACTGGCGAAAGGCATTGAAGTGAAGCCAGGCGAAATTGTCATTCCATTTACTGATTAATCACGAGGGCGCATTCGCGCCCTTTATTTTTCGTGCAA 0.87
+AATTTAAATACCGCCCGACGGATGATTTTGACGCCCGCTGGCCGCTAATTGCGGCACAGTTGCAGTAATATGACGCCGGATGACTTTTCATCCGGCGAGTTTCTTTAAACG 0.858
+ATTTATTAATCATTCTAGGTTAGAGACTTGATAAAAGTATACTAACATTGTGTAGTAATGTTCAGCTTGTAGAAAAAACAATGTTTTTTCTACAAGATTTTATTTTAAATG 0.596
+TTCTGGGATTTGCTGGAACAGGCGGCGACGCAGCAGGCGGGTGAAACAGTCAGTTTCCGCTAAGATTGCATGCCGGATAAGCCTCGCTTTCCGGCACGTTCATCACGAAAA 0.515
+ATCCCGGAATGTAACTCTCGCACCTACTCATGAATTCCTTGTTTAATTCGATAAACAACATTAGTTCTGATTCCCTTTAGCCGTTTCATAACGGCTTTTTCTTATTTCTAA 0.9790000000000001
+TGGCCAGTCTGACCGCAAAAAAGCAATTTCTGAAATCAGAGGAAGTAAATAAGCAGCTTTAGAAAAGAGCTGGGCATACAATAGCCTAAGCTCTTTTTCCTGTATGCAGAG 0.8370000000000001
+GCGCAGCGTGCGCATGAGATTCTGGAAAGCCGGGCGACGCAAGGTTCCAGCCTGCTGATTCCATAAAAGAAATAGGGCTTCCACCTGGGAAGCCCTTTCTTTTTATAGTTC 0.8959999999999999
+TGAACATTTAGAAACACTTATCACAAGTTTTCAAACGTATCATCCGAAAGACTGCGAAATAGAAACAGAAGAGTAACCCGGTTAAACAGCCGGGTTTTTTTATATACAAAA 0.9990000000000001
+AAGTAATTCCTGAGACAAAGTACAAACAGCAAGAACCCGCTGAGCAGGTTCTTAATCGGAAAGTTGAAAAAGGCGACACATTGGCATGTCGCCTTTTTTATTGCTTATTCC 0.983
+TATAAAGTAATAAATGATACGGAATATCGGAATGCACTCAGAAATTTACAAAAATAGAAACATGGTAAAAACCTTTTCATTGAGCGAAAAGGTTTTTATTTTGCAATCTTT 0.863
+ACATATTCTCCTTATCGCACGGTCAAACAGGCGAGAGAATCTGATCACGCGAAGATTAAGATGTAAGAAAAAGAGCCGGGGGATATCCCGGCTCTTTTTTATGCTTGTGTT 0.9590000000000001
+GCGGAACGCTACCTCGATGGTTTAGCTGACGCAAAATAATTTTACAAATCAGTAACAAAAGTAAAGAAGGCGACACCATGCGACTATGGGTCGCCTTTATTTTTTCCCCGT 0.9940000000000001
+TGAAAAACGGAAAAGTGTATCAGGAAAATGGATGGACATACGAGAAAAAATAGCATGAAAACGGCTCGCCTGCAGCAGACTGCGGAGCGAGCCGTTTTTTTATGTCTAGTT 1.0
+GATTATGATTACACAAAACATGACGAAGATTCTTCCGAAACGTCAAAGGATAACGAAGATAAATAAGAAAAAGCGGAGAGGTTGCCCTCTCCGCTTTTTTATTTGACAGCA 0.9990000000000001
+ACAGGGTGAATCCCATTAAAAAAACCGCTGCTTCAAACAGATGAGGCAGCGGTTTCTCAAAACCTTCATCGGCGCAATGCATTAGCGCCGATGATGATCAATGCAGCTGGT 0.6990000000000001
+GCTGGAGAAACTGCGCGAACTGTTCCTGCGCGTTGCGGATATTTCGCTGTTGCAATAATAACGCCGTTATTAAATAGCCTGCCATCTGGCAGGCTTTTTTTATCGCTAAAT 0.995
+CCGCAATGATTGGGCTGTTTAGCTGAAGCTCGTTGTTTATGCCGGATGCGGAGAAAGTCGTAGGCCTGATAAGACGCGACCAGCGCCGCATCAGGCATCATGCTCAGATGC 0.09
+CACGTACGAACGGACTGATATGGACGGCGTCTTCCATACGAATTGGTCTGAATAACCTGTATTAAAAACACGGTCAGTTTCAACTGAACCGTGTTTTTTTCTTCTATCCCA 0.991
+GCTACAGTAGCTTTAGTTGAGAAAAACGAAGAAGATGAGAATGAAGAAGAACAAGAAGAAGTGTGAAAAAAAGCGCAGCTGAAATAGCTGCGCTTTTTTGTGTCATAACCC 0.9990000000000001
+TGATAAAAAGTTTGGCGTGAATATCTTTGTTTCTGAAACAGATACAAATCCATTTACATTTCTATAAAAAAACTGAGGCTTTTACAGCCTCAGTTTTTTGCTTTTACTTTT 0.995
+TGCGACAGCAGGATGTAACATTGACTTACAGAAAAAAGAAGCCAGTGAAAGATGTCTAACACAAAAATCTCCTATTCAAACAATGAGTGGGAGATTTTTATTTTGATCACG 0.99
+CAAACACGGAATGTTTTGGAAGTCTCTCAGCACTTATTCTGATGAATATCAATCATGTGAAAAATAGCCGCAGGCGTGCATATGCTTGAGGCTGTTTTTTTATGCCATAAC 0.9640000000000001
+CTTGAATACATCACAAATATAAAGTATCCTGTATATGTATCATAGTTGGTGTATCAACCACTATAGGCCAGAGAGTTCCCTCACATACTCTCTGGCTTCTTTTATTAACCT 0.89
+GGGTTACCTGACATATATGCTGATTTATCTCGGCATGAAACAAGACCGGGATGCAAATCCTGTGTAATCGCGCTGTTCCCTTGGGGAACGGCGTGTTTTTCTATACTGGGC 0.948
+AATTTTTCTCTAATGAAGACCTTGACCGGATTTTAGAGCTTTTGTCTGAACGAGAATCATAAATGAAAAAACCATCTTTCAAACGAAGATGGTTTTTATTTTATATGCGCC 0.777
+CGTACCGGCATTTGTTTCTGGCAAGGCACTGAAAGACGCAGTTAAGTAAGATTGCGTGGCAGTGAACAGTTTTAACGAAGGGGTGGTTTCACCCCTTTTGTCTTTCTGGCG 0.903
+ATTTATGGGAAAAGCCAGAGTGAAAACAACAGCCGAAATGACAAAGAAAGCAAATTAACATAAAAAAAGCAGTACATGCTGGGCATGTACTGCTTTTTTCTATTACACTCC 0.9890000000000001
+GAAGCAAATGGAGCAGAAAGCCCGGCATATGAGATGAATTAACGTCCGGCCCCCTATAAAAACGAAAAGAAGACAGCCTTTTACCGGCTGTCTTCTCTTGCAATTTCATCC 0.9840000000000001
+AAAGAACATGGAACATGACGGCACCGATAATAAAGCGCCGTGCACGTTTAAAAAAATGATGATGAAACGGTGCGGAGCCGGCTTTCCGCCCCGTTTTTTATGATAGAAAGC 0.23
+CGAAATCCTGCAAACGCAGGGGCTGAATATCGAAGCGCTGTTCCGCGAGTAAGTAAGCATCTGTCAGAAAGGCCAGTCTCAAGCGAGGCTGGCCTTTTCTGTGCACAATAA 0.529
+TGGATACGCTGAAGAAAGATATCGCCCTGGGCGAAGAGTTCGTTAATAAGTAATTGATTAGCGGATAATAAAAAACCGGAGCACAGACTCCGGTTTTTTGTTTTGAGCGCA 0.9890000000000001
+ATTATTATCATAAATGCGATTGTCCTTCGCTTTTCTAAAACTAGATGGATCAAAATGGGCCTTTAATAAAGGGAGCTACTTCACAATGAAGTAGCTTTTTATGTGCACCTA 0.975
+ATGCGCAGGAGGAGCTGCTGAAAGAAATCAGAGACCTGCTGAAGCAGCAAGCAAAGTCGCCGGAATAAAAAAGATGCCGTTAGAAACGGCGTCTTTTTTTATCTCAATTTT 0.966
+GCAGAGAGAGCTTGATTATGAAAAAAGCAAGCGGATTTCTGCGGGAGCTTATTGAGAAAATCAATCTTTTAAAAAAGGGTGGGAATCCACTCTTTTTCTTTTTCAATCGCT 0.971
+TCATGGACTATGAGAGCCAATACAAGCACTTATTTACCATTCAAAATTTGAACTAAAACATCAATCTTATATCCTTTTAACGAAGGATATAAGATTTTTTTGTATATAAAA 1.0
+AAATCTGTCACTATTGCGCCTCTAACAGATTCATCGTGCTGTACCCTACATACAGCCGAACTATAAAAAGAAAGGGCTTCCCAGGTGGAAGCCCTATTTCTTTTATGGAAT 0.907
+AGGGCAAAAATTGTTTCATGAACATCTAATTTTTCATTCAGCTGTCCGGCAAAAAGCGCAAGGAGCTTATCAAAGGTTACAAATCCTTGCGCTTTTTGTGTTGCCAGCTCT 0.7829999999999999
+GAGGAAGAATTAATAAACTTCGGGAGACAATTCGCAAAGAAAAGCGGGTGCGCTGTCTGATCACTCACTGGGAACTGCTAAAACGGCTGTTCCTTTTTTTCTTGTCTTTGT 0.8540000000000001
+AGAAAAAACGCGGCTTCCAGAATGCTCCGAAACAGAAACGGAAAAAGAAGAAATAGCAGCTCAACCAGCAAATAGGGCCGCAGCGCTCTATTTGCTTTCTTTCGGAAACAG 0.602
+TGATTGATGCATTAGAAGATTTGGAAGATGTTCAGCAGGTATATCATAACGTTGATTTAGGTGAGTAAGGAGTGAGCAGGCTGTTATGGCCTGCTTTTTTTGTCCCGGAAA 0.9470000000000001
+AATTGTGAAAGAACTAACAAATGTCCCTGATATTGTGTCTGTGAAGCTCATTGATCTGCCATAATTAAAAAAACTCAAGCTATATAGCTTGAGTTTTTTTATTGTTCTATC 0.956
+CTTCAGACCCGGGCAGAAGTTAAAAAGCCGGGTCGAAAACGCTTCGCCCAAAGACGAGTAATCTGATCTAACTAAAAAGGCCGCTCTGCGGCCTTTTTTCTTTTCACTGTC 0.986
+GTGGGAAAAAACAGCCGGAGGGTGCACAAAACGAACAAAAAAACAGCACCCGTGAACGGGCGTAATCTGAAAGACTCTGCTTAAAAGCAGAGTCTTTTTGTGTTTGAAGCG 1.0
+CTTTACGTACGAACCGAAAGTATTGCGTCACTTCACCGCAAAACTTAAAGAAGTTTAATTAATACTACAGAGTGGCTATAAGGATGTTAGCCACTCTCTTACCCTACATCC 0.7170000000000001
+GAAGCCAATGTGCCTGCCGACGGGACTGTGCCCGAAATTACGGGCGAAATGAAAAGGAGAGGAATTCCCTAGGGCTGTCGAGAAACGTGACAGCCTTCATTTTCCCTTATA 0.77
+GGCGAGGGTGAAAACGGTGAGACTTGCCTGCCTTTTATCACGGCGTATCCGGCACTTTCGTCAGTAATCTGAATTTGCCCGGCACGTAGCCGGGCAATTTTGCAATTAACT 0.937
+ACCGGATTTTGAACCCGCTGTAATAAGAAAAACAGAGCGTCAGCGCCCTGTTTCAGATTATTGACAAAATCCTAAAACGATATTCGTTTTAGGATTTTGTGATTTTCAGCG 0.9670000000000001
+CTTGAGAAGCTCAATGAAACAAAATCTTTGCAAGTGTTCAGAAATCAATATAAAACGGTGAAAGAATAAAACGCTCCAGCGAAAGCAGGAGCGTTTTTTTTACATGAAAAA 0.983
+CGATCTCACCGAACACCAGCGCGGCGAACACTCCTACTACTAAGTTATCCCCTCTTTTGTAGATTGCCCGATGCGACGCTAAAGCGTCATTTCGGGCCTACGTTGAACATG 0.9059999999999999
+ATTGTTGCCATTATCGGTTTAATTGGCGCTTTCTTTATGAAACGCGTTAAAGTAGATCATTAATATGAAAAGCCCCTGACTAGTGTTCAGGGGCTTTTTCATGTTTACTTG 0.9540000000000001
+GCATTAGTTATTTCAACACTAGCTTCATATCATTATTACAAAAAATTAAACGGTTCACGTTGAAAAAGTGTCTTGCGGAGCAATCCGCAAGACACTCAATTATAATGGATT 0.8690000000000001
+TTCGGCTTGCTTCCGTCTATCAAGGCTTCGAAGCTTCAGCCTGTAGACGCGCTTCGCTATGAATAAAAAGAACGCATCCAATTGGAATGCGTTCTTTTTTTAGCTGGGAAG 0.9940000000000001
+GCTTTCATTTACGATCTCCGCGCTATTAAAGCAATCAGAATCTGCCGGCCAGCTGCTGCGGGAAAAATAAAAAACAGAAGGCACTGTGCCTTCTGTTTTTGTCCTTACATC 0.85
+TTTGGCGCGGTAATCGGCACTCATTTGGGTGAAGGTGCGTTAGGAATTTGCTGGTGTTTTAAATAAGGCCAAATCTCCGTTTTTAGAGCGGAGATTTTTTTATATTCTTAT 0.9840000000000001
+GCAAATGAGCTATGACGAGTTCCTTGAAAATGCTGATGTGCAGAAAAAATTGACTGAACTATACGCCGAATAAAAAAGCAGAGATTTCTCTGCTTTTTTTGATACCTAAAT 0.792
+CAACCCTGTGCCATGAATTTACGGCCTTTTGAGGCTGTCTGGTGGTTACAGAAGTAAATCTTCCCTAAGCCCCGGTAATGCCGGTCATTCCGGGGTTTTGTCTGTCAGTAT 0.784
+CCCGCTAAACCAGTATGTTGGTCCTACGAAGCATTCTGCACTGCGCCTGAATCAACAATCATAAAAAAAGGGGCTGCCTTACAGAGAGGCAGCCCTTTTTAAATCACCGAA 0.941
+TGATATTTTGACTGAGACTGTTGAGCTGACATTTAATGATGACGCCGCAAGCTCAGTGGCATTTTAACGGGCAGTGAACCTTTTGTTTACTGCTTTTTGTTTTGCCCTTTT 0.961
+TGAGCGAGAAAGCGGCTGCCAACCCAGTCACACAGCAGCAACCCGATATCCTGCCTTAATGCTGATCAAATCCTAAACGGCCTGCCGTTTAGGATTTTGTTATTTTCTTCT 0.9890000000000001
+AATGAAACACGGTATACACCAATGTATGATGTATTCCCAAAACTAAATCTAAACTTGAAGCGAAAATAAGGTCCCTTCTCTTTTTAGAGGGGGACCTTATTTTATTCATGC 0.9309999999999999
+AAAGGTAAAGCTGACGGAAGTTTAATTAATAAGCTTGTGAGCAGTCAACTGTCTTAAATGGCAAAGAAAAGGACATCTTTCTAAGAGAGATGTCTTTTTTTATACATAAAA 0.9990000000000001
+AAGTAAACATTCTGACAAAAACAGAAGAAAAGAAAGACGATACGAAAGAGTAATTCGCTTTCTTTCTAAAAAAACTGCCGGCTGACGCTGGCAGTTTTTTTATGTAAATGA 0.99
+CTTGTTTGATGAAAAGCAGCAATAGATGATCAAAACGAAAAATAGACAAATGAAAAGGCGTAACATATTTTATACAGCTCATATGTTATGCCTTTTTCTTCATTTCCGCCA 0.6709999999999999
+AAGCTGGCGCTGAAGTTGAAGTTAAATAAGCCAACCCTTCCGGTTGCAGCCTGAGAAATCAGGCTGATGGCTGGTGACTTTTTAGTCACCAGCCTTTTTGCGCTGTAAGGC 0.774
+TGGGTGAAACCTTAATCAAGGTGCTGAAAGAGAAGAACTTGTTCGAAACTTGTAAAACGCATTAATAAAAAAGGGACAGCCGTCAAGGCTGTTCCTGCTTTTTCTAACAAA 0.929
+CCAAGACGGCGTACTGGTTGCCTCGACCGTTCAGGAAGGGGTGATGCGTAATCACAATTAAAAAAATAGCCGGAGGTGAAAACCGTCCGGCTGTTTTTTGCAGTGCTTGTT 0.617
+CCTGTCTCTGAACCCGGACACCGTGGTGCAAACCTGGTTAAGCCTGGCTGAACTGAAGAAATAAAATAAATCCCCGGCGGCGTTTAGTCGCCGGGGTTATGTGATCCCCGA 0.899
+GTATAATCTGATCATGAAAGACGGATCGAAAATACCGGTCAGCCGGACATATGCGAAGGAATTGAAAAAGCTGCTCCATATTTGATGGGCGGCTTTTTGCATTTCAGCCAT 0.963
+CGACATTCAAGAATCTGCCATTTTCTTTTCAAAATCAACATCAAGTTGTCAAACTTTGAAATAAAGTTTTAAAGAACCCTGACTAGTTCAGGGTTTTTTTTTATGGGTAAA 0.988
+GAAAATACTGCTCGCCGCAGCGGGAATCTTTTTGTTAATTGGTCTTATATATCTGTTCATATTATGAGAAAAAGAAAGATTTACCTTTCTTTTTCTTTTTTTTGCCGTCCA 0.9390000000000001
+GGTCGTATCTATCGATCAGTCGTTACCAAAAGGCACAAGAATTAAATAATGATAAACAAAAGGTGTTTCACGTGTAACAATTCGTCGAACACCTTTTGTGTTTCGACAAGA 0.851
+AGTTGTCGCCAAAGTTTTCGATGTCAATGAGCCACTTAGTCAAATCAATCAGGCAAAACTCGCCTGACAGAATTTAATCAAGGGCGGTTAGCGCCCTTTTCATCCCTGTCT 0.941
+GTGCGGAAAAAAATGCTGGAGGGGCAGCTTAATGCTCACTTTCGGTACAAAAACCGTTAAATAATAAAAGTCCGGCTCGCAGTTGAGACGGACTTTTTACGTTTATAATGA 0.971
+ATTAAAACGGATTATTATCAATACTGGTCAAAAGTAAGACCGCAGCGCAAGAAAACAGAAAACGCATAAAAAGAAGACGCTCTGCATGCGTCTTCTTTCATCTTTCAGCCC 0.748
+ATGGAATTTGAGAAAAACCTCGTCCGGATGGCTGAGCGGAATGCAAAGGTATTTGGGTGAACGTTCTTCGCATGCCGGCTGTATATGCCGGCATGCATTTTTTATCTCAAG 0.958
+CAATCGCCGGATTATTTGATGAATTTACACAAACTGTACAGCGTGTATTCCCTAACGCTGAATAAATGAAAGAAGCCGCACAATTTGTGCGGCTTTTTCTTTGCGTTAATG 0.986
+TCTGTATAATGGTGTATGTTGGTCTTTGACTGCGATGAAGTGAGAGGTTGCTGACACACCCGGCCGCTTTGCCATGGCAAGGTGTTCAGGTTTTTCTCACGGAGAACTGTC 0.05
+TCGAAAAAACGCGTTGAATTCGTGCTGGCTTAATGCACCTTTTTACGCGATTTTTTTACTGGCTGGATGTTTTTTACTTCACTTTCTATCCAGCCGTCTTCCAGACGTGTG 0.45399999999999996
+ATGTCATATTTGAGCCTGAGTTGATCATTCGCCAGTCCGCACGAAAACTGAATGAATAAAAAAAGCAATGTATGGGTCTCCCCGCTACATTGCTTTTTTTATAGCTGTTAT 0.95
+AAAATGCTTGAAAAACGTGTGAACCGCGTTCTGGCTGAAACGGAATAGGTATCTGACTAAATAGTATTTCCTAAAAACCTGACCTCATCAGGTTTTTTATTTGTGCAAAAA 0.9490000000000001
+GTTTGAACAGTTTGGTTTTAACGTCATGAAAAGAAAAACAGCACTGTTCCATTATGGCGTCATTCAAACAAGCCCGTGATTCATATCACGGGCTTTCTGTTAATCGGTGAC 0.795
+GAGAGCAAAGAAAAAGCCAGCGGGGAAGCTGGATGGAAAGAAACAAAGTCGGTTTTCACTAAAAGAAAGCACGGGTGTTTGAAAAACCCGTGCTTTTTTGTTGCGGTTAGC 0.987
+GTTTTGGCGTATGGAGCGCCTGGCGTCTGGTTAAAACGACCCTCAAGCAGCAACAGCTTCGCGGTTAACTTCCCTCTGGCCGGAGCCATTCCGGCCTTATCCCTCAAATTT 0.9520000000000001
+TGCAGGACCGCAGCTATCGTGATGCGCTGCTCTCTATGAAAAATAAGAAAAAGTAATGAAAAAGGCAAATCCGTTTACTCATGCGGGTTTGCCTTTTTTGCTGTTTCCATC 1.0
+GAAATTGATGACCTGCTGAGATCGACAGCGTTATATGCTCAGGCCATTTACGAGCTTGCAAAATAAAAGGACCGGCTTCTGCTGAAGCCAGTCCTTTTTTTAAATAAATGA 0.9420000000000001
+TTCCAGAGTGCACAAAAGCACAAGGCGGAAGCAGCGCATTAATCTGATTGTTAGGTAGGTTGGTCAAGTCCGTAATCTCGAAAGAGGTTACGGACTTTTTGTTTATGGGGT 0.965
+TGATGAAGAGGATGGAAAAGATATTGAGGATCAAATCGCTGTCATTTTGGCAAATCAATAATAGCGGGAGACCTGTTTTCCAAGAGAAAACAGGTTTTTTTATGTCTGTAA 0.99
+CTATCGGAAAGCTGGAGAGCGTCCTTTATGAAAAAAAAGGACAGGCTGCTGCCGGTTGAATAGAAAAAAGCCGCGCATATCAACGTGCGCGGCTTTGCCATATTTAAGATT 0.848
+TTACGCTTTCGGCAAGTATTCAGGACCAAACTTAAATGTTTGGGCCACCACAGGCTCTTATTAAATAGAAAAAAGGCTGTCCGTACGGACAGCCTTTTCTAATTTATTTCG 0.98
+TGTGAAAAATGGTGAGCCGATCCAAACGGGAGATCTGCTCCTTGAAATTGAAAAAGCATAAAAAACAAAGAGTGTATATCAATGATATACACTCTTGTTTTTTATATAGAA 0.987
+GGCTATACCGAACCGTTATTACACGCCTGGCGTTTACGCGAAAAAGAAAGTCATTAATAGCGTCAAAAAAGCCCCGGCAAGTTTTATTGTCGGGGCTATGATAGTAACTGC 0.6970000000000001
+TCTGCAAGAGTATGCATAATATCTTATTGTACATGCTGGAACTTGCCGGAAACAAATAAAAAAGACTTGCCCGCTTTTGACAAACGGCAAGTCTTTTTTATTACTTCTGAT 0.993
+CAATGGATGAGCAAGGTAAATCCCTCGACGATTTCCTGATCAAGCAATAATCTTTTGTAGATTGCACTTGCTTAAAATCCCGCCAGCGGCGGGATTTTTTATTGTCCGGTT 0.966
+AACGTAATACAAGAGGAAATCGCTGCAGACAGACTGACTGTCTGCAAGGTTGTTCCTAAATCATAAACAAAACATCCCTCCAGTGTGAGGGGTGTTTTTCTGCGGAAAGAA 0.897
+CAGATTGATATTTTTGATATAAAGAGAGAATCTGTTGTTTAATGACTTTAATAAAGAAGAGTCACTTTATAAGCCCCTCTCAATGAGAAGGGCTTATTTTATTTAATTTGA 0.9520000000000001
+CAGTTTAAAAAAGATGAAAGCATTTATGATATTCAAAAGGTGCTTGCCGCAGTTTGTATGTAAGGCGAAAAGACGGAAGCTTCACAGCTTCCGTCTTTTCATTTACAGCTT 0.772
+TGGCACTCTGCAAGCCCTTTCCGAAAAATGGTTTGGTGCTGATGTGACCAAATAATCAGCATAATGACAAAAAAGGGCGCTTTCACTAGCGCCTTTTTTATTTACGCGTTT 0.912
+ATCACGCTTCCGATTTCAGCGACACTTGGTGCCATCGCCTACTTTATTTTAAATATGATATTTTAATGTCACACCGCTTCTGTCAAAGGAGCGGTTTTTTTGATGGAACAG 0.997
+TAGGTTTGCAAAGGATATTGCGGAAGAGGTGTATTATAGCCTTAAGTAGGACCTTTTGCTTTAGAAGAACACAATGAGGTTTAGTCCTCATTGTGTCTAGTTAAAATTGGA 0.9179999999999999
+GGGCTGGCTTGAACGAGCATTAAGCCCGATTAAAAAGAAAAAAGGAAATTTTATTATAGCTGATAGAAAAACCACCTCTATTTAAATACAACAGAGGTGGTTTTTTTAAAT 0.8540000000000001
+AAGCTTAATGCGAAAAATCGGACAGAAGCCGCCAGCATCGCTGAGGAAAAGGGCTGGATCTAACCATATACTGCACTCCTGGGAGATCGGGAGTGTTTTTGATATGCCACA 0.785
+ATACCGTTATTTCTATATCGAAGGCCCTGACGGTGAGTGGATTGAGTTCTTTCAGCGGTAAAAATAAAGAACGTACATTTTGTGATGTACGTTCTTTTTTATCTATACCAA 0.9390000000000001
+GATGTGCACCGAAATGTTAAAAAGAGTAGGATTAAACGCAAAACAGTTTCATAATAAGTAAAAAAAGGAAGCCTGATATGTCACAAGGCTTCCTTTTTTGCTATTTTTCAT 0.987
+AAAGATTATGTGGCGAAGCGTGACGCTGTTCAAAAACGAATGGCTGAGCTGAAGGGTTAATGAAAAGCCGGGGCGGTTTCTAGAGAAACCGCCTTGTCTTATAAAAGAGGG 0.49200000000000005
+ATTTACAACGGTAATGGCGGAAGCTTATGAGCTTGGCAAGTCTGACGCTAAATCTGAAACAGAATAAGAAGAAGCCACTTTTTTGAAAGTGGCTTTTCACATGATTTTCTT 0.904
+CTTCGTGGCGGCATGGGTGAAAGTGATGAACCTCGACCGTTTCGACCTGCTGTAATCTGACCCCGTTCAGCGGCTGCTTGCTGGCAGTCGCTGAACGTTCTTTACCAGCGT 0.84
+GATGGCTTACATCGAGCTGGTTGATCGTTCAGAGAAAGCAGAAGCTGCTGCAGAGTAATCTGAAGCAACGTAAAAAAACCCGCCCCGGCGGGTTTTTTTATACCCGTAGTA 0.982
+GAAAGATTTTTATGACTTTACCATTGATGATTTCAAGTTAATCAACTATAAACATGGGGACAAGCTTTTATTTGAGGTAGCGGTTTAATGCTGCCTTTTTATTGTGCAGTG 0.8640000000000001
+AGTGAACGGCTATATCAAAGAAGGGCTGAATGGCGGAGGCCTCAATACAAATTAATATCTTCAAAAAACAACCTGCTGTCTCCGTTACAGTGGGTTTTTTCGTCTGAGAAA 0.965
+AGCAGATTTCATGCACCGAAACAGTCTATTCAGGATATACATATTCGCAAAGAACAGTAAGAAAAAAAGCTCAACACTCGCATTGTGTTGAGCTTTTTATATGTTACTGCT 0.99
+CTCCGGCGACCATCTTTATGCCGACAATACCGGGATTATTCTTTCAGAAGATCCGCTGGATATTGAATGATAAGAAAGGCACCGCAAGGTGCCTTTTTTCTGCGTTACCTG 0.659
+AAATTGTCCGGAAAAAAGAATAACATCTGGATAAAACACATGAGATTTTGACTAATAAGATGCTTAAAGCCTGAGATGAAATTTTCATCCAGGCTTTTTTAAACAATGATC 0.9159999999999999
+AAAAAATGACGGGTCTTGAAAGCTATGATGTCAAGATTAATTTAATCTGATGTATTCAATAATAAAATTTATCCATAAACCTCGTTTTTACGGGGTTTTGTTATATTTGAA 0.927
+GCGATTGATGCACTGCCGAGTTTGGATGAGATTGGAGTTTCTTTGTAAATCATTGAAGATGTTTCTTGAAAGTCTTTGGACTTTTGGGGGCATCTTTTTTTATTGCTTACA 0.997
+ATGCTAATGAAACCCCATTTAATATCCAAGCAGCGTGTCTTGTGCTAATTTTAAGTAATTGATAAATAAAGCCGATTTAAAATTAAATCGGCTTATTGCTTTATTCGAGTT 0.889
+CTCTCAGGTACTGAAAGCGGAAATTACGCTGGATTACCAGTTGAAATCGTAAAGCATTGCCGGATGACGCGTCAGGCGCGTGAATGCCTGATGCGTTGTTAGCATCTCTAC 0.441
+ATAAAACAGACACATCTAATAAAACACAAACAAACTCATCATCCATTGAAAAAACAAATTAAACAAAAAAGCCGTCACCTTTGGGGTGATGGCTTTTTTGGTACACAATAA 0.987
+GTTGTCGACATGCTTAATGGCGCAGTACCGAAAGCGCCGTTCGATAGCTGGCTGAACGAATCTCTTTAATCTTACCGGGGCGCATCTTGTGCCCCGTTTTCTCCTCTGCGA 0.594
+AAGAACCGCAAGAGACACAGCCAGGCGCTTGCAAATGCGCTCGGAACTGATAAGCCTTGGTGAACGTTAAACCCAAAACATAAGTTGTTTTGGGTTTTTTTGTACTTTTCA 0.937
+GGCTTTCCATTCGCGCCTGGCTGCCAGTGCCGGTAACGCGGGCGCAGGGCACGACAAAAGAAGGGTAAATAAACGGGAGGCGAAGGTGCCTCCCGTTTTGCTTTCTATAAG 0.733
+GTTCTTGCAGGAACATTAGCCAATCTGCTCAGCGCAGCCATTGCCGGCATGTTTATATAAACGATAAAAGCTCCTTGCGTCAGTGCAAGGAGCTTTTATGTATGAAAAACG 0.991
+CCAAGGATGGAGATATAATCAGGCTTCTGGAATTTGAATTTGAATTTATTGATTAATCAATGTTGGCTGAAAAGAGAGCCTGGTGCCAGGCTCTCTATTTTAAAGGGGGGA 0.39399999999999996
+TAGGTTTGATTTGGACACTGATTAAAAAAGAACTGTCACAATATGAAAAGTGGCGTTTGCAATAAATATAAAAAGCCCCGTTCGATGAACGGGGCTATCTCACGCTTATTG 0.8220000000000001
+CGCCGCCGACGGACCAACCGGAAGAAATTCTCGAAGAACTTGGCGAAATCGAGAAACCGAATAAGTAATTTCTCATCAGGCGGCTCTGCCGCCTGATTGTTAACCACCGCT 0.845
+ATCGAAAAAACAATTTCGTGAATTTTTAGATTATCAAAAATGGAGAAAATCCCAAAAAGAGGAGTAGTGCCTGAGCAGAGGCACTAACTCCTCTTTTGTCAATAACCATCG 0.88
+TGGTGTCTTGGCTGATTGCTGTATTGATCGTTGCTTTGAATGTGTTTTTAATTGTAGATACGTTTCGATAAAAAAACCGGCTTCTAAAGCCGGTTTTTATTTTTCCGCAAA 0.98
+CCGGCCTACACGGTGATGATGTGGTAGGCCGGAGCAGGTGAGTCGCTCTCCAACGTGAAGTTTGTCAGCTATCTGTAGCCCATCTCTGCATGGGCTTTTTTCTCCGTCAAT 0.953
+TGTGAAAGGGCGTTCGCAAGCCGTTGTTGAGCTTCTTAGAATGGGTGAGCTAGAGCTTTAATCCTTGCCGGTATTCCTTCTTTTGGAAGGAGCCGGTTATTGCTGTTTGTT 0.6779999999999999
+TTTATGGGTATTATCAATTCGTCTGGAAAAAGAAACAAATCACACGTCTCATCCAATAGCCTCCGAATCACACCGTTCATAAGTTTGAACGGTGTTTTTTTATTTGATAGG 1.0
+ATGATCTCACGATTCGTTCATCCTATACGGGATGGATATTCAGCGAAGAAAAACTTCAGAAAAAATTAAAGCTCGGCTCTATATAGAGCCGGGCTTTTTACGTCTTATATA 0.9790000000000001
+CTGAATATCTCTGTCGCAACCGGCGTTTTGCTTGGTGAATGGTGGCGTCAGAATAAAGCCTGATAAATCAGCCGGGTGGCAACTCTGCCATCCGGCATTTCCCCGCAAATT 0.897
+ACCGCTGCGCTGTGGAAAGAAATGCGCGAGATTTATTACGGGCGCAATATGCCAGCTGTTTAACGGCTCTGGCGGAGCTCCCAGGCTCCGCCAGATTTATTTACTTCTGCT 0.9129999999999999
+CAAACACCGGGCGGAGAAATGCTCGTGAAAATTGTGAAAATTTCATAATATCTGTTTAGCAGCGAAACACCTCGTCCACAATGTGGGTGAGGTGTTTTTTTATGAAGATAT 0.992
+GCGTGCAGGGAATGCGAAGAGGACCTGGCGGAGAAAGCCAGCAAACTCTTTATCTCGTGGAATAAAAAAAGAGGCTTGGATGAATCCAAGCCTCTTTTCTATTAAGCTTCT 0.982
+AAAACGAAAACGTTGAACGCAACACTGACCAAGCAGACAGAAAGCAGTTCAAGCTAAGAAAAAACAAAAAGCTGAACCCGATTAAGGTTCAGCTTTTTTGTTACCCTAAAT 0.924
+CGTACGATTCGTGCGGCGATGGTTACTGTAGCGAAAGCAAAAGCTTAATTTCTGCTTTCGTAATAATTCACGGCCCTGCATGCGAATGCCGGGCCGTTTTCGTTACTCCGC 0.97
+GCGAGTACCAGGACATCATCCGCGAAGTCAAAGACGCCAACGCCTGATACACTTAAGGCAAATTAACTCCTCTTCGAACCCCCGCTTGTCGGGGGTTTTTAGCATTGATGG 0.741
+GTGGCGTTTATTATTTCTTGGATTATGATCGTTGTCGCAGCCGTCAAATATCTATAAACAAAAAAGCCAATCCTCATCATATGAGTGATTGGCTTTTTTCTTATCTTGGCG 1.0
+TTTGGGATTGTATATAATGCAAGTGTGCAGCTGACGAAATACAGAAGTTATCTTTTTAATTCTTGATATGCAGACAGCCTTTACAGAGGCTGTCTTTTTTTGTGCAGAGCA 0.991
+TCTGGAATGTAGATAAGAGTGTAAAAAGGTTAATGGAGATAACAAGCAATTATGTTGCTGAGAATACAGCTGGTGAGACTTCTAATTAGAAGTCTTTTCTTATTTTAAGGA 0.9009999999999999
+GTGATTTATTTGAAGTTGTCCCGTTATTAACTGAGGAATTCAAACAGCTGAATATACACTCATAAAGGAAATCCCGGACTTTAAAAGTCCGGGTTTTTTCATATTTATAAA 1.0
+GACACCCCTTGGCGAGAAGCACTCATCGGCCTCGCGCACATCGCTGTTCAACGCGATCGTTAATCCCCTCCCCTCATCCCGCGCAGCGCGCGGGATGGTTCCAGTAAGTTC 0.528
+CACCGCATTGTTTGCCGATCTCTTCACTGAGAAAGAATTGCAACAGTAATGCCAGCTTGTTAAAAATGCGTAAAAAAGCACCTTTTTAGGTGCTTTTTTGTGGCCTGCTTC 0.87
+CTACCGCCATGGCGGCATCCTTCAAATGGTGCTTCGTGAAAAAATGAAGCAGTCCTGATGAATCAATAGGAAGAGAAGGCATTTCGCTTTCTCTTCTTTTTATGACACAAT 0.857
+CGAGGAAAATGTGCAATAACCAACTCATTTCCCGGGCAATTCCGCCGGTTCCGAATGATACGAACAACTGAGACTGAGCCGCAAATGGTTCAGTCTTTTTACATGGCAGCC 0.865
+TAGTTTTTTTAAATGGAGCTCAACAATTTATTCAAAAGTATAAAAGGGTTAGTGTTTGAACATAAAAAAGTACCTTCTTACAATAGAAGGTACTTTTTTGTATCTATAATT 1.0
+CTTGTTGGCTCTGGCCCGAGGGGAATCGAATCCATTGTAGCGACGCAGAAGGCGGCGCTGGCAAACTGATTTTTAAGGCGACTGATGAGTCGCCTTTTTTTTGTCTGTAGA 0.821
+CGAAGTGCCGAAAGAGCTGCGTGTCGATATTCGTGAAGTCGATTAAGTCATTAGCAGCCTAAGTTATGCGAAAATGCCGGTCTTGTTACCGGCATTTTTTATGGAGAAAAC 0.392
+TCCAAGTATCAACAGATAAAGGGCTGTTCAGAAAACTTCATAAAATGAACAACCGCTAGGAAGGAAGGGCTGCCGGAAGTGATATTCGGCAGCCTTTTTCTTTGCATCAGC 0.917
+ATTACATGTCCTATACGAAGTGGAATACGATTGGGAATCCGGCGATCAACCAATAAATCAGATAAAAAAACGCTTTTGAGATGATCAAAAGCGTTTTTTGTTTGTCTCAGC 1.0
+GGAATCCGAGGCCGGCTATATCACGCTGCATGTCCAGCGTCTTCAAGATCTCTCGGAATAACCGCTTTGACTTGCAGGGAGTGATCTCTGGAAGTTTTTTTATTGATCAGG 0.797
+GGCATCGGATCGGGACACGGGCCGACAAACCATTTCGCTTTTAAACGAAACAGCTTAAATACAAGCCGATGAGATCACCAGCTGATGGTGATCTCTTTTGCGTTTGCTACG 0.966
+TTGGATCTGTTGCAATAGCTATCAGTATAATGAAATTTATCTGTGATCGTCTAAAAAAGAAACCTAACGGTAAAGAGTGTTAATTCCTCTTTGCCTTTTTTATGCTAAATA 0.9890000000000001
+CCTATTGTTTATGATGTTTTAACCTCTTATTTTTCAAAGGAAACCCGCTAACATCTTTCACCCATCTGCTTCAATCGAGCCCGCGAAAAGCGGGCTTTCTGAGTTATCGTT 0.9940000000000001
+CACCTTTCTTGTACGAAAAAACAAAGCGCCGTCCAATGATCCTGCCGATCATTATGGAGGTTTAAAAAAAGAGGCACTCCCTAAGGGAGTGCCTCTTTTTATTGCAGTGAT 1.0
+AAAACTGCGGTTAAAAGGGACAAAACAATTTGGACAAGCGGTTCAGCTCCATTATGTAAGAGCATAAGAAAAAGGATAGACAGATGTCTATCCTTTTTTGTATGTAAGTTA 0.996
+CGTACTGGTAAGGCTGCTCGTATCAAAGAGCGTCTTAACTAAGATTTCGCTTAAGCGACATCCTGTTAAGAAGGGCTGGCCAATTGGCTGGCCCTTTTTTATCTGTTTGCT 0.99
+GTGCTTTATTCTTTAAATTATTTTAGAGCGGATAAATTCAGATTTCATGTTTTGCGTAAACGATTCTAAAAACGGACGCCTGTATGTGTCTGTTTTTTTATTTGCACTGAT 0.948
+CCGGATTTCTCTGTAGATGATAGCGAAGGCGTAGCAGAAACTAACGAAGATTTTTAATCGTCTTGTTTGATACACAAGGGTCGCATCTGCGGCCCTTTTGCTTTTTTAAGT 0.934
+AGGATGCATCACAATTTGTTGAATTTGCACGTTCTTGTAGGCCGGATAAGGCGCTTACGCCGCATCCGGCGCTGCCCCTCTCCTCACGGAGAGGGTTTGGGTGAGGGAAAA 0.9520000000000001
+TTCTTGAGCTGAACGTGACCTTACCGGAAGCAGAAGAGCTGAAATAAGCCCGCTGTAAAAGCGCATTTATCTTCAAGGCAGAGTTATCTCTGCCTTGAGTTTTTCATCCCT 0.932
+TGAGTCTGCTTCTGAGCAAGAGAATAAAGAAGTCGTTTCTGACTTAAATGCATAAACTTACTTGAAAATCAGTATGTCACTCTGGCATACTGGTTTTTTATTTTTTGTGTA 0.997
+TCACTCCGGATTACGATCGGAACAAAAGAGCAAAATGAAGAAATACTTGCCATTTTAGCTGAAATTTTATAAGAGGTGATCAAATATCACCTCTTTAGTCTATAAACCAGG 0.41600000000000004
+GCTGGTATAATCCCGGCCCCGCGAGAGTACAAACAGTTGTAACTGAATAATTGCTTGTTTTTAAAGAAAAAGAAACAGCGGCTGGTCCGCTGTTTCTGCATTCTTACGGTA 0.737
+AGCAATAACTTCTGATGCCTTATTTAATGATGAAAGAAAATGTACACTTTCTTAATTATCTTATGAGTGAAGACTGCGACACTTAGTCAGCAGTCTATTTTATGGTTCTGG 0.87
+AAAGCAGCCGACAGCATTCTTGAAGCTGTAAAACAAAAAACTCAATCAGCAAATGCATAGTGTAAAAGCCTGTTCTTATCGAAAGAACAGGCTTTTTGCCATTTCATAAGA 1.0
+GAAAGCGGAAGACCAACAAGAAAAAGAGAAGGCGGCAAAAGCCGTTGAATCACCTTCCCATTAATAGAGCACCCCGCGGGTATCAATCCGCGGGGTTTTTTATTCAATCAT 0.99
+TTATATCAACGGCAGAGCCTACCGGAAATTTCAAAAAATGTCCTGGATGAAAAATTCAAAGAAAAAAGCTCAAATCATTTGCTGATCTGAGCTTTTTTTTCGATGGCGACA 0.8959999999999999
+CTACAGCATGACTGAACATAAACGCCAGGTTCCGGCGTCTATGTTTGATGACTGGTGGAAATAAGTTGAAGAAAGCCCGCTCTCGGAGCGGGCTTTTGTCGTGTACAGAAG 0.982
+GTCAGCGGAATTGCGGTATCTTTATTAAGTGCTGCGATTGTCGGCCTGTTTGTGTGGTAGAAACATTGAGCCATATCCCTTTTCGGATATGGCTCTTTTCATTATTGATAA 0.975
+AATTTACGGCAATTCAAGCGCGTTCAAAGCGATCAAACAAGCGCTACGTTTAGCGAAAAACTGATTGGAAAACAGCCTGGGGATTCTCAGGCTGTTTCTTTATTGACAGAA 0.975
+TGATATTACGTTTGTTCACGTCAGTCTGCCCGATCTTGCATTAGAACAAGTAGATATTTCCACAAAAATCGGCGAACTTTCAAGCAGTTCGCCGATTTTTATCAATGCAAT 0.871
+CCGGGTTCATTTTATACAGAGACAGAAAACGCAATCAAGTCAGCCCGCGATTCAGAAAACGATAGCTGAAAAAAAGCCGGAGAATGCTCCGGCTTTTTTTGTTGCATTATT 0.97
+TATAATTGGCTCAGCCGTTTGATTGAGTTTTTTGAGAGCGAAGACATTTTTAAATATGTGCCGAAGCCGTAAAAAGTTCCCAAATTCAATTCTGGGAACTTTTTTAAGTCC 0.848
+CTAGGGAAAGTGATTGGCGTGTTCAGAACCGTCCATTAATCTATTGATCTATCAGATGCATAAAATAACCCCCTCTTCCTTTACGGAGAGGGGGTTTGTTGTTCAAAAAAA 0.9940000000000001
+CAATCCGGGCCTTCTCGGTTCCGGTGCACATTTACGCCAGACCTTAGGTCACATTCTGTAAATCCTTCCTTTTATATCGGGAGGTAACTCTCCCGATAATCTTTTAAATCA 0.88
+TTTGCTAAGACCGATAAAGATTCGCTTTTTTGGGGCGAACAGACCATCGAACGTAAAAACGTTTAACCAGCGACTCCCCCGCTTCTCGCGGGGGAGTTTTCTGTTATTTCA 0.948
+TAACGTATCGACGTTCAAGAGTGGAGGAAAGAACATGGTGCTTCGATATACAGCTCTGGGCGATTCCTTGACGACAGGGAGAGGCTCCGGGCTGTTTTCACCCGGCTTCGT 0.48200000000000004
+TTCTCTGAAAGCTGACGCCTTCGCAGTAATCGTTAAAGCTGCAGAAGCGGCTAAACAGGCTTAAGTCTGACAGGTGCCGGATTTCATATCCGGCACTTACTTTCCTTAACT 0.93
+GCGGAATTAAAGCCGCAAACTACCTGCTTGATGATATTGAAACCTACTTCTTAAAAACGAAATAAAAAAAGACTCCGTCTTATTAGACGGAGTCTTTTTTGCTTTTGCCAA 0.997
+TGACTGAACTAGGCTATTTGTTGCTGAAGGATTTTATAACAATTGCCATAAGTTTGCCTCTGTAGAAAAACGCAGCGTAGTCGATACGCCGCGTTTTTTCTTTTTCCCTTC 0.996
+ATATTGACGGTAAGCGCCGAGGTGAATCCCTGTCTATTGAGGAATTCGCAGCGCTGTCTAACGGATTGTATAAAGCCCTTTTCTAAAAGGGCTTTTTGTTTTGCGCACCAC 0.9640000000000001
+AGAAGTGACGGTGCACGTCCGCCGCATCTGGGCTGCGGTGGGTGGTCGTCGCGACGAGCGATAACAGGCAAGGCCGGGGCGTCGTCTCCGGCCTGCTACCCTTTCCGTCAG 0.8109999999999999
+TCGCCTCTTATTAAAAGACGGCACTGAGGTAAGCCAAGATAAAACATCTGCATAAAGATAAGCACAAACCTCCTGAGTGGTAACACTCAGGAGGTTTTTTTGCATGCAACT 0.998
+ATTGTCGCAGTGCTGGTGGTGATTTCCCAGCCGTTTAAAGCGAAAAAACGTGATCTGTTCGGTCGCTAATCCATTCGGCGCTCCTGCGGGAGCGCTTTTTTCCTGCCGCTA 0.8740000000000001
+AACTCAAAGGAGTCATGTTGGACATTGAATGTAAATGAAAAAGACAATCTCCTGAAGAGAAACATGAACTAAGAAGCGGGCTTAAAAAGCCCACTTTTTTTCTAACAAACA 0.903
+GGATTTCGCAAAGGTTTCAGTTGCAGGAAATAACGTTACGATCTCTGTTAATAAATAAACGAAGCAGCAAAAAGCCGCCAGCATTGTCTGGCGGTTTTCCTTGGAGCATAC 0.8190000000000001
+CATATTATCAACTGCTTCCCGCCGGCTGGAGGAAAATCAATCGTCTGATTGTACAAACGACATAATGAAAAGAAAACTGCGGAAACCCGCAGTTTTCTGCAGTTTTAAGGC 0.98
+CGTGAATGAACTTGGGTTTTCGCCACAAATCAATACGGCTGAACTTCTGAACGAGGAGGAGAACGGAGCATAATCATTTTCTAAGATTATGCTCTTTTTCTTTTGTTATCG 0.953
+TTCATCCAATCATGTACGGGCTGTTTGTCGTATTTATCCTGTACTTTATCTTCTTAAAATAAGGAATGAAAAACCAGCTGCACTGGCAGCTGGTTTTTTTGTTGCAAAAGA 0.996
+ACGACTCTTGCGCAGATGGCAGAAGAGCTTCGCGATCTGACGAAACAATTTAAAATCGAGTAAAAACCGAAAAACAGCGCTATCAAAGCGCTGTTTTTTTATATGGTAAAC 0.9990000000000001
+AGTAATACTATGGTATAATGGTTACAAGTTAATAAGAACGGTCCTGAGATGAGGAGAGACCACAGCACCAAAGTGTAAGCATGCACTTTGGCTGTTGTGGTCTCTTTTTCT 0.755
+GAGCTCACATCATATATTCAGCAAAAAGATGAGCAGCGCCAAAATATCTTTTTGCATTAATTTCCAAAAGACTGCCTGATCGAATCGGGCAGTCTTTTTCAACGAGATTCG 0.977
+GGTCGATGTGGTCTTCCAGTTAGAACCTGTGGATCAACAACCCGCTAAAACACCTGCAGCACAATAATATTTGTAGCCCGACGTATTCGTCGGGCTAATGCCTTTACCCGA 0.8240000000000001
+AAAGAATACTTCGAAGAGATGTAATGCTTCCTTGAAGCATCAAACAGATTTTGTTAAAAGCAGTCGATACATAAAACCGCAGCTCAGCTGCGGTTTTTTTGTGGTTAAAAC 1.0
diff --git a/data/sequence_data/choe/train.txt b/data/sequence_data/choe/train.txt
new file mode 100644
index 0000000..21bf20e
--- /dev/null
+++ b/data/sequence_data/choe/train.txt
@@ -0,0 +1,848 @@
+TTAAAAGGCGTTGTTTCCCGTAAAAAACAAGTCGTTCCTGTCTTAACAGACGCAATGGCTGAATAAGCAAAAAGCATCCCGCGTCGGGATGCTTTTTCTTATTCACCCAGC 0.986
+ATGCCTGCAACTGCTGAATAATCTTTCAGCCAAAAAACTTAAGACCGCCGGTCTTGTCCACTACCTTGCAGTAATGCGGTGGACAGGATCGGCGGTTTTCTTTTCTCTTCT 0.995
+CCTTGTGGATGATAAAGGAAATGACTTCTTCCAGCAGATACAACTCACACAATGCACCCGCTGTGTGAAATAAACAGAGCCGCCCTTCGGGGCGGTTTTTTTACATGGCAC 0.915
+ATTACTTAATTCTTCATATGCAAGCCAAAACAACGTCCGAAGCTTTTTGATTTGAGAGAAATAAAATCGTGCGATTCTTTAGCGGATCGCACGATTTCAACTTTTTGATCA 0.866
+AAAATGTATACGACATCGAGAAAAGATGACCTGACCTATATTCTCGGACAGCTGTCCTAAAAAACCAGAAAAAGAAGCTGGACATCCGGCTTCTTTTTTTTGCGGTTGACT 0.998
+GAAGCTGTCTGATAATGATACGCAAATGGAAAAGGCAATTGAAACACTGAAAAAAGAAATGTAAAAAAAACCATACGCGGCTGCCGCGTATGGTTTTTTTATGCGCCCTTT 0.997
+ACCTAAAAAAGTATATGTATCTGCTCGAGCTTTGAAATCCGGTAAAGTTGAGCGTGTATAACAAAATGAACGCCTGCCCCGATATGTGGCAGGCGTTTTTATGTGGTGAAA 0.9990000000000001
+TTTATCCCGCAAAGCGGTGCTCCGTGAAGAGAAAGAAAAAGAAGAACAACAATCTTAAATGAAAACATAAAAGGAGCCTGGGAGACCCGGCTTCTTTATTTTGAAGCTTTT 0.966
+CAAGGAAAACACCCACATGCTGTTTGGTGACGCCAAAGCCAGCGTGGATGCAATCCTGAAAGCTCTGTAACCCTGACGGCCTCTGCTGAGGCCGTCACTCTTTATTGAGAT 0.92
+TCTCCCGCGTTTTCCGTCGGCAGTTTGATCGCACTCCCAGCGATTATCGCCACCGCCTGTAATTTTATTGCCCGCGCGTTAACTCCCGCGCGGGTAATTGCTCCATCCATT 0.615
+AGCGACCTGAAAGTCGGTCTGTTCCAGGATACGTCTGCCTTCTGATTATAATCAGACAGAGTATCAAAAGGCGAAACCTCCGCAATGCGGAGGTTTCTTTTTAAAGAGACA 0.9520000000000001
+CAAGTCAACAGCCTGATTAAAGAAGGGCTGAACGGCGGGGGCCAGAATACGAATTAATGAAAAACAAAACCTTGAAGAATGCTATTCTTCAAGGTTATTCTGCTTTCAGCA 0.8759999999999999
+TTGAAAGGGATATCGAGTAATCGACGGACGATAGATAATTCCTGAGACAATAGTGTAAAAAACGAGCCGCTGGGGGTGTTTTAAACCCCAGCGGCTTTTTTTTAGTAAAAA 0.978
+CCATCGGCACAGGTGTCATGCTTGATAATATGGACAAGCTTCCTAAACGCAAACTAAGCTGATTTCACAAACCTCATTCTGAAAAAGAATGAGGTTTTTTTATGAAAAAGC 0.993
+GGCGGTATGGGCGGCATGGGTGGCATGGGCGGCATGATGTAATTGCCCTGCACCTCGCAGAAATAAACAAACCCCCGGGCAGAAATGTCTGGGGGTTTTTCTTTTGGTCAT 0.986
+AATCAAAACAGTCAAACTAAAGGACAATTCATTTTGGGAAAAAGTGAAGCGTACTTTTTTATAGAAAATAAAAGGACAGGCTGCTGCCTGTCCTTTTATGATTTCTCATAT 0.986
+CGTATTGATAAAGAAGGTGTGTTCCATACCGAATGGCTGGATTAATCTGATTTAACCAACAATAAAATTGAGGCCCGGCGTATATTGCACCGGGCTTTTTTTTGCCAAATA 0.993
+TGGTTTATATAATGACTCGGGCTTAAGCGGTTCTCTTCCCCATTGAGGGCAAGGCTAGACGGGACTTACCGAAAGAAACCATCAATGATGGTTTCTTTTTTGTTCATAAAT 0.945
+GGAACTTGATCTGATTCAGAAGATGGGCCTGCAAAATTATCTGCAAGCACAGATCCGCGAAGAAGGTTGAGCCGTGTCGGGAGGGAGAACCCTCCCGGTTAATAAGAGATC 0.718
+GTTGATCGGCACATGAACCACAACGCCGGATGCGATGCTGCGCATCCGGCATCGCATCATTTCTTCTTCAATTGCGTCACCACCAACTGGTGGCGCGAATTATAAAACTTA 0.8270000000000001
+CGCGAATTCCTGGCGCAGGCCAAAGAGATTGTGCCGCAGCTACGGTTTGATTAATTAACATCCATTCGCAGCCGGTACGCAGTCAGTACCGGCTTTTTTTATTTGGTGCGG 0.7709999999999999
+GCAGATGCGCGAGCAGATTCAGAACATCGAATAACTCGTAACGCCAATTCTTACTTTTCCGCCTTCACAAATGCCGCCACTCAAACAGAGCGGCATTTTTCTTCCCCGCAA 0.929
+AGCCTCTATTCAAAGGCTTTATCGGAGCGTCTGTCGAAGCTGCAAATCAGAAGTAATAAAAAAGACTTGCCGTTTGTCAAAAGCGGGCAAGTCTTTTTTATTTGTTTCCGG 1.0
+TGCTGAAGAGCTTGAGCAGCTGGCCAATGAGCTTAATGAGAAGATGGGTCAGTTTACGATTTAAAGAGAAAAAAGAGGCTGGACTCCAGCCTCTTTTTCTATTCTATGCAG 0.9059999999999999
+TTTGGCTTGAATGTGTGGGACGCGACTGCTGTCTTTCAGAATGTAACGAAGGAGTCTTAATTTTAAAAAAGGCACAGACCCGAACAGTCTGTGCCTTCTTGTTATTTTAAC 0.982
+GATGGGGAAGAAAGAACAGCGATTAAATTAATCGTGGAGCCTCGCTAAAAACAAATAAAGCATTCTCAACCTGTTTGCGTAATGCAAACAGGTTGTTTTTCATTTATTGTG 0.9790000000000001
+CTGGACTACAGCAGTTACTGCAACCCAATAAAGAGTAAAAGCCCGAGCGATTATCGGGCTTTACTCTACGCAGTCGCGGCTTAGTCCGCGACGTGCGGATTCACACAGTTC 0.8540000000000001
+TTTGTGAAAACTTCGCCTGCCAGCAACCGACAACAAATATTGAAGAAGCGATCCACACATTAATAAGCAGCAGGGATTAAGACCCTTGCTGCTTACTTTTTGATTTCTTAT 0.996
+CAGCGTACACGACGCCAACATTGGCATGGAAGGCATTACACCATTCGATTTTATGAAAGAAGAACAGCAATAAAATGCTCCCGTGCAAGCGGGAGTTTTTTTTCATTTGCA 0.9890000000000001
+CGCTTCTTCTGGTAATAGAAGCGATTCTCATCGCTATTTACTACAGCCCGTTTGATTTATAAAAAGCAGAAAAGCGTTTAACGCTCTTCTGCTTTTTTTGCGAGTTTAATG 0.98
+CAAACACCGTTTGCGGGATCGGACTGACGTCATCCGTGAACGTGAAAAAGAAATAGAACGCAGAAAAAAAAGCAGAGACTGATCACAGCCTCTGCTTAATTATTGTATGAA 0.8909999999999999
+AGGATATTAAAGACACGCTTACAGCGGTCGAGGATGCATTTAAACATCTAAAAAACTAGAATCAAATACCTTGAACAGGAGCTTTGAGCTCCTGTTTTTTTATGGAATCAA 0.9940000000000001
+ACCTAAACGTGAAGATTTAGGATTTTGAAGCGGAAACATCAGATGATGAGGCACGATATCTAGGAGGAGTAAGATTTGTTCTAATCTTACTCCTTCTTCTTATTTTGAAGC 0.963
+CATCATTCACCACTCGACATATGAGATGGAAAAGATGTTCAAACGCGTGATGTAGCGGGGGTGGTAGGCATTGATCCATTCTCTGAATGGATCAATGCTTTTTTTGTACTC 0.951
+GAAGCCAATTGCTCAGGCGCTGGCAGAAGGTAAATCTCTCGACGATTTCCTGATCTAATTACTGAGGCCGGATGTCGCTGCTAGGGCGCGTCCGGCGTCGCTTCTCAAGCT 0.762
+TGGAGAGAAAAAAGGCCTGCATGACATCATTTGCAAAACACGTGTCGTGTATAAATAATAGAAAAAAGTCTAGACGCCAATAGGCATCTAGACTTTTGTTTTCTTTGCAAT 0.976
+CAAAAAGCAATGACGAAAATGGTGTGGCCTACTTTATAGACCAGCTTCTTTCGGGGCAATATGCATAAAGAAAAGACTCCAGAGATTGGAGTCTTTTTCTTTTATTGCACC 0.9790000000000001
+TATGTCGGTTCCACCGGAATCCTGACAGATAAAAAAGCCGGAATTATCATCCGGCATTTTACTGTTTAAGCGAAAGCGTGAGTGCCCCTCACGCTTTATTTTTGATTTCCT 0.871
+AAAGCCTCTTACGTCACGGGAAGTTTTATCGATTTGGCGGGCGGGAAATAAAACAGGGAAGTTGTCTGACCGGATGCAACAAGTATTGCATCCGGTACTTCATCGACTTAA 0.631
+GCCGGATTACTTGGCTCTGCATATGCAAGCAAAAACAATCAGTGAAATGTTCTAAGCGGGACTAAATGGGCATCCTCCCTGCGGGGGTGTCCATTTCATCCATATACTATA 0.536
+AAAAAGCAGCCAGATCCAGAGACTCTCCCCCCAACGCTGTAAACATTCGTCTTTAATGCACTGTAAATTATGAATTAATCCTCTAATTTATAGTGCTTTCTATTACCTTAT 0.983
+TGCTTCAGATTATGTAAATGGACATATTTTAGCAGTTGATGGCGGCTGGCTATCCCGCTGACAAATAAAAAAGCTGACGAACGATCGTCAGCTTTTTTCCATTACATCATG 0.988
+GGGATTGCACTGACCATTGCTTGGAAAGCGCCTGCACATCTTAAAGCCAGCACGTGATAAGAAGCGCATTCTTTGTGTACTGCAAAGAATGCGCTTCTTCTTTATACTGAT 0.945
+ACGATTTTGTAGGCCGGATAAGGCGTTTACGCCGCATCCGGCATAAACAAAGCGCACTTTGTCAATAATCTGAAGCCCCGGCCATGTGCCGGGGTTTCTTTTTGACTAATT 0.958
+TACACTTGAGTCTACTGACCAAGACATCGCAAATCAAATCCGCGGATAACAGTATGAAAGGGAAGGAGCGCCTGATTCAAAAGAAGACGGCGCTCTTTCTATGTAAGGGTG 0.93
+CTCGAATACCAGCCAGAAGCTGCTGGCGACTACCTGCTTTAATCCCATCTGCACAAGCGATAACTCGCTTTGCCCAGAGGATGCACTCGCATCCTCTTTACGCAAAATCAG 0.897
+TGCAGGAGATTTCAGGAAGCGCGCAGCATCTTGCGAAAATGGCCGAAAAAGCGCTTGAGGAAGAGTAAGAGACCGGGGACAAACATCCCCGGTCTTTTTCTTATCCTGCAT 0.983
+AGCGGGCGATTACGACCGCATTACTAAGCTGGCGCGTGAAGCTGTAGAAGGCGCTAAGCTGTAAAAGTCAAAATGCCCGATCGAGGATCGGGCATTTTTGTAGCGTTTTTT 0.927
+CGATATTTTATCTTTATTAATCTACTTTGGCATTGCCACTGCATTCATTCACTCATTATAAACGTAAAAAGTCCGTCTCAACTGCGAGCCGGACTTTTATTATTTAACGGT 0.9520000000000001
+GTCGTCGTGCGTGTGGTGGTGGTCGTCGGCAATGCGCCGTAGGGACTGGAACAACACACGATTCCAAAACCCCGCCGGCGCAAACCGGGCGGGGTTTTTCGTTTAAGCACC 0.728
+ACCCTTGAGCAACGTTACCGTCACGGGATTTCCAACCTCAAGCTGAAACACGCCAACCACAAATAAAAATGCCATGCCGGATGCAACACATCCGGCAACTTCACACTTACT 0.779
+AATATTAATATGCAAAAAACCGGCGCAATTGTTGATTTCTTCTCACCAGGCGCGCTGAAATAAGAAAAAGGTAATTCCGCCATCGCGGAGTTACCTGTCCCCTTACCGTGA 0.662
+GCGGAAGCGGGAAAAAATATAAAAATTGCTGCGGCCGTACTGAATAGTTCGCCCCGGCAAGTTTACTGACCGCGGCGCCTGCAGGCGCCTGCGGATCTTTTAATGAGGTGA 0.434
+AAATTAAAAGAAAAAGGCTATTCCTTCGGAGTGTTAGAGGACACAATGGTTCCTGTTCATGAATAAAAAAGTGAGGCGCATAAAGCGGCTCACTTTTTCATGCCCAAACTT 0.909
+TAAATCCTAACCAGACTGCCAGTCCTTCGGGGCTGGCGCTGTATCTCCTCTGTTCTCCTCAGGAAAATCATAGTAGCATCGCGCCTGTGATTTTCCTTTTAAGTCGGTTTT 0.395
+CTGTTCGTTTCGTTGACGGCAGACACAGCTTGAAAAAGAAACCAAATCTTGTAATCCGTCCATAACAAACAGAAAAAGCGGGTGTGAGCCCGCTTTAACTTTTGCAGAAAA 0.787
+AATCTGCAAATTCAATAAATTGCGATGTGTTGTGTAGGCCTGAGAAGCGCCGCGCATCAGGCAACCCAGAAGAAAGCCGGATGATCATCCGGCTTTTTTACATCATCAGAA 0.945
+GAAGTACCAGAAGTTCTGCGTCCGTATATGAACGGACTGGAATATATTGGCTAATACCCAATTTTTCTGAATCTAAAAAGCGCCTGCGGGCGCTTTTTTTGTCTCCCTTTG 0.998
+AAGCGGAAGTTGCTGAAGAAACTGCACCAGAAACAGAAACAACAACTGCGTAACCTATTCAAAAGGTGATAAGAGGGACTGCCTTTTATCACCTTTTTTCAAGAAAAATGT 0.8240000000000001
+AAACCCATCATTGGCTCACAGAGAGAGGGGTCAATACATCAAGCTATAGTGTGCGATAAATGATAAAAGCCCAAAACCATATGTGGTTTGGGCTTTTTGTATTATGATTTT 0.985
+GTAGCTTCCTGGACGATTAATCGGTAGGCCGGATCAGGCGTTACGCCGCACCCGGCACTAGGCCCTCTGCACAAACGCCACCTTTTCGGTGGCGTTTTTTATCGCCCACGC 0.9890000000000001
+AGTTGAAGTGCCGCAAGAAGCATTTATGGCAGTTCTGAAAATGGACGACAGTCCGAAAAAACAATAGAAGCCGCCGCAGTCTTGTACTGCGGCTTCTTTCTGTAAAGAAGG 0.858
+AAATATCTGTAATAAGAAATAGCCCTCGCCGCTTCCCTCTACAGGAATGGCGAAGGGCTGTCGGTTTCGACATGGTTGGCCATCGTATGATGGCCTTTTTTGTGCTTATCG 0.993
+CGGATGCGGCGTAAACGCTTTGTCCGGCCAACAAAAGCACGTAAATTCAATATATTGCTGAAATAACGTAGGCCTGATAAGCGTAGCGCATCAGGCAATTTTACGTTTTAA 0.866
+CTTTATCATCTTCCTGTTGCTTGCTTTCGGAATCTTCATGAAGCGGGATATTGCAAACTAATAAAAAAAGCTGTTTTGCTTATGCAAAACAGCTTTTTTGTCAAAATAAAA 0.927
+CCGCATCATTGAAGCCGCGATGGAAAGCAGTAAAGAGAAACGAACCATTATGCTGGAGCACTAAAACAAAAGCCTCCCCAAATAAGGGGAGGCTTTTTCATTAGAATGTTT 0.9840000000000001
+TGAAGAGTTCGGCTTCACTGTTGATAACGTTGTTGCGAAAGCAAAAGAACTGCTGTAATTAGCATTTCGGGTAAAAAGGTCGCTTCGGCGACCTTTTTTATTACCTTGATA 1.0
+ATCCTGTCATTGAAGGTTTATTTGGCAAAAAACAAGACGCTAATCCAAATCAAAAGGGCGCATAAAAAAACCATACGCGGCAGCCGCGTATGGTTTTTTTTACATTTCTTT 0.985
+ATAAAATGCAGCGGATCCACGAAGTGAAAAGCAGAATTGAAGAAGAGCTTGAGGAAGAATAAAGAAAAACTGGCCTTTCATTCGCGAAGGGCCAGTTTTCTTTATGTATAT 0.963
+TATCACGATCAGCAAGGTAACGCGATGCAAATTAACCGTGATGATGTTTCGCAAATTATTGAACGTTAACAAATAAGGTCAGCATCCGGCTGGCCTTAAGATTTTTCTCTT 0.828
+AATTGAGCGCGCTCTTCTTGAAGAAGTGCCGGGTGTCGTTGAAGTAGAACAAGTCTTTTAATAAAGCAGCCAGGCTGATATTTGATCAGCCTGGCTTTTTTATTAGAGATG 0.995
+CTTCGCCGGCTTTACATATTACTCAATTTTTATTATGGTGCCCGGCGGCGGAGGCCATTAAATGCAGAAAGAGACAAACCTTATCGGTTTGTCTCTTTTTTTACAATGAAA 0.993
+TCAAAAATCGGTTGAAGACGAAGATATTATTCGTCTGGTCGCCGAACGATAATCCTTCCTCAATCTTGAGTAACCCCGTCGTTGAAGGGTTACTCAATTCATCCTGATTAT 0.69
+AGGTAATCGTGGACCTCAAGCTTCTAATGTTGTAAAACTCTAAACTCAATACATGATGATGAGATGACAAATAGAGGAGAGGCATTCGCCTCTCCTATTTGATTTTCATCT 0.986
+GAGCTCGATTATCCAGGTCATATTAAGGTGACAGTAATCAGAGAGACTCGAGCCGTAGAGTATGCAAAATAAAGTGATGCGCTAAGCATCACTTTATTTTTTTGACGGCAA 0.9670000000000001
+AGGTATTTTTATCGGCGCACTGTTAAGCATGCGCAAATCGTAGTGCAAAAATGATAATAAATACGCGTCTTTGACCCCGAAGCCTGTCTTCGGGGTTTCTTTTTGCCTGGT 0.971
+GCGTTGTGATTCCGAAAGTGCTTCGTCCTTATATGGGGAATAGAGAAGTAATGAAACCGTAAATTATGGAAAGGCGTGCCTGACAAGGTGCGCCTTTTTGCTTATGTAAAC 0.997
+CACAATGGCTGGGAGGCTGGCGAGAAGCCATGGCGGACAGGGTAGTAATGGCCTGATTCTGTCTCTTTAAAAAGAAACCTCCGCATTGCGGAGGTTTCGCCTTTTGATACT 0.9570000000000001
+TCATTCGCGCGGGCATTATTAAAGCAACAACTGACGGTACGAATTTTCATGATTGAGAAAGAAAGACGAGAGACAGGGAGTAGCTTCCTGTCTCTTTTTTCTATAATTTGC 0.9990000000000001
+AAGCTCCTGGGATTCATTCACTTGCCGCCTTCCTGTAAACCGAATTATATAGAGTAAAATATTTGATTATCCTTTGCGCGGCATGATGTCGCGCTTTTTTTATGCGTCATT 0.998
+ATTTGGTTCTTGATCGGGCTTGTCTTTATCGTGATCGGAGTCATGATCAATTGGGGGCCGTTTTAACGATTGCTGCCCGCCGGCTTGTACGGCGGGCTTTTGAGTTATTCA 0.978
+GTTAAAGGGACCAGAAGAAGGTTTTGGATTTTCTAAAGCTTTACATAACCATTTCTTTAATTAAAGATAAGGACCAGCCACATAATAAGCTGGTCTTTCTTTATTTTCCCT 0.925
+CATTCAAAAAAGCGACATCGGCCCTTCAGGATTTGAAGAGAAATTAAATACTCATTTTTTGTAACGTGAAAAGCTTGCAGGTTATCTGCAAGCTTTTTCTTATGAACAAGT 0.971
+TCTCAGTTGGCAGAAGAACTTCAAACCGTCATTAATCGTTTTAAATATTAAACAGGCTACTTACGTGCAACCCCCATCTTATTCGGTGGGGGTTGGCTACTTTTACTGTGG 0.927
+AGACCTGTGCTGAATACGACACTGATCCACAGGCTGCGAAGTAATCAATTCGTCTGAAAGCTTGAGTAACAACGGAAACCGGCCATTGCGCCGGTTTTTTTTGGCCTGAGT 0.993
+GTGTAAATGGGCTGTTTACTGATTTCCCTGATAAGGCAGTAAAATTTCTTAATAAAGAGTAATGTTACTGCAGGATGGCGTTCATGCGCCATCCTGTCTCATATCAAATTT 0.728
+CAAGGCATCAGTTGGAGAGCAGCCTGTTGCTGAAGCTGAAATCGGCATCTATATTGAAAAATGAAAAAAACCCTTCACAACATTTTGTGAGGGGTTCTATTTTGTGTCGTA 0.983
+CTACTGATTCCATCAAAGTGGCGGATGAGCCATTTGAAGGCGACCCGCTTAAATTTGAATAGAAGTAACTAAAAAAAGCTCCCGAACGGGAGCTTTTTTATTTAATGGATA 0.997
+ATGTCGGTCAAAAATGGATTGGTGTTCAGCATATTTACGAAAACAACAACACTCAATTTTAACAAAAAAAGTCCGCTGATGTTATTCAGCGGACTTTTTCAATCTTTCTTG 0.951
+AAGCTTGAAGTGAAAAATCGAATTGAAGCCATTACCCGGTCAAAAGAAAAAGGCTGGTTTAAATAAAAAAGGATCTTGGCATCTGCCAGGATCCTTTTTGTTAACCTGAAA 0.972
+GTGAAGCGAGAAACATACGAAGATATTGTAAAACTTGATCTGCCATTTAAAACGGGTGTAAAGCAATAAAAGAAAGCGCCGATTTTTCGGCGCTTTTCTTATTTGAATATA 0.963
+ATCTGGAAGTTCAAGACGAAAAAAGAAACATATCGTCCGGCACCAGACCAGTTTGATTTTCGCCATGTCTCCAATCCTTAAAAAGGGTTGGAGGCTTTTTTTATGAAAGAC 0.998
+CGGAGTTTGGTGCGGGAACAGTTTTTACATTAACCTTTCCAATACGGAATCAATTTGAACATGTCATAAGCGTGTGACGAAAATGTCACATGCTTTTCTTTTTTGTTCGCC 0.961
+ATGCGGTAACCTTATTCAAATTGTACAGAAGTAACCGATTCAGTCGCGTCCTTTTTGTATGCAGAAGAAAAACCGCTGGCCGAGGGGCCGCGGTTTTTTACTCTTCTTCTG 0.857
+TTAATGCGTTTCTGGCTTTCACAGGATAAAGAAGAATTGCTAAAAGTATTTGGCTAAAATAGAAAGGACCTTTTTGCGCTTAAGCAAAAAGGTCTTTTTTGTGACGTCTCA 1.0
+GAAATTTCACTTCTTAAAAAGCTTAATAAGGAATACCAATTAAATTAAACAATCTTGTTGGTAACAAACATCCTCTTACTTATTGTAAGAGGATGTTTGTTTAATTCTTAC 0.997
+GACACCTGAAGGGTTAGGCCTACGCAGATTTGACAACGAGCAAGCCCTTTGATGGGCAGCTTTTGTACAGAGCCAGGGTGCTACCAACACCCTGGTCTTTTTATTTTATGC 0.996
+TGTAACAAAACCGGTGGACGAGGATGGAATTGCATACGCTGTCAAAGAATTGGGCCTTTTAAAATAAAGAAACGGCTGGCATTGTGCCAGCCGTTTTCTCTTTTAGCGCTC 0.977
+TTTGATAACCACGACCTTCTCGTCAGCTATTCAGAAGACGCTGATGAACCGGTTTTTGAATACCAATAAAAAAGAACGCACTTCATGTGCGTTCTTTTTTTACAAATGAAA 0.996
+AAAACAAATTGCGGGTACGTCAAAGTTTGTTTTCTACCCGTTTAACGAAATGCGCAAAACAAATTAGGATCAAGCAGCTTCCCATTGGGGCTGCTTTTTTTATATCTTTTT 0.99
+CAATATCAATACCCTGGAAATGATGCCGGTTACCCAAAGCTATGCCGGACTGAATGTCCACCGTCAGTAATTTTTATACCCGGCGTAACTGCCGGGTTATTGCTTGTCACA 0.6759999999999999
+CGGCGACGATACCTTGACACGTCTAACCCTGGCGTTAGATGTCATGGGAGGGGATTTTGGCCCTTCCGTGACAGTGCCTGCAGCATTGCAGGCACTGAATTCTAATTCGCA 0.85
+TATTGAAAACACAATCCAGGCAGCTGAGAAAGTATTTGCTGAGATCAGCCGCAGATAAGAGTGAAAACCGGTATCAAGGACTCCTTGTGCCGGTTTTTTCGTGCTCTCCCA 0.998
+TCAAAATATTGAAAAACATAACTGGATGCTAAAAGCTTACCTAGGTTAAGTTCAAAAATAGAACGGCCGGATGTCTTAAAAAAGACGTCCGGCTTTTCTTTTTGTATCTGA 0.995
+TCATCGTTGGCTTCTTCGTCATCGGTATCGCTGGTTACGCTTGCGGCCTGCTGGGACTGTAAGACTGTTGTACACTACCGGGGCCTTTTGGCCCCGTTTTTTTATCTGGAG 0.805
+TATAAGAATAAAGTATATGACCGGCTTGGACGAAACAGACCTTCTTCCAGCTGATTTGTCTTGTCTGCAGGATGGCGATTGATAAAAGCCATCCTTTTTATGTTCCAAGTT 0.9229999999999999
+AACTCATTAGGATTCGGCGGACACAACGCAACATTAATCTTTAAAAAATATCAATCATAATCAAGCCAAACCGGCTGCCCTTAAAGGGTAGCCGGTTTTTTTTGTGTGCAT 0.998
+TTGGCGGATGAGATCAAGTCCTTTGCGAATATGAATGCCCTTATTGTAAAATAAAGAGAGAAAAGGCGGTTGCTGTGTGATCGGTAATCGTCTTTTCCCCATTTATAAGTT 0.9259999999999999
+AGAGCTCGTTAAAACGGCAGAAATGGTTGTTGCCATTATTGAAGAGGCGGCAAAATAAAAAAAGAAAACCCGAGTGCGATTTCCCGCATCGGGTTTTTTTAGCTCCATTTC 0.9129999999999999
+CCCAGGGCTGAAAAACGCTGAAACATGGGAAGATGAGAAACAAGAAGCATAATATAAATATAAAACAAAGCTGCATTCAATAGTTGAATGCAGCTTTTTCATTATTGGAAA 0.997
+GATTTTGCGCAAGACAAAAAAAGCGATTTTGATTTGACGCCATTCAGGCTTTCCCGCTTCCAATAATCATCATTACGGCCTCCAGAATGAGGCCGTTTTTACAGGAGTATT 0.8859999999999999
+CGAGTGAGAGACCCTCGTCCGAAAACAAGATCTGCTGTTGAAGATGTTGTGAAGTGGGTTTAAAAGAAGAAAGCTGCTCGCATAGCGAGCAGCTCTTTTTTATGCCTGATT 0.99
+AGATACAACGGCTCGGTATCAGAGTTTGTACCGCCGGAAGTAGAGTTGGCGCTTCAGCAAAAATTCAGACAAGGATGAGGGTTTTGACTCATCCTTTTTTTGTTCCGTTTG 0.927
+AGAACGTTGTAAGGATAGGCAACTTCAAAAGGTTTAACTTTTCACATTAAAGAGAGCATACTAAAAAGTATCGGAGCTGGATAAAACCAGCTCCGTTTTTTATCTTTAATT 0.986
+GGATATCGCCAGTGAGCATGGCTGGATTGAGGTTGTTGAGTCCATGACCTTATCTGTCTGATTCCGCCACTCTGTGCCGGTTTACTGCACCGGCACATTCCCCCTCCGGCA 0.8690000000000001
+GAGAGTGATTGCCACAGGGAAGGGCCATGTAGCTGACAACATTATAAAAGAAGCGAAAAAAGCAGGGGTCCCGATTCAAGAAGATCGGACCCTTGTCGAATTAATGCGCCA 0.5770000000000001
+AACGCGTTTCTTTGGCTTAAAAAGGGAATGTGGGTTACACGAAGGGTAAATATTGCCGGACAAATTAAACGCCTCTGTCAGAAATGATGGGGGCGTTTTTATTTTGCGAGC 0.973
+AACGGAAAGTGACATTTGTGAAAGAAAATAAAAAATGGAAAGTCAATCAATTTGACGCAGTTATATAAGAAAAACGCCCGGTATAAGCGGGCGTTTTTTATTTGGTTTGCA 1.0
+GTGTGGGCGCGGCCGTTGGGCTGGTACTAGGACTGTTGCTGGCACGCCGTTAAAACCTCCCTACACCGGGGTACTGCATTTTTTTTGTAGTACCCCGTATAATGTGAGGCT 0.8320000000000001
+CACAAAAGATATTCATAAAGCGGCGTTTGTTCTGCCGAAATTTGTGAGTGACCTGATTAAATAATGAAGGTATGGCGCAGGAGCGAATCTTGCGCTTTTTTACAGGAAAGC 0.5579999999999999
+AATCATCATTGCTGTTTTACAGCTGATCCTTCTGTTCTTATAACACAAGGAAACGTACTTAAGGTGCGTCCGGTGAACCAGTCGGACGCACCTTTAATAACTATAAATAAG 0.983
+GAAGAAGATGATGCCCGTAAAAAAGATCTGAAATCAATCCAAAAGAAAACAGAACATCATAATCAGTAAAAAGGCGGTCTCGAAGGAGGCCGTCTTTTTTGATACGCTGAC 0.987
+TTGTATCAGCGGTTAAACCGCATATTTTTCACATGGATGAAAGAAAAAAACATACTGTAAACCTGCATGGCACACGTCAAAAATTTGGCGTGTGTTTTTCTGTGGATGGGG 1.0
+TGAACGCCATCAGGCCAAATGATTTTTACCGTTGCATCATGTCGCCCAATATGATGCTTGCTCGTACCAGGCCCCTGCAATTTCAACAGGGGCCTTTTTTTATCCCTGAAC 1.0
+CTGGCACTGCCGAAAGAGAAGTTGCAGGAACTGCACATCTAGTCAGTAAACTATCTTCACAATTAATTGAAAAAAGCCAGTTCAAATGAACTGGCTTAGTTGTACTTAGTG 0.889
+AGAAGGTATCGAGCCGTACCTTGAAACAAAATATTTGTCCATCGGTTTATAAAAGAATGCACGCTCCTGAGAGCTGCCGGATTTTCCGGCAGCTCTTTTTGTGTTCCGGCG 1.0
+AATTACGCTGAACAATGCGCTTCAGCTGATCGGCGTATCGGCTCCGGAAAAAATGTAATCACGATCAAAAGGACAAAGTCTTCGGGCTTTGTCCTTTTTTTATGAGAAAAA 0.9940000000000001
+GACCTTCATTTTGATTATGGCTATTAATGAAATTGGCACATATAAACAATAATAGAACATGATACAATAAAGACAATCAAATCGCTGGTTGTCTTCTTTTTTTCTGAAAAG 0.892
+TAAGCGCGCCTTCAAACAACTGGATAAAACTTTCCTTGATGATTTGTAATTGACCCCTGATTACGCATATAAAAGAAGGCATACTCAGCCTTCTTTTTTTTCACCGTAGTA 0.39899999999999997
+CGGCGGCATATTTGTTACGGTCATAAAGAAAAAACAGCCGGATGCGTATCCGGCTGCAGAAGAAAAGACGCTATAGCCTGTCCGGATCGGACGGGTTTTTTAGTCTTTAAA 0.9
+AATCTTACTTGCGGTTGCTTGTATTTTGATTATGGGGAAAGAAACGAAACAAACTGAGCTAGAATAGGAAAAGCACCTCTTAAAAGAGGTGCTTTCAGCGTGTCGACAAAC 0.467
+AATTGATGAAAAATACTTAACTCAATTTGCCGAAACGCTAGAAAAAGCGTTAGCGCAGTAATATAAAAGCCCAAAACTGATATCGTTTTGGGCTTTTTTTATTTTATTGAG 0.9940000000000001
+GACGAGCCAGAAGAAGAATAATTTTACTTCTTCATGCCAAAAGGGAGCTATCTCCCTTGTTTGAATTGAAAAGTCCAGGCTGCAAAGTCTGGGCTTTTGTCGTATTAGGGC 0.897
+CCTATGTCGGTTACAGAAAGTACAAGGCGGAAAAAAACAAGCTGAAAAAAAGGGACTACCCTAAATAAGGATGAGGGGCGGCGGTCAGCCGCCTTTTTTCTATTACATGTC 0.907
+CCTTGTGCTGGGCAAACCGAAAAGCTGGTCACCGGCTGAAACCTATTCTTCATCTTCTTAATCAAAAAGCCTCCCGACATCATGTCAGGAGGCTTTTATGCTAATGGTAGC 0.965
+CAGCCATCGGCTCGCATGCCGGTCCAGGTACATTGGCGATATTCTTTTTAAGAAAATGAGCAAACAAAAACAGTCAGACTCTGTGTCCTGACTGTTTTTGTTTGCTCATAG 1.0
+AGAAAATGAACGCATCATTGATGAGGTCAAAAAGGTCTTGCCTGTTGAACCGCACATGATGTAATGGAAAAAAGCTGACGATCGTTCGTCAGCTTTTTTATTTGTCAGCGG 0.99
+CTGGTGCTGTTTACACAGGTGATGAAATAGAAGTTCATTCCTATCAGCGAAAAGTCAAACGAAAAGCAGAAAGGGTCTGATTAAATCAGGCCCTTTCTATCTTTTCTTTAA 0.946
+CAAAGTCGTCATTTCATGGATTGTATCCATCGGCTTTGTTGGCATGCCTGAATTCATGTCTAGCAAGACCTTTGCCTTATGTCGGCAAAGGTCTTTTTTGCATGGTCCGGC 0.9590000000000001
+TAAAAGAATACAACAAATTCGTCAACCTGGAACGGCGTTTTGATGACGCAGGCGTTCCGCCCGGCGCATAAGCCCCAAGAGCTGCTCTTGGGGTTTTTTTCATTCGAAAGA 0.995
+TTATATGGATATTGCGACAGAAACGTGGAACTGCGAGTCTTGGACGACGAAAGTGCTTTAATTTATAAAAAAACCCGCCTGCTAAAGGGCGGGTTTTTTACTGCCATTTTT 1.0
+GTAGCGCACCGTCATGGGGTGTCGGGGGTCGGAGGTTCAAATCCTCTCGTGCCGACCAAAAATCCCAAGAAAAAACCAACCCTTACGGTTGGTTTTTTTATATCTGCAATT 0.943
+GCAACCGGACTGCTTCCTGCGTCCTGGCGAAGAGTATTCCAGCCTGACGGAATATCAGTTTATTGCTGAGTAATGTTACGCCCTCGTCATGAGGGCTTTATCTCATATTGT 0.841
+TTCACGATCTGTTACATAACCCCGATATCCGGTACGAACCAAACTGGACGGTTCTGAAGGCATAATCAAAGCCCAAAACATCATGTTTTGGGCTTGTCTCTTTACTCGCGT 0.775
+CTGCGCCAGGTGCAGTTGAAAAAATCAAAGCTGACATATCCGCTTAGATAATCACGACCATGAAAAAGAGCCCGCAGTGTAATGAGCAGGCTCTTTTTTTATTACAAAACG 0.9520000000000001
+AGCACTCGAAGTACAATATAGACAAGGTATTTTTTAAATAAGACGTCAGTCTGCGGATTGAACAGCGAAGCCAGAGCTTAAGTCAAGTTCTGGCTTTTGATTTGGGCATTT 0.995
+CAAGTGATGGACCTGCTGCAAAAGTTGCTCAAATAATGGCAATAACATAAATTCTGCAAAAATAATTTTCCCCTATCGTTATCTATGGGATAGGGGAATTAAGTCTCTGAG 0.853
+AACCCATCACATCTCGTTAACAGAGGATAAAAAAGATCATGCCATTCCATTAGTCTTCAAAGAATAGCAGTTTCCTTGATTTTAAGGGAACTGCCTTTTTTATTTATTGCA 0.9420000000000001
+CTTTATTATGAAGGATTCCGTTCTTCCGATCAGCTTGAAAAAACTGAAAGAATCTGGATGGATTGAATAAAAAACCCGGCACATGTGCCGGGTTTTTTATGTCCTCCCCTT 0.992
+TTATCGGCTATGTGCTGACCTTATTCATCGGACCATCCAAACAGCTTAATGAAATAAGTTAATGTCACAGAACGCCTGCGTTATTGCGCAGGCGTTTTGTAATAAAAAAAG 0.96
+GGAATTTAAAGCCTGGCTTGAAGAAGAGATGGGCATTAAGAAGTAACATCCGTATCGGTGTTATCCACGAAACGGCGTTGAGCAATCGACGCCGTTTTTTTATAGCTTATT 0.95
+GTGAAACAAATTTTAGAATCGATTGACGAGAAGACATCTGTTTACTAAATAAGCAAAAAGAGCATTTTTTGAAGTTTTGTTTCAAAAAATGCTCTTTTTCTATGCTTTATT 0.996
+GCAACGTATTCGTTGTCGTGATGGGTCTGATTGCAATCTCCGCAATCTTCTACTCTCTGTTCAGCTAAGTCCTTTCGCGCCGCTTTCGGGCGGCGCTTCCTCCGTTTTAAC 0.35
+ACCAAGATGACCTGGCAGAATCGGACCAGCAATAGCTGACGTACACATCAGCCCGTAATCTTTTTTGATTGCCATCACCTTAACGGGTGAGGGCGTTGTTGTTCGTTAATA 0.677
+TGGTGAGTCAAGACTGGTATCCACTGATAACAGCCTTTATCATTTCGCCTATCAAGTAAGAAGATAAAAAAGAAAAAGGCCCCAAGATGTTGGGGCCTTTTTCTTAATCGT 0.951
+TATCGCGTGCTTTCTGAAAAAGAATTCCTCGATGCCGGCATTCCGCACTTACAAATGATGAAGGACTGAACGCATCCGGATCTTTTGAGATCCGGATTTTTACTGCATATA 0.903
+AGTACGAGGAGATTGAGGTTGAGATCCACAATGGGAAACAGCCTCTGTATTCGTATATAGTTTCAGCAGAATAGAAGGGCAATTTGCCCTTCTATTCTTATGTCTGCTTTT 0.882
+GTAATGCACATATTGCAAGGAAATGTAGGCCTGATAAGCGTAGCGCATCAGGCAATTTTGCTTTTATCATCACTCTGAAACCGGGGAAACCCGGTTTTTTTATCCTCATTT 0.866
+GTTCTGAACTTGCTCCGGAAATTAACGAAGCGCTTATCGTTGAGTTCTACTCTCGTTAATCGTTTTAAAAACCCCTGCCGCTATGCGGTCGGGGTTTTTTTATCGGCTTTC 0.966
+CGAAGATAACGCATCTGCGGCGCGAAATATGAAGGGGGAGAGCCCTTATAGACCAGGTAGTACACGTTTGGTTAGGGGGCCTGCATATGGCCCCCTTTTTCACTTTTATAT 0.17
+GGTACCGAGCGGCACTACTAACACCGCATCTGTTCACGTCCTGTAATATTGCTTTTGTGAATTAATTTGTATATCGAAGCGCCCTGATGGGCGCTTTTTTTATTTAATCGA 0.9990000000000001
+TTGGTGTACCGATGAAAACGGAAACCCTGTCAGAGATTGTGATCATACCCAAACGTCTGCGTAAGATAGAAAAAGAGACTGCGGCAAGCAGTCTCTTTTTGATAAGATTAC 0.946
+GTAGTGCTGGCAGTCTTGTTTTTCGTGTTAACGATTGCGCTTGCTTATATCCTATAGGGCAATGTTTGTATAAGGTCTGATGTGAAGTCAGGCCTTTTTCACGTTTCTGGA 0.96
+AAGTGAAATGGCATACCTCACATTCACAAATTACAGAAGCCGCTATTGAGCAGCATTTGTCATAGAAAAAAGCGTCCAGATATCATCTGGCGCTTTTTTTTGTAAAAAACC 0.9890000000000001
+TGTTGAAGTAACAACTATTTGCTTGCCGGTTATTTTGCTTCCGGCAAGCAAATGAATTACACAATGCAAGAGGGTTATTTGTTCAGCAAATGGCCCATTTTCTCGGCTTTG 0.675
+CGCATCAGGATCTGCAAGATGAAGAAAAAGAACAGGATGAAAAGCCTGTCGTCAGCTGACTATAAAAAAATCATTTCTGGGTTCAGAAATGATTTTTTATTGTGTTACACT 0.797
+AACGACCGGACGCAAGCCGTTGTGGTCGCCATTAAAAATGGCTGGGTAGAAATGAGATAGTATAATAGGAGACTTGCCTTTTACTAGGCAGGTCTTTTTTTAGGCTGCCGT 0.885
+TGCTGATCCAGGCAAAAGACGGAACCGTGTACTCTATTACACGTTAATCGTCTCTGTCGTTCACTTTGAAAACGGCTCCTGGACAGGGGCCGTTTTCCTGTTTTTAACAAC 0.511
+AACTGATCAATTAATAAATGATTTTATAAAAACTCACTGATGAAAAACATTTTGGCACAGTAAAACGGCAGGCGCCTTTCCAATAGGAAGGGCGCTTTAATTCGATTTCCT 0.948
+CGGCAGTTTAAAGATATAAACGTCTTTATCGATGAATTAAAAGACTTAATAAAGAAAGAGCGTTAAAAGAGCTAAGAGGATTCTTCTAGCTCTTTTCTCATGTGCAAAATT 0.9390000000000001
+CCGTAAAAATAAATTTTAAAATTGAATAAGTCCAAGACGGAAAGCCTGCGGACACTGATCGTTTTACAGAGAAATTTGTGCTTCGATCGGTGTCCGTTTTTTTTCGCAACT 0.983
+GAAAAAATTCGTATCCATATCGAAGAACGCCGTTATATGGGGCGTGCTGACTAACTTCAGCCGCATGCAGAAAAGGGATAGCTCAGGCTGTCCCTTTTTTAATTTATTATA 0.973
+AAGAAGAATATCGAGTCGAAATGAAAATACGGATCGCTGAATAATAAAGCATAGAAAAAGAGCATTTTTTGAAACAAAACTTCAAAAAATGCTCTTTTTGCTTATTTAGTA 0.991
+AAGCGCAGACCACCGCAGAAAACATCATTAATACGCTGGTTATTCAGTAAGTTTTAAGATGATGAGGCGGCCTCAGGGACGTGTTCCGGAGGCCGTTTTTTTAATCGCCAC 0.765
+CTGGATGCGTTGGTGGCAGATGAAGATCTGAGCCGTTTTATCCTATAATCGCGTTCAATCATTTTCATCATTGTTTGATGGGGCTGAAAGGCCCCATTTTTATTGGCGCGT 0.8370000000000001
+ATTGTATATAACGTTTTTTCTAAAGCTAAAAAAATAGAACAAGAAGCTGACCTCGCTGAACAAAAAACAGCAGTCTAACTCCGCCGCGGCGGAGTTTTTTTTGCATATAAA 0.987
+TTTTCCTACATGGCGATCAGGAATGCGGACAAGCAGGATGCGTAAACAAAGGCGCCCAATATGTATAAAAGGCCGATGCTGTCAGCACCGGCCTTTCCATTATGAGTCTGT 0.915
+CAATAAATCAAGTAATTAACCTTTAATATATCTCTTACTGCTATTTTTTTCCGGGATTGTTATTTCCACGATGCAAATGACAATACCCGGAAAATCCTTCTGAACTCTTCA 0.846
+TATTCAGCTCTGGCAGGTCGTGTTCTCACGCGGTGTTGAAAACGGCCTTCGAGTGGCTCGCTAAAGGCTATTCTATCGCCCCCTCTCCGGGGGCGATTTCAGATCAGGCTT 0.65
+GCTTCCCGTACCCGCAAATGGATGTGAACTTTAAGCGGGTGAAAGAAGACAAAGCTGCGTAATCAACGCTGAGGCCAGATAATACTCTCTGGCCTCTCTCTTATTAGTTTT 0.953
+CCTATAGGAGGAACATGCAGGATTGAAGCTATTTCGGGTACATCACGAATATGGATTGATAAACATTAATCAGCTTGTAAATTTTTTTACAAGCTTTTTTAGCGCAATCGG 0.961
+TATTTTGCCGGCTCAAATGCCCGATTTTACGATAAAAGGAACTTGTACCCTTATCGTGTCTCATATTTAAACTTAATCTCACTTCGAGGTTAAGTTTTTTTATTAGAAAAT 0.958
+CGTGCAAAACGTACGTGATGTGATTCCGTTCCCACGTACTCCGCGTAACGCCAGCTTCTAATTTAGCGTCTTCAAGAGCCAGCGCCCGCTGGCTCTTTTTTTATCTTTTCT 0.9540000000000001
+ACGAAGGAGGAAATGCGGCACGCGATTGATGAAATCGCGGCGAAAACGATCCACAAGTAAACATGAAAAAGCCCCTGAACACTAGTCAGGGGCTTTTCATATTAATGATCT 0.986
+TATTGTGCCCGTCGAAGTAGAAGCGGCAGTCGCATAGCTCTTCTGTCTCATTGTGTACATCCTAAAGGCAAAATGCCAGCCCGATCGGCTGGCATTTTTATCTCAAAAATT 0.905
+ATTGGCCAAAGCAGAAAGGTCCGACCTAATTAAAGAAAGGGAAGCAAGTGTTCATCTGTAAAGGGTTTTAAAACGCCATGCCTCGTGCATGGCGTTTTTTTGTGCCAATGG 0.9990000000000001
+GACTATACGCCTGATGGTCGTTCCCCATCGGGCCTGAAAACCGCAATACGCTGGGTAACAATCTTCGAGGGTAGCAGTTAACGCTGCTACCCTCTTTTTTCTGGAGTAGAT 0.986
+TGGTTGCCGTTATTGGTGCGATTGTCGTGCTATTTATCTACAGGAAGATTAAAAGTTAACGCTTAAATTGCACAAAGGCTGCACACAGGCAGCCTTTGCTATTTTTTAGAG 0.978
+GGGGCCTAACCGCTTAATTATCCTACCGAGGTGTATATTATCACAGCTATTACGTTACGTATGCTTGTATATACAGCCTCCATGTCTCATGGAGGCTTTTTATATGGAATC 0.17
+ATGACGCTTATGAAATGGCGCTTGACCGTGTGAAGGAGACGGAAACAGAGTCTTCTTCCAAATAAAAAACCGCCCTGCCGTCTGGCAAGGGCGGTTTCTTTATGAAACAAA 0.9840000000000001
+GCAGACGATTTAGAACACGATTTCGAACAAGCGCTGAAAGAAATTGCTCCAGTTTCGGTTCGTTAAAAAAGAAGCCGGGGATAGTCCGGCTTCTTTTATTATTGTTCGTCA 0.8440000000000001
+CGATTTTCATTTCTTACAAAAATGTAAGGCTGCGTTAAGAAAACAACATAGCCCGCTTTGTTTCCCCTTGATAACATGGATTTATGTCAAGGGGATTTTTATGTTGAACGT 0.9490000000000001
+TGTAAAAGAGCAAAGGTATATGCTCAAAAAGCAAAAAGCGAAAAAGAAGCACAGAGGTAAATAATCCAAACAAAAGCAGGCGCAGTGCCTGCTTTTGTAATTAAGGACTCT 0.915
+AAAGGCGCACAGCAAAGTGCTGAAAGCGTTAGAAGACACATATCAAGCTGTTTTAAGAGGCTGATAAAAAAGCTTGCAGAGAAATCTGCAAGCTTTTTTCTATGAACGTTT 0.998
+AATACTGCCGCGATTCTTGTTTATGAAGCGCTGCGCCAGCAAAATTACCGTGATTTAAAATAGTGAAAAACCCGCTCATCGATGATGGGCGGGTTTTTTTGCGGATGTTGA 0.9990000000000001
+CTTGTTTGCTAACCGTGGCGCGGACGTTGCGCTGATTGGCACACCTGACGGTGTCAAAACCATTGTGAAATGATCTGACGGGGGAACCTCCCCCGTTAAAAAAATTCTCTT 0.912
+ATCAATGGATTGCACAGCTAGCGTAGGCCTGATAAGCGTAGCGCATCAGGCAGATTTGCGTTTGTCATCAGTTTAATGCCCGGAGAGATCCGGGCATATTTCCGAATACGG 0.606
+ACGCTACCTTGAGGTGGTAGTGCCCAATAGGGCTTACGGGTTCAAGTCCCGTCCTCGGTACCAAATTCCAGAAAAGAGACGCTGAAAAGCGTCTTTTTTCGTTTTGGTCCT 0.975
+GGATATTACAGTTGACGCTTCCAGAGGCGCAGTCTATCAAGGCCGTGCGAGCGTTCTTTAATTACAGGTGAAAATGGAAGGGGAATCCCTTCCTTTTCTCTTTATCATGCC 0.5379999999999999
+AGCGCTCTACAGCGCGAAACGGAGCGGGAAAAACCGCTTGATGATTCATGACTCAATAAAATAAAAAAAGCCCAAAACGATATCAGTTTTGGGCTTTTATATTACTGCGCT 0.9890000000000001
+TATCCTTTATGGTTATTTTACCGGTAACATGATCTTGCGCAGATTGTAGAACAATTTTTACACTTTCAGGCCTCGTGCGGATTCACCCACGAGGCTTTTTTTATTACACTG 0.986
+ACAAAACAAGGGATTCATGATTACATCGCGGATACCACCGTGGTGCATGAAAAATTATACCGCAAATAACCGATAACCCGGACTTCCGTCCGGGTTTATTTTTTTAGGAAT 0.993
+TTGCCGCACAAATTTGGCTTGCATGGAAAGGAAGAGAACTGAAAAAAGATTCGGCGCAATAAAAAATATCAGGCTGTCCTCTGCAGGGCAGCCTGTTTTTTGAAGTTTCAT 0.9440000000000001
+TGCGTTTATCAGCAAGCAGTAATCACCATAACGATTTATCAAAAAACATGTTAAAATAGAAATAATAGAAGGTACCTCATTGCCTGAGGTACCTTCACTTATGATGTTTTT 0.9440000000000001
+AATGCACGCACAGATCAAATAATAGCGTGTCATGGCAGATATTTTTCATCCGCTAATTTGATCGAATAACTAATACGGTTCTCTGATGAGGACCGTTTTTTTTTGCCCATT 0.9420000000000001
+GGATTCACTCACTTGCCGCCTTGATGCAACCTGAATGATTTTGTGTATATTACCCTCGGCAATTTCTTCTTCTGCGGCTCGATGAATTTGGGCCGCTGCTTAATTTACGGA 0.385
+ATTGATTTTGCAAGACTTTGTGGGTCGGATAAGGCGTTCACGCCGCATCCGGCAAAAACAACGAGCCAATAAAAATACCGGCGTTATGCCGGTATTTTTTTACGAAAGAGG 0.84
+AAACAACTGGCTAGAAGCCGTTCAATGGATGAACAACAACAAGCATCACTTAATACGCGTCAATAACTGAAAAAGGAGCCCAAACCGGGCCCCTTTTTCATATATACGCAT 0.852
+ATGAGGCGGGAGACGCATTTCAGTTTTAGACTCCCATAAATCCGCCAAAAAAAACGAATCATGTGAAAAGCCGCTAAGCCCTTGTTTAGCGGCTTTGTTTCTGCTGATAGC 0.975
+AAGATAGACGTGCATTAGCAGAATAAAGACGTTTGTCAGTTTTTATTTTAAAGATCTGCATGAAAAAACTGTACTCATTTGAAGCGAGTACAGTTTTTTATTTATTTACGT 0.9690000000000001
+CACATATTAAAGGACTTTTCAGCCTGGCTTACTAATCCTTTTAATGAATCTGGCATTGCCAAAAGCATTCCTTTCCGAGTGCTTTCTGGCAATGTCTTTTTTTATGTTTAT 0.998
+TAATTCCGGGTGCTGCCGGCAAGGATGTATTTGAAAAAGCGATTTCTGACGAGCAGAAGAAAAAGTAAGGAAAAAGCTCTCGATAAAGAGAGCTTTTTTTATTCCTGTTCC 0.868
+GCGATAATATGGCGAAACAGACACAAATCAATTTGTTATCATCAATGGCGATTTAATCCTGACCCGCCGCGGCAGCCTGTATTCGCGGGTTGCCGCCGTTTTCAGTTTTTT 0.455
+GCATTTGATATGAATAAAGGCCATTTCTTTGACAGTGAGACAGAAGTGAGAATCCGATAAGATCAAAAAAACCGGACATGGAGACATGTCCGGTTTTTTGCTATTGAAAAT 0.968
+ACCTGGTTTTGCGCACGTTATGCCTGGTATTGTCAACAGATGATGCAGGCAAGAGAGCTGGAGTTAGAGCACTGATATAACGGGCCTGATGGCCCGTTTTAGTGTTTGTAT 0.685
+CGCGGCAGAGAGCGCCGATCGATTGTTGCTACGCTGGTGGCAGCGGGGTCAAAAGCCATTGATGTAAAAGACAAACGCGAGGCTAAGACCTCGCGTTTTGCTTTAATCAAC 0.655
+AAAGACAATGATATGAAAGTTCAGATTGAAAAATCCCAGCAAGTGTAAATGTTTTGTATCACAGTAAGAAGACCTTCTTATTAAAAGAAGGTCTTCTGCTATTCTATTCAG 0.912
+ACAGTTGATGGCGAAGTCGTTTGCGAAGTAGAACTGACTTTTGCCCTCGGAGAATAATTGAAAAAAGGCAGATGGCCAGCGGCACATTTGTCTTTTTTTCTTTACAAATAT 0.7290000000000001
+CAGCTGATTTTACGGATACCGAGCCATCAGCACAATCAGAACGCCTCTTTTTCAAGGCGCAGAAATCAAAAACCATCGTTTCCTAAAACGATGGTTTTTTAAAATGCTTTT 0.991
+TAAACAGGCGCAAGCGAAAGTACTATAAAGTAAATTGCGAACACAAAGGGAGCTGAAGCTAGAAAGCCATTATGCGCTTTTTAGCTTATGCTCCTTTTATTTTTATAAAGA 0.9890000000000001
+CGGAGGCGACCTGCTGAAAGGGGAAACCGGTTCAAAGGTGAAGCATTCAAATAACAGCTGTTCTCTCTAAACACGGTGCCTTTACAGGCCCGTGTTTTTTTATCATTTGTG 1.0
+ATACGCATCTTGGTGTCGGAGTAGACCGGAAATATTACACCCAAAACTTTATTAAGCGATGGTAATGAAAGCCGCGGACGAATGGTTCCCGGCTTTTTCTATTTCCATACA 0.9490000000000001
+CTATGAGTATGTTCCTGCCGAGAAAGCTTTACAGGATGAATCATCTGTGGCGGGTGCTTAATTCACAATAAGCTTGCAGAAAGATTTCTGCAGGCTTTTTTATTTTTTAAA 0.9690000000000001
+TGCGTGGAAGATACACGTGAGACACAAAAACGACATCCTTAAGGCACTAGTGTGAAAAGCGATTCTTGTTGGGCATGCGTCCAAAAGAGTCGCTTTTTTATTTTCAAAGAA 0.922
+CAGCGTCACCCGTACAAACCGAAGCTGCAGCACATCGACTTCGTTCGCGCTTAATTGCTGAATAAGTTGTAAAAAACCCCGCTCCGGCGGGGTTTTTTGTATCTGCAGATT 0.98
+GTGTATGTGCGGGAAATGGGCCACACTGAGCTTCCTTTCTATCAGCAGCGCATGTAGCGTAAACAAGAAAAAAGATACCTGTTAAGAGGTATCTTTTTTTTGCGCCTTTAG 0.9990000000000001
+ATTTCTCAATTAATTCGTTTAATAGTTGAATAATGATCAGCAATACGTGCTATAATAGATCATAATATTACTTGCCAAAACCCGTTCAGCGGGTTTTTTATTGTGGCTTAA 0.813
+AATCATCGGCGTACCGATGGGGAAATAAAACAGTCAAAATTAAAATCTTAAATTAGTATATACTTATGTATTCAGAGGGTTTTGCGCCCTCTGTTTTTTTCGTTATAATAG 0.971
+ATGATCGTCTGGGGTTATCAAAGAAAACACCAGACTATGAAGAAGTAAAAGGAGAAGAGACAGAGTTAGAGGAGTAAACCGTGTGTTTACTCCTCTTTTAGTTTTATTGAC 0.987
+GTCACTATTGCCGAAGTCCGCATGGAAACCCGCAGCATTATTGCGCGCCCGGTCGCGTAATCTCCTTTCACGGCCCATTCCTCATGGATGGGCCGTTTATTTCCCCGCTCT 0.899
+CACGGTGGCGAAGGCTGCTGTGGCGGTAAAGGCAACGGCGGTTGCGGTTGCCACTAATACCGAAAAAGTGACAAAAAAGCGGGGAATCCCCGCTTTTTTTACGCCTCAATA 0.951
+TGACAGAAGAAGAAGTAAACGCAAGACTGGCAGCGATTGAAACAGAAGATCACGCTGCTGCTGAATAAAAAAAGAACACCTCGTATTGAGGTGTTCTTTTTTTCTATATGC 0.9890000000000001
+AGGTTAAAGATGTTGTTCTGCCAATGTTATGCCGCTGCACCCTCAACTTACGTTATCCCAACTTGTGACTGTTATTCGGCGCTCCACGGAGCGCCTTTTTTTCTTTCGTCT 0.996
+CAACGCCTGCACGCGTCTCCACCACGCTGGGTAACTGATGATTCGGTTGTACCCGGAACAACTCCGCGCGCAGCTCAATGAAGGGCTGCGCGCGGCGTATCTTTTACTTGG 0.501
+AGCCTGCGATAAGCAGACAGTGGATGCGATTAAAGAAAATATGTAGGTTTCATAAAAGCTTGTTGAACGAGCAGTAAGCCCGGATCGACAAGCTTTTTTCTTATTCTGTTT 0.9229999999999999
+TCACAATGGAAGCTGCTGAAGTGGCAATCGGAAGTCCGATTCACATCGTAAAATAATTTTCATATCAAAAACAGCCCCGCTTTGAGCGAGGGCTGTTTTTTTATTTTGACA 0.9990000000000001
+CCCTGTCCGCCTGGCTGACCTTGAGACGCATGTTTTGCGAACGTTTTATCAGAAAAATCACGTGTAACACTTGGGGCTCTAAGTCATCAAGTGTTTTTTTTGTATGTGTGT 0.919
+CGGCTGTAATAGAGCTGGTGCCGTTTTTAGATAAACAGAAGGCAAAAGAAACCCACCATTCAATATAAAAGGATCAGCACTGTCAATGCTGATCCTTTTTAAATTTGAGTT 0.972
+TTGCGCTGCTGGAACTGATCCGCTTTCTGCTTCAGCTTCTGAACTGATAGCGGAAACGTAATTAAGGGCTAAGAGCACACTACTCTTAGCCCTTTAACATTTAACGCATTG 0.997
+CCCCGGAAGAGGTTGCCGATTACATTGTTGAGACATTAAAAATTGGCTGGGATCTTTATCAGCCGATGTAAAAAGCCGTGCGCAGCGCACGGCTTTTTTTATCGTTTTATC 0.93
+ACGTCTGAGCTTAAGCAGCACGATCAGCGAACTGTAAGAAAATTTCATACAGTGAAACAAACGCGGTCATTCTCACATTCAGCTGAGTTTGACCGTTTCTTTTACATATTG 0.96
+AGATAAGGGATTAGAAGGAAAAGAATTTGATGAGTCTTATAATAAAAAGAAAATGTCGAAATAAAATAAGCTGACCGTTTCGTGCGGTCAGCTTATTTTTAATGATTTTCT 0.972
+CCGCGGTGTTTAATATGTTCAAACACCTGGCCCATGTGCTTTCAGAAAAATATCATCTGGTTGATTAAAGCAAAACGCGAGGTCTTAGCCTCGCGTTTGTCTTTTACATCA 0.5660000000000001
+CGTTCTATGCTACTTCTTATTATTGATTGCTCGTTTCCGTTATGAATCCAGGCAATCATAAGGACTCAAGACCAAAGCCTTAGGCGGCTTTGGTCTTTTTTATGTCTTGTT 0.9840000000000001
+AGGCGGCCGTACCGTTGGCGCGGGCGTTGTTGCTAAAGTTCTGGGCTAATTACACGTTAATTAGTTTTGAATTGAAAAGGGCGCTTCGGCGCCCTTTTTGCATTTGTTGAC 0.998
+TGAAACCATTTCACTTGATGAGTTTGTGAAAAAGGCAGTAGCTGAAGCGAAAAAATAAAATAAAAAAGCATGATCTCATTGAAGAGATCATGCTTTTTTTATTTCTCTAAT 1.0
+CACGCCGGGTTCTCAGCCGCAGCTAATAAACCGTTTGGATGCAATCCCTTGGCTATCCTGACGAGTTAACTGAAAGCACTGCTTAGGCAGTGCTTTTTTGTTTTCATTCAT 0.92
+GTAAAATTGAATACGGAAGAAGAAGAATTTGAAGAATATATTCAATTAACGATTCGCATACCAAAATAGAAGCTCTCCTGAAAAGCAGGAGAGCTTTTTATATTTTTAACA 0.991
+TTCTTCATCTTTTTAATGCTTGGGATTGCTGACGGCCTTTTCAGCGATACGTACAGCACTTATTAATGAGAAAAACCCGGAGCTGGCTCCGGGTTTTTTATTATTCCGCTT 0.9890000000000001
+TGAACGCCAAGTACCGCGAAACCTCTCGCGGCGGCCTGGCAATGAAGATCGTTGCCTGCGATTAATCGCTCTCCAAAGGCCTCGTTTTGCGAGGCCTCTTCCCGATTTCTC 0.754
+CTATCTGATCAGCACTGAAGTGAGCATGTACCATGTACGTGCTGTCAAACAAGGGACATACAATCAATAAAAAGCTTGCGCCTTGCTGCAAGCTTTTTTCTAAGAGTCATG 0.988
+CGTCCAAAGGACAAGCCAACCCGCCGATGGTCAACAAAATTCTGCTTGAAGAAATTAAAAAACGCTAATAAAAAAGCAGCCCTTAGAGGCTGCTTTTTTTATGGTCAAATT 1.0
+TCCGGCTGAAATGTTTTGCTCAGTTGAAGAAGCTGAAGCCGCCGGTTATCGGGCGCCAAAACGATAAACAAAAAGCTCCAGAATGTCTGGAGCTTTTTCTGTTTCACAACG 0.972
+ATCAGAGCTTGAAGATACAGAAGAGCTAGAAGAGGTGCTAGAAGAGATCCTAGACCAATACGCTGAGTAAGTATAAAAAGGAGCCGAGGCTCCTTTTCTTTAATAAAAAAT 0.835
+AGTCAGAATGCGATGCAGATGAGCGAATCGCGGCTGAACCTGGCGAGAGGGCGACTGCGTTAAGTTATACCGCCTCGGTCAGTTCCGGCTGAGGCGTTTCCACTCCCTCCG 0.745
+ATGTATGGACATGGAAGAAGTGATGGAGCGGATTGATGAGTTGATTCGCCAAAAAAACAAATAAGAAAAAGAACTCCCGTACCTTGTACGGGAGTTCTTGATTTAAAACTT 0.9359999999999999
+AAAACGGCGAAGCAACCTTCTTTTGCAACGGCGGCAGCGTCAGCGTGTGGGTTATCGAAGAGGTGATTTAAATTCATCCCCGGCGGCAAGCCGGGGAGATTTCATTACGGC 0.465
+AAGCGAAAGCGAAACTGATTGAACAGCAGGCTGTTATCGCCGCGCTGTAATCAAAACACAGTGATGAAAACGAAGGCCGGAGCATGCTCCGGCCTTTTTTATCTCTTACAG 0.96
+TCACTGTATATCCTGCCGGTTATTTGTATTGCTGCAGGTTATGTGTTCTTTTCTCTGCTTGGGTTTATTTAATCAAAAGGCCGCACGGAGCGGCCATTATCCTCAACCCAT 0.344
+TGTAGAAGATGGCGAATTTGTCGTAAAAACGACTGCTAAAACGAATTAATATAGAAGACGGAAATGAGGCATACAGCATGTAAGTGTATGCCTCACTTTCATATCAAGAAA 0.902
+CGGGAAAGATATTTTCCTGCTAAGCCCGGATGCCGGTGCTAAACCGGGTCATCAGGTGAAATAATCCCCCTTCAAGGCGCTGCATCGACAGCGCCTTTTCTTTATAAATTC 0.9570000000000001
+AGAGGTGTGCGGCATTCAGTCCCATGAACCGTTGCACGCCATCATTTTAAAGAAACTTAATCAATAACCGACCACCCGTGACACAATGTCACGGGCTTTTTTTACTATCTC 0.941
+CGTTCGTGAAACGATTCCGTTCCCAAGACTGTTAAACCGTCTGTATCCGTAATACATTCAAATGAAACAAAAAAGAGTCTCCTGCAAGGGAGACTTTTTACAGTAAAGGGG 0.9540000000000001
+TTTATCGCACCAGCAATCTACCGCTCTATTCATAAAGCAACCGGCTTTAACAGAAATCACATATCATCTACGTAAAAACCGTTCTATTGGACGGTTTTTTTATCATAACGA 0.852
+AAGCGTTAATGGTCACTATTGCCGGGATTGCGGCAGGTATGCGTAATACCGGCTAATCTTCCTCTTCTGCAAACCCTCGTGCTTTTGCGCGAGGGTTTTCTGAAATACTTC 0.863
+GACTTTATCAACTTGTTCATCAACCTGCTCCGCTTCTTCGGCATTTTGAGCAGTGATGATTAATGAAAAAGCGTCTGTCATTGGATAGGCGCTTTTTGCCATACATCAAAA 0.9129999999999999
+CGTATCTGCGTAATAAAGACGTAACTCGTTACCGTGAGTTAATTAACAAACTAGGCTTACGTCGATAATCGTAAAAAGCGGGAGGATTCCCGCTTTTTTATCGTATTAAAG 0.963
+TAAAAGGGTAAAGTCTATCCTAAATACTTTCATGAAGTTGTTAAGCCAGCCCTCTTGATGGGCCAACATTTATACTGACCCGGCGGCAACCGGGTCTCTTTTATTTTATGC 0.993
+AATTTAATCAAAAACACTTTTTTGAGGCTTGTGGGTGAATAACCGGTGAAGGTCTGAATCACAGAAATACCAAGGGCGTCAAAACCCTTGGTATTTTTTCTGGTTATTAGA 0.975
+TCTCTTCGGCGGTAATTGGATACAGCTGGTTACGCGTTCGTTTGCGTCCATCAGTTTGACAGGACGGTTTACCGGGGAGCCATAAACGGCTCCCTTTTCATTGTTATCAGG 0.555
+CGTTTTACCTTACTGCGTCGCGGTAAAAAGAATTACTGTCTGATTTGCTGGAAATAATGCATTAAGTGGAAAGGGGGAGTGAGAAATCACTCCCCCTGGTTTTTATACAGG 0.327
+ACCTGTAAGCCTTCCGCCTGATTCACCAGAAAAACAGAAGCTGCGGAAGAATGCCTGATGATAAAGGAGGTCTTCTAATATACTAGAAGGCTTCCTTTTTATTGTTGGAGG 0.917
+AAACAGCTGACGTGACGCTTTCTCAAGAGGATATTTCATTTATTGATAAGCTGTTCGCATAAGAAGAAAACAGCCTTCTCCAATGGAGAAGGCTGTTTTTTTGTGCGATAA 1.0
+GTCTGCCCGTACTCAAAAGCAACCTCCGGAAATATTGATGTGACACTTGAAGTTGCTGAATAAATAAAAAGAGGATGCCTGTACAAGGCATCCTCAATTTTTTTGATGAAG 0.986
+TACGGAATCAAAACGTGGAGGGCGCGGAGCAAGAAGAGGATAACTTGCTGCTTTCTATAAAATAAATGAAGCATCCGTTCATCCCGACGGATGCTTTTTTATTATCCTCAT 0.976
+CATATCGCCGCATTTATCATTTACGGCCTTCCGTATCTTCGCAGAAAGCGAAGCAGCTGAAGACAGCAAAAAACCCTCTTCCACTGAAGAGGGTTTTTTGTATTATTCGTT 0.9620000000000001
+CATGGCATTAAAGTCCGTCTTGAAGATGGCCGCATCGGCCGCGACCAGCAGATCGTTTCTACATAAAAAAAAGCTGCCCCTGAACAGGGCAGCTTTTTCATTTATTTTTTC 0.9590000000000001
+CAGTTTTAGACAAATACACACTGCGCGACCTCGTCAAAAACAAAGAAGATATCATGAAGCTTTTAAAAATGAAGGAATAGATTAAGATTCCTTCTTTTTTTATGCCCTTTT 0.985
+CTTCGGATTTTTCGCCTTCTTGTTTGTCATGGCAACGGTTATTCACCTAGTTGGTTCATAACAGCGACTGCCCGGGCTGCTGATTTCTCGGCAGTCTTTTTTAGTTCGTCT 0.978
+TGGCAAGAACACTGGCTACACTTGCGGAGCGATTTACATTGGAAGAAGATAAAAACGAGTAATGAAAAATCCCTGCTGTATGATGCGGCAGGGATTTTTTCTTCCGAAATC 0.968
+ATGGGGAACCTTTTTGGGATTGGCGCTACTATACCGCAGAAAATTATTATAGAACAAGATAGTGTGATGTATAAGACAGTCAGTTCTGGCTGTCTTTTTCTGTTATTCAAG 0.991
+AGGAACTGAGACAGAATTTGAAATTTCCGCAAAAGATGGACGCATTATCAAACAGGAGATAGATGACTAATCAAAACCCCCGCTGCAGCGGGGGTTTTTCATGATAAGAAA 0.981
+GATCATATTGATAAGGAAAATCCTTTCAAAGAACCTGAAAATGCAATCGCAATTGAGCGCTAAAAGAGAAAACGGCTGGCACAATGCCAGCCGTTTCTTTATTTTAAAAGG 0.9690000000000001
+TTCAGCCATAACACCGGTTATTTTCACAAATACCTCTGAAGAAGATCTAAAGCACATTCAAATGAAGTAAAAAAGTCCCCCCTGCTGCGGGGGACTTTTTCGCCAACATAA 0.986
+TTTGTTAGCGTAGGGCTTCAGTGATATAGTCTGCGCCATCTGATCGTAAGTAGTTGGCTTTATAAGGTCAGATATGCCGTGGTTTTACACGGCTTTTTTTTGTATAGGCTT 0.321
+TGTAATGGATGGTGACATTGATACGTTTATTGATGCCTACCTGCGTTCTAAGCTTTCATAAGCTGAAAAACACACCTGATGCATACGGGTGTGTTTTTTTATTTCTTATAT 0.997
+TGTGGTTCTCGAAGCGATGAGCTAACGCGTCATCTCGCTCAAAAATCCAGATTTATAAAAGAAAAAATGACTGGCCAGCATCGCAACATGCTGGCCTTTTTGGCAAGCAGG 0.535
+GAGCGGATGGGTGCGATGATTGTTGAGCTGGCCAAGTATTATGAAGAAAAGGAATAACAAGTACAAAAAGCCGCTTTTCCCTCGGAAAGCGGCTTTTGTCTGTCATTCATT 0.9279999999999999
+GAGATAAATTCTCAGCTGCTTAATGGACAGTCAGAAGCTGCTGCCGGAAAAGAATAAAATATAGAAGAAAACCTTGCGATAGTTGTCGCAAGGTTTTTTGCTTTTAATAAC 0.998
+GTGTTTGGGATTGGCAAACGCACGCAGGCCAATTTGACAAAAAGCGAACAAGCAGCTGAATAACGATAAAAAAGAGACATTCACGGATGTCTCTTTTTTTATTTTTCGCGT 0.976
+ACCCAGGCTGCAGTATTTTCCAAAACGGTTAAGCAAATTAAACAAGCCTACCGTCAGTAATATAAAACCGGCTGATAGCGTGCCTTTCAGCCGGTTTTTGCATCTGGCACG 0.84
+GAAGTAATGAACCAAGTGAAAAAATAATGGTGAAAAGATTTCGCGGCTAAGTCGCGTCTTTTCAGGCAGTATAGGGGACACATTTTGTGTTCCCTATTTTTAAAACTATAT 0.857
+CCTGACGGAAAACGATCGTCGCCGCGCCAACCGCGCACCGAAAGACGATTAATTTCGTTTTTTAGTCATAAAAAACCTGCCAGCGATGGCAGGTTTTTTTTTGCCTGTCGT 1.0
+CGTTTGAAAGTGTGCAAAGAGCGATGGAAAATGAACTGGCAAGCAAGTCATTAAAAGATGTTATGAATCATCTCTTTTAATCAAAAGGGATGACTTCTCACCGCTAACATG 0.884
+GCACCAGTCGTTCAGCAAACATCCGCACGCACTACCACCAGTAACGGTCATAACCCTTTCCGTAACTGATGACGACGACGGGGCTTCGGCCCCGTCTGAACGTAAGGCAAC 0.8079999999999999
+GTTCTCATCTTCATGGGAGCAGGAGATATCCAAAAATATATGAGAGCCTACGAAAACGTCATGGCATAATAAAAAGCAGTGATCTCACTGCTTTTTATTTATCTGATGGGA 0.9470000000000001
+AAAGGGAGAAATTGAAAAAACAAAAATTGGCCCGATGACAGCGGAACAACTGAAGGAATGGACGGAAGAATAGCTGAGAGCATAGACTCTCAGCTTTTTTCATATAGAGAA 1.0
+TTTTATCTGAACATATAAGCTAATTCGTTAAACAGCCTTATTTTATGTCGTCAGGCTCTACATGAACATGAACATGAGTGACATCGTGTTCATGTTTTATTTTGTCTTCTA 0.996
+CCGTACTATCAAAGAGTACGCCGATCATATCTGGCATATCGATCCGGTGAGATTGTAAGTTCACCAATAAATAGAACGGGGCCAAAGGGTCCCGTTTTTTTCCGCCATCAT 0.841
+GCTGTCGGAACGCTGGTTTACTTCCTATATTCGAGAAAACACAGCTTATTAAACAAATAATCTCTTTTCAGCCGGCGGTGCCTCACCCGCCGGCTTTTTCCTTTTTTTATG 0.978
+TCTGAAGATGAGGGAAGAGCTGGCTCATTACGAAGCGTCCGGATCAAGCATGGCGCCAATCAGATAACGTTTACTCTCCCTTTTTCAGGGAGAGTTTTTTTATGTTTGCTT 0.983
+ACAAAAGACAAAGAAAAAGAAATCATGGAAGTTTAATGAAAAACTATGTACAATAGATAATAGTGAAAAGACCCTCTCATGTTTACAGGGGGTTTTTTTGTTAATACTGTT 0.818
+CCCGGGTACTCTGGGTGTTGCCCTGGCCGTTTGCTTCGGCTTCGTGCTGGGTAGCTTCATGCTGTAATGATCAATCGCGGGGCGTTCACGCCCCGCTTTCTTTCCCGCCGA 0.9359999999999999
+AGCTTAAAGCTAAACTTGAAGAAGTTGGCGCTTCTGTAGAAGTTAAGTAATCTTCACTTACCTGTAGGGGAAGCTCGCTTTTATGAGGCGAGCTTTTTCTTTGCCATTCTT 0.986
+TGACGATCAAGTAGAATGGGGCATTAAACAAGGGTATATCGATCCCGAAGACGCACCATAAAATAAAAAAAGCCAAGGCATTCAGCCTTGGCTTATCCTCCGATCAGCTGC 0.856
+CTGTCGGTCCAGACCGCTCACAAACAAATGTCCTTCGCAGTGTGTACCGTGCGAACTAAATAGAATATGTCTGCAAGCCCCTATTTAAGGGGCTTGTTTTTGTTTGAAAGC 1.0
+AAACACTAAAACATGCAAGCCAAGAGCTTATGAACACAATTGCAAAATTCACATTGTAATCCAATTACATCCCCAAACATCATTTGTTTTGGGGATTTTTTATTTTATAAG 0.9840000000000001
+CTAAATCCTGGACGCTGGTTCGCGTTGTAGAGAAAGCGGTTCTGTAATACAGTACACTCTCTCAATACGAATAAACGGCTCAGAAATGAGCCGTTTATTTTTTCTACCCAT 0.691
+TGGTAGCGAAGAAGGGTTTGATCAAAAGTACAATTTTTATTACTTTCAGCAGCAATCTAAAGCTTAATTTTAAAGAGGGATATACAGTCCCTCTTTAAATAAAAAAAGAAA 0.92
+TGATCATCCCGACTGATGAAGAAGTCATGATTGCGCGCGACGTTGTTCGTTTAGCAAAATAAATCGCATGAAAGCACATTCTCTTGAATGTGCTTTTTTGTTGATGCATGA 0.929
+GTCCTCTCCATTTTGACATTCCATATTCAGGCAACCGCACATAAAATGACAGCAGACATTCTATAGTCTGCGCCACCCCGGCTCAGAGGCCGGGGTTTTATTTTTCTCCAC 0.96
+TGACAGACGATATGGAAAAACCGACTCACGCCATTGACTCTCTGACTGAATGGATTCCATACATTTGAAAAAAGGGCGCCCTAAAAGGGTGCCCTTATTCTGTATGCCGCG 0.9840000000000001
+AGGGGACAATCGTCATTTACGCGTTAAGTGTACTCTTTTATTTTATAGATTTTCTTCAACACAACCGGAAGGCTGGAAAAATGGCCTTCTGGTTGCTTTCTATTGTCTGGA 0.662
+TTATCTGATGAATATCACCTCTCTATTGAAACAATAAAAAAAATTGTCTACTCTAAATAAACAAAACGGAAGCACTGATAAAAAATAATCAGTGCTTTTTATATGGCGAGT 0.972
+CAAAAGCACGAAAGCGACCAATTCCAGGTGAATCTAAATAAAGAGGAAAAGGAACGGGCTTAAAAGAGAGACTTCGTCTGACAGAGGCGGAGTCTTTTTCATGGTAAAATA 0.924
+AGGGCGACGTCGTCCTTTTGCAGCCGGATCAGCCTGTCCCAAACGGCACAAAAATCGGATAACGCAAAAAAAGACGTTTGCCTAAGGCAAACGTCTTTGCGTATTGAGGCG 0.593
+TGAGTCCGGTCTGTATACACGCGGACCTGTTTCACTTCTCGTTGCGTTTGACGGGGCATAATAGAATTCCAAAGGTCTCTCCCATGCGGGTGAGACTCTTTTTACATATAT 0.9279999999999999
+GATTCACCATCTAACATCCAGGTAGCTGAAAGGCCAGTCGGAGGTTAAAAAAGGTTGATTAATTAATTTAGCCCTACTCAAACATTTGAGTGGGCTTTTATTTTATGATTT 0.973
+AACATATTCAATGGGTGAAGGCGAAAATCGTCATCTCGTTATTTCCCATAAAAGATAGCATAAAACCGAAGTCCGATAAAAATTGGATTTCGGTTTTTTTGTATCCGAAAA 0.9990000000000001
+TGGAGTGGGCTGCGAACCAATATTTTGGCACAGCCCCCTTCTATCGAAAACGAAAGGCATTTGAAACCCCATCGTCCGGAAAATAGGCGATGGGGCTTTTTAGCGGACGAT 0.997
+GATCCGGAAGAGCTGGCGACGAAGCCGGTAAAGTTGCCGGAGAAAGTGCGGAAAGTTGAAGCCGCGTAAATGAATAACGGAGCCGAAAGGCTCCGTTTCTTTATCCGCTAA 0.956
+CCATCACCGATTATCAGCAGATTGGCGATGCAGCGTGGAGCATCACCGTTCAAAAAGCCTGACTCAACATTGTCCTCCGCCGTACCAGCGGCGGAGGCTTCAAATTAGACA 0.8170000000000001
+GGAGAAAGCGGAACAGTTGGATGACTAAAACTTGGCTTGGTAAGCCAAGCTCAGAATGTTGACAAAATCCTAAAACAGTTTTCGTTTTAGGATTTTGTCATCTTTTCAGCG 0.682
+AGTCCCCTCGCCCCCTCGGGGAGAGGGTTAGGGTGAGGGGAACAGGCCCGCACAAGCAAACTTATCAGCAATCTCAGGCCGGATATTCATTCGGCCTTTTACAAAAACCTC 0.9159999999999999
+GCTGTATGAAATCAAAAAGTAATCTGCTTTATGCCTGATGCGACGCTTGAGCGTCGCATCCAACAATGACAAGCGGTGGAGATCTTCTCTGCCGCTTTTTTTTTCATCAAT 0.973
+AAGGCGCTGTCGCAGACGAATTCGGATGGACGACCGAAGTCGCAGCGCTGACTGAAAGCAAGTAAGAAAAAAGCCGGCCCATTACAGGCCGGCTTTTTTTACGCTTCAATT 1.0
+ACATCAATGTTTTAACCGTCTTAAAAAACTAGACAAAGCGTGAATAAAAAAAGAGAAGGTCTTTCATCAGTTTACTAAACTGTTGGGAGACCTTTTCTCCATATTAGCGGT 0.9840000000000001
+TGAGTGCTTTTGACTACCTGATTCGCACCAAAACTGCATAAGAAGAAGTAAGATTCACCTGCAATTGCTTAGCCGCCGGGGTCAAACCTGGCGGCTTTTTTATGGCATTAA 0.995
+CGCCGAAGGCTGATGCAAAGCCGGAAGCTGATGCGAAAGCCGCAGATTCTGCTAAAAAATAAGCATTAAGAACCGCCGCCTGACCAGGCGGCGGTTTTTTTATTACAGGCC 0.992
+CCGGTCTTCACAACCCGCCGATGGATGACGCCGTGATACACAAGCTGGCAGCTGAAGCGTTTGAGTCATAAAAAAAAGAGCCTTACCGGCTCTTTTTATGTATTGTTTTGC 0.885
+GGAAAAACGCAAACCTGATTTCGGACAGTTCCCTCGTTTTCCGTGATCAGCAATATCTAGTAAACCAACAGCTTGAGACTTTGCGGTCCAAGCTGTTTTCTTTTCAATACA 0.925
+TGATTGACACCCCTGCTCCTCCCGTTATCTATCCATTCACTATTATCCGGATCTTCGCATCATCCCCTCAAAATTGACCAGTCGACCAGACTGGTTCTTTCTTTTTGCCTA 0.972
+TGCTGCGAAACAGCTCAATACAGAGATTCCGGCCCCTGTTCAATACGAAAGAGGCTGGTAATGCCCATAAGAGATATCCTGTAGAGGATATCTCTTTTTTTATTTTTAGAG 0.992
+ATAGAAGAAATGAGAAAAGACCATTATGCCGTCGCAGGCAAACGCCTGAGCGATATGGAATAATCTCTATAAAGCCGGCGCTTCGCGCACCGGCTTTTATTATCCCTATTG 0.958
+CATGAGCTTCGCCAATACATTAATGATGTCGAAGCCGCCATGCTTGAAGGCGGCGAATAAATGCAGAAAAAAAGCTGGCGTTAGAGCGCCAGCTTTTTTTATATTAAGGGC 1.0
+ATGAATTAACGCAGAGCTTTTTCGAACGTTGTCAAGGTCAGCAGGATCAAGACATTTCATACAATAATTAAGCAGAGGCTGTGATCAGTCTCTGCTTTTTTTTCTGCGTTC 0.991
+TGGACTTCATCAACCTGTTCCTGATGTTGTTGCGGATCTTCGGCAACCGCCGTTAATTCTTTTTCACCATCACTATCCCGGCCATGTGTCGGGATTTTTTTCTTACTAAAA 0.968
+AAGCTGATGAACGTTATTTATGACAGGATCGACCGCAAGCATCAAAAAAATCTGCAAGAGCAAAACAATACATAAAAAGAGCCGGTAAGGCTCTTTTTTTTATGACTCAAA 0.9740000000000001
+ACGCTATCAAAAGCATCTGGCAAAAAGAAAGTGGAAATGTCTTATATTGGCGGTTAATTTGAAGTCAAAAGCTTATCGGCACTGTCCGGTAAGCTTTTTTATTAGAATCCG 0.972
+ATAAACGGCCCCTTCTGGGCAATGCCGATCAGTTAAGGATTAGTTGACCGATCCTTAAACTGAGGCACTATAACGGCTTCCACAACAGGGAGCCGTTTTCTTATGCCACTT 0.985
+GTCATACTCTGACTCAGAGTCAGAACGACGCGCTGGTAGCTGTCTTCCAGGCTGCGTTTAGCAAGTAAAAATACAGGGCTGGAATCATCCGGCCCTTTTTTCTGATATGAT 0.94
+TTTGTCCCGGATGTTGATCAGCTACCGGATGTTTTGTATCCGCTGCTGAAAAAACTGCTTCATAAAAGCATAGGATAGCCCTTAATCCTATGCTTTTTGGCGTTTGTTTTT 0.961
+TGCGAGGATTTGCGCCGCAACTCCCTGAAACGCTTCCAGGAACTGACGAAGCGCCTTCTCAGGCGAGTTAAAATTAAGGCGGCAGCAATGCCGCCTTTTCTTTTTCCGAAA 0.9670000000000001
+GTTCGCGGTAAGATGGATGGCGGCTGGACTGGCATTGTAAATGAACGGCTTCGTAAGGCTGTCGAAGAATAAAAAAGAGAGAGGTATCTCTCTTTTTTGTTTTTTTCCAAG 0.898
+TCTTCTCCATTTAATGAGGACTTAAAGAATTTAGGGGACAAGCTAGACTTAAAAATTAACTTAGAGCATTAAAAACAAGCCCTATTTTGGGGCTTTTCTTTAGAAAATAAA 0.9420000000000001
+TGAAGTCAAACCGGGACATTTTGTGATGTGCACGGAAGCCGAATTTAAAGCTTTTTCATGATTCATCAATCCTTCAAGAGATTTCTCTTGAAGGATTTTTTTGCGTCTTCA 0.998
+GTATGAGCATCTGAAATTTGTCCGTGACAAAATTCTAAAAGGAATGGATGAAAAATAATGGTGAGCAACCGCAGTTGAAACGTAAGAGCTGCGGTTTTTTTAAACCAATTT 0.9570000000000001
+AACGAGTACGGTAATTTTGTAATCAAATAAGCAGTGAGGAAAAGAAACCGCTGCAGATGAACTCAATCTAAAAGATACCAATGATGTTGGTATCTTTTTATTTGCAGTAAA 0.995
+GAAAGTCCAGAGAGGCTTGGAAGGGTTATGAAGAGAAGGAAGCTTCAATGCTGCCCTCTATTTAACCATACCCCGAGTCTATCTTAGACCGGGGTTTTTTTTCAGCCTTAA 0.852
+TCATGGGTGAAACGCCTGCTGAGCTTGTTGAGAATATATATACCTTTATTGAAGAAAATCCAATGTTTTAAAGAAAAGGGCCTGGACAGGCCCTTTTTTATTTTGCCGTAC 0.998
+GTGTGAAGAAGAGAAATAAGGAAAGCGGCACCTGAAAAAGAGCCTTTGTTTCCATGGTGAGTCATGTAAGTACGGTTCACACCCGTTTACATGACTTTTTATATTTGTCAG 0.615
+GGTTGTATGACCTGATGGTGACATAAATACGTCATCGACAGATGAACGTGTAATATAAAGAAAAGCAGGGCACGCGCCACCCTAACACGGTGGCGCATTTTATGGACATCC 0.8109999999999999
+CATATGTTAAAAGATTGGACATTCACATTAGTTGAAAAACATCAGGGTGAATAAAACAAATCTGAGGAGAGCGAGATTCATTGTCACGCTCTCCTCTGTTTAGCTGTATGG 0.917
+GAAGATGTAATCTTAGTCCGATTAAGTGAACCACATGCATAAACCTGCTTGTCTGCCGCAGATTGGCAAATGCCGGAAGTCTCGATTCTTCCGGCACATTTCATTTAGAAA 0.887
+AGGCACACGCCAATATTGGCGAAAAGCAGAAACCTATCCCCCGAAAATTCAGCTCGGCGAAGGATTGTAACAACAGAGGCTCAAGAAAGAGCCTCTTCTTTACTACTGCAC 0.691
+AATAAAGATGAGCCGATTAACAACGCGCTGGCAGAACAGCTGAAAAAACTCGGTTTGGATAAATAATAAAAAAACCTGTGCCTATCGCACAGGTTTTTTATTGGACTTAGG 0.977
+TTACAAATGCAATTAGCTAAATACTCCGTACAATAGAATCTCTTCTTAAGGGCCTATCTAGGACGAACCATACCAACAACAATAGTTGGTATGGTTTTTGCTGCGATGAAG 0.9179999999999999
+ACAGCTTCAGGCTGCTTTTCAAGAAAGCATTCAACAGGCTGCTAGCATTTCATAAATGAACGAAGAAAAGAGCCCGCTTTTTACAGCGGGGCTCTTTTTATTTTTTAACAA 0.971
+AATTGAGGTGAACTTCAATCAAGAATATATTGAGCGGTTGATTGATGAAATAACTAATTTAATAAAAAAACATATTTAAGCTTCTTTTGAGGAGCTTTTTTATTTTCAAAA 0.794
+TGGTATTTTTATGGTGGTTTGGTTTGCGTAAAGCGAAAAAAGCCCGTTCCGTTAATATGATGCAAGTATAGAAGCCGCACAGCAACCGTGCGGCTTTTTTGTGTGCAGTTT 0.993
+GACACGCTGAGAGAAGGCCTAGACCGTTTAGAATTATTTGTATTAAAAAAACGTGAAGCAATGCAGACGATAAACAACGGCGTTTAAGCCGTTGTTTTTATTTTTTTGGAA 0.992
+TCCGCTGCATAATCCCCAGGATTATGTCTACAGCAAAGAGTTGTATATCAAGGCACATTGATGCCTTTATCGCCGTCGGAGCACGTCCGGCGGCGCTATTCACGTTGATCT 0.672
+ATTTGGTTCATTCTTTGTCGGCAATCACCTTTCGCTTGATACACTTCCTCAATTCTTATATGTATAATATCCCCTCCCGCCCTATCCGGCGGGAGTTTTTCAATTCTCCTT 0.9990000000000001
+TGGATTGCCTGATGTGACGCTGGCGCGTCTTATCAGGTCAACGTGAACAGCCCTTCCACCTGAAATTAATTTTAAAAAGGGGCTAACAGCCCCTTTTTTGTCAGGAGAATT 0.654
+CGCGTAGAGATCGAAGTTAAAGGTATCAAAGACGTTGTAACTCAGCCGCAGGCTTAAGTTCTCGTCTGGTAGAAAAACCCCGCTGCTGCGGGGTTTTTTTTGCCTTTAGTA 0.995
+ATGGACCCGAAAGCCCGCGTACAGCCTCTTCACTCAACAAGTCTTTTTGAAAATAAATAATAAAAAAAGGAGCTTGTGTCTGCGACACAGCTCCTTTTTTATTTGAAGATA 0.997
+AAGTCCATCATGCGGTAGCAGCAGCTGTCGAGCATGCAGCTCTTACAGCAGTGAAATAAATGTAGCTAAACAGCACCTGTCGTAGCAGGTGCTGTTTTTTTCTTATCATTG 0.987
+CGCTTAGCGAGGTAAATCAGGAGAAGTTTAACAATATCAAGAAAGCACTAAGCGAAGCGAAATAACTAAACCTTCATGCGGCGGATTTTTCCGCCGCCTTATTGAGCGAGA 0.828
+GCAGTCCGCTTTCCTCTGCGATCAATGGCGCGGCACTTCGGGCGGACGGCGGTTTGGTCCGCAGTGTCTTTTAAACCTCTCCCAATAGGAGAGGTTTTTTTATATATTGTT 0.9640000000000001
+ACCACGGATGCGTCAAAACATATGAAACGCTGATCGAAGGAGAACATGTTTATCTCGTATATTGATCAAAAGACCGGATCACTTTTCTAGTGGTCCTTCATTTTTTACAGT 0.514
+TTATGCCGCGAAAAAGATCACAAACTTTGCCATATCATCTGGCGGGAATAAATAATCGCTTTTAGCGTGAAAAAGGGCTGACAACTGTCAGCCCTTATTGTTTTTAAAGCG 0.9179999999999999
+CGGCAGAAATAAGCTCGAAGATTACGACATCTTAACATTGATGAAATACTAAGGATAACCGCATAACGAAAAAGCACTCCATGTCAGGGTGCTTTTTTCCTATTGTTTTGC 0.9520000000000001
+CGGGATTACAGGTGAAAATCTTCACGTTGATTCTGGTTTCCATATCACTGCCCGCTAAGCAGGATCTATATCAAGCAATCCCGAATAGGGATTGCTTTTTTATTTCTTCTG 0.996
+GTGTAACGCTCTGAAATTACAGCCAGACGAAGACGGGATTGGCGCAACGCTCCAGCCTGCGTAAAAATACAGGCGCAACCCGTGAAGGTTGCGCCTTGTCTTTATTAGCGG 0.614
+TGCAAAAAAATCATCCATCCGGCTGGTCAGCAACTGTAGTTGTTAATGTGACAGAGCCATTGCCCATGATAGTGTCCATTAAAAGGATGGACACTATTTCCCCGGAACCTG 0.385
+CGCTGCGTAAAAAATTGAAAAAATACGGCATGAACTAATTCAGGTTAGCTAAATGCTTGATTAAAAAGGCGCTACTCGGCATGGGGAAGCGCCTTTTTTATAGGTGTCACA 0.9440000000000001
+TGCCTCGTTAAATTTTTTCAGGCCGGATATGGCGTTAACCGCCTGTCCGGCAAACCTGCCTGCAAGTCGAGCCTTGTCTGATTTATCAGCGAGGCTTTTTGCTTATTTATG 0.574
+GCTGGCGTTTCTGCTAATGCGGAAGCACTCGACTTTCATGTGACAGAAAGAGGAATGACGTAAGAACAAGCCCCTTCTCATTAGCGAGAAGGGGTTTTTCTTTTCAAAAAA 0.996
+AACCTGTTATGGCAACATGGTTTGAAGAAGAAATATATTGGACGTATCAATGGAATGATTAATCAAAAAGGTATAAGGCCTTAAGCCTTATACCTTTTTTAATTTTAAGTC 1.0
+GAAGCGGTGGCAGGGTACTATAAGTCATCATTAGAAAGATTAAGGTCATGGGAGGCTTGAACATATAAAGAAAAAGGACAACAGCTGTTGTCCTTTTCAATGCCGCTTGAA 0.732
+CGCTGCAAAATCGTCGCCGGTCAGACAGTGAGTTTTGCAGGTCACAGCGTACAGGTTGTTGCCTGATCCCTTTCCCGGCCTGTATCAACAGGCCGGTTCTCTTTTCAGACT 0.8740000000000001
+CCTGCAAAAGCCTCTTACCGATTATTCGGTGTCATGGAAAAGCTGTTAAAACGCAAAAAGTAAGCAATAAGCCATCAAGCGCAGCTTGGTGGCTTTTGTGCTCTTGTTTTG 0.946
+TTATCCGTTGTCAAAAATTAAAACATGTTAAACATACAATGCGTTAGGCTATTGAGAAGCTCTCGATAGTCTTAAAGGGGGCTTAACATGCCCCTTTTTTCATTTCAATTT 0.79
+TCCGCTTCTTTTTTTACTTTAGCACCTGAATCCAGGAGGCTAGCGCGTGAGAAGAGAAACGGAAAACAGCGCCTGAAAGCCTCCCAGTGGAGGCTTTTTTTGTATGCGCGT 0.462
+AAGCCCCGAAAATGTAATTAACCTTTTTATAAAAAGTTACGCTATGACAACATATAAGAAGATGTTTTGATCAATCTTTTTTCAAAACATGTTCTTTTTTTGTTCGTTTAC 0.988
+GTCCTTCAGATGACGCATCATAAAAGTAAAAAAACAGCCGCTCTTACTGAGTCGGTGAAATAAAAAAGCAACCCCGTGCAAAAAGCCGGGGTTGTTTTTTGTTACTTGCAA 0.982
+TATTTTGGAATTAGATAATAATAAAGTTGCTAAATGAGGTTGGTTTGTTTTATATTGACACTTCAAATGTTGGGAGAAGTTCTGCGAGACTTCTCTTTACTTTTTAAAAGT 0.496
+GAATGATGGCTAAGATTAAGTCATTTTTCGGAGTAAGATCTTAATGTGATAGAATCAAAGAGAAGAATCTGACAAAGCATATGCTGTGTCAGGTTTTTTTTGTTTTTGCCT 0.9940000000000001
+TTCGACAATACCGTCGCCATTCACCCAACGGCGGCAGAAGAGTTCGTGACAATGCGTTAAATGTTAAAGGGCTAAGAGTAGTGTGCTCTTAGCCCTTAATTACGTTTCCGC 0.527
+AAAGACACCGATTTAAGCGAGGTTCAGGCGGTGCTGACAAAGCATTTGTGCAGCTGAATATTTGATGAGCCAGCCGTTCAAAAAATGGTTAGGCTTTTTTTATATATAAAA 0.826
+CCTTATTTCCACATTTATTCAAAAAACTGCAAGACGGACAATTTAACACCTTACATATGAAATTCGCTTTCTCAAAAGCTGCCGGCCGGCAGCTTTTTTACATAAAAAACA 0.9940000000000001
+AAGAGCTATGGGACCGGAGATACCGGGTGGCTTGAAGCATTAAAGCGTCAAACGGGTGTGAATTATTAGGTAAGCTGTTCATGTAGGACAGCTTATTTTTTATGAGAATCT 0.981
+CAGCAAAACGAAGACGGCAGCATCGAGTTGCTGGAACGTTGCCCGCCAAGAATGGGAAATCTGTAAAAACAACAAAAAACCCCTCGTTTGAGGGGTTTGCTCTTTAAACGG 0.711
+TCGCGGGCAGTACATTTTAGAGGGTGAAATCGAATCTGCAGAATCAGCAAACGAATAAATATAAAGAAAAACTGCTTGGCATCGCTCAAGCAGTTTTTTTATTGAGGTTTT 0.996
+CACTGATGCTGAACTTGCCACGTTAATCGAGCTCTTCAGCAAACTTGATAAAAAACGGTGAAAAAAAGCACATACCGATATATAGGTATGTGCTTTTCGCAGTGCTTCACT 0.895
+ATTAAAGAGATCATTCAGCATATTAAGGAATTAAATGAAGCGCATCGAAACAAACAATAGCCAAAAAGCAGTCTGTTCATTATAGCAGACTGCTTTTTTGTGATTCAGCCG 0.955
+TAGGCCGCCGTTTGCCAGGTTTCTTTAGGAAAGGCAGACATGCAGGCTGATGAACTAGATATGATGAAACTGAGGGCTCGCATGCTGCGGGCTTTCTTTTATAAAGGAGAG 0.723
+AGGTTCTGCAGCCTCTTCATATAAGGGATAAAGTAAAAGAAACCATTCATCACATGCAAAAAATATATGAAACCTGACACACTGCTGTCAGGTTTCTTTGTCTATAATCTT 0.9990000000000001
+ATATGATCGAAGAAACACTAAACACATTCTTAGCGGACGAAGACGAAGAGTAAAACATCGCGCCAAACCAAAGCCGGAGCTATACTGCTCCGGCTTTTTTCTGCTTTATGC 0.993
+GCGCTGGCAGACAAAGAAGCAGAACTGATGCAGTTCTGATTTCTTGAACGACAAAAACGCCGCTCAGTAGATCCTTGCGGATCGGCTGGCGGCGTTTTGCTTTTTATTCTG 0.77
+ACCACTTTCAACGAGCTGATGAACCAGCAGGCGTAATTTACGCAGCATAACGCGCTAAATTCGCACAAAGGCCCGTCACCGCCAGGTGGTGGGCTTTTTTTTGTCATGAAT 0.978
+CTGCGTAAGCATGGCGCGAAGGCATATTACGGGCAGTAATGACTGTATAAAACCACAGCCAATCAAACGAAACCAGGCTATACTCAAGCCTGGTTTTTTGATGGATTTTCA 0.7859999999999999
+AATGGCGAGATCACAAGTTTTCACGTGATTTTAGAAGATGATAAAATCAAAGTGCGAGCAAAATAACAATCAGCGGTTTCCTTTTAGGAAGCCGCTTTTTTTTATACTTTC 0.996
+AAAAGGTGAGGAAAATGGGTGAGGCCGCTTATCAAAAAGCAAAAAAAGGTGTGTATATAAAAATCTTAAAGCAGTAATTGCCGCCTGACAGCGGCTTTTTTTATGTTTGGC 0.96
+GTGAAAAAGAGAGCCGATAAAGTGGTTCTGACTGTGAAATGGGATATGAAAGACCCAGTGTAATCAAAAAGGCGGTGACTGCATAGTCCCGCCTTTTTGATTGTCATTACA 0.81
+TTTTGCTGACAGTGCTGCTCGGTCTGCATTTGCCAATTGGTTTTCAATTGTTTTAATAGAAAAACCTATGAACCCGGCTCTTTGATAGAGCTGGTTTTTTTTATATTTATC 0.988
+AACTATTGGGCCGTAAAGTTCGGACCAATCACGTCAATCGCATCGGTACAGATGCAATCCACACCCCAGCGCAGCAACTCTGCTGCGCGCTGGGGTTTATTGACGGTATAA 0.6679999999999999
+CCATCACTGGTTTGGTTAAAAATTAAACACTTGAAAGTGTAATTTCCGTCCCCATATACTAAGCATCAGTAAAAAACTCCCGCCTTCTGGCGGGAGTTGCTATTTAATTAC 0.47600000000000003
+CGATCGCCAGCTGCCGGGAAGTGGCTGGCCAGCTTTTATTCATTAAAAACAGCAGCTCCTGCACGCCTTAAAAAAACCGGTTCAGCACCGGTTTTTTTGTTATTTGATAAA 0.9540000000000001
+CTATGACACGTGTTTGTGCACTTCCGCATCCTGCTATGAGAGCTATTTAACATTTGAGAATAGGGAGTTGAGCGTATTTGCTTATACTCCTTATTTTCTCTTAAGGGGGAT 0.899
+TGTGATCGTACATGACGTACGCGATGTGTTTGGCGAAGGGTTTGTGGATATATCTAAATAAAGAAAAATCCCTCTGTACTTGAAACAGAGGGATTTTTTCATTTAGAACGG 0.997
+AGATAATATGCTATTACGAAATGAAGCAATTAATGCTTATAGAAATTCTATTTAAATAATGAAAACAATGCCCAGCTTAAATAAAGAGCTGGGCATTTTACTTATTGGGGT 0.998
+CCGGCCTACAAAACCGAAACGTATGTAGGCCTGATAAGACGCGTCAGCGTCGCATCAGGCAGTTGTTGTCGGATAAGGCGTGAAAGCCTTATCCGTCCTGGAATGAGGAAG 0.596
+GGTTAGACTGTTAACAACAACCAGGTTTTCTACTGATATAACTGGTTACATTTAACGCCACGTTCACTCTTTTGCATCAACAAGATAACGTGGCTTTTTTTGGTAAGCAGA 0.795
+AGTTACCTGCCGGATGCGGCGTAAACGCCTTATCCGGCCTACGTTCAGCACGTTACTCCAGGCCGGATAAGACGCGGCAAGCGTCGCATCCGGCAATGTCTGCCCAGTTCT 0.639
+TAAACATTTCCGAGGAATTGCCCAGCAAGGCGGAGATGTTATCTTTCAATACTTAGAACAGCCAAGAAGCTGAAGGTTTCTCATACGTGAGAAGCCTTTTTATCATATATG 0.993
+CCCGTTAACAGACAAAGGAATCGAACAATTCCTGGCAGACTGGAACAAATAATGAAAGGGGCGGCAAACAGCTTTATGCCTGTTTGCCGCGGCCTTTGTATTTCACCGACC 0.5589999999999999
+GCGTGCTGACATACCCATCATTATTCACCGTTCATCAGCAGCTGAAGCAAAATGAATGACAGACAAAAGCCGCTTTCCGAGGGAAAAGCGGCTTTTTGTACTTGTTATTCC 0.927
+GGTTTGGTTTATTTTGCTGATTGTGATTTATAAAGTGAGAAAAGCGAAGCATCAATAAGACTCAAAACTCCTGCCTCAAAAATGAGAGCAGGAGTTTTTTTGATGAAAATG 0.995
+TCCAGGCTCTTTATTATATCGTCACCCGTCATATTTATAAGCGTGCTGTTCTTCAGCGTATGTAATATGAAATCCGGTCTGTTATCAGACCGGATTTTTGATTTATTGAAA 1.0
+ACGGATAAGCAAGAGTAGGCTGGATAAGACGCGCCAGCGTCGCATCCGGCATTTTTTTCTGCGCCAATGCAAAAAGGCCATCCGTCAGGATGGCCTTCTGCTTAATTTGAT 0.8590000000000001
+TATGAAAATGGTAGGATTGTTACTGATAAAGCAGGCAAAACCTAAATTGCAATGAGTGCGGATCATCTCTGTCTGTGCTGATGGTAATTTAGGTTTTTATTTTTTTCAGAG 0.7490000000000001
+GGATCGATTTTATCGGCCATCATGAAAAACGGCACCTCAGCCAAATGAAAGAAATTAAAGAAAAGATAGAAAGGGCCTGATTTAATCAGACCCTTTCTGCTTTTCGTTTGA 0.92
+ACGCTTTCTTCGATGATCCGAAATCGGACCGCGCAAAAGACTTCCTCGCGAAAATCCTGCATTAATCACTCTGGCGCGCATACCCAATTGCGCGCCATCTCACGCTTTATC 0.759
+TCAGTATCGGCGGAATTCCAGCTGAGCGCCGGTCGCTACCATTACCAGTTGGTCTGGTGTCAAAAATAATAATAACCGGGCAGGCCATGTCTGCCCGTATTTCGCGTAAGG 0.51
+AACCCTTATTTTGACGGTTTGTCTTCATGCGGAGGCGGCTGCGGTTCAGGCGGAAGCTGCGGATGTAAAGTGTCCTGACGAGACTGGCCGTCTCGTCTTTTACATATAAGA 0.326
+GACAATGCCTCTATGGCTGTATGTAAGCCTTACAGGCGTTATTGTATATTTGATGATTTCACCGTATTATTAAAAGCCATACTCAGTATGGCTTTTTTTACGTGTAAACAT 0.971
+TCTATTCATATTGAAAGTGAAGTGCGAAGAGGCACAGAGGTGACGATCACCCTCCCCGTATCCGCATCATAGCCCCCCTGACCATGTCAGGAGGGTTTTTTATCTTCGTGA 0.993
+CCATATGGACGGAAATCCTCCTGGAGGCGCTGAACACTCAGAGCATTCAGGCCATAACGAATAATACAAAAAACCCTCTTCAGTGGAAGAGGGTTTTTTGCTGTCTTCAGC 1.0
+TTGCAAAAGTGACGGCAGATATGGATCGGCTTCAGGACCATGTTGACGTGAGTTTATCAGTGCTTGATTAACATGTGGTAAAGGATTCTTTGCCCATGTATGTACTTTTTG 0.9159999999999999
+TCATACTTATGAGCGTACTGACAAAGAAGGCATCTTCCATACTGAATGGATGAAGTAATCAATAGAAACCCCCGAAGCTCTTAAGCTTTGGGGGTTTTGTTATTAAGGAGA 0.996
+GGAAGCGGTCATTATCCGCAATGCCGGAGATAAAGAGCCGACTGTTCACATTTATGACTGATAGAAAACCCTTGTGCCATATTGGCACAAGGGTTTTTATGTTACAATTAA 0.997
+GGCAGAACGGTTATCATGGATCTGTGCATAAAAGTGGCACACGCTGTAACAAAATAGGTGCAGAACTGCAAAAATCCTTGTAAATTCAAGGATTTTTGCTTTTTAATTTTA 0.9740000000000001
+CATCCTCTTCGTAAAGGATGACCGTGAAGACGAAGCAGTCGCTTCGGGATCATAAAAGGCAGCCCGGCACCGCAGGATGATGCGATGCCGGGCTGTTTTGTGTTACGCTGA 0.982
+GCCTGAACCGCTATGGCAAGCAATTGTGAACACACAAGGCTGGGTGCCTTATAAAGATTAATGTGCAAAGACTGCCGAAACGATTCGGCAGTCTTTTTTCCCTTTATATAA 1.0
+ACAGCGGCTATCGGCGCACCTTATTTTATTTATTTGCTCTATAAAACAAGAAATTCTTAATCGTTACACCCATTTTCTTAAAAAAGAAAATGGGTTTTTTTGATAATGACT 0.988
+CTGGTAGCCGCCTGGCTTGGCGATGCTCGCCTGATCGACAACAAAATGGTCGAGCTGGCGTAATACTTAACTGGCGCTACGGCTGATGGCGCCAGTTATTAATTTACCCCA 0.745
+AGAGTACGGCAAGCTGATTATTTCAGAGCATGCTCTAGAAACGATAAAAAAACACTTTGCATCATAGCAAACCGATTTCCTTCCGGAAATCGGTTTTTTTTATGCACGAAA 0.9990000000000001
+AAAAATACGGTCTTAAAGGCGCTCGTCGTGCACCTCAGTTCTCAAAACGTTAATTTTACGTTTTCAAAAAGCTCTCGACCTTGGGTTGGGAGCTTTTTTCTTTCAATAAAA 0.945
+CATTTACCCGATTGTTCGAAAAATCATGAAGGACCGCAAGGCGTCTAAACAAAAGAATATGTCCGCATCTAGAACAGCCGGCTGATCCCGGCTGTTTTTTTATAGGTCAGT 1.0
+CTAAACGCATCTTCTTTGCGCGGTAGACGAGTGAGCGGCATCCAGCATTAAGCCAGCACGCAGTCAAACAAAAAACCCGCGCCATTGCGCGGGTTTTTTTATGCCCGAAGC 1.0
+GTTTTTGCTGCTGCTCGTCTGTATCATCACCTTTTTGCAGCATCACGTATTCAGCTGGATGATTCCTTAAAAAAATCCTCCCGTCTAGGGAGGATTTTATTTATATCGCTT 0.818
+ATCGTTGAAGGAAACCGCGGACCACAAGCTGCTAACGTTACTAAAGAAGCGTAAGCATAAATTGATATGAAAAACTGCAGGTGCAAACCTGCAGTTTTTATTTTGACAAAA 0.998
+GATGCGGCGTGAACGCCTTATCTGGCCTGCAAAAAATAGCAATACCGTAATCAGGCATAATCTGCAGATACAAAAAACCCCGCCGGAGCGGGGTTTTTTACAACTTATTCA 0.993
+AGCCGGCTGATGATACGCTTGACATCCCGACATTCTTAAGAAACCGTAATAAACGCGGCTAATGTAAAGGACAAAATCGTTTTCGATTTTGTCCTTTTTTGTTTTTCTCTT 0.9990000000000001
+GTATCGACGATGCCTTTAAACAGCTTGCTTTTCTGTACCGTCTCACCCAAAAAGTAACACAAGCATAAAAAAGAGCCGGGATATCCCCCGGCTCTTTTTCTTACATCTTAA 0.991
+GGTCCACGTTGACGGCGGTTTCAGCATTGCTGCAATGAACGAACTCGAACTGAAATAATCGTTCTGTTGGTAAAGATGGGCGGCGTTCTGCCGCCCGTTATCTCTGTTATA 0.915
+AGGGCTTTGTTGATTTACTGGCTGATCGTCTGAAATTTTACGCTTAACACACGTCATTGATTAAGATCACCACGCGTTACCTGGGTGGTCTTAATCTGTTTATCTCTTTTT 0.871
+CAACAGGCCATTGACGATAATTTCTGGCAAGCCGAATACCGCGACTACCGCCGTACCTCCATCTAAGCCTGCGCCCGGTAGTGAAGGCTACCGGGCTATTTCCCTCTCCCT 0.909
+AGCCAGAGAAAATGCTGGCGGCACTGAAAGTTTTTGTACAACCGATGAAAGCGGCGACGCGCAGTTAATCCCACAGCCGCCAGTTCCGCTGGCGGCATTTTAACTTTCTTT 0.992
+GCACCCGGAGAATACCGTGAGCTGACAGAGGAAGAGCTTCATTTGCTAAATGAGCCGCAAGCATGACAAAAACCCCGCATACCGAATGCGGGGTTTTATTTATAAGCACAC 0.992
+AGCCACCACCGTTTAGAAATTTACGGCGTCTGCCAAGAGTGTTCGAAAAAAGAAAATCATTAAAAATAAGCTGACCGCACGAAACGGTCAGCTTATTTTATTTCGACATTT 0.995
+CCGCCAGTGGCAGGAACGTGGTAATAACCTGACCGTCAGCGCAGATCTGTATAAATAACTATTCAGTTACTCCTATAAGGCGGCTTGATGCCGCCTTTCGCATTTTTAGTC 0.9640000000000001
+GAAGGCCTGCCGATTCAGGACCCTGTGGAATTTACGAACAATATTTGCAAGGTCATGGTGTAAACAGAAAAAGGAATCGTCTCATAAGGAGACGATTCCTTTTTTTATAAT 0.9420000000000001
+TTCACACGATGGCGACGTTTGATGAAGCTTGGGATCAATACGAGTCTGAAGTGCACGGCAGATAATAGCTGTTTCATCCGCAGATCACTGCGGATTTTTTTATGTCCATAC 0.955
+AGCCGCCTGAGAAGCTGATCAAAACTAAGAAATCAAATGAACGAAAAAAGAAAAAATGACTAAAAAGCAGCCCTCTCTTTGCAGAGCGGCTGCTTTTATCCGTTTCCAACC 0.978
+TCCTATCCCTGATTTTGAAATTGCCGGTGCAACAGGTCTATTCGGTCTATGGGGGTAAGGATCTCCCAAAAGGGCATAGTCATTCTACTATGCCCTTTTTAAGTAAATTAC 0.7240000000000001
+AATTCGAACGTTTCGGCCGTGACCGCAAAAAAGTGAGCGTATATCCTGTAGCTCAATAATGATTCAAAAAACTCCGGTCGATGATGACTGGAGTTTTTTTTGCAATATGCG 0.956
+CCGAAAGAGGGAAGTATAATAGAGCGAAATCCTTTATATCAAGTAAAAAGTGTATAGATCATGCCAAGCGTTCCTCAGCGTCAGCGGAGGGCGCTTTTTTTTGCTGGAGAT 0.9940000000000001
+CGTTGATCCGTCAGACTATCATTACGGCAAGGAGAAAGAAATCAAATAAGATGAAAAAGAGCCTTGAGCGGGCGCATTGCCTTCGCTCAAGGCTCTTTTTTTGGTTATACA 0.992
+ATCTAGACTACTAAGCAGTTTTTTTTCATGTTATGATATACATCGGCTAAAAACGACACCCCGAGTAGGACGAGAGATGATTCTCGTTCTGCTCTCTTTTTTGGGCCCTAA 0.598
+GATGAATCACCACAGGCCTGATAAGTCGCGCAGCGTCGCATCAGGCAATGTGCTCCATTGTTAGCAACAAAAAAGCCGACTCACTTGCAGTCGGCTTTCTCATTTTAAACG 0.992
+TATCGAACGCGAGCAGAACTAACGCGACAGTTTTGCCAATAGCGTTTTGCGCGTGATCCCTAACTGACGGGCGGCTTCGGTTTTGTTGCCGCCCGTTTTCTCCAGCGCCGC 0.862
+GAGCAAGGCTTTAAAACAGTCAATGTTGAAGGCGGCATGATGGCCTGGGAAGGCGAAACAAAACCAAAAAACTAGGGGAGAGCGGTCCCCTAGTTTTTATTTGTATTCCGG 0.988
+CACGCCGATTTGCAGGCGAAAGGGATGGAAGTTAAGTAATCCTGTAATAATTACTTACATCTGTCTGATAAAAAACCCGCTTTTTGAAGCGGGTTTTTTGTATCGAACAAG 0.98
+ACAGCCTGCCGGGCGGAGTCGGCAAAGTCATGTCGGTCGGTGAGACGATCGAGCTTTAAACCGTGAAACCATCTCCTGATGAATCAGGAGGTGGTTTTTATTTTTTCAGTT 0.998
+GAGCTGGCGCAGACCATCCGCAAACAACTCCAGGCCCCGCGTCTGCGTAACTAATCCCTGAACAAATCCCCGGAAGGTTTTTGCCTTCCGGGGATTTTTTATTTGGCCAGG 0.993
+GTGGCCCCGCAGAGATGTTATGCCAGCATATGATGCAAATAAATAGCGGCCTATCAGATGCATATATAAAGAGAGAGCTTTTCGGAAGCGCTCTTTTTTTCTGGAAAAAAT 0.934
+TTTATCTCTCGCTGCACCAGTATTAGAAACCGTTTATGCGAATCTGCAAATGTATGAAGCAGAAAAATAAAAAAAGGAGGCGGAAAAGCCTCCTTTTATTTACTTAAAAAG 0.847
+CTAAAGCTGAAATCGTTGCCTCCTTCGAGCGCGCAAAGAATAAATAAGTTCTTCTGGCGTAATAACCCTGAACGCCGGGCTTCGGTTAGTAAGGGTTTTTTTATGCCCGCG 0.987
+TTATAAGCTGCTTGCTCAGCTTGGAGAAACGGCAAGACATGTTTTTCATCTGAGGATATTAAAGGAAACAGCCGGAGAATAAACACTCCGGCTGTTTTTTTATAGCTGATG 0.9420000000000001
+CAAACCGGGACTCTTTTTCAGAAAAGACATTGGGGCACGCGCTTTAAAGGCTGCCCAAAAATAAGTGAGGAAAACCCGCAGAATAGCTGCGGGTTTTTTGTTATCAAAAAG 0.995
+GACGAATCTTCCTATATGACAGGGCAGACCATTCATGTGAATGGCGGCCGTTTTATTTCAACGTAATCAACGAAAAACCAGCTCAAGAGCTGGTTTTTTGTGTGGTGAAAA 1.0
+ACGTAAAGCCTGATTACATCATCAGCAGCCTTCATGATTTGTTTCCTATATTAGAGAAATAAAAAAAGCATGATCTCTTCAATGAGATCATGCTTTTTTATTTTATTTTTT 1.0
+TACTCAGCAAAAGAATAAAGACAAAATTGAAGAAAATGCAGAAAACACAACGTCTTCTGATAACTAAAAAAAAACGCTCACATGATGTGGGCGTTTTTTTTATACAAAAAA 0.9940000000000001
+GAAAAATTGAAAAAAACATCATGAAATTAAATCAAGCAAAAAAACGAAGAATGAAGAGAAAATAAAAAGTGCACAGGCCAAAGGGCAGGTGCATTTTTGTTTTGTATGGAA 1.0
+CGCGCTGATCAAAGGCACCGACGTTGACCAGCCGCGTAACCTGGCAAAATCGGTTACGGTTGAGTAATAAATGGATGCCCTGCGTAAGCGGGGCATTTTTCTTCCTGTTAT 0.8270000000000001
+AAGGCCCGAAAAACCGTAAATTTATCAGCATCGAAGCTGAATAAGTTTTTCGCGTCCCGGTAACGGATGAAAGCCCCGCAACACGTTGCGGGGCTTTTTACATTCGATAAC 0.9790000000000001
+TAACACCGTGCCACCGGAGAAAACCGATGGCACGCAACGCAAAATATTACAATTCTGATAATTCGCCCGTTCTTGCCTGCACGCACGGGCGGTATTCTCACGCATTCAAGT 0.665
+CAAGAAGGCTATGCCCGCAGTTCCATCAACCCGTTCCTGTTTCCGGGTGAAGGAGAGTAATCTCTGACGTTTTCCGGGTGGCGCAGGTCGCCCGGATTACAGCTCATAGGG 0.733
+AGGCGTTAAAGCGCTGACAGACTTCATGGTTGAGTTCGAACGCCGTCACGGTTAATGCCGAAATTTTGCTTAATCCCCACAGCCAGCCTGTGGGGTTTTTATTTCTGTTGT 0.49
+CGTGCAGTATATACAATTGATATCCAGCACAGCTGACAGCCACTTTCATCAAAATAATACAGCGTAGCGCCTTTGAGCTTTCGTTCAAAGGCGCTGCTTTATATCGAGCCG 0.9490000000000001
+TAGATGACTTACTTTAGGTAAGTGGGCAGTTTGTGGGCAGTAAATCATTTGAAAATAAACACAAAAAAATACCAAGGGTGTCAAAACCCTTGGTATCATTGATGCGGCCGA 0.43200000000000005
+CCAAGCGCACCACGTTTATTCGTGTGCAGGAACAAGAAAACCGCATCTTCAACAACCTGTAATCTCCCAACGCTGGCGTGGAGCAACACGCCAGCGTTATCCCATCCCACT 0.904
+TACGTTGGTAAAGGGCGAAATCGGGAAGAGGAAAACGACGCTGAAGCAGAAAGCGAAAAAACTGAAGAATAAATTCAACCGCCCGTCAGGGCGGTTGTCATATGGAGTACA 0.387
+TGACACTGCTTGGGTATATCCCCGGTTTGATTCACGCGTTCTGGGTGCAAACCCGCGATTAAACCTGTGCTCATCCCCGCGGCGTTAACGCGCCGCGTTCCTCTGCTACAC 0.365
+AAGATGCAGACATCATCACGAAGTCCCAGGTAAATCTAAAAAATAGTCCAAAACATGGGTATAAAGATAGAATGCACCGGCTAAAAACACCGGTGTTTTTTTTATATTCTG 1.0
+ATGATATTACAAGTAAGCCGCCTGCGACGATTGAGTGGGAATAAGAATCAATTAATGGAAACCATCTTTTTGGCAATTTTGCCGGGAAGATGGTTTTATTTGTTTATTACG 0.996
+ATATGAAAGAAGTGCCATTGTGTTTCGGGACCGAAACAGCAGCGAATCATAAAAAGTGAAAAGGAAAGCCGGCGTGTTCAAATACATGCCGGCTTTTTTTGTTTTTCACTC 1.0
+GGAAAACAGCTTTCGTGTGAAAGACCCTGTTTCCGGCGCCTATATTACATTTGTGATTTAACTGCAATCCCCTTGCCGAAATAACGGCAGGGGGATTTTTTATTTTTGTCC 1.0
+ACACTCTGTCCTTTACCGTACCCGTTACGATCAACAATCTGATGCCTGGATTATGCGTCTTGCCTGATCCAAAAAGAACCCGTCGGCATGGCGGGTTATTTGTCCTGGTTA 0.439
+CGCCGCACTCGTCTGTACTAATTCCCCGAGAGCGTTGCTCTCCGATCAGACCGAGTTGTAGTTGTAAGGCCGTGCTTCCGAAAGGAATGCGCGGCTTATTTTCGTTTATGA 0.8959999999999999
+ATTTAGTTGTGGGGGTGCATGGACCAGTAAAGGCAGCATATATTCTCGTCTCTGACCGCTGAACTCAGGAAGCCCGGCAGGCATATGCCGGGCTTTTTGCTTGAAAAAACT 0.904
+AGGCTATCAATTGGTGACAGTTTCTCAGCTTGAAGAGGTTAAAAAACAAAGAGAAGCGAAATAAATTAGAAAAGGCTGTCCGTACGGACAGCCTTTTTTCTATTTAATAAG 0.99
+CCGTTCCTCTTACCATGCGGATGAACAAGTAAACGAAGCATCTAAAAAGCGTCAAGCACAAGCATAATGCCAAAACGCCAGATCATCTGGCGTTTTTGTCATTCCTATCGA 0.955
+GTTGGCTAGTAATCTTGAATGTATATAAACGTTCGCGGAGACATGGCTAAATGAGTGAAAGGATCAATCTTGTGAAAGTAATTCAAGGTTGATCCTTTTTTGTAAAATGAA 0.643
+AGCCGGAATCGCTGAAACCTCCGTCACTGCTGCATCCATCATGGTGTGAGCTATGATCTGAATAACCGAAATACCCGCTGTCCGCCTGCTGGCGGCTTTTGTTTTTCGAGG 0.642
+TTTGTATACCTTCAAAAATCAAGCATCTAATGACTTGCCGAATTAATGAGGTGCAAGTAAAAAGGAGTAGCAAGTTGAGCCATCTTGCTGCTCCTTTTTGCATTTTTATAT 0.7140000000000001
+AAAGATAAGCTTGAAGAGTGGATCGAAATGTCCAACCGCAAAGACCTTATCAAAAAATAAGCATGAAAAAAGCACCGGACAGGAATGTTCGGTGCTTTTGATTTCATGCAA 0.99
+TTGAACCAAAACGGACAGCCCATCTCCTTTTGTTTAAAAGCGATTTTGATACAAGGGATAAAACGATAAAAAAAGCCGTGCGCTGCGCACGGCTTTTTACATCGGCTGATA 0.9740000000000001
+TACGCAGAAGCCAGCATTGACGTGGCTAAGCGCAGCACTCCTCCGACTCAGCCTTGCGGTTGCAACTAATGTAAAAGACCGGTTAACGCCGGTCTTTTTTGCGTTTTACCC 0.99
+TATAACTGGACCTACACCGGCGTAGTGAAGAACGGAAGAATTTACTTAACGTCTATTCAATAAAACAACCCCATCACCAGCAGGTGATGGGGTTGTTTTTAAAAGAGCATA 0.98
+TGTTCTCTAACCACATTCCTGATTATCGTAATTTGATGACCAGTTATGACACGTTAACGAAGCAGAAATAAAAGAGAACCGGGGCCGAAACCCCGGTTGTTATGATTAGCT 0.7809999999999999
+GCCAGATCGACGATGAGCAACGTAAAAGCAAAAATAGATTATGAATACGACGTGACAAAGCAGTTTTAACTTATACCGAGCCGGTTATCCGGCTCTTTTTTATTCTCCGTC 0.981
+TCCCGGTCACAGTGAGTTTCATCTGCAAGTTGCCGAACCCACCTCTTATCTGTGCCGCTATCTGTAATTCCTCGCCTTCCCCTTGAACGGGAGGGCATTTTTCTGAAATAT 0.9009999999999999
+GGCATTTCTTTTATGGTCATCGTTTGGGCCGGTACTTTTGCCCTGATGATCTAAAAGCAAACTGTGCAATGAAAAACAGGAGCCATCAGGCTCCTGTTTGCATTTCTGACG 0.961
+ATGACGTACAGATTACAAAAGAATCACCTAACTATACAATTTCATAATAAATTGTTACAAATTAAAAACATTTGACAGGGTCTCTGACTCTGTCTATTTTTTTTATACTGA 0.996
+TCCATCCGCTGACACAGGAGAACATGAGGTTTCATGCTCCACTGCCTCAGGACATGAGCAAACTGATAAAAGGAGAGAATCATTGATTCTCTCCTTTTTTATATGGGGCGA 0.9890000000000001
+GATTGTTCATATCATCGTATGGCTTGTGATCGGCGGATTATGGTGGAAAGTACTAGGAATATGGTAGAAAGAAAAAGGCAGACGCGGTCTGCCTTTTTTTATTTTCACTCC 1.0
+AACCGGCGGGTTGAAGTTCTCATTTTGCCGAGAGGCGCAGCGGAAACAAATGAAAAATAGCAAAAAAGGAAGCCTTGTGACATATCAGGCTTCCTTTTTTTACTTATTATG 0.9890000000000001
+GCCACCATTCACGGTGAAGGTTATCGCTTCTGCGGTGATCTGGAAGATTAATCGGCTTTACCACCGTCAAAAAAAACGGCGCTTTTTAGCGCCGTTTTTATTTTTCAACCT 0.9790000000000001
+CTGAATTTATTACGGTAGCTCGCCCCTACGCCAAAGCAGCTTTTGACTTTGCCGTCGAACACCAAAGTGTAGAACGCTGGCAGGACATGCTGGCGTTTGCCGCCGAGGTAA 0.006
+CTGCCTGAAAGCGGAACGTCCAAAGCCTATACAGTACCGGGCCATGTTCAGTTTCCTGAATAAAAAATACGAAACAGCGGATCTTTTCCCGCTGTTTTTTCAATGTTCTGT 0.986
+AATTTTCTATTCACTCAGATTTCAAAAAACATTATTTGGAATAATGTTTGTCATCTCTTACCCCAAAAACAAGGCTTGTACAAAACAAGCCTTGTTTTTTTATGCATAAAC 1.0
+GGTATTAGAGATGTTCGGAAATACAGATTTGGCACAAGCCCTTCATGAAGCGATTTCTGGGCGCAAACAGTAAAAAAAGAGACATCCTGTGTCTCTTTTTTTATTGGAAAA 0.97
+TATGATGGCTCAATTTGATGAATGGTTTAAAAAAGAAAAGTAAGTGTTTTAAAAGCAGCTTAGACAGCCGTATGAGGTCGATGCCTAAGCTGCTTTTATTTATGCTTTTGA 0.903
+GAGCAGACGGCATGTTTACCGACTTTCCAGAAAAGGCTTCGGCATTGCTGAAAAATGAATAGTTGTTAGAAGGAGGCTGTTTGACGCAGCCTTCTTTTTTCATTCATTCAT 1.0
+GTGACGGGTCAGTTGCCAGACGGTATAGCCGGTGCTTGCACCGGCGACATCCCAGGCCAAATCCTTCCAGCTCCAGCCGCTCCCTTCGGGGCGGCTATCCCAAAGCTCTTT 0.732
+CTCTGTAAAAGGCGGAAAATTTCTTAGAGAATGCCGGAGATGCGGGATGAAAAAAAATATTTAAACAGAAAACCGAAATCAAATTGATTTCGGTTTTTATGTTTTTACTGC 0.992
+ACTTAGATCGCCATGGCTGTCTGGAGTCACTGCCTGATCAAAACCAATTGTCACTGTTCTAATATGGAAAGCAGAATTTCTCAGAAATTCTGCTTCTATGCATACATAAGC 0.579
+CAACATCTTCGTCAGCCTGCTGAGCATTCTGGGCTTCGCTAGCCGCGATTAATCTCACCCGCTAACACTTTCATAGCCTCGCTTTATGCGGGGCTTTGTTTTTTGTTACAC 0.93
+AAGAACTAGAGAATAAACTTGATCAGCTATAAGGCGTTCTGAGAGATTGTCCTGAAACTGTGAAAATAAGAAAAGCACCCTATACAAGGTGCTTTTCTTATTATGCTTCCT 0.927
+GGCGGACTTGAGTCTATGACGCAAATGATTAAAGAAGTGAAAGACGGTTTAGAAAAGTAAAACCAAAAAGAGCCTCCGCTAAATAGCGGGGCTCTTTTTTTGTTAATCAGC 0.996
+AGAAAGTTGACGCGAAAACTCGCGGCAAAGTCGGCATTAACGAACTGCTGCGTACCATCGACTAAAAGTATGCACACGGGCAGCACGACGCTGCCCGATTTTTTTGCAGGG 0.9009999999999999
+TACAATTGGTTGTGGTGGCGGAGCTGTTGCTTGTCAAAACTATCGTCAATTCTGCAGATAAAACATTTGTAGAGGGAATATTTTAAATATTCCCTCATATTTAAAGCGGGG 0.9359999999999999
+TAAAAAGATCAAAGACTTCATCGAGAAAAAATACGACGGAGCTGTGCTTCCTGTATCTGAATAAGACTGAAACCCCGGATGAGAATTCCGGGGTTTTTTTCGCGTATTTTC 0.998
+GCTTTGAAGTTGAATCAGTCGAAGAAATGAAGGCTAGTTTAAGTGCGAAAAGCTGAAAGAATCAATAAAAGCAATCGGTATGATGTCGATTGTTTTTATTTTTGAACAGAA 0.659
+CTACCGGTGGCCGTGTTGACCGCTTCAACAAGCGTTTCAACATCCCGGGCAGCAAATAAGACCGGATTTCCGAAAAAAGCGCCGCACGGCGCTTTTTTTGTGCCTGAATTT 0.687
+TTGGTGAAGACATTTCTGATGGCGGTAACGCGATTTCTGGCGCAGCAACGAAAGCGCAGCAATAAGCAATAACGGTACGACAGCTGTGTCGTGCCGTTTGTTTTTTCTGCG 0.905
+AGCTATTGAGTAGTAGCAACTCACGTTCCCAGTAGTAAACCCTGTTTTCCTTGCCATAGACACCATCCCTGTCTTCCCCCACATGCTGTGGGGGTTTTTTTTATCCTCAAT 0.978
+GGGATCTGGTGACAAAATGGTATCCGTCGTCAGAAGAAATTGAAGGGGGGCTTCCTAGCATTTTTAAATAAAAAACACGCACTGCGGTGCGTGTTTTTCGCTTTGTTTCTA 0.99
+GTCCTGAAACGGATTCAGCATTTAGATGAAGCATACAACAAAGTCAAACGTGGAGAATCAAAATAAACCTTCCGCTCACATGTGAGCAGGAAGGTTTTCCTTCTTTGAGGC 0.741
+CAGGTCGATGCCGATATGTACATCGTATTCGGCAATTAATACATAGCACGATTGATTAAATAACCTTAATAACAATGCCGACGTTATGTCGGCATTTTTTTATCAGATAAA 0.992
+GAAAACGGCAGGTTTCACGGGGGGCATATCGCAGCGGAAATCGCCAAAAGAGAAAACCATTAAAGATGAGGAGCATATGATGCATTCGTATGCTCTTTTTGTTTTTTTAAG 0.968
+ACTTCCGCGAACTGGCGATCTTCAAAAGCGGCGTAACGCTATAAAGTCGAAATGAGTTGTTAATAAAAAACGGCGTTTCATAATGTGAAGCGCCGTTTGCTTTTCCATACC 0.769
+TAAAAAAGAAAATGCGCGAACAAGGCTTGCTTGATTAAAAGCATTGCCCCGCCGGCGACATTGTAATCAAAAAACACCGCAAAGAAAGCGGTGTTTTTCATTTCTTTAAGC 0.983
+ACGAAAAGCCAGCCATCGTCAATCAGCTGATTTTGGAATATCTTAAGAACCAATAAGCTAAAATTTCTCTCCATCCGTCTGTCATAATGGCAGACTTTTTCTGTGCGTTTT 0.9890000000000001
+AACAGCAGTGCTTGATTCAAAAAAGGCTAACAAAATAAAGGGATTTTTACACAATTCTTGACTAAAATAAACCTGGATTTTCGGTAAATCCGGGTCTTTTTTGTACGCAGC 0.826
+TCGCATTCTTTTTTACCTTCCCCTGAATGGGAGGCGTTTCGTCGTGTGAAACAGAATGCGAAGACGAACAATAAGGCCTCCCAAATCGGGGGGCCTTTTTTATTGATAACA 0.935
+TTTGGCCGGCGCCATCGTGTCCGGTATAGCGATCAACATGCTTAGAAAAAGAGGATATCAAATGTTTTAAATGCCGCTTTCTTCTAAAGAAAGCTTTTTTTATGCGTTCAG 0.648
+ATCAGGTGCAACTGCCGCCCTCGGCGCGTTTGATTACCTAATCCGTAACTAATATAAGAAATCCGCTATATTGCCAGATTGGCAGGATAGCGGATTTTTCTTTTTCTACAG 0.9990000000000001
+AGCAGGAGGATCTGCGGGAATTTGTCACGCGGATTCAAAAGCTGAACCTGCCGTTCGGGTCATTACAAGAAACATCCCGCTAAAAAGCGGGATGTTTTTATATGCTTTTCA 0.977
+ACCTTTTTCAAAGCTCCCGTAACGACGTGAATGATTACTTAAATCAAAGCAGAGGCCTTTTGCATTAAAAACCTGCCGTTAACGACCGGCAGGTTTTTTCATTTTCTTAAA 0.9840000000000001
+CAGCTCTACCAAAACAATGTGCAAATGCTTGAGGAAGCGGTCCGAATCGAGAGAACCCAATAAACAAAAAAACTGATTCCGAGTTGGAATCAGTTTTTTATTTATCTTGGC 0.993
+GTATTTCATCAAGAGGTGTTAAAGCACAACGCGTAACATGCCGTTTTTTACCTGCATGCCCTCCTTTGTAATCGTTAATGGGGAGGCATGCAGGATTTTTTTTGCTCAGTA 0.775
+ATCGCTTGAGCGCAAGGTTAATCAACAAGACTAACGTTCCATCTTTTGTTCGCCAAACTTTACGGCCTGTCTCATTCTTACGATTGCGGCAGGCCGTGTTATTATTGTCGT 0.579
+AAATGAAGAATATGACGAAGCGCTTCAATACATAGAGGAACTGAAGCAGATTTGTTAACCATACCAAGCAAAAGAAATGATCCGTTTCTTTTGCTTTTTTTATTGACAAAA 0.996
+AAAGTGCTGGAACGATATCCAAATTGTAAGATTGACTGGGACCAGCCCATTAAACTCGCAAAAAAAGCAGAAGAGCGTTAAACGCTTTTCTGCTTTTTATAAATCAAACGG 0.9490000000000001
+GTTACTTGAATCCGCTTAATTTAGCGGTGATAATCCGCCACAATTTATTGTGACAAATCCAACCCTTCCTCGTCGGGCCTAACGACGCGGAAGGGTTTTTTTATATCGACT 0.779
+CGCCATGTATTTATCATATCGAAAACTTCATAACGAGCTGCAGTCATCTAATATTCAAATGAATTAAAAAACCTTTCCTCTTGTCAGGAAAGGTTTTTTATTTGAGAAGGG 0.995
+GCGCAGGTGACTGAATTTGCACACCGCATCGCCGATGCAGTAAAAGCCGTTTAAAGCGTTAGATAACTGGCTAAAAAGGCGGCGATTGTCGCCTTTTTTCTCAGCGAACAC 0.631
+CGCAGCCCTTGTGATTGCGCTGGTTGTAGGAACTGCATTGAATTATATAAATATCTTCAAATAAAAAAGGAGCTGTGTCGCAGACACAAGCTCCTTTTTTTATTATTTATT 0.9840000000000001
+TAAAAAAGATTGCAGGCTTGTGAAATTTTCCGTCTTGTATGTGCGACAAACGGTTGAATATTATGATGAAACGGTCCTTCCTATAAGCAGGAAGGTTTTTTAATGAAATAT 0.898
+TCTTTCGAAGGTATTTCCTTGAGATCCACTCTCGCTTCAGCTATTGCATCGGACTTAAAATTAAAAAAGGTATAAGGCTTAAGGCCTTATACCTTTTTGATTAATCATTCC 0.9179999999999999
+TGAAGGTTCGTAAACTCATCCGCCGTTTGCGCCGTATCCGCATCGACCGATTAATTAGCCGCATCCTGTAATCACAACCCCGTCCTGTACGGGGTTTGTTTTTTGGAGGCC 0.532
+AGATGGGGCTTGTTGTTCCTCAATATATGAAAAATGTCAACTCAATTGAAGATTTGAAGAAGTAATCAAAAAAGCAGCCTGTGTCAGGCTGCTTTTTTTGCGTTAAGAAGC 0.998
+TCCGAAATATCCTACACTTTCATTACGCAACGCTGAAATCGTTGAAAAATACTATCAAAAATAATGCAAAAGAGCCCGGCGTAAAAGCCGGGCTTTTTTTGTGCCAAGAGT 1.0
+TAACGCTGAAGATGTTTACAATCTCGCATTAATTACAGCGGCGCAAGCACTGTAATAAAATTGAAGACAATGGCAGCTCTCGACCGAGGGCTGCCTTTTTTGCGCTTCTGT 0.998
+AAGTAACCGACTTAACGAAACGCCATGCGAAAGAACTTTTAAAACAAGCGGATCAAGTCAAAACAACTGGGTAAGCTGCGCGAGAAGCGCAGCTTATTTTTTTCGTGCACA 0.985
+CCTCGCGATGCTCGCGGCGCTGGTCAATAGCGGGTATTGGTTCTTCGAAGGGTAAGTTTGGATTTAAGCCGGATGCGGCATCACATGCCGCATCCCTTTTCGCTTACTTCC 0.456
+GTCCAGAGAGGCTGAGAAGGATAACGGATAGACGGGATGCGTGTATAGGCGCGCACCTTGTCCTAAAACCCCTCTATGCTCTGGCAGGAGGGGTTTTTTCTTCTATATGAA 0.6409999999999999
+CTGATTCTGTTATTGATCATTTGTATATGGACGTTTATTCTTGCAAGATTAGGAGTGTAATAGAAAAAAGCAGTACATGCCCAGCATGTACTGCTTTTTTTATGTTAATTT 0.993
+CTGATTACCGGATCTCTTTACTTTATTTCTGACATTCGAAAAAGGTTGAAATAAAAGCATCCGGCTCCGGCAGAATCAAAAAAAGATTCTGCCGTTTTTTTCATGTGTAAA 0.9570000000000001
+CCTATGATTTTTCGTTAGATCCTGATTCACCTGCGCGGCCTGTCATTGAATAATTGCTATAAGCGGCGTTCTCTCGTTCAACCGAGAGGGCGCCGTGTTTTAATGGAAAAA 0.9179999999999999
+TAAATAAAAATGAATATCATATCTGTTATAAAATATCACCAAATCAGAAAAAAGCAGGTCTCCTTTAGTCAGAAAATATACAAAGAGATCTGCTTTTTATGATTCTTACAT 0.9590000000000001
+AAAGATGATTCAACATCCAACTCTCGGACAAACCATTGATGTAAAAGCATAACCTCATACCAGAGGCGGCCAAGAACTCCATCCTCCCGGCCGCCTTTATTGTTCACAAAA 0.8690000000000001
+GTGAAGACCGTGCATTGATCACCCAGGATATGTCTCGGTTTTATCCACATATTTTTGTTGAATAAGCCACGATACCGGATGGCACTCGCCATCCGGTAATTGTTAGCCTAT 0.579
+GTGTTATTTTCGGCATGCTTCCTGCAAATAAAGCCGCAAAGCTTGATCCCATTGAAGCGCTGCGTTATGAGTAGCCTCATGCAACATGCATGAGGTTTTTTTATGTTTAGT 0.997
+CTACGAAGCCATTATCAATAAACTGACGAAAAAACCAACCGATCAAAATTTCTAAGAAAGACAAAAGCCGGCGTCTGAAATCAAGACAGCCGGCTTTAATATTTCTCATAC 0.9570000000000001
+AGACGTGGTCAGACATCCGCTTGTTGCGAAAATTATTGAAGCATACGATAAGCAAAATTAATGCTGAATGACCCGATCGCGCGTTATCGGGTCATTTTTATGATTGCTTAT 0.7879999999999999
+GATGATTTCATCTTCACTCAGCGGCTGGCCATCAACAGAAATGGTAAAGTCGAGGCTGCTCCACGTGGCCAATTCTATGGCCTGAGGAGCAGTCTGCTTTTGTTTCTCGCG 0.518
+GCTTATGCAAAAGGCACTTGGAAACTAAAATTCAGTAATGATGTTATTGTGAAAATCAAATAACAGCTAACAAGGGTGCCTGTTTAGGCACCCTTGTTCTTTAAAAAAGGC 0.7809999999999999
+ATTGGCTGCTTTGTTTGGCTATATGCTGAATCGTTTTGAATTAAAACCAATGTTGCAGAAGGCATAAAAAAACCGCTCATAGGGTTGAGCGGTTTTTTCCGTATAGCCATT 0.956
+CGATGACGAAGTGTATGGAAAAATCAGAAAAACTCAGCAAATCCTGATGACTTTCGCCGGACGTCAGGCCGCCACTTCGGTGCGGTTACGTCCGGCTTTCTTTGCTTTGTA 0.64
+CAAGACAACGGAAAAGAAAGCTGAATGAGTATTCGCATAATCCCGCAAGATGAGCTGGGTTCAAGCGAGAAACGTACGGCGGATATGATTCCGCCGTTATTGTTCCCTCGG 0.39299999999999996
+GATAAAAAATCTACGTTACACCGTGAAACAAAATAACAGCTTTGCTGTTTGAGGTGTAAGAAAAAAGCCAGAGCTTTGAAAAAGGTTCTGGCTTTTTTTCTATTCCGAGGG 0.986
+ACTCGGCAAACCTGGCTTTGAAGAGAAAAAAGCAGAGCTTGAAAAACGTCTGGAAGATTAATGTGAGAAAGCTGACTGGCATTTGCCGGTCGGCTTTTTATAAAATCAGAA 0.852
+ACATGGGTACTGGCAGTGATAAGTCGGATGCGCTCGGCGTGCCCTATTATAATCAACACGCTATGTAGTTTGTTCTGGCCCCGACATCTCGGGGCTTATTAACTTCCCACC 0.9440000000000001
+CCTGACGAGGCGCCGGAAGTGAAAAAACGCACACCGATCCGCGACCGATTCACTGAAATGTAAAAAACCCCTTGTCTCAAACGGAGACAAGGGGTTTTTCATTAACGAGAT 0.9890000000000001
+AAAGCTTTAGAAGAAATTGATGCAGGCCTGCTTTCGTTTGAAAAGGAAGACCGCGAATAGTAGCACAAGTAGCAACCTATATCATGTAGGTTGTTATTTTTTTCCGTGCGG 0.875
+TGATCAAAGAAACTGCCGCTAAATACAAGTCTGAAGAGCCGGACGCGGAATAATCCGTCCTGCAATACTGACGGATGCGAACGGGCATCCGTCAGTCCTTTCTCTATCCCC 0.9540000000000001
+AGGTCGGATAAGGCGTTTACGCCGCATCCGACACGCATTGCCCGATGCCGCAAAGGCATAAAAAGTCGATGGCGTTGAATATTTTTTCAGCGCCATTTTTATTGATGCGCG 0.442
+CTTTGTTTATCAAGGGGTTTAGAGATAGTTATCAACTTTAAAATGGCCGGCGTGCCGAATTTGATTGTAGAAGACGAACTTTTGAAGTTCGTCTTCTTTTATTTTTCAGAG 0.996
+GCGCAAGAAATCGTTGAAAAAGGTTTACAAGAAGCAAAAGATCTTGCTGCAAAATTCTAATAAAGCCAAGACTCCTATCGTTACAAATAGGAGTCTTTTTGTATATACACA 0.988
+CAAAGTGTGCACAGGGCTACTCTGGCCGTTAATGCGCAAATTGTTCAGCCTACATTGATTGACTTTTTAAAGTAAGCGGCTCTTAGGAGTTCGCTTTTTTTATAGTTCAGG 0.9229999999999999
+ACAGCGTGTAGCTGCTCTGACTGATAAATTTCCTTTATATAAAGAATTAGATTATTAAGATCCTAAAACCCGCTTGGGCTTATGCCCGGCGGGTTTTTTGACGATGTTCTT 0.993
+GTTATTACTCGTACCTTCACTCAATCTATGTAATTAGATTTGACTGAAATCGTACAGTAAAAAGCGTACAATAAAGGCTCCACGAAAGTGGGGCCTTTTTTAGCGCGAGAG 0.985
+GGAAAAACAACACCCCCCGCTTGATAAAGAGACAATTGCGGGACTGCTTGAATTGTATGTTGTCAAAGGATTGTCAGCGAACTAGATAATCCTTTCTCTTTGCAAGAAAAT 0.526
+TGAAAAAACAAAAGGCAAAACTGAAATCAAGCAGGAATTACGCCAGCTGTAAGGAAAAGTTTGATAAAAAAGGCGTGGATAATATATCCACGCCTTATTCGTATAGGCAGG 0.81
+TTAATCTCTTTGTGATTATTTGTGTGTATACCATTGTATCTGTAGATACGAATTTACAGTTTGGCTTTTAAAAAAGACGCCTTTTCAGGCGTCTTTTTTCGTTATACCGGT 1.0
+GATAACGGCTGCGAAATTCTGACGCTACGCAAGGATGACACCATCCCGGCGATAATCTCGCACGACGAATAAGATGAAGCCGGCGAATGCCGGCTTTTTTAATGCGATAAT 0.6729999999999999
+AAGTGGTCCGCGTACCTTATGTTGGCGTAGATAAAGACAACCTGGCTGAATTCAGCAAGAAATAAGACTGATTGGGCGCAGTCTATTACTGCGCCCTTATTGTATGGCCAA 0.47
+AGAACCTGAAGGGATAGGCCTACCTAGAACCACATCGAGCAAGCCCTTTGATGGGCAACTTTTTGTACAGAGCCGGGGTGTTGGTAGCACCTCGGTCTTTTTTATTTTATG 0.983
+TCTCTTGCAACCCTGCAGGACGGCCTGCGCCGCATCAAAGCCGCATTATCGTAAATATAGCTGTAAACGCCTTTACGTCTTCATTTGTAAAGGCGTTCTTAATAAAGGAAT 0.973
+TTAAATGAAAAAGGATATATTGTTCCAGGTCTCGGAGATGCGGGTGACCGCATGTTTGGAACAAAATAAAAAATGAAATCCCCAAAAGGGGGTTTCATTTTTTTATCCAGT 0.982
+TTGCGCCCGAGTTTGTCGATATGTGGTATGAACGGTATTTGCGCTATACAAAATAATGGTTACGTAAAAACCTGTTGCGGGGTACAACAGGTTTTTCACATGGGCTCACAC 0.7609999999999999
+AAAAGAAAATACCTCTGTATCTTCGGGTGACACGGTAGCCATCATACCGCCGGTCAGCGGGGGATGAAAACCGGACGGCATTTCAGCCGTCCGGTTTTTCTGTATTTCATT 0.99
+CCGTGGTCTGGAAAAACGTGGCCTGCATAGCCGCGAGAAGAAAAAATCCTGATTCGGTGAGTTTTCGCTAAAATAAGGGCGGTCAGTTGACCGCCTTTTTTCTTTTCGTAG 0.8059999999999999
+GTGGTTGAAGCGCTGATTGTTGAAGATCAGGCAAGCAAGCTTCAGCAGTCGGAAGGTTAAGATGAAGACGATATTCGAAGCCCTGAAATGGGCTTCTTCTTATTTAACCGA 0.871
+CGGTCTGGCTGCTATCCTGACAGTTGTCACGCTGATTGGTGTCGTTACAATCTAACGCATCGCCAATGTAAATCCGGCCCGCCTATGGCGGGCCGTTTTGTATGGAAACCA 0.784
+CCGGGTAACACCATGTCAGAGCAGTTAGGCGACAAGTAAGTTCCCGCATCAGATGACTGTATTTGTACCGAAAACCCCGGGGCGTGCTCCGGGGTTTTTTCTTATCAATTC 0.731
+CGAAAAACAAACATACAGAAAACCTCAACAAGCTTTTACACGATGCGGTCGTACCGCTTGAGCAATAAATCATAACGGGCTGTCTGCAGCCCGTTATTTCTTTTTACGTGC 0.738
+GGGACAAAGCACAACGGCTGAGGTCACTGATGAAATCTGTTCGCGCTTAAGAAAGCTCTGATGAATCAGGCCGGTGGCAGATGGCTGCCCCGGCCTGTCCATTTCCTTACG 0.634
+AGAGCGGACGAAGATGATTTATGATTTTATTTTGCGTGAGCTCGGGGAACGGTATTAGAAAAATAGGAAGGAGCTGACCGAACAGGGCAGCTCCTTTCATAAAGCTATGCC 0.522
+AAAGCGGGATTGAGAAAGGCTTCGGGGATCTGGACTGGGCCGCACTGATTAAATGTATAAAATAAAGAAAAGCCTCTCCGTTTAAGGAGAGGTCTTTCTCTTTTACAAAGA 0.963
+AAGGGGAATGGCTATAAAAAAGCGACAGTTGAGCCGCTCAAAGATGATGACTTTTATTTTGAAGATGAAAAAGAGCAGATATAATATCTGCTCTTTTCGGCTTGAAGGTTC 0.72
+GGACTTTTTAGCAAAGAATCAGTAAAACAAGCACAGCAAGCAAATTAAAAGTCATAAAGTTGGGAAAGAAGGATGTTACTTATGTAGTATCCTTCTTTATTATTCCTTGAA 0.96
+TTTTCTTTTTATATTCCGACAAAACGGTAAAATCGAGTCTGAATTTGCCGAAGAATCTTGTTCCATAAGAAACACCCGCTGACTGAGCGGGTGTTTTTTTAATAGCCAACA 0.9890000000000001
+ATCGTGACCAACCCGAACGCGAAAAGCACCTGCGGTTGCGGTTCTTCCTTTAGTATCTAATCTGTTGTTCATGTGCCGGATAAACTATCCGGCACATCTTCTCTCTTCAAC 0.87
+TAAAGACGGTAACCGCGACAACGCCGTGGCTGACGGCCCGTATGTTGGGGTTAACGCCAGTTTCTGATCCCTTCCGGCGCGGCATTCTGTCGCGCCATTCAGTTTCTTACT 0.8740000000000001
+AAAAATCGGCAAATATGACATATCAGATGCAATTCCGGTGCCAGCTGCTCCAAATCCGATTTCCTTAAACTAAAAAGAGCCCTTTAAGGCTCTTTTTTAGTTGCTATTCAT 0.977
+GGCGATGCTGGGCTCATTTAGAAAAGATTAATGCCCAGGGGTTCAAAGCCCTCTTTCACCACATAAAAACGCCTGCCACATATCGGGGCAGGCGTTCATTTTGTTATACAC 0.878
+AACCTTGAAGATGGCGTGGCGTTTGCTATTGAGAAGTATGTGCTGAATTAATCTGTGGGCGGGCAAACAGCATAAACGCGTTTGCCCGCTTACTGATTATTGGTTTACTGC 0.441
+TATGGCTGCAAAAGCTGCAAGATCAAAGACGTTATGTGAAAGACGTTTGGACAGGAATGTAAAATATAAAATCCCGCCAATCTGATTGGCGGGATTGCTTTGCATATGAGA 0.9540000000000001
+AAGCGATCGCGCAGCTGCGCGTTATCGAGTTGACCAAAAAAGCGATGTAACACCGGCTTGAAAAGCACAAAAGCCAGTCTGGAAACAGGCTGGCTTTTTTTTGCGCGTGTG 0.998
+CCGCCAGCCTGTTCAGCTTCGCCAGTTTGTTCGTTAAGCAGCAATAATTACCCCGGTTGTCACCCGGATCATAGTCACTTGATGTGACTATGATCCGATTAATACTCTCTC 0.774
+CTCTTCGGGATTTTTATTCCGAAGTTTGTTGAGTTTACTTGACAGATTGCAGGTTTCGTCCTGTAATCAAGCACTAAGGGCGGCTACGGCCGCCCTTAATCAATGCAGCAA 0.764
+GTACATAGCAATTCATACCAAGAAAAAGTAACAGATGGGATCGAAAGCGGATTAGAGAAATACTTCCAATAAAAAAAGCTGCCTTTTGGCAGCTTTTTTTATTTTGAATCC 0.9990000000000001
+CTTAAAGCTTGTTAAAGCGATCGTCGCTCAGTACGAATAAATATGAATCAATGCAGGACCAAAAGACAGCTGTGTCTGATATCACACAGCTGTCTTTTTTTATGCCCAAAA 1.0
+AAACGGCTTGCTGAATCGGTGCAGACCGGAGAAATTTTTAAATTTATACCGGTCGAAACAAAGTAAAGCAGAAAACGCCTGGGAAACTAGGCGTTTTTTTGATGTAACTAC 1.0
+GTTTGGAAAACGCATGCTGATGATTATAAACCGGAGGATCTGCAGAACATCTCTTCCTCTATCGCAAAACGCCTGGCCTCATCATAAGATGAGGTTATTTTATTTTGTGAA 0.971
+TTCTGGCCGCGTATTTCAGCCACAAATGGGATGACTAATGAACGGAGATAATCCCTCACCTAACCGGCCCCTTGTTACAGTTGTGTACAAGGGGCCTGATTTTTATGACGG 0.841
+TTTTGCGACGAGAATTACGTGACGAAGCGCGCGGCAAAGTGGACAATAAAGCCTGAGCGTTAAGTCAGTCGTCAGACGCCGGTTAATCCGGCGTTTTTTTTGACGCCCACT 0.39399999999999996
+GGAAGAATTGCTGTTTCATTACGGGTATCGAAAAGAACAACCGGATTCATTTACAGGCAAATAAAAAAGAAGCTTTGCACATTGTGCGAAGCTTCTTTTTGTTTTACTTTT 0.995
+TTCGGCAACTTCCAAAAACTGAACAAAGATGACGTGCTTGCCATCCTTCGCGCGTCTCTATAAACCCAAAGGGCGGAATCCAGTCATTCCGCCCTTTCTTCTTGACTTGAT 0.968
+ACAGCTTAAATAGCAGGACCGGGGATCAATCGGGGAAAGTGTGAATAACTTTTCGGAAGTCATACACAGTCTGTCCACATGTGGATAGGCTGTGTTTCCTGTCTTTTTCAC 0.812
+CGGGATCCAGCTGCCGGAGGAAGAGATTCGGGCTGCGTTTGCGGGGTTGAGGAAGTAAGGGGTTATGGGCCGGATAAGGCGCAGCCGCATCCGGCCTGATATTTCACTCAA 0.5579999999999999
+GTCGCCTATATCGCTGATCCGGATGGACATTATATCGAAATTTGCAGTCCGATGGAATAACGCACAAAAGCCCAAAACAATGTCTGTTTTGGGCTTTCTCATGATGTTTTG 0.7879999999999999
+AGAGGCATCAAGTCTAGTGAAACAAGCGCCAAAGATGTGCTTAAAAAAGTGTATAATAAATAGGACAAATGAGAAGCGAGGGGAATCCTTGCTTCTTCGTTTTTGCAACCA 0.858
+AAAGCTATAAAACCTATTTTCTTGCCAACCTGCTTGAATCAAAGAAAAAACAATCTTAAATATGGCAAAGCCGCGCACGTTGATATGCGCGGCTTTTTTCTATTCAACCGG 1.0
+AGATGACTATAACGGAATCAGAAACTTTGTGATTAAACGAAAAGAGGATTCTTATTTATAAAAATAAGCAGCCGGACAGGCAGAGTTCCGGCTGTTTTTTTATTTCTTGAT 0.992
+CAGCCGATGCTGGAAGAACCGGAAGCCTTTGATCAAAGCTTCAGGAAATGGCTTGATCAATAAAAAACAGCCCGCAGATCAACATCCGCGGGCTGTTTCTGATTATAAGAC 0.7
+GCAGATGCCTCGCGACTATTCTGAAGGCGCATCCGGCCTGCTGCGTACTGGCGCGAAGCGCGACTAATTTATTTTTCGGGCGCAGCCATTGCGCCCTCCTCTTCTCTCCCT 0.924
+GGGTGGAAATCGGTACTCTTGTGGAACTGGCGCAATGGACGCTGTCAGCCGATAAAGTGCTCACATTTTAATGTTTGAGGGGGCGTCTGACGCCCCACTATGCGGGAAGTT 0.8370000000000001
+AAATAACCCAACCGGCAGAAAACGCCCCGCTGAAAAGTAATTCATAACCATCAGTCCTCAATGACGATTAAACACCATTGCCTGCGCAATGGTGTTTTTGTTTTTATCTGC 0.9329999999999999
+CCGAAAATATGCTCGCAGCGATCCAAGGGCAAACACCGAAAAATCTTACAAGAGAATTTCAATAAATCAAAAATCCGGTCTGATAACAGACCGGATTTCATATTACATACG 1.0
+AATCAGCAGCCTGAACAACAGCTACTGGAAGCCTCGTTACCTCGGTGCGAAAAGATTCTAATTTTTAGAGAAAACCCGTTCATTGGAACGGGTTTTTTTCATTAGACGGAG 1.0
+AAAACGATTCGGAAAATCATCGCGGTGCCTGGGAAGCTTGTCAATATTGTGGCAAACTAAGCCTAGAAAAAATCCCCTTTGCCAAAAGGGGATTTTTTTTCATCAGTCTCA 0.987
+GTGTTGACCAATATTGATAACAAACCTGCGCTGAGTGGTAACTAATAATAAAGTTGCTCTCAAAGACGTTAAAAAAGGTGCTCAATGAGCACCTTTTTTCTGTCTGTTATT 0.9129999999999999
+TACCTTCGCTTCACAGCCGAGAAAACCGAAAAAGAAAGCACAGTCAAATCTGACTGCGTAGCATCTGCAGGAGAATGGGTGAAAGCCTGTTCTCCTTTATTTGTGCTACCA 0.963
+ATGATAAAGCGTTTGTTCGGGCGCTGCGCAAAGCGTTCGACCTTCCGCATATTAAAAAAGCCAGTTAATATCATCAGGGAGCTAATCGGCTCCCTTTTTTTACCTTTAATT 0.578
+GCTCTTGAAGGAAGGCAGAAGGACAAAACAGTCCTGACAGGTGCCGCTTTTATAATAAACTGATGTAATGAAGCAGAGACGGTATAAGTCTCTGTTTTTTTATCGTGCGCA 0.987
+ATGCGAAAACGGGAGAAATTGTTGATGTCATTGATACAATCGCCTCTTAACACCGGACAAGCAAAAAATAGAAGCCGCTGCCTATGCAGCGGCTCTTTTTTATTATATCGC 0.948
+TTGGTATTGTGATTCTTGCCTTTGTTCCCGAGGAAACCAGCACAGATGTCAGCCAGCAGCAAAATGACCTGCCCCTTTAACTGGGAGCAGGTCATTCATCATTTATTCGCT 0.87
+TTATTCAGCTTGATGAGCTGATTACCGAAATGAAAAAGCATTTTTATAAATATCATGCGATGAATCGATAAAACCTCCTGTTAAAACGGGAGGTTTTTTATTGTGTACCAA 0.993
+GGCGAATGGCCGACTGGTCTGCGCTTAAGTCGCATTGGCGGCATCCATTAATAGCCATCTTCGTTCACGTTGTCGCCGTTATGGCGACAACGTGAATTATTTATGAGATAA 0.738
+TTTTGAGATTGAAATGCTGAAAGAAAAACAATTTGATGATACATTGCTTGAAAAGATTTTACAGCAATAAAAAATGGGGGATAACACCCCCATTTTTTAGCTTGTAAATTG 0.91
+ATTAGTGAATATTATCGGAGTCTGGGAGCGAGTTGGCCTGACTCCGGCAAACGGCCTTGCCAAAGAGGGCGGAGCGAGCTTCATATCTGTCCTCGTTTTTTTCTGTGTCAA 0.322
+GAGAATTTTTGTCACAACTGAAGGCTGGGTTCCTATTTATGAAAAAGACAGCGTGAATCAATAAGCGTGAGATAGCCCCGTTCATCGAACGGGGCTTTTTATATTTATTGC 0.982
+CTTTATGAAGCAAAAGCCGCGTACGTATTTAAATGACTACGTGAAAGAAAAGGGCTTTAATAAAAACTAAAGCAAACCTCTCCGTCTGGAGGGGTTTTTATGTTTCACGTG 0.9520000000000001
+TAATTTATAGCTGAAAAAGGACCTGACTTGGTTCTTTCGAATAGAAGCGCTATAATGAAAGCGGACAAGGGAAGGGGACGGACTCCCTTTCCCTTTTTCCATGAAGACCGG 0.69
+GCTTCCGGTTGAGACATTTTTACAAAATACGTATCGGTTTTACTTTCATCAGGTGATGAGAGAATCCAGCTAAAGCTTCTTTCAACAGAGAAGCTTTTTTTTGTTGGCAGG 1.0
+GCCTTGGACTAGGGATAAAATGTCCAGATACGCAAAAATTGCGCTTGGCATTCAATAAAACAAAAAAGGACAGCCTGACATGTGAGGCTGTCCTTTTTTACAGCTGAAAGG 0.917
+CGTTATGAAAAATATAAAGCAATTGGCAAAGTCTCGGTTGAAGATCAATATATCGGGGTAAACTAAATAAACGTGAAGCCTTTGGCTCACGTTTATTTTTTGTGACATTCC 0.988
+TAAAAGCCAGCCAGCCGTCGAACATCGCGTCGCAGGCTGAAGAAACGCCACCGCCACATTATTGAGGCGTAAAAAAAGCGGGGATTCCCCGCTTTTTTGTCACTTTTTCGG 0.6809999999999999
+TGCCAGGCGGGTACGCCAGGCGAAAACCGCTTTGGACCAGATCCAAAACTGGAACCTTAAAACAAATCTGCTCGCCGGATGTCTGACTCATCCGGCTTTTATCATTATGTT 0.943
+TGACAGAGGAGCAATTTAACGAAATGGTTAAGCCGGAAGACATGGTAAAACCAAAGGCGTAATAGGAAGAACGGCTGCTTTTTAAGCAGCCGTTCTTCTAAATATGTTGCT 0.973
+GATTACGCTCATCGCAAAACTTGAGCATAATATCATTGAGTTACAGGCCAAAGGGTGAAATGAAGGGGGCGTGTGGTCAGTAACCTGACCACACGCAAACTTATTTAGCGC 0.779
+CGTTGAGCAAGGTGCTCGTGGAGCTCAAGCTGCTAACGTTCAAAAAGCTTAATCTTCAATCGTTTATACAAACAGGCTCTTTATATAGGGCCTGTTTTTTTATGTCTATAT 0.998
+CATTCGAACCGTAATTCGTTACTGATTTCCCGCAGGTTTACCCCGTCCACTTCAGGCGGGGGTTCTTAATACTCTCCCCGGGCAGCCGTCCGGGGGATTAACCCTGAGATA 0.5529999999999999
+CTTAATTCGCACGCCGAATGATGAAACGATTGTACAGCTTATCCTTCCTGTCAGAACCTATTAATCCGATACACTGCTGCCGACCCGTCGGCAGCTTTTCTATTCGGTATC 0.8320000000000001
+AATGACAGCAGCACAAGCTCAAACAACAGTACAACGAATTCAACAACTGATTCATCCTATTAAAAAATGCCCGGTCCTTTTAGAGGATCGGGCATTTTTGCGCAGAAAAAA 0.995
+GCTTGTCAGGAGGCAGGGGAAGGCGAATGTGACAGCTGAGGGTACGGATATTGAACAAATACAATAAAAAATGTAAAAAGGCCTATGCGGCCTTTTTTTGTTTTAGGTCAA 1.0
+TGACGTTGGCGCAGCCAGCAGCATTTATGAAGAGTATTATCAGAAGCTGAAAGCAGGACGTTAATTCAGCAAGCGGGCGGTGGTATTACCGCCCGTTTTTTAGTTAGCAAG 0.863
+TTTACCAGGATACAGTGCTTCCTCACGTAAAAGAAGCAGTATTAACCAAATAAAACTTGAAAAATGACATAAAGGCAGCGCAGTTCGGCTGCCTTTCTCTTTCTGCCCTCG 0.33899999999999997
+TGTTCCGCGCGCAGTTTATCCGCTCCCAGACCGGCTTTGGCGTTGAGCAAGGCCGCGCGCATTAATCTCTCCCCTTCCCCGGTCGTCTGACCGGGGAATACTCTTCCTCTC 0.953
+TGCGTAAAGCACGTCGTCGTCCGCAGTTCTCCAAACGTTAATTGGCTTCTGCTCCGGCAGAAAACAATTTTCGAAAAAACCCGCTTCGGCGGGTTTTTTTATAGCTAAAAT 0.9940000000000001
+AGACAATTTGTCAGCGTTTGAAACGATTCATTATATTCATGCGGTAAAAAAATAATTTTCAAATCATCAGAAGCCTCTCAATGTTTGAGAGGCTTTTTATTGAACCCGCAT 0.941
+ATTGAAAAATATGGTTGAAGCCGCAAAACAGGCAAGAGCACAGCAGACACAGCTAGTATAATTTGAAAAAACCATCTGCATTTGGCAGATGGTTTTTTTCTATAATACAGC 0.9890000000000001
+AAACACGCTCCAATAATGAACATGGCGTTGCACATGCGATTCACGAGCTTGTTTTGGCTAAATAATAAAAAATCCAGCCTTCTAAAGGCTGGATTTTTTCGTTTTATTTGA 0.998
+TTCGTGCCGGCGAGTTTAAAGTAAAATCAGACATGAGTTTCAAAAAGATCGTAAAAACGTTAACACGATAAAAAAACAGGCTGACTCAGCCTGTTTTTTTCATCCAAACTT 0.996
+GTGAGATTTCTAAATGGGCGACTGAATGGATTGACCCTTCCTTTCTTGACTAATTGCTAAAATGGTTCTGATCTCAAAGACGAGAAAAGAACCGTTTTTTATTTTCCAGGT 0.9570000000000001
+GGTGGATTTAAGGAATCGACAGATCGAAATACGACGTATATCGATCATTCCCCTTACAAACTTAGTGATCAGAAGAAAGCCCTTAGCTAGGGCTTTTTCTTGCTTTACGGA 0.7140000000000001
+AGGAAGTGGAGTAAAAATTACGGATGGCAGAGTATCGCCATCCGAATTCACTTAATCGTTCTGTGCCGTCTGCCCCGCCGCCGCCATTTGGGCGGCTTTTTGTTTTTTATA 0.961
+TCCTGAAAAGTATGTTCAATAACTATTGCAAGACGTTCAAAGACGTACCGCCAGGCAATATGTTCCGATAACAAAAAACCTGCTCCGGCAGGTTTTTTTGTGTCCTGATGA 0.45899999999999996
+ACTGCAAAAAGAATTGCTGCTGCTTTAGATTGTAATGTCGAAGACCTCTATGAATTCAAGGTTGAAAGGCATTGAAACGACTAAGACTTTGGTCTTGGTCTCCTCCTTAGT 0.861
+CCAATATGAACAACTCTTACTGGAAACAGCGCTATCTCGGTGCAAAACGATATTTCTAAAAACAGAAACTGTGCGGCCTTAACGGCTGTACAGTTTTTTATTAGAGCCTAA 0.973
+AAATTGATCAAGGGGCATTTCATGATCAATCCAGAGTGATTGAAGCTGAAGAAGCGTAACATATGAAAACGTGTAATCCAAGAGGATTACACGTTTTTTTAACGGCCAGGC 0.98
+TCACAAGCTGTCACAGACCAGTTCAACGACTACCAAGATACAATGTCGCAATAAAGATCGAAAGGAGGAGGAAGGGGCTGTCCCTTTTTCCTCTTTTCTCCTTTTAAGCGG 0.614
+CCCTGATTGCTTTTATCCTGATTATCATTTTTATGTGCCTGCTGAAAGGCGAAAAATCTGAATAACAAAAAAAGCGCCCGCGTATGCCGGGCGCTTTTTTAATTTCGCAAA 0.978
+AAACTGCTGAAATGTTCAGAGTTTGGTGACGCGATCATCGAAAACATGTAATGCCGTAGTTTGTTAAATTTATTAACGGGAGCGTAACGCTCCCGTTGTTTTTTGTTAGGC 0.99
+TTTTGCTATTTTGAATAAATGACACTGTGCTGTTACAGTAAAAGTGTTCGTTGAATACATCCCTTCTCGTTTGGACCGGCTGCTGACCCAGCCGGTTTTTTTATGTAAATC 0.985
+AATTCCTTTATGAAAAAACGAAACGTAAACCGATGATCATCCCAATTATTATGGAAGTATAATGACTGACTAAAGACCGGAGCTGCTCCGGTCTTTATTTTTTGTCCTTCA 0.993
+CGCTTTAGTAAGTTATCATAACTGCCACTGGTCCATCCACAAACGCCACTGAACGCAAGCTAGCTACAGACACGCTCATCACTATGACGTGTCTGTATATTAATAAGCTAA 0.903
+TGTAATGCTTTTCGGTTATGATTAATAAAGTAATTGACCCCCTTTTTATAATGAATACACTTTTTTGGCACGGATTCTCCAGTTATCCGTGTCCTTTTTTTGTCCATAAAT 0.98
+AACAGCCATACCATCCGCGACGTTATTCTGTTCCCGGCGATGCGTCCGGTAAAATAAGCATTACGTTATGCTCACAACCCCGGCAAATGTCGGGGTTTTTTTATTTAAGCT 0.993
+GCCAGCAGCCAGCTTACCATAAACCGGTCTTTAAAAAACTTGGCGAGAGTTACTTTTAAAATAAAAACAGCCGTGCCTCTTTCTGGCAACGGCTGTTTTTATTTATTCAAT 0.975
+TAACGAGATGGGGATCGTGCTGGAAGATGGCCCGCAAGGGACCACCTGGCGTCGTAAGTAATTGCGCTATTGCCGGATGCGAGTTTTCGCATCCGGTTATCGTCTGCGCCA 0.7020000000000001
+CTCTGAGGAAGCCTCCTACATCACGGGACAGCAAATTTCCGCTGACGGCGGCAGCATGAAAAGCATATAAAAACATCCCGCTTTTTAGCGGGATGTTTCTTGTAATGACCC 0.851
+CAATTGTTTACCGAAGACTATGCATTAGCACTTATCAGCCCTTCCGGCAATATGCCGTCTTAAAAAGGAAAGCCTGCCCCATAATGGAGCAGGCATTTTTTAATCCCTTTC 0.9620000000000001
+GATCAGTTGGCTGAAACTGCTCAATACCACGGTATCAACTCTTTCTACAACTTAAACAAGTAATAAAAAGACCGCCGGGATTTTCTCTCGGCGGCTTTTTTATGCTTTCAG 0.9990000000000001
+AGCAGTATGCCATTTTTGTAATGAAAAGTACTTATTTACAAAAGAAGAGCTGGAAGGGCTTCGTGACCAAACTACCCGCTAAGCTCTTTAGCGGGTTTTTAATTTGAGAAA 0.7659999999999999
+CTGTTTGAACTACTTCGTTTTGTGATGATTTTCTTAAACGGTCGTGATGAGAATTAACGTTAAGGAGGTGGCCCCTTACCATTTATGGTAAGGGCTTTTTTTGCTTATTTT 0.9640000000000001
+TTTTGCGGCGAAAAAATAATCATTTGCCGCCTGCTGCAATGAGGCGTATAGGCCGCATATCAGCTTAAAAAATGAACCATCGCCAACGGCGGTGGTTTTTTTGTGATCAAT 0.997
+TTGTGCTACATCGCCATGCATATTCAGCGGTTCTACCAACGGTCAGTCGCACGCTGAGACAAACAAAAAACGCTTTTGATCATCTCAAAAGCGTTTTTTTATCTGATTTAT 0.856
+TTAATAATTTCGTAAATGCCGCGTGCAAACGTGGCATCCGTGCGCCAGAATTTGTACAATGCAGCGCCCCCGGACGAGCAGCCGCTCACCGGGGCGTTTCTTTTTTCAACC 0.746
+TGAGGAGTAAGAGACCCGGCGGGGGAGAAATCCCTCGCCACCTCTGATGTGGCAGGCATCCTCAACGCACCCGCACTTAACCCGCTTCGGCGGGTTTTTGTTTTTATTTTC 0.927
+GTGTGGATGGATCAGGCCGAAAAGGCAACTGGTGATTTTTATTGATTGCTGAGTTTTGAATACATTGAAAACCGCCAGCGGAAACGCTGGCGGTTTTTTGTATCAGGAAGA 0.9259999999999999
+ATGTTTTAGATGTTCTTCAGCAAATGATCCATCATACACAGCATGATTGAAAAAGACATCCTTGCTTAACTCGCTGTTAGCGGGCAAGGATGTCTTTTTCTTTATTGTATT 0.956
+CACTTTACGATGCCAATAAAAACAAAGACCGCGATAAAGATCTTATCGCCTGTGAACGGTAAATAAGAAAAAGCAATCTGGTGTCCAGATTGCTTTTTTTATGCTTAGGCC 0.9390000000000001
+ATTATCCCACAACTGCTGGATGAACAGAGAGTACAGGCTGTTTAACTGATACGGTGAGGCGCAACATTCCAGCAGCGGTAACGACGTACCGCTGCTTTTTTTTGCCCCAAT 0.847
+AATCTGGATAACCCTGATTTTGCGAAAGATATCGAAACAACTGAAGGAAGCCCTGAATAAAAGAAAAAAAGAAAGCCCCTTTTAGCAGGGCTTTCTTTTTATTTGGCTCTT 1.0
+CAGAATATGAAGAAAAATTCTCTGCACTCGGCCAGCCGATCTATCGGGCTGAGGTTGAATGGAGAACGTAAAGACAGACTCTGACAGGAGTCTGTTTTTTTTATGGGCCGT 0.9940000000000001
+TTTGCGCCGCAAAAAAACGTCCAGCTTGAACTCGAATAGATCAAAAAATGCCATGTCAAGACATGAGGAAAGGCTGTCGGGGGTTCCCGGCGGCCATTTTTAACATGAATC 0.726
+AAAGATCTTTCTAAAGAGGAAATGGTGACAGTAGCGAAAAGCATGCAGGGACAATCATCGAAATAACCGCCAAAGGCCAAACATGATTTGGCCTTTTTTTCGTTAGACATC 0.927
+GCCTTTGAACTGAAACAAGTTCAAGCTTTTGTACAAGTGATAAAGGATATGCTGGATCAGGAAAATCCATTTTAAAGACAGCGAGGTGCTGTCTTTTTTTTATTTATCTGT 0.9940000000000001
+TCTTTTAAAGAAGATAGAGAGAGATTACGTGTGAATACTAAAAAAAAATAAAGAATAACTAATGTTTTTTAACGTCCAGTTTTAATTGCTGGGCGTTTTACTTATTGAGAT 0.987
+GATATCCTGAAGGAATCAGAAATGATGACCGCCAAACAAAAAGCCAAAGTGCTATCGTAATGGCGTACTTGAGAGCATACGAAAATCGTGTGCTCTTTTTATTTATATTCA 0.96
+AAGCGCACCCTGTTGATAACCGGCGTAACGGATTTTTTGGAAATTCGGCGTGACGGCTATGAACGGAAAAAAGCTGGCTCTTTTAGAGCCAGCTTTTTTAGTCATGATTAT 0.988
+CCTCCCATCAACGGTTTCTGTCCCTTACCCGGTTTGTGTAAAGTTTTTACATCAAGTATAAACAAATGGAGTGGCTCTAGTAAAAAGGAGCCACTCTTTTTATTTATCTTA 0.998
+ACGTTTTTGATGAGGTATTTGAAAGAACCCTGAGAAAATATGAACTGCTTACAGAACAGGTTGGTAAACAAACATGAATCCTTGAAAGAGGATTCTTTTTTTATCACTGAA 0.98
+GTTAAGAAAGACAAAGAAATCAAAGACAAAACCGTAATCAAGGTTAAGTTTAAAAATCCTGATTAAAAAGAAAGCCGTCGTTATGCAGGCTTTCTTTTTTTATGCCTTCAG 0.995
+ATTCAACTGGCAGATGAGCCCGTGTAATCTGAAGATGGCAAAAGCTATCTGATGAGTTCCAAATTATGCCCAATGAGGTAGATTCATTGGGCATAATTGCTCATCAGGCAG 0.6509999999999999
+TGGTGAATTGAACAAAATCATTATGAAGCCTTTAGAAGAGCTTTACGGCAGTGTTGAAGGCTAATAAGCAAAATCCCTTCTTGGATAAGAAGGGATTTTTTATTCACTCAG 0.99
+GGCAGGTTATAAAGCCTTCAGGCATTACAATCCCCTTCACGCCAAAGAAGCTGAAAGAGATCACGCGTAAGGGGCGCCTGAACGTCCCTTAGCTTCTTTCCATCAGCTGAA 0.355
+GCTTGACCATCTTCTCATACAATATCAAAAGCAGCGCCTTCGAGCAGTAGCGGGTGATGAATGATTGCAAAATAAAAAACCCGTATAAGGGTTTTTTATTTTATAACCATG 0.892
+GTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAAATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCC 0.9009999999999999
+CATTGATAACCGCTCACTGTTTATGATTGGCGGACTCGGACTGACATTGAAAAAAGGCAAGTTCAAGTTTTTCTAAAAACCCGCGGAAGCGGGTTTTCTTTATTAAAAAAC 0.9
+TCGGTGCTGTCGTGATGGCAATTATCCTCGGTATCGTCAAAAAACCTGTTACAGAAAAATAAGAAAAAAAGCGTCCTTGGTTCGAAAGGACGCTTTTTCTTATCCGGCCGG 0.972
+CTGTTCTGAATGATCAAAACAAAATTGAACAAATGCTGGGGAACGAACCAGCCCGTACAATTTTGTAGAAGAAAAGCCCCCTTTATCGGGGGTTTTCTTTTAAGATTTTGA 0.6940000000000001
+ACAGGACTCGTGAATGAAAAATTTAAGCCGTTTACAAAGTTTTATAAACGGCTGGTGAAAAGGAATTAAAAACTCCGGCTTATGTGCCGGAGTTTTTTTCTGCGCAAAAAT 0.993
+AAAACAGGTATCGAAGTGCCCGTTTTCTTATTTAAAGAACATGTTCAACAAAATGAAATAAATCAAGGACTGGCAGGGCGATCTTTATGACCCTGCTTTTTTTGATAGATC 0.871
+TATTCGTAGCGTTGACGTAGGCACCTGGATTGCCGGTGTTGGTTACCGCTTCTAATCACTTTGGTGATATAAAAAATCCGCCTCTCGGGGCGGATTTTTGTTTTTAAGGTT 0.98
+TTAGAGCATAAGGCTTCTTAAACATGAGCTTATTAAGTGGTCATTAAATCAAACGTCTTTTATTTATTAGTTTGCGCTGATAAATAGGAGGCGTTTTGTTTTGGGGACATT 0.958
+GCTGTTTACGGCAGTGACTTGGCCGTTTATTTCTGAATATATTACGGCGTCGTTGATTCCGCTTTAATGAAAAAACCGGCTAATCCTAGCCGGTTTTTTTATGTCACACTT 0.9940000000000001
+TTGACGGAATTACGGCAGACGGGAAAAGAGAGCCTATCTTCAGAAACGGAAATTGGGCTTTTTAAGTAAATAAAAGGAGGCTTTTCCGCCTCCTTTTTTTATTTTTCTGCT 0.975
+AGATTGACGTTTCACGGCATTTGCCACCGCTGTAACGGAAAAGAAACTGAATAGACGGTGCCGAGCGCGAACCTTTTCTCATGGGGAAAGGGTTTTTTGCTGTTTCTATGT 0.975
+GTTTTTGTTCAGCAGTATGCTGATACAGTGAAATATCTGTCCGAGAAAAAATAATTCAATGTAAATTACATAAAGCCCGTGAATATTCACGGGCTTTTTTTATTATTTAAT 1.0
+CCGCTTATCGGAAAGCACAGAAAAGCAGTGCTGCCGATCGGGACGTGTCTTCTGGGCAATAATAAAAAATCCATTTCTCATGCGAGAAATGGATTTTCTTTATTTTTGGTT 0.996
+AATGACAAAATCAGACATGGCCGACCAGATGAAGAACATAAACATGAACAATAAGCTCAGCGCCGAAAGAGGCAGATCAACAACATCTGCCTCTTTCAAGTGCCTTTATAA 0.8859999999999999
+AGCAGAAAGTGGAAAAAGAAGGGGCGGATCAGCCGTCAATTCTGCCGTAATCAAGTTCCCGTTGATGTTGAAAATCCCGGTCAGAAGATCGGGATTTTTTTTGATGTATGG 0.9440000000000001
+GGCATACGTACCGAAAAACAGTGCAGGAGTTTTTAGACAACATGAATGATTCAACAGAATAAAAAAGCGAAAGGCCTCTTCGGCTCTTTCGCTTTTTTATGTTACAGAACG 0.9670000000000001
+AAGTTCGCAAAGCAATTGATTTTCTTGTAGAAAACCGTTAATATGGTGCATAATAATAGTACTAATAAAACAGGGCGCGAATCATTCGTGCCTTGTTTTGTACAATTATGA 0.787
+TCTTATCATGCCTACATAGCACTGCCACGTATGTTTACACCGCATCCGGCATAAAAACACGCGCACTTTGCTACGGCTTCCCTATCGGGAGGCCGTTTTTTTGCCTTTCAC 0.995
+TATATGACGAGCAAGAGAGGCTGATCTGTATATCCAGATGCACGCTGGCTGTCATCAAGAAATAAAAAAACAGCCGGAACTCTGCCTGTCCGGCTGCTTATTTTTATAAAT 0.8340000000000001
+CTGGACATGGTACAAGATGAAGTCTGCGGGGAAAAGTGTACTCGATGCATTCAATCCGAACGGAGAAGAGTAAAGCGCGTTAGCCGCTTTGCTCTTTTTTTGCGGGCTGAG 0.971
+GCGAAAAAGCACCGTACAACGGTCGTAAAGAGATCAAAGGCCAGGCATAAGACTGACTTTATCTGATTTAAAAATGCCAGCCTCCGGGCTGGCATTTTTTATGGTTGAGTT 0.97
+TCGTCAACATGGTGGCGCTGGCCGTGGTAGAAGCGCAAACCCAACCGCTGTAATTTTTTTTAACTCTCACGCTTACCCTGAATATTCAGGGTAAGCAGTTTAGCTGCAATA 0.9890000000000001
+GCATACCGTCAGGCACATGAGCGTAAAGCCAGCTGAAAACCGCTGCTTAATTTACTGCCTTAATCAAGAAACCGAAGTTGTAGCAGGCTTCGGTTTTTATTTTTCCCTGCT 0.9229999999999999
+TGAACGCCGCCAACGGCGATTCGAATACAAAGCTGCCGCTGTCTGTACGAACCCCTGCCCATTGGAAATAAAAAAGGACCCGCTAACGGTCCTTTTTTACTGATCAATTCA 0.915
+TATTCTCACTAATTTTTATCAAGCTTAAGCCATGGATTGAGCAGCAGCGAAGTGCACATATCCATTAAATAAAAAAGCTCCCGTTCGGGAGCTTTTTTTAGTTACTTCTAT 0.9690000000000001
+AAGCTTAATCAGGAGCTGGAATCTCTTTTGTCCGAATGGGAAGAACTATCCACAGAAGAAGATTAAAAAAGTCAAGCACCTCTTTTTAGAGGTGCTTTTTATCCACAGAAC 0.955
+AAGTATCAGTCAAAGATATTGCGGATGCGATAGAAGATCAGGGCTATGACGTAGCCAAGTGATTCAAGGTATCGCGCCTTTAGGGAGGCGCGATATTTCTTTCATTTTTAT 0.539
+TTCCTGTGGTTTATCGAGTCTAACATCGAATAAATCCATCGCTGATGGTGCAGAACTTTAGTACCCGATAAAAGCGGCTTCCTGACAGGAGGCCGTTTTGTTTTGCAGCCC 0.992
+GCTTGGATACCCATTAAGCAAAGGTAAAGTAGCGGGGCATTACAGCTATTAATGTACATATATAATCTGGAAAGCAAGAAGTCACATTCTTGCTTTTTCTATTGGTGGAGA 0.92
+TCCTTCCCTTAACAAACTCAGCCAGTCACATGCATTAATCTTGATGTTAATGATATATAGGTGCACATAAAAAGCTACTTCATTGTGAAGTAGCTCCCTTTATTAAAGGCC 0.863
+TGGAAGTGATGCGCTACACCCAGCAGCATGAGAGCGATGAATTGATTTTGCCGCCGCTGGCGGAAGCATAAAAAAATGGCGCCGATGGGCGCCATTTTTCACTGCGGCAAG 0.927
+AGAAATTTACTTGACCATTCAGGAAGAAAATAACCGTGCAGCAGCGTTATCCAGCGATGTGATCTCCGCATTATCCTCACAAAAAAAGTGAGGATTTTTTTATTTTTGTAT 0.97
+TCCGCTACATGAAGACGCCGACTTCCGCAACGCGTTAATATAACGACTGCGGTACAGGTCAATAAAGCCACCGCATCCTCAGGGATGTCGGTGGTTTTCTTTTTCTATAAG 0.861
+CATATATGCAGGAAGAACTAAAAGCACTGGTCTGAGTTAAATTTATATCAGCATAAATGGGTCAGGACGCTTTTAATCACATATAAAAAGCGTCCTTTTTCTCACAATCAA 0.867
+GCGGATTTTTTGCCGGAATTTGGGGAAGCATTGTTGATACGGTAACCGGCTGGTTTTAATCAATTGAAAGAGCTCTGATGGATGTTAGGGCTCTTTCGCGTAATATACTGA 0.488
+CGATGACGCCGGCTAACTATATTGGTCGAGCTATCACGATGGTTGATGAGCTGAAATAAACCTCGTATCAGTGCCGGATGGCGATGCTGTCCGGCCTGCTTATTAAGATTA 0.9309999999999999
+GTATTTACAAAAACGCTAAAAGAGCATAATAAAGCAAAAGAAAAATACATTTCCTCAAAAAATGAGAAATAAAAGGAGAGCAAAAAGCTCTCCTTTTGTTCGCTTTCCGCA 0.9670000000000001
+TTGGTCCGTACCAGAATGTGCCGTCAAAACCGGTAGTTATCCTTTCCGCTAAAGTCCTGCCGTAATGATTTCTCGCGCGGGCAATCTTGCCCGCGCTTCTGCTCTCCCGGC 0.669
+GGGCATTTGTCGGCGGAAATCCGATGAGGATCATCTATACGAAGGAAGAAATGCAAGAAAGATTGAAAAAGTCCGCTGAATAACATCAGCGGACTTTTTTTGTTAAAATTG 0.9890000000000001
+TCCTTTTCTTATCGAATAATAGAAAGTCCAGGAATTAACTGAATCAGTAAAATAGAGCTCCATTTCTGTGTTATTCGTCCGGCATCAGCTGGGCTTTTTTTATAAAGGAGG 0.392
+AATCATGACTGTGAGCATTTGAAGCATGTGCTTGAAGAAGGTAAAGAGAATTGATTTGTATGATCCGGTACCAAGGGAGAGCAGAACCCTTGGTATTTTTTTATGTATTCA 0.915
+ATTCACCTGAGCTCATTGAATCCCATTAAGTACCACTGCCATATCGCTTTATATATCACCTTCGCTTAGCTAATATGTTCTAAGTAGGAGGTGATATTTTGTTTGTATCGC 0.9520000000000001
+AACCAGTATATTCAACAGGGGGCTATTATGCGAATTGAAGTCACCATAGCGAAAACTTCTCCATTGCCAGCTGGGGCTATTGACGCCCTGGCTGGCGAACTTTCCCGCCGT 0.631
+TTTAGAAGACACGGAACCTGATGAAGATGGTTTTCTTACGCTGATTCTTCGCAACTGATCTCATCGAAACACAAAAGGAGGGCAAAAAGCCCTCCCGTTTTCATCTTCATT 0.657
+AGCAGCAGTCGATCGCAATGTACCAAAGCGTGAAGTGTACGATGCTTACCATATTAAGCAATAAAAAAACGTTCTTGTGTCATAACAAGAACGTTTTTTGTACAAGAAATG 0.892
+TGCTGTTTTGGTTTACCTTTGTTATCGGTATTCTGTTCATATTTATCAAGCTTTATAATAGCATAATGGCTAGCTTACCTGTGTAAGCTAGCCATTTCAGCGTTTGGTGGT 0.6970000000000001
+AAAAAATGGCGAAGAAGCTTGGTGTTGAGCTGAGTGAAGCTGTGTATGCAGGCGGAAAACTGAAGACGAAATAAAAAGAAGGGCGAAGAGCCCTTTTTTTGTTGTAAAATA 0.97
+GCCGCAACATCGGTGAAAGACGCCAACTTCGTCGAAGAAGTTGAAGAAGAGTAGTCCTTTATATTGAGTGTATCGCCAACGCGCCTTCGGGCGCGTTTTTTGTTGACAGCG 0.898
+TTCGCAAAATGGCTGAAGCTTCGCGTTTTAGAGGCTGGATATAAGTTGATGATTTGCATAAAAATAAAAAATCTCCTATGATAAAATAGGAGATTTTTTTATTCGGAAATA 0.95
+AGATAGAATGTTATTGCTTGACAAACCTGTCCTTTTATTAGAAGTTAATACTAATAAAACTTTTTATTGATCATTCAAAAAACTTTTTTGGATGATTCTTTAATACATATT 0.01
+GTGAAGTGGATCGATATTTGATGGGGAGTTCAGTTCTTCCGTAAATAAAGGGGATTATCATATAAGAGAAACCGGTCTGGCTGCCAGCCGGTTTCTTTTTTTATTCCATTA 0.91
+ATTTAAACAACAGGGGAAAATCGATGGCCATTATGTAGGTGTCATGGCAATGGAAAAAATACTTGCAATGTAAACAGGCCTCTAAAGAGACCTGTTTTTTAATATCCAGAT 0.982
+GATACCTGGATTGAACAGCCGTGGGATATGGGCGTCGTATTCGTCCCGCCAATCTCCGGTCGCTAATCTTTTCAACGCCTGGCACTGCCGGGCGTTGTTCTTTTTAACTTC 0.649
+TTTCATGAACACACCTTTATATAAAGCATTAATTCAACATGCGAGAAGAAATTCTCATTCATTTCATGTTCCGGGACATCACAATGGAGATGTCTTTTTTGATGACGCTAA 0.402
+CCACGCCAAACGCGGTAGTCACTAAAGGGCATCGCTTTGATATCTATGCAGGTACGCCAGTGTAAAACTAAAACAGGGTAGCGATAACGCTACCCTGCTTTCTGCAAGAAT 0.635
+CGACTGCAAAACGCTGGCTGAAATTCGCGAAAAACAGATGGCTGGCTAATTACAGCCGTTCCATCACGTTTACCACAGGCGGGAAATGCTCCCGCCTTATTTTTTGTTCAA 0.892
+AATGAAAATCTGACCGGATGTAACGGTTGATAAGAAAATTATAACGGCAGTGAAAATTCGCAGCAAAAGTAATTTGTTGCGAATCTTCCTGCCGTTGTTTTATATAAACCA 0.765
+GCAAGCTGAAGAGACACAAGAAGAACTCGAATTTGAAGAATAAAAATAAAATAAGTTTCAAATGATACAAAAGGCTGAGTGAAAAACTCAGCTTTTTTGTATTTTGCAAAA 0.9990000000000001
+TACCTTGTGCGCATTGCCGGATGCGATGCTGGCGCATCTTATCCGGCCTACGGGTGCCGAACGTAGGTCGGATAAGGCGTTCACGCCGCATCCGACATTAATGGCACGTTT 0.52
+TAAACCTGGTAAAGAACTGCGCGATCGCGCCAATATTTACGGTTAAGTTTTTTACTCAAACTTGAACGAGAGAAAAGCACCTGTCGGGTGCTTTTTTCATTTCTCTAATCT 0.99
+AGAAAGAAAAGCCGTTCAAGCGTTATACCAGGAATTTTTCGCGGGCGTGCTGATCTCTTAATCGTACATAAATAGCGGGCGGCAGCGCCCGCTATTTTTTTATATCACCTT 0.7809999999999999
+TTACACACATTTGCTGTGTAAAACGAGGGGTTTTCCGCAGGCAGGAGAGCAAAATGCCACGCTCTGTTCGTTGATAAAAGGCCGCATAGCGGCCTTTTTCCTTTCTTTACA 0.983
+ATCGCACTCGATCTGGCGAAGCTTGAAAAAGCCAGACCCGCGGAACAACCCGCTCCCGTCAAGTAATATCAATCAGGCACAAGAAATTGTGCCTGATTTTTTAACAGCGAC 0.628
+GTGCTGTGAAATGGCATTTGGAAGACCGTGTCATCGTTCATGAAAATAAAACAATCGTCTTTAACTAGACTGCAAGAGGCCCGCGCAATGCGGGCTATTTTTGATGACAAA 0.976
+GTAACTTCATTGCCGGTCGATCGTCATTACGATGTGTGAAAAAACACATCCGGTCACCGGGCAACCCGAAAGGAATACGCAGACGTATTCCTTTTTTGTTGTAAGTGAGAC 0.748
+AAAACGGGCGAAGCCAATTTTTGTCCGAATTGCGGCCAGAAGCTTGTATAAGAATCATACAGTGAAAAGTCCGGAGTGATCAGCACTCGGGACTTTTTTATTTAGGAGAAT 0.975
+CGAACCGCCAAAGGCTTGATGCGCGATATGTCCTCCTGACCCATCTCACGTTACAATCCGTGGTTATGTTAAACGCCCTTCTCCGTGTGAGAGGGCCTTGATCAGCCAGGT 0.342
+TTCGTTGATTACGGCGGTACGACAGGTTATATGAAAACAAAGGATTTACACATGACAAAATAACTGAGAGGGATTCCGCATAAATGCGGAATCCCTTTTATTATGAATTGA 0.9990000000000001
+TGGGCGAAGCTCCGCCATGTGGTTGAGATCGCTAATGATGTTTGGAAATAAGCAAAGAAAAAAACACACTTGATTCCCTAGCGGAGCAAGTGTGTTTTTTATGTCATTGTG 0.995
+AGGCAAAAGCGGCGAAGGTCTGTATTTTATCGACAAAGAACTCTCTACCCTCGACACACAAAACTAATGCTCTCCGGCGGCAGGTTTACTGCCGCCGTTTCAAATCAGTGA 0.46799999999999997
+CGGCATTCAATTTGACACAAAAGCCCAAGAAGTCCAAATCGACGAAGAAATGTAAATGGCTTAACACGAAACCAAGGGGAGGGCGGCCCTTTGGTTTTTTTACACGTTACC 0.772
+ATATCCGATGGATGATCAGATGTATTTATTTATAGACTTGCCTTATTCTTATTTATATGAGCAGGACGGACTGATTTAACGGCTGAAAGGCCGTTTTTTTTATGAAATGAA 0.965
+ACACCTTCTGAACCACGTCCCACCGTGCTGGTGTTTGACTCCGGCGTCGGTGGGTTGTCGGTCTATGACGAGATCCGGCATCTCTTACCGGATCTCCATTACATTTATGCT 0.33299999999999996
+GATCAAAAAAGCGGAGAAACTCGATAAACCAAGAAGTCCAAGAGTGAAAAAAGCATATTAACAAAAAAGATCTTTCCGCGCCTGCGGAAAGATCTTTTTATTTGCGATATA 1.0
+CGTACCGTTGGCGCGGGCGTTGTAGCAAAAGTTCTGAGCTAATTGCCGATAACATTTGACGCAATGCGCACTAAAAGGGCATCATTTGATGCCCTTTTTGCACGCTTTCGT 0.907
+TGGTCGGGTTTAACGTTCATTTCCACTCTCTGGCAAGCGCCTCGATTACTGCGATGTTTAGTTAATCACTCTGCCAGATGGCGCAATGCCATCTGGTATCACTTAAAGGTA 0.9520000000000001
+GCATCAGGTTTATACTTATCCGGCACCATAAGATTAACGCCGGTTAAAACCGGCGTTAAATATTAATGACGGCGCTGCCAGATCCACAGCGCCGTTATTGCCAGCGCAAAC 0.58
+TGAGCAAAGGCCGCATTGTCTTCCGTAGTCGCTGATTGTTTTACCGCCTGATGGGCGAAGAGAAAGAACGAGTAAAAGGTCGGTTTAACCGGCCTTTTTATTTTGTGATAT 0.965
+TACGGGAATCGGATCGAAACACTGATTCACGAATTACATTCAGAGAAACCATCTGAATAAAAAAAGAGAGGATAGGCGTATATCGTCTGTCCTCTTTCTTCGTTTATAAGA 0.955
+CTGAAGCGCCGCGTGAAGGCGTAGTGGTACCCCCGGTACCGGATCAGGAACCTGAGGCCTGATAACTGATAAGGGCAGGGCCACTGGCTCTGCCCTTTTGCTATTCTCACC 0.517
+GTTTGTTCCTATATGTTTAATTGGAAGCTGCCAAACCGTTCTTTTCGCTTAGATAATTAATAGCAAAAAAACCGATTTCGAAGTGAAATCGGTTTTTTTCTGCATAATATA 1.0
+AAAATGCGGACACTTTCACTGCAAAAATCAGACCAGACAAAAGCGGCAAATGAATAAGCGGAACGGGGAAGGATTTGCGGTCAAGTCCTTCCCTTCCGCACGTATCAATTC 0.852
+CGTACAAATAAACCTGTATGCTTGACATATGACTTGATTAAAAATGAAAAAGAGCTAGTTACTGTATGAAAAAATCCCGGTTTGAAGCCGGGATTTTTTTTATTCGGCTTT 1.0
+ATTACCAATATGAACACGAGCACATATTGGAAGGATAAATACGCAGGAAGTATACGGGTGCAATAAAAGAAAAAGACTCCAATCTCTGGAGTCTTTTCTTTATGCATATTG 0.991
+CTATTTCACAGACCCGATTTCATTAGAAGGACAACTGGAGTTTATTACGGAAAGCTTGACTAAATAAACAAAAGAGCCGCCTGCCCGCGGCTCTTTTGCTTATTTATAAGG 0.9229999999999999
+CTTCCAAACCATAAAGACGTTCTTGAAACAGCAAGAAAAGTGCTTGAATTTTAATCAAACTGCATAATCGAGAGGGAAGATGAACGTTTTCCCTCTATTATATATCTGTTT 0.006
+TTCTTGATGAAGCGATTAAAAACCGCTCCGGGATGCCGGTTCGTCTGAATTAATCTTCAAAACTTAAAGCAAAAGGCGGACTCATAATCCGCCTTTTTTATTTGCCAGACC 0.941
+TATCTGGACTTGCTGAGTCTGCAAAACTATATTTAAAAACAGTTCTGCAAGCGGATGAGAAGTAAAGAAACGCGGCAGGAGCCCTCCTGCCGCTTGTTTTTCACCCTGCGT 0.875
+TATCCTCTTGATCATTGTGGGAACTGCATTTGTAGGAGGCTACTAAATAAACGTAATCTCCATGAAGGCGGCACCGCAAGACTATGTCTTGCGGTGTTTTTTTGAAAAGAA 0.9179999999999999
+AGACCTTCAAAAAAGTATGGGAAAATCCGAACGGCATCATCAACAGCTTTTTTGTGATTAACTAATAAAAACCACTCGGCATGAGCTGAGTGGCTTTTTTAATGGATGAGG 0.9179999999999999
+AACAACTGGAAAATCTGGTAAACCATTATCTGTTCGACAAATAACGGCTAACTGTGCAGTCCGTTGGCCCGGTTATCGGTAGCGATACCGGGCATTTTTTTAAGGAACGAT 0.813
+CCGGTTGATGGCTGAACACACAGCAGAAAGCGATGAAACGTATGAAGCGTGATCGCAGCATGGAAAAGGGGATCATGATTTGTATGCTCTCCTTTTCCCTTTTCATACCCT 0.42
+TTCGGGGCTCTTATTAAAGAGAAAAGCCAAGTCAAAATCCTTGTTAGACCTAACTAATTTGAAACCAAAAAGAATCCGCACTCGGGTGCGGATTCTTTTTTAAATTATCCA 0.9990000000000001
+GGTGCCTGTGCCGGATGCGGCGGGGACGCCTTATCCGGCCTACATAGTGCATAAATTCTTATAATGAAGACGGACAACCCACTAAGTTGTCCGTCTTTTTTATTTCATTTA 0.968
+AAGGGCTTATAAGATAGTGATTTGCATTCATAAAGTCCTGCAATATGCTTCTAGCCGGGCACTTCAAAAAATAGAGTCCCTCTTATGGACTCTATTTTTCTTGGACAAAAC 0.929
+ACATCCTGCACTATGCGTTTGCCGCCTGTTGTTTTTTAGCGGCCGCTGTCTCTTTATTGTTTACATAAAAAACCCAAACGGCGACGTTTGGGTTTTTTGGTCTATCCTTAT 0.956
+ACCGGGAAAAAGGACAAGCAGCTCCTGCTCGAACTGTTCCTTTTACAGCTGTTAAAAAGAAATGAAAAAAACGATCCCCATTATTGAGGATCGTTTTTATATTATGCAGAA 0.919
+CTTCCGTGCAGGTAAAGCACTGAAAGACGCGGTAAACTAAGCGTTGTCCCCAGTGGGGATGTGACGAAGTTCAAGGGCGCATCTACTGATGTGCCTTTTTTATTTGTATTC 0.9640000000000001
+GGCTACGGGTGAAGCGGCAACTATCAGCGACGGCCTGGCGCGCGTTAATCAGGCATTTTAATTCTTTTCTCAGCCGGATGAGCCATGTCATCCGGCTTTTACCCCACCGCA 0.917
+GAGCGTATTCAGAGCTGGTGCGAGCAAATCCTCAACGAAATGGCAGAGCATTACGCCTGATCTCACTGACGGCTTAGCGCATATGCTTTGCCGTCATCTTTATCTTTGCGT 0.45
+AGAAAAAGAATATCAGGGAGATCTTGTCCCGGCTTTTCTGCCTTTGAAACGTCTTTCAGATTGGAAGAATGAATTCGAACATTGAATTCATTCTTTTTTTTCTGAAAAACA 0.95
+CCGGTTACTCCAACAAAGTTCTGGACCTGATCGCTCACATCTCCAAATAAGTTGAGATGACACTGTGATCTAAAAAGAGCGACTTCGGTCGCTCTTTTTTTTACCTGATAA 0.895
+TCCAATCTCAGCAATTCGTATTGGAAACAGCGGTACTTGGGCGCAAGAAGTTATTTTTAAAAATGAGTATGACAAAAAGCCTTTTATAGGCTTTTTTGTTTATACCAGACA 0.789
+AAGGCAATGATGTTACACCAGAAAAGCTAAAAAGAGAACAAAGAAATAACAAACTTCACTAATATAAGAGGAATACGGCAATATCGTATTCCTCTTTTGCATATACTATAA 0.9309999999999999
+TCCGCATCGCCGCGGAAGCGAAGGCGCCGAAGCTGATTCATACGTTAATTACAGAATAAAAAATAAAGCACATCCCATGCTGAGCGGGGTGTGCTTTTTTAATTATAGGAT 0.995
+TGTTCTTTTGCCTCGTCCTCTTATTATTCGCGGGATCCTTTCTCGTATCTTTATGTTTCGCATCATAAAAAATCCGCTATCACAGATAGCGGATTTTTTTATTGATGATAG 0.9890000000000001
+GAAGTCGATAAAGACTGGAATTCTGTTGAAATTGACGTCAAACAGATCCGCAAAGTAAATCCGTAATTGTTACCGCTCCCGGGACGCGTTCCCGGGAATAATTTCGCAGGG 0.623
+CCGCATCCGCCATTAACGGCACGGCACAGCGTGTGGAAGGCGGCATTATCCGTTCTCTGTAGTATAAAAAAACGCATCCGTGTTTCGGATGCGTTTTTTTTATACGTCTCC 1.0
+CGCTGCTGCTGGAAGATGAAATCAAGCAATTTGAATCACAAAGAAGCTCTTGGCTTCAAGCCTGAAAAAGCGGCCGGTATTTGTCCGGCGGCTTTTTTTGCCTGGTGAAAC 0.958
+ATCGCTCGTCTGGAGAAAGCATTCCAGGAACTGAACGCGATCGACGTTCTGTAAGATATTCCTTTCTGCTTATCTCAAGGCCCGCTCTGCGGGTCTTTTTTTCGCCAAAAG 0.938
+GAAGCGCTTGAATACGGCCTGATTGACAAAATTTTGACTCACACAGAAGACAAAAAGTAATAACACAACCTGCAAGAGCTGCGTCTCTTGCAGGTTTTTTTCATTTCAAGG 0.9990000000000001
+TGGGAGCAGCCGGACAGGGAGCCGGACGAGATCGATACATTTTCCAGTCAGAAAAACAAAGAAATTCAGCATAAAGCGGGGAAGATATCTCCGCTTTTTTCTTTGAATATT 0.946
+ATATACCCACGTTGAGAACGCCGGTGGCCTGAAAGACATCGCAATGCCGAAGGTCAAAGGTTAAAAGAATTCACCATGAGCGGCGCTTATGCGCCGTTTTTTTTTCTGTCA 0.9890000000000001
+ACATTCTTGCTGAGGAACACTACGCAAAACTTGAAGCTGAAAAAGCAAAATTAAAAGAAGAAACACAAAAAGCTTGACGGGAACCCGTCAAGCTTTTTTGTGTTAGAAAAA 1.0
+TTCCTGTTTCTGAGCTAAGGAGTGTCTTAGATATTTTGCATAAAAACACACGGGGATAGAACAATAAAAAAACTCAAGCTATATAGCTTGAGTTTTTTTAATTATGGCAGA 1.0
+GGTAGCGGCTGGTCCGAAACTGTAATGATTTGAAGCTGGAGAATATCTATCCAGTATCTTATAGAAAGCAAAACGGGAGGCACCTTCGCCTCCCGTTTATTTACCCTTCTT 0.772
+AAGGACAGTTTGTCCGTGTGGTTGAGGATGAAATAACTGAACACATGCGTTTGTCTTCTTAACCTAAAAAATCGGTGCATTAAAATGTACCGATTTTTTTATTTAGCCGGG 0.9840000000000001
+AGAGGAGATGAACAGATTCAAGGAGATTATCCTTAAAAATACCGAAACAAAAAAACTCAAATTTAAAAAGGATCAGCATTGACAGTGCTGATCCTTTTATATTGAATGGTG 0.9890000000000001
+GAAACAGTTATCGGTAAAATGCGTGAATTTGGTTCTTCAAACCAAGCTTAATTCAATTGGAACTTTTTATAGCCGCCTGACAGCTTGACAGGCGGTTTTCCGTCTATCTTT 0.5529999999999999
+TTATGGCACATGCCCTGATTGTACAGCGGAAAACCAAGAAAACACTACTGCGTAAAATGCGTATATATGAAAAAGGGGCCCGGTTTGGGCTCCTTTTTCAGTTATTGACGC 0.9690000000000001
+TGCCAATCGTATATGAAGTATTGGCGAAGTTCCGCAAGAAAAAACCGGGAACGGAAGAAGAGTAAAAAACAAAAAGCCTCAGCTCTGCTGAGGCTTTCAGCTTGTTGAAAA 0.807
+TCTGACTTTCAAAAGAAGACTAACAAAGCCTTTTTCGGTCAAAGAAGGCTGATATAATCATGCGGCAAGGGCTTTTCTATTTTTAGAAAAGCTCTTTTTGTATCAGAGAAA 1.0
+AATGATACGCTTTCCTTTATACGAGAAAAACTGGTTTGATACATTTGTAGACTTTAATAAGAAACGAAAGGCCAACTGCGACTTCAGTTGGCCTTTCCTATTTATAATAAA 0.992
+CGGAACCACCTACAAAAAACTTGTAACGCTATACGACCGATTTCGATTTGAAAATTAATGGGACACCCTATAATTGATACTCCACAAAGAGTATCTTTTTTATTGAAAGGA 0.945
+AAAAAATAAAAAGAAAAACAGAGCGCTTTTTTAATAGGTCCACTGCTTTAAAAACAGCTCTGTCCGTCTTTTACCTAGCTCAATCAGGGCTAGTTTTTTTTGTTGTGTTAA 0.922
+TGATCATTAACCATACACCGTACTTGTCAGGGCTTTTACAAGAGCTGTGGACACAGTACGGGGCATAAAAAAACTTCTCTTGTCCGGAGAAGTTTTTTTCAAGTATGATGG 0.738
+TAAATAAAGGATTAAAAGAAAAAGCAAAAGAGTTTGTCGATACGGGAAGCAATTTATATCAATAAAAAAAATGAAGATGGAGAATGCTCCATCTTCATTTTTTTAGAAAAA 0.873
+GAACGCCAAATACCGCGAAACCTCACGCGGTGGTCTGGCAATCAAAGTCCAGTGTGACTAATACTTCTTACTCGCCCATCTGCAACGGATGGGCGAATTTATACCCGCTTT 0.7979999999999999
+AAGCCGATGGGGTGATTTTCCAGACTGCGGTTTAAAAAGTCAGCGCACGCGCTGCGCATAAACGACACAATGCCCGGTGAATGAGATTCCCGGGCATTTTTTTATTTCTAA 0.987
+GGCTCATTTCAGAAGCATATCAAAGCGGTTATGTCGATATGCCTGATCAGGAGTCTTCATCTCCTGCAGAATAAGCTGTCTGTACAGGCAGCTTTTTTTGTATGCCAAAGT 0.9890000000000001
+GTTTATAAAGATAAAGCTGCACAAGCTATTCATGACGGCACAGTATCTTATTACAGATAATCGAAAGAGACAAATCTAATCACAGATTTGTCTCTTTTTTATATGAAATGA 0.9990000000000001
+CATCTTTAAGCCGATCATCATGTGTAATTGATCGGGAATTTGGGTGGAACCACGGATGATCAACACATTCGTCCCTTTTAGAGGGATGGGTGTGTTTTTTTATTTGAATTG 0.852
diff --git a/data/sequence_data/choe/validation.txt b/data/sequence_data/choe/validation.txt
new file mode 100644
index 0000000..fe4914e
--- /dev/null
+++ b/data/sequence_data/choe/validation.txt
@@ -0,0 +1,424 @@
+GTTCTGCTTTATACGCATGCCCAGGCGGCTGCAAAAAAGGAGAATATATTGCCCAGCGTTTGCTGGAATCATAAAAGAAGCCTTTACAGGCTTCTTTCAGCGTGTCGACAA 0.602
+AGCCTTCTTTGCAGCTGCGATGAAAAAAGAGAATTTTCTGAGCGGCTTACAGGAACTATTGAAACATGAGTAAAGATACGGGCAGCGCCAGCTGTCTTTTTTTATGTGTTT 0.9570000000000001
+GTCTGGGGAGGATCTCAAACAGTTAAAGTCCGCTCTATATACATTACTGGAAACACTTCATCAAAAAAATTGAGGATGCCTTGTACAGGCATCCTCTTTTTATTTATTCAG 0.9840000000000001
+TTAAAAACAAAACTTTCAAATAAATGGATGATAAAAATGAAAATAAGATCACTACTGGCGAATTGCTATTTGTATTTTTTATCAGCAATCGCCTTTTTTCTGCAATGGGTG 0.48
+GTTTTCCCGGGCGAATGCCTATTTGGAGAAAATGGGAGAGGCGCCGATTGATTGGTGTATTAAGGATTTGTAAAAAGCGCAGGTGATCTGCGCTTTTTTATTTGAGTATTT 0.904
+GAAATGTGTGCTGATTCCTGGAGATGGCAGTCTTCTAATGTGAATGGGTATAAGAGTGCGGAATAAGAATGGAGGCCTTCTCAATTGAGAAGGCCTTTTTTAAAGAACAAG 0.963
+TTTACGGCGACCGTAACCTGTTCTGCTCCTGCGTACCGATTAGCGAATACCAGTAATTCACTGATTCGACTATTTTCTAAAGGCGCTTCGGCGCCTTTTTAGTCAGATGAC 0.782
+TGCCCGTGCGGTTCTGGTAAAAAATACAAGCAGTGCCATGGCCGCCTGCAATAAAAGCTAACTGTTGAAGTAAAAGGCGCAGGATTCTGCGCCTTTTTTATAGGTTTAAGA 0.805
+GCCGATGGCTGTAGTGGCAAAGCTGCAGGAAGCCTTTGAAGAATATTGTGAAGAAGTATAAGACGAACAACCCGGATGCTCAAAGCAGCCCGGGTTTTTTTGTGCATAAAT 0.997
+TTGTATCAATAAATGTACGGTTGGTGAAAAGTTGAAACAATACGGAGATGTCTTAACCAATCACTAAAAATAAAAACCGCAGAAGCTGCGGTTTTTATTCTTTGAATTCAT 0.872
+AGGTTCAGACGACACCGTTGCTGTGGGTATCGTTTACCAGTTCTAATAGCACACCTCTTTGTTAAATGCCGAAAAAACAGGACTTTGGTCCTGTTTTTTTTATACCTTCCA 0.971
+AAATTCAATATATTGCAATCTCCGTGTAGGCCTGATAAGCGTAGCGCATCAGGCAATTTTTCGTTTATGATCATCAAGGCTTCCTTCGGGAAGCCTTTCTACGTTATCGCG 0.985
+CATTTCAACGACGCGGTCGATATTCTGATCCCCGATTATCAGCGTTATCTCGCGGACCGTCTGAAGTAATATTGCACAGGTGGCAAACGCCACCTGTTTCTTACGGTTTTC 0.649
+CGGCGTACTCGATAAAGCAGCACCTGTGATTCGCCCTAACAAAAAGTGATATCCAGGCCGGTAGATTCACGGAAGACCGTTCCATGATCGCCGGCCTTTTCTTTTTTACCT 0.5710000000000001
+TTACTTACTTTACAATGTTAAGCCGGAAGGAAGAAACATCAGAAGAACAGCCGGCTTCATAAAGAAAAAGAACTTGTTTCCTTGGAAACAAGTTCTTTTTTTGTTACATCC 0.9990000000000001
+AACGGAGACAAAATTCTATATTTCAGAATAAAAGCCTCTCATTGCAAGAGGCCAAATACGAAGAAAGAAGCCCAAAACTGTAAACGTTTAGGGCTTTTTTGTCTGTTTTAA 0.992
+TGCGTTTGATTCAAGCCAACCCGGCATTAAGTAAGCAGTTGATGGAATAGACTTTTATCCACTTTATTGCTGTTTACGGTCCTGATGACAGGACCGTTTTCCAACCGATTA 0.94
+TACGAAAAGGGAAAACTGTATATCCCAGAAGACGCATTTGATACAGCAATCTACACTTGTTCATAAGAAAAAGCTTGCAGATAACCTGCAAGCTTTTCACGTTACAAAAAA 0.982
+TACCGCGAAACATCACGCGGAGGACTGGCCATTAAAGTGGTCTGCGGCTGACATTGCTGTCAGCTTTCATCCTTGGGTGCACAAATGTGCACCTTTTTTTTGTGATCTGCC 1.0
+ATCTTAGATGAAAAAGGTGTTATCCAAGACATACATGTTGGCACCATGACAAAAAAAGAAATGGAACAAAAACTGGATCTTGATTAGATTCAGTTTTTTTTATACTCAAAT 1.0
+GCGCCTTTTTGTTTTCACCTGCAAACGGGGTCATAACTAAAAAGCTGAGAACACTCAACATGCAAAAAGAAAGAGCTGGCTGATGCAGCTCTTTCTTTTAATTATAAATCA 0.9470000000000001
+CGGTAGGCTGGATAAGGCGTTTACGCCACATCCGGCAATACAACTGCCGCAATGTTTACATCGAACTCCCCTCAGGCCACACTTTTCAGGTGGCCTTTTTTAATAATGCCA 0.941
+AAAAATTATGGAAGAAGCAAGAAAGCAAATGGGGATTGTATACCCTGCTGATCAAGCTTAAAAAAATCCGCCCGCGTGCAAATGCCGCGGCGGATTTTTTATTAGACAATC 0.961
+CTTCTCAAGCTATGCTTGCTCAAGCAAACCAACAGCCGCAAAACGTACTTCAATTATTACGTTAATTTTAAAAAAGACCTTGGCGTTGCCAGGGTCTTTTAATTTAAATTT 0.993
+CGATTGGTTTGGCCATGAAGTCGGGCATGTGGAATGTATCTCACTGCAAGAACCGATTAAAAGATAGTTTTCCCCGCAACGGTATGTTGCGGGTTTTTTTCTGTTTTGCCG 0.998
+ACTCAGAGCAAACGGCAAACACAGCCAGCAAAATCATCCGTGAAATGCTGCTTGGGTTTGTGAAATAAGTAAACATCCAGACGATGTCTGGATGTTTTTTTATTCCCAGTC 0.993
+TATGGTGTCTCTTTAGAAGACGTCATGAAGGCCCACCAAGAAAAACTGACAAAACGATTTGAGCATGCATAAAAAAGCGGCCGCGATGGCCGCTTTTTTTAACCTGTGATT 0.948
+GCGTATCAACAAAGCGCTGGATTTTATTGCTGAACGCGAAAATCAGCAGTAATTAGCGTGTAAAAAGATAAACGGCAGGAGATAATATCCTGCCGTTTTTTATTTATGCTG 0.9209999999999999
+GTATGACATCAGCGGCAAGCCGCCAGCTACCATTGAGTGGGAATGATTTGACCCTGCACTATGAATGAACAAAACCCTCTGTTACTACAGAGGGTTTTTTATCTTCAAGAA 0.9790000000000001
+GAAGCCGTAAAAGGTGACGTGCTGGAGATGAATATCCGTATTCTGCAGCCAGGGATTTAATCCTGCCTTGTTTGCCCGGCCATCCTGACCGGGCAATGTTCTTTCCTTTAA 0.895
+ATTGAATAAGAAGTAACCCGCCTTGTAAGAGGGAGGGTTACACAGGTAATCCGAAAAAAGCTATTTAAACAAGTTCTCTTTTTTTAGAACTTGTTTTTGTTTTTTTCCTTT 0.976
+ATATCCAATCGCATTGGAGCGATATGAGGCCAAACAGCCTAAAGACTGTTGAAAATGTGTAATCTTATCAAAAAGAGACTGCTTGCCGCAGTCTCTTTTTCTATCTTACGC 0.996
+ACAGAATGAGACTTCAGCTTCAATCTTTGCAAAATAATATGATCCTGCAGCACCCTCTTGATGTGTAGGAAAACGGACCCTTTTAAAAGGGTCCGTTTTTTTGTAAAAAAA 1.0
+ACTTCGAGAGGCACTTGAATCCTATATTGATACCTTTTTCCCTAACGCAAAAATTGAATATTTCACTTAAACGGGCTGTTGTGATCAACAGCTCGCTTTTTTATAAAAAAC 1.0
+GTCGTCGTCGTTTCGGTGGTGATGCGTAATCATCGCTGAACAGCGAACACAATCTGTAAAATAATATATACAGCCCCGATTTTTACCATCGGGGCTTTTTTTCTGTCTTTT 1.0
+CCCGCACAGCTTCATCTTTTAGAGATTAAAAAAACCGTGATTAACGGCCAGATTGTATATGAGAAATCATAAAAGGACAGGCAGCAGCCTGTCCTTTTATTTTCTATAAAA 0.9940000000000001
+CGGCGATCTACCTTTTGATTACAGTTGCATATTTGGTCAAAGGACGCAAGCATCAGTAAATAAGAAACCCTCTTGCCGCATCCGGCAAGAGGGTTTTTATTATTGTGCAGC 0.997
+GCGTTAAAAGATATTTTGCAAAATCGCATTCAAGGAAGAGTGATTGTGAAGCTTTAACAGGATCAGCTTGCAGAGAATGTTATTTTTCTGCAAGCTTTTTTGTGGACAGGA 0.7170000000000001
+GAGGGGAAAGGCGATTAATACCATGACACGGGCCGTGAAACCGCGCAGGTTTGCAATCAGGCCCATCATCTACGCCAGCGTTCTTAGCGCTGGCGTATTGTTGTGCGCCTT 0.485
+ATTACCAGCTTTAGCCACCCGGAAATCGGTACGGTGGTGGTAAGCGAATCCTGATTGACTTTCGCCGGATGCGACGTTTGATGCGTCTTATCCGGCTTTCACTTAACTAAG 0.759
+GACCATGGAACGCGTGAAAGGCATTCTTGAGCAGTACGGTCATAAGGTAATGTTCTAATTTCCCCGTAAAGCGGCAACTTTATTGAGTTGCCGCTTTTTTATTCCGCGCTT 0.9640000000000001
+GTCTCACGCTTGTCATTGCAGGCGTGGTCGTGCTAAATCAATCGAAAGCCCACGCTGAAGATAAAAAACAGACGGCCTGTGAGTGACCGTCTGTTTTCTTTATTCTCCACC 0.91
+AAAGAATGGATGAAACAAAAGCGGCGAGACACCCAGTGCTCAGATACGAGGCGGAAGAAAGATAAATAAAAACAGCTGTCTACCAGACAGCTGTTTGCTTTATTTCTTCGC 0.769
+CCAAGAAAAGTTCGCTCTTTCCAATTAAGAGAAGCACAGCGTTTGGCAAACTAATAGATCGTATCATCAAAAGAAGGCTGAGTCATCAGCCTTCTTTTATTTTTCAACCTG 0.995
+CGGAAGAAGAGATCATGCGCGTTGTAGAAGAAGCACATAAGACGTTAAAAGAAAAAAAAGCAGATGTACCGGAATAATAGGGCGCTATTATTCCTTTTTTCTGCATTCATG 0.909
+TCATGCACTGTTAAACCTATGCTGGTAGGATGTAGTAGAACCCCTTCATCCAAGGAGCCAATTTTGACGGCGGGAACCTATTTGTGTTCCCGTCCTTTTTTGTGTCTTCTC 0.995
+AGCGTCAAACGACATTTCATGATATGATAGAAGTGGCTTTACATTCCGTATCACAATAAAATATATCAAGAGGCGTGCTGGGTGCCGGCAGCCTCTTCTTTATGCATGCGG 0.7859999999999999
+GCGGTTTGTACATATAGTGTATTAATTGGTTTTGTATTAAAAGGAATCTCTAATAAATCTGTTTGATGAATCTGGAACTTGTAAAAGTTGCAGATTTTCTTTTATAGAAGC 0.39299999999999996
+ATCTGATCGGAAGAAAGGAAATTGAAGCGAATTATCACTATCCGAAGGAAAGAGTGATTATCGGATAGGCAAAACACCGCATATTTTGCGGTGTTTTTTGATTACCAAAAA 0.953
+TACCTTCGACTTCACCAACTCAGGTGAATCCGTCTTCGGCAGTTCCAGCTCCTACGCAATATTAAGCGACGTTAACCCTCTCCGCCCGGAGAGGGTTAGTAGTTCCAGCGA 0.8240000000000001
+TTCCCGCCCGCGCTGACGAGCCTGCTCTTACAAACGAGATACATGAACTGATGCTTTTTCATATTTATGACTAGCTTAGCCTAAACGGCTAAGCTTTTTTTATTTCTCAAG 0.9990000000000001
+TTAGCTATGATAGATAAGGATTAACCGCAGTTCAGGCTGCACCCATACGAATGTACCCACATGCAAAAAAACATCTGCCTAAACGGCAGATGTTTTTTAGGCTCGGAGCGC 0.9520000000000001
+TTCGAGACGAATACGGAAGATAAGCGTCAGGGGTAAGGGTTGGTGTTCGTCGCAGCAAGCCATCCAGGCCGGATAAGGCGTTCACGCCGCATCCGGCAATCGTGCACAATG 0.366
+CAGTGTAGACGGGGCGAATGCCATTTTGGACGAGCTTCAAAAAGAGATGCCGGCTGCTAAGAAATAAAAGAAAAGACAGGCAAACGCCTGTCTTTTTCTTATTTGATAAAG 0.987
+GTACTGGTTTACTAAGAGAATTGCATGAGCAGTAACTTCAGACATCAACTATTGAGTCTGTCGTTACTGGTTGGTATAGCGGCCCCCTGGGCCGCTTTTGCTCAGGCACCA 0.508
+AACAAACCGAAAGCCATGCGGTGAAAATCGTGGTGGAAGCGGCGCGTCGTCTGCTGTAATTCTCTTCTCCTGTCTGAAGGCCGACGCGTTCGGCCTTTTGTATTTTTGCGT 0.784
+ACAGAATGCGTTCGTTTGAAATCATCGCTGACGTTTGGAAAAACAGATAACAGCTATAAAAAAAGCAATGTAGCGGGGAGACCCATACATTGCTTTTTTTATTCATTCAGT 0.9690000000000001
+CTCTGTCGCCCTGGCGTTTAATAATTTACCGCGACCACACCGCGTTATGTTGGGGTCGCTCACCGTTCTTACTCTGGCCGTCGCTGTCTGGCGGCCTTATGTTTATCACCG 0.49700000000000005
+TTAAAGCAATTGAATAGCCTAAATCTCGATACTGAAAACTTTGAAATCAAGGGATTTAATGGTTATTAAGCAGATCCAAGCCCCCATATGGGGGCGTTCTTATTATTGTAC 0.865
+GATCAGATTTGAAGTGAGTGCTGCCAGAGGGTGAAATGAAAGAAATAATTGACGACTTACGATTGAAAAAGAGGTTAAAATGAATAACCTCTTTTTCTTATATAAAGATAT 0.895
+GGATACATTATTCCGGGCCTCGGCGATGCCGGTGACAAAATCTTTGGTACGAAATAAAGAATAAAAATAATTAAAGCCGACTTTAAGAGTCGGCTTTTTTTTGAGTAAAGC 0.743
+TGCAGGCGCTCTATCTGCGCGAGCAGGGCTTTAACAATGTGAAGGTATATCGCCCGTAATTTGTGGTTTTTACGTCGCATCTGGTCAGATGCGACGTTTGCCGCATCCGAC 0.569
+TGGAAATGGCTTTCCTCAGCGCTGAGGAAAAACGCGCACTGCGAGAAAAAGTCGCCGCGAAGTAACAAAATGGATGGTGCAAATGCACCATCCATTTTTCATGCAAGGCAC 0.8009999999999999
+CATCTTAAACCGGCGCCCATGTGGCTGCATAATACAGTTCCCCCAATGTCGAAATGTTAGGTTCTCTTCTGGGCTGAGGAATATATCCTCAGCCCGTATTTGATCAGATGT 0.841
+ACCGCGCCGAAACTTCATAGAAGCGAATGCGAGATACGTTAAAAATCTTGACATCTAATCATAAAAAGCCTTATTTCCAATAAGAAATAAGGCTTTTTTCTGAACAAGATC 0.927
+TGACCTCTACGGCTCAACTGATGCCGCTAAAGTTGAAGCAGCCTGGAATGCTGTTGGATTGTAATATTAGGAAAAGCCTGAGATCCCTCAGGCTTTTATTGTTACATATCT 0.865
+CTGAATACGGAAAACGCGTGGCAGAAGGCCTTGGATTGCCGATTAAAAAAGATTCTTAATGGAGAAATGCAAAAACCCGTTGTAGTCAGCGGGTTTTTTTATATTTAGTTA 0.995
+CAATTCGACAGATGCGGAACGTCAACAGTTGCATCAATTTCAAAATCAGCTGGACAAACTGCAATAAAAAAAGGCTATGGCGACTCGCCATAGCCTCTTATTTGACTTCAA 0.958
+CATTCCAGGCGAGATTTCCTTCCGCGCGGTCTAACGCCTATTAACCATTCTGGTTATTCTTCATACACCGCAGAGATGTTACATTGATGCGGTGTATTAGTTTTTGCCGCA 0.9420000000000001
+AACGGCAAAGAAATGACGAAAAAAATTAAACTGGATCAAAAAGAAGAGAAAACTTCGTAAGACATAATGCCTCAGGCCGTAAAAGCGGTCTGAGGCTTTTTATTAGATAAA 0.986
+AAATCCATTGACACATAAAGTTATTAGTATTATTATTTATTTAATTAAATTAAACAGAGAAAAGGAAGACGTTTGGCTCTTTTGAGCTAAGCGTCTTTTGTAGTTTTAAGG 0.995
+AACGCGGATTTGAGCAAGCCTCTCCCTCCACAGTAACTCTCGCTAAGTAAGTTTGATGGCCCCTCGAATAGTTCAATTTTTTTGAACAGAGGGGTCAATTTTCACCCTCTA 0.509
+TCTTATCTATGAGCACGACAGAAGAAGTTGTCGCGTTCGTAAAAGAAACATTCAAGTAATGTACAAAAACCAGACGGCCTCCGGCCTGTCTGGTTTTTTTCATAAGTAAGG 0.993
+GTGGCCGGATGCGGCGTGAACGCCTTTTCCGGTCTACGCATTAGACAGTTCTTCGTTTGTCATCAGCCTCAGAGCATTCAGGTAACTGAATGCTCTTTTTTATGCATTACA 0.995
+TGATGAAATGATGGATAAGGTTGATGAAGCCTTACAAATCAGTTTGGCACTCATTGATTTTTAGACATATTTGCAGGTTGCTCAAATAGAGCAACTTTTTTTGTTTTCAAA 0.9940000000000001
+AGTTCAGGGAGTTTGGACGTTTATCAAAAAAGAAGCTCAGCGCAAAAAAAGAAGCCGATAACATGAAAAGCAGTTTTCCCTAGGGAAAACTGCTTTTTTTATAGAAACAAT 1.0
+CCAGCGTGTCGATGATCTTAGCTGCGATTATGACGCTTTGCGCGGCGCCGTTTTTGCTTTCATTTATGTAAAAAACTGTCCTCTCGAGGGCAGTTTTTTTTATGTGCTTCC 0.988
+AAGAGGGTTGGACACATGGCGGTGAAAGACCGGTACATGTCAAAAATAAAACAGGAAACCAAGCCTTGGATCAAACGATTCGGGAGGCTTGGTTATTTTGCATTCGGCGGC 0.784
+CGCCCGTTGTGGATTCGAATAAAAGAATCCGTCTCGCGGCTGTTGTCGCCGATCTTATAAGATGCGTAAACCCCCGGCCTTTACGGCCGGGGGTTTTCCTGATGGTCACAG 0.953
+CCAGGCGATAAGCTGACGTTGTTTGTGAAAAACAACAACATGCCAGATTCCTGACAAACCAGATAATAAAAAGGCACCGATTCCCCCGGTGCCTTTTTTATTTATGCCGCT 0.988
+AAAAAACGTTGATTCAAAATTCGACGGATTAACGATATTTGTCTGATTAATAATCAGATCGGATTAATGTTGGTGTGTTTATAACACCAACATTAATTTTCCTGGGGATAT 0.884
+TCCCCAAAACAGACTCAGAACCGAAGAGCATCACAATAGACATTTAGAATAGATATGTTCTGCATGAAAAAAGCTGCCGTTTTGAACGGCAGCTTTTCTCTTCGTGCTTTC 0.9440000000000001
+GATCAAAGAGGAAATTGCTGGTTTATAATTTAGGATCCTGATATCATTGGTTCAATATCTAATTAAAGTACTTCTTATTGAAATAAGAAGTACTTTTTGATGCTTACATTG 0.903
+ATTTCAGTTCTTCCTGTTTTGGTCAGCAGGGCGCTGCGTTTTGCGCTTCACCCTGACGGACCGCATCTATCAATGGGCTGAGACATACTCAGCCTTGCCTTTAAAAAAATA 0.562
+GCTTCAAACCAAAAGAAGCGCTTCAAGAGCTTGTAAACAAACATCTTTAATTTTCCGCTGCTTACATGCCAGAGCGATTCCGATTGAGGGATCGCTTTTTTTATTCGCCAA 0.9940000000000001
+CAATTCCGGTGCGCGTATTGTCTGCGGAGCCCTTTTGGGAAATAACGAGAAGCAGTAATATCATCCAGGCCCTTTTGTATTGAGCATACAGGGGCTTTTTTAGTATACTCG 0.875
+AATTGGAATTCGAGTCAAAGCTTGATAAGGCAAAAGAATACGATTATAAAATCGGCATATAGCTATAAAAAAATCCCCGCAGGCATCTGCGGGGTCCTTCTATTCCTTAAT 0.723
+AGGATCAATGGTATCGGCAGGCGAAAAGGCTGCTCGTAAAGGCGAATCAAAGCTCTTTACAATAAAAGCGAAATAAGCAGGGCGTATGCCTTGCTTTTTTTATTCAACTGT 0.9690000000000001
+AAGCCAAAGCGTTGCGGAAACTAAGACATCCTAGCAGAAGTAAACGTTTGAAAGATTTCCTTGAATAAGATGGAACGGGTCTTGAAGATCCGTTCTTCTTTTTTTAAAAAG 0.985
+TTAAATGTGGTGATGGATCGCTGCCCGGCTATTGAGATCCCTCGCCTGGGCCTGGCCAAATAAAAAATCCCCGGAAGGCAAAAACCTTCCGGGGATTTGTTCAGGGATTAG 0.728
+CCAGCTGGAAAAGAACGCGATGAAAAAATTGCGTGCTGCCATTGAAGCGTAATTTCCGCTATTAAGCAGAGAACCCTGGATGAGAGTCCGGGGTTTTTGTTTTTTGGGCCT 0.985
+TTTGTTGAATTTTTGACTGAGGAAGACAGACGCAAAAAAATGTATTAAAGAAGATCTGCACCCGGATTGTTGAGATTTTCCAGACGATCCGGGTGTGTTTTTTTGCATGCA 0.9390000000000001
+GATATGTTCCGCACGCAAGTACATCCTTGGGAACGCGAACAGTATATGTCTCAGTATTAATATCTCAATCCCTTGGCACTAAAAGTGTCAGGGGATTTTTTATGTTAATAG 0.996
+ACATTCGTCGGGCTGAGCTTGCGTTACAGCGGGCTTTGAACAGATTGGATGTAGCAGGGAAATAAGAAAAAATCCTTCTCTTTATGAGAAGGATTTTTTTATGAACGCACA 0.982
+GCAACCCCGGGTGCTGCTAATGCGGATGCGACCTTCAAGGTTCAGTATCAATAACCTACCCAGGTTCAGGGACGTCATTACGGGCAGGGATGCCCACCCTTGTGCGATAAA 0.8809999999999999
+GTGACATTTAAGGGCAGGGCGGAAAATCTCAAGCAGGTTCAGGCTGTTCAGCAGTTTGAAGTCAAATAAGAGGCTATGGCGAGTCGCCATAGCCTTTTTTTATTGCAGTTT 0.993
+GGGTGAAGAAAGAAAGGGAAAAGGACGGGCAGGAGGAGCCGCCGTATATTCAGCAGACGATATCATAAAAGGTACAGCGAAATATGCTGTACCTTTTCGTTACATTTGAAC 0.915
+GCAGGAAAACCTTGCTGCGACTACTAGTATGGAAAACGTGCAGCTTGATGGTGTAAACAATGCAGCACAACAAATGGGGCCCACGGGAGCCCCATTTTTTAAAGCAGGTGA 0.685
+CCCAAACAAATACATTTTTCGGATTCCTGCTCTCGATCGGATTATTGATCAGCTATTTCCGATAATAAAAAAGACCGCTCGTTTCATGCGGTCTTTTTTTGTTACAATCGA 0.821
+ATCGTCTAACTAAAAAGAACATTTCCCAGTCATAAAATAGTTTTCCTAATAAGACCTGGATTTCGGTAAAATAAACAATTCCGATTTCCGGGTCTTTTTCGTGCGCAGCTC 0.995
+ATTGCCAAAAGAGCTATCCACGCCTACGCAGAGCTCGAAAAAAAACACAGTAAAAAATAAAAAACAGGGTGCACAACTAAAAGATTGTGTGCCCTTTCTTTTATTCAAAAA 0.965
+AGAGCTTGAGGCTGCGATGGACCGCTGGACAGAATTGTCCCTCATGATCGAAGAACTGGAAAGCTAAAAAGCGTGGCCGCAGCAGGCCGCGCTTTTTTTCACATAATGGAC 0.885
+AATCCGCAGCATGGAAAAACCGTCCGATCACGCCCCCGTCTGGGCGACCTTCCGCCGCTAATTTAGCAGCTCTCCTGGCTCAAACTGGGTCAGGAGAATTAACCTTGAGAA 0.7759999999999999
+GCCCGTTCCACCTTTATCAGCAGTGTAAAAGGCAAGGGGTAATTACGCCCCACAGTGCTGATTTTGCAACAACTGGTGCGTCTCCTGGCGCACCTTTTTTTATGCTTCCTT 0.9990000000000001
+AAAATTTATTTCTGAAACAACCGCAAAATAACGTATTGTGAATTGTCAAATGGAAGGATATACTTTTATTATCAAAAGCTGACCCGGCGTCAGCTTTTTTATATGGACATA 0.955
+CAAAGTAACTGACTGGAATACCATTAAAAAACCTGATGATCCGTATGTTTACAGAGGATTTTAAGTGAAGACGAAACCAGTACAAGTACTGGTTTCTTTTTTATTTCTTTT 0.9590000000000001
+ACTCCTTCGGCTTCGGTGGCACTAATGGTTCTTTGATCTTTAAAAAGATCTAAGTTGTCATTTTCCACCCTTATAAAAGGTCCGCTTGCGGGCCTTTTTTCTTAGCTTTTA 0.9740000000000001
+GGCGAAAAAACCTCACCGTACGATGCGCCCGGCCCGTAAAAATTAAAGTGTTAGAACCTCCTTTCAAATCATACATATGAGATGAAAGGGGGTTCTTTTTGTATGGGGCAA 0.986
+TATCAACGACCCGTCGATGGATTAAAGCTAATTGAAAGCGGCGACTGGTTAGACAGGGATAAGTAACCATATGCATACGCCACCTTCGGGTGGCGTTGTTTTTTGCGAGAC 0.8029999999999999
+AAGCCGCCATTTACTCGGTCAGATATGGTGTATCTGTCTTTTGACATATGACGTTTTGCATATACGCTTCTCTGAAAAGGCCTTTTACAGGCCTTTTTTTCATGCCCTATG 1.0
+GTCGCGAGACTCCCGAAGGATGCGTTAGTCGAGATCGAAGTTATTGCACTGGTGAAATAATAAGAAAAGTGATTCTGGGAGAGCCGGGATCACTTTTTTATTTACCTTATG 0.9740000000000001
+AAACAAAGTGTTTAACGGCGGAGCTGTTAAAGGCTGGTAATTTTTAGGCTGTTTCCACAATTTGTAATATCATTCAGGACGGGCGCTTGCCCGTCTTGTCATTTTTACAAG 0.6579999999999999
+TTGACCTTCCATGGGAGCGCACAGACAAAGCGGAGCAGCTGCGTAAAGAAGCGTTAGGAGAATAATTTTATAGCCGCTTACTGGTTAAGCGGCTTTCCCTTTTTTATCGTT 0.838
+CGAGCTTTCCACACAGGAGCTCGAAGAATTGTTTACATTAAGCGCTACAGCGCAATAATCATGACTAAAAAAGCTGGCTCTAAAAGAGCCAGCTTTTTTCCGTTCATAGCC 1.0
+AGAAGCTGAGAAAATCACCACCGTTCAGGCTGCCATTGATTACATCAACGGCCACCAGGCGTAAGTGAACATCTCCAGGCGGTCGTTCGACCGCCTGAGTTTTATCTTTTT 0.807
+TCGCGGCGGAAAAGAAAAATCTGTTGATATCAAGCTGTCCTCCGCAGACCAATTAGGCAGTTAATAAAAGCAGTCTGGCATCGTTGCCAGGCTGTTTTGATATGCAAAAAA 0.983
+AAGATCAGAACCTGATCTCCGCACACGGTAAAACCATCGTCGTTTACGGCACTCGTTAATCCCGTCGGAGTGGCGCGTTACCTGGTAGCGCGCCATTTTGTTTCCCCCGAT 0.314
+ACAAATGTCGTGTACCGCAGAAATGACGGGAAATATGGCTTAATTGAACCGACTGAATAATGAAGAGAAGCCTTCCGTGATGTCCGCGGAAGGTTTTTGTTTTTCTTATTT 0.9570000000000001
+AATATGCACTTTTTGTTCAGTCGATAGAAACATTTTTGAGGAAATCTGCAAACAATTTAAAAATCAAATAAACAGGCTGCCGATGGGATCGGCAGTTTTTTCTGTGAAAAG 0.647
+AAGATCCATCAACTTGGACAACTGAACATAATATACCGCTCAAAAAAATACTTCCAAAAGTAAAAGCAAAAAACTGAGGCTGTAAAAGCCTCAGTTTTTTTATAGAAATGT 0.9740000000000001
+GGCAATCCAGAGAGGTTGCAAAGAGGTGCACAACAAAGGCCCAAAAAGTATTCGGCAGGTCTTTGTATGCCTCTTTGCGTAAAAAAGCAAAGAGGTTTTTTTATACAGTCA 0.7020000000000001
+CCGATAAAGCCATTCTGGATAGCGAAGACGACGCCGAACTGGCACACCATTAATTCTTATGCTGGCAACGGTCCGTTTTGTATAGGGGCCGTTGCCTTACTTTTTAAATGT 0.807
+AGGGTATTGCCCAGCAGAACAGCTTTAAACACACCTGATAACATAACGTTGTAAAAACCGAATGCCCAGCCTTTAAAAAAACAGCTGGGCATTCGGTTGCTTATTAATCGC 0.843
+AGGCGACACACTTGTTGTCAATACATCAGACGGTTCTTACGTTTCAAGAGCATAGAAAGAAAAAAAGAAGTCTGTTCCCAAATGGGAGCAGGCTTTTTTTGTGCCCAAAAA 1.0
+TGAGAAATTTTTAATTCGCTCTGAAACTGATGGCGTAGAAGCGAAGAAATAATACCCTTTATACCATGTCCTTATTGACCCCGTATATTACGGGGTCGTTTTTGTGCGGAA 0.7490000000000001
+TCAGCTCCGACAGAGGATGAGCTGATTGACAAAGTAAAAAAGAAAATAAAAAAGTAAAAACATATTTTTTCTTAGCCTCGGCCCTCAGGTCAGGCTTTTTTGCTTCACAAG 0.7809999999999999
+GGAATGAACCCGGCGAGAAAAGCTACCAAAACCAACGTGCTGACAGCGTTGAGAAGAGAATTATAATGCGAACGAGCCGGCTGAGACAGCCGGCTTTTTCTATAGCGCATG 0.9440000000000001
+CAGCGATCAAACGCGCACGTCAAATGGCTTTACTTCCATACGTAAGCGGTGAGTAAGCTGATATGTAAAGAGCAAGGACCTTCGGGTTCTTGCTCTTTTTTATAGGGGGGA 0.9990000000000001
+GCTTTCTGAAAGCCTTCAAAAAGAGTCTCTGTCAGTGGCGGGAAGTTTAGCTTAAACAGGAAAGTGAAAGACGGGTGCTGTATGCTGCTCGTCTTTTTTATTGTTTTTTAA 0.997
+AACCAGTATCAAATGTTCAGCCGACTGACGATATGGTCCCGGTTGAATAACTGATTTAACTCTGCTGAAAGACTGCAAAAACAGTCTTTCAGCAGATATATTTATGAAAAA 0.596
+CTGATGAAAGCGCCCTTTCCGATATTACAAAAGAGCTGAAGGAAAGCCTCGAAAAGTAAAACAAAAAGAAGCTTCGCACAATGTGCAAAGCTTCTTTTTTATTTGCCTGTA 1.0
+CTCGAGCGTGATCCGCCACGCCAATCTGCCGGTGCTGGTTGTGCGTTAATTGCCAGAATAAGTATCCCGCCCTGCCCGGAGCCATCCCGGCGGGGCTTTTTAATGCCATAA 0.8859999999999999
+GCGGCGCGAACGCCTTATCCGGCCTACAAAACCAGCAATTTCAATACGTTGTAAAACTGTAGGCCTGATAAGACGCGGTAAGCGTCGCATCAGGCATTGAGCACCGAATGC 0.332
+GCCTGATGATAAGTTCAAGTTTGCTTCAGAATATTCGAAATCTGTTGAACTATCATTGAACTGTAGGCCGGATGTGGCGTTTTCGCCGCATCCGGCAACGTACTTACTCTA 0.583
+GCATTTTTCAAAAAATATGGATAAAATTTTTTCAACGATGGGCTTTGTATACCCGACGTTAAGAAAAAGTAGAAAACCCGCTGATGAGCGGGTTTTGTGCTTTAAATGGGG 0.7809999999999999
+AACTTCATCCAGAAAGTCATTGATTTCTTCGTATCTATCTGGAATGCGATTGTATCTATATTCAAATAAGAAAAGCGCCGAAAAATCGGCGCTTTCTTTTATTGCTTTACA 0.945
+GTCACTGTGCCGAAGGCGATTGCCGCGAAGATGAACATGCGCACGAAGGCAAATAAGCCAGCCTGAACGAGAAAAGCCAACCTGCGGGTTGGCTTTTTTATGCAAGGGAAA 0.914
+ACGAATACGGCTTCTCAGTTCCGAACGTAGTGAATCGAGTTAAGGCATTAATCAATAAGTAAGCTTTTGAAAGAGGATGAGTCAAATCATCCTCTTTTTCTTGTTTATCCG 0.996
+CACCGAAAGAATTATCCGAATTTTCTTTCTCAAAAGTGTGGATTGATGTTTGTAAAGACTGGGAATAAAAAAACATCCAGACATCGTCTGGATGTTTACTTATTTCACAAA 0.8540000000000001
+CATTACCGACCTGCCGAACCCGAAAGCGAAGAAGAAGTAATTTTTCGTTTGCCGGAACATCCGGCAATTAAAAAAGCGGCTAACCACGCCGCTTTTTTTACGTCTGCAATT 0.985
+GTGGATGAAATCACCACCGAGCCGGATTACGAAGCAGCTCTGGCTGTACTGAAAGCATAATTTAATATGCCTGATGGTGTTGCACCATCAGGCATATTCGCGCTTACTCTT 0.9109999999999999
+CAACATGGTCAAAGCCGTAAATGTCATCGTTGAGATTGCAAAGCAGTTTGAAGCGCAAGCATAACGCCAAAAGCCAGTCCAAAAAAGGACTGGCTTTTTTGTGTGAAAATG 1.0
+GTCAAAAGATTGGTTTAAAAAATAAAAAATAAATTCAAATGATGTAAAGAGGCTTCAAAGCCTTGCTGTACTTGAAAACAGGCTGTGAGGCCTGTTTTTTTATTAATCCTA 0.981
+TGGGATGACCGCAATTCTGAAAGTTGACTTGCCTGCATCATGTGTGACTGAGTATTGGTGTAAAATCACCCGCCAGCAGATTATACCTGCTGGTTTTTTTTATTCTCGCCG 0.917
+AATAACCTATTATGAGAAGAGTTCTGTAAGATTTGATAAGAATAAGCATGCAAGGACAAATGCATCTTCCTTTGAAACAAGATGCATTTGTCCTTTTGTCTGTTTCGAGTA 0.9079999999999999
+GTTAGATCTTCTTGAAGAAGCCATTGAAAGAATCAAGCGTTTTGTAGAAAAACATAGCTAACAGATCAAAAAGCGGCTGACAGAAAAGCCGCTTTTTATCTGCATTGACCC 0.775
+GCGCTGCCATGTTTTTCTGCGTGCTCTTCTATTGTGTAAAGGTGCCTTTCCTTTCGTAACAGTAACAGAAAAGCGCAGTCTTCACGACTGCGCTTTTTTATGCACGTAATT 1.0
+TACAAAACTCCATTTCGCCAATACGCAAAAAGCGCAGCGCCTTGCTGATAAAAAACGTTCATAGAAAAAAGCTTGCAGATTTCTCTGCAAGCTTTTTTATCAGCCTCTTAA 0.996
+AAGACCTGTGTTTCAGTACAACGTCAACAACAGTAACATTAACGGAATAAAGCAATATCTATAAGAAAACGCACTGCTTGCTTTGAGCAGTGCGTTTTTCTGTCATATCTC 1.0
+CTGGGGACACTTTCTTTTATTTTAAGGCGTGAACATTTGAAATCCGGCCCTCTCTATAGTATCCTTTACTTCAGATGAAGGATACTAGAGGGGGCTTTTTTTATGTCAATG 0.539
+GGAAGAAGTTAATAAATATTACGCAGAAGAACTAGGTCTAAAAGAGACGACCATTTAAATATGAAATCCATTTGACTATTTTGGTTAAATGGATTTTTCTTTTATCTCAAA 0.993
+TTGTGACAAAAAGCAAGGCACTGATTCAGGACATAGCCAACATGTTAAAAACAGTTCAAATGTAACGAAAAGGTACAGCATATTTCGCTGTACCTTTTATGATATCGTCTG 0.9329999999999999
+AAAGATATGACATCTGAATTGAACCGTTTGCTTTTGAATACGGTTGAAGAAGTGTGGAAGGATGGAGGAAGCTGATGTTTTTTGTCGCTTCCTTTTCTCCTTTATTCGACA 0.847
+CTGTAAACGATCTTACTGCATTCAATCAGCTTGCTGATGCTGCTAAAGCTCAATTAAACAAGTAATCATATAGAGCCGCTCTCCAGCAGAGCGGCTTTTTCTATATAAAGG 0.963
+TAAGACAGCAAAACCAATCTGCTGAACAAAACAAACAACAAAACAGCTAATCACTGAAACAGAAAAAAGCACTTCATCTTCGGGTGGAAGTGCTTTTTTCTGTTTGAAAAA 1.0
+CTGTGAAGCTGCATCCTGAAGTGCAGGCTGTGTTAAAGGTACATGTAAAAGAAGAAGCTTAATAGAAAAGAGGCTTGGATTCATCCAAGCCTCTTTTTTTATTCCACGAGA 0.998
+GGAGTCTGAAGCTCTCGCCAAAGATGCGGAACAGCTTAAATATTTATTAAAACAGCAACATATTTAGAAGAACGGCTGCTTAAAAAGCAGCCGTTCTTCCTATTACGCCTT 0.963
+CGCCGCTTTAGCCGCAAGAATGAAGATATCGAGCACAGCCATACTGTCGATCATCATTGATACAACGTGTAATCACTAAGGCCGCGTAAGCGGCCTTTTTTATGCATAACC 1.0
+GGGAAGCGAAATCCTGGTGTCTGCGGGAAATTCCCAAACTTTTTAACGGAAAATAATATTTATTATTGTTAATAAAAAGGGGCGAAATATCGCCCCAATTCTAAGATTAAT 0.6990000000000001
+AAGCGTTCAAACGATCGCCGTTCTTCAGGTGACAGACGCCAGAAAAAATCTTACTAATTTGATCGATTCAGAGCCCAAAACATGATGTTTTGGGCTTTTTTATGTTCGTGA 0.995
+GGCTGTGTACTATGGAAAAGGGTTTCATAAAAAAAATGCGGCTGCTGCCAGCGAACGAAATATCAGCTGACAAAAAGAGCTCCCAGTGGGCTCTTTTTGTGTGTGCTCATA 0.935
+AAAAAGGCCGCTATGCGGTCGGGCAGGGACCAATGTGGGTGGTGGTTAACGCACACTAACCGCTGATTTACCCGGCGCAGTCTCTCCTGCGCCGGTGTATTAACCTATCTC 0.861
+AATACAAAATCAAAAGCGCAGAAAGCTGCGGCGATTGGTATAAACGAGAAAGCTGCACAATAATAAAAACCCTCTTGCCGGATGCGGCAAGAGGGTTTCTTATTTACTGAT 0.991
+TAGATTCCTCTGCCTGTCTTGCCAAAAGCACTGTCAGCACATATCTTGCTTATCAAAGCTAGCTTCAGACAAGGACTGTCTTCAAACAGTCCTTGTTTTTTTATGTTCCTA 0.9990000000000001
+GAACTTTAAAAAGTTCGCACATACCGATGCCATCGCCCAGGCAGGCGGCCCTCTCGTATAAAAAACAAAAGCCAAGAGCAATTATGCTCTTGGCTTGTTTTAATTGACGGA 0.998
+AAAATGGGCAAACCTTGGACAAGTACTCCTGCAAAAGTAGATTTACCTAATAGCTAATTTTAAAATCACTTTGTCTTTATAAAGGACAAAGTGATTTTTTGTTATACAGAA 1.0
+GCATGGTGGCACTAACATCCACTATCTGGAGAAAAAACTCGGTCTTCAGGAAAAATAAGACTGCTAAAGCGTCAAAAGGCCGGATTTTCCGGCCTTTTTTATTACTGGGGA 0.9390000000000001
+TGCCGGCACGCTGCTTTCTTTACTAGAAAAAGGGACGGAAAACGGCCGCATTTATGATATTAAAGAGTTTTTGTAGAGCAGATATTTTCTGCTCTTTTTTTTATACAAAAG 0.9940000000000001
+GGGAAAAAACCGACAAAGCGCAGCTGCTGCGCGATGCTGCCGGTCTGAAGTAATCTTTCTTCACCTGCGTTCAAAGGCCAGCCTCGCGCTGGCCTTTTTCTTTTGGATAGG 0.993
+AGCTCATGTGACATTGGCGCGTACACGGCCGAAACTAATCGGCGGAGTGCGGGCGGTTTATGAGTGCGAATGAAAGGACTGCATAGCCAGTCTTTTCTTTTATTTTAAGAT 0.5660000000000001
+GTTTTACTTCGCGGTCAGTAATACGCCGCACTCCATATGGTGCGTGTAGGGGAACTGATCAAACAGAGCCAGACGTTCGACCTTGTGCGTCTGGCTTAATGTTTCCAGATT 0.34
+CGGGCCTTTGATCTGACAGAAGGAGATACGCCGATTGCCGAAGCATTGAAGAAACTATGACAGTACTGACACTCAGGGCTTTTTGCTCTTGAGTGTTTTTTTCTGTTTCTC 0.992
+CACGCCTTCTGTCCAGCTTCCGAGCAGCAAAGAAAACGGTGCCGATTCAAAAAAAGAAAAAAGCAGCAAATAAGCCGCCTGTTGAAGAGGCGGCTTTTTGTTACTTCTTTT 0.992
+TAAAGACAGGATTGATAAGCTCGAAGCAGCACGTAAAGCTGAAGATAAAATCTAATAACCAGAAAAAATACCAAGGGTTTTGACGCCCTTGGTATTTCTGTGATTCAGACC 0.848
+TTGTCGGTACCTCTGATTCATATCTTTAAATGGCTCGGATCATTAGCCCTGCACCTCATCCATTAAAAAAGCCACTCAGCTCATGCCGAGTGGTTTTTATTAGTTAATCAC 0.9690000000000001
+ACTCATCCTGACGATGAACCTCCGCAGCCACCACGCGGTGGTCGACCGGCATTACGCGTTGTGAAGTAATACAAAACAGGCCCAGGCGGCCTGTTTTGTCTTTTTAATGAC 0.8759999999999999
+ACGCAGGACGCGAAGCTGAAAAGCTGATCGCCAGCAACAAAAGACACAACGATTGATAAATATTCAAACAGTATCTCTAATTAAAGAGATACTGTTTTTTATTTTTGGGCT 0.998
+ATTATTCCCGAACTTGCGCATGTGGTCAGAGAAATCAGAAAAGACAAGTAAATGAATAAATACTATGAAACTTCACCTGAAATTTAGGTGAAGTTTTTTTTATAAAAGGCT 0.981
+CTTGGACGAAAAAGATAAAGATGCGTTTCTTACGCTCTCTAAAGAATATGCAGCGCTCAAGCAGAGCGAATAAGCCAATCCTTCAAGGATTGGCTTTTTATTATCCGTTCA 0.98
+GTCGTACATTTTCCCTGCGAAAAGGTGCGGAAAAGCGCGGTAAATAAGGAAAGAGAATTGACTCCGGAGTGTACAATTATTACAATCCGGCCTCTTTAATCACCCATGGCT 0.05
+ACCGTCTTTGTCACGCCTGATGCTGATACTGTCATCAAGCTCAAAAAAAGCTGAGCCGCATAAAGAAAAGCCAGAGCATTTGTATGCTCTGGCTTATTTCTTTCTTCTCAT 0.978
+CGAAAAGCAAATCGAGCCATAAAACAAGCGGAAGCGCCAACGGACAAAACGGCTACCATTAGCATAAAAGCCTCCTGACATGATGTCGGGAGGCTTTTTGATTAAGAAGAT 1.0
+GATGCGGCGTAAACGCCTTATCCGGCCTACGATTCCCATTATTTCAACAAATTACATTAAAGTAGGCCAGATAAGACGCGTCAGCGTCGCATCTGGCATTTGCACTGAATG 0.65
+GAATGAGTTGAGTTAGAGAATAGGGTAGCAGAGAATGAGTTTAGTTGAGCTGAGACATTATGTTTATTCTACCCAAAAGAAGTCTTTCTTTTGGGTTTATTTGTTATATAG 0.392
+AAGAATTGGAGGATGTTCTGTTACACTAGATGGCAAGGAATTGATCTGTTTCGAGCACCTTGTATGTAAGAGGAGGGGAAAGCATCGGCCCCTCCTTTTTTTGTATGCCTA 0.922
+ACATCTGCCGGAATTGACACAACGTCGATCTTCTCCCGGCCTTCCTATGTCACCACATATTTCGCTGTCGAATAGCTGCCGGCATGTCCGGCAGCTTATTTTATTGGGAGG 0.973
+TTAAACCTGACCAGTATCAGACACCCGTTGAACTGGATGACGAAGAAGACGATTAACGACTCTTCAATAACTGACAAGGCCCGAGTTATCGGGCCTATTTTTTACTTACTG 0.9009999999999999
+TGTTCAGGAAGCATTTCAAGAACAGCCGAAAAAGAAGGCAAGATCTGTATAATGCAGGTTAAAAATGCGCTTTTTTTCTTAGAAAAAAGCGCATTTTTACATTCAATATTT 0.93
+TCAGGTTATGCGTCTGCAAACAGAGATGGCTTAACCAAAGTGCTATGCAGTAAAAAGTGCTATGCAGTAATAAGACGGCTCCTGATTCAGGAGCCGTTGATGTTTCTGGGG 0.956
+TCATTACTGGACACTGCTGACTGAACTGCTGAAAGAAATTCCGGCGAAGTAATTATTTGATTTGCTGCCGGATGGCGTTTAATCGCCTTCCGGCAGTTTCATCCTTCATTA 0.8490000000000001
+GCAAGAATAAAAAAGATATATAATCATCGAATTGTTATTTTTTCAGATTGTCAGTGAAATAATTATACAAAAAGAGAAGGCTTGTGGGCCTTCTTTTTTTGTTGTTGCATC 0.875
+AGAATCTTCAAAGAAAACGAACGGCTGATTGACGAGTATAAACGAAAAAAAGCATGATCACACTAAAAGGACAAGGGAAAACAGCTCTTGTCCTTATTCCTTTTCTTAAAG 0.888
+CTCTCATTCACATTAAAGAAACCTCAGCGCCCTGCCGAACAGCAGCCGGCACGCTGATTAACAAAAAAAGAGCCCCGCTATTTAGCGGAGGCTCTTTTTGGTTTTACTTTT 1.0
+AATTAATAAATTGATACTAAATCGTTGATCATGCCTTCCGCTACTTAATAAGCTGTTGGGAAAGCAATCCCCTGATCTAGAGTGGTTCAGGGGATTTTTGTAATTTAAACG 0.971
+GCCGCGCCGTTTCCCATGTGGCCGCTTCCGTTGATTCGCTTGTCATCCTGACAGAAGAATAACCATCAAAAACCGGTCTGCCATACGGCCGGTTTTTTTGCGTTCATTATG 0.992
+AATGCCCCTTCTATTCGCGATGTGCTGTTATTCCCGCAAATGAGACAACGCTAATAAAAAAGAGCGGTATCCTCCATAGGGAAAGGATGCCGCTCTTTTTAAATCCCTTAG 0.982
+TTGCACATTTTTGTAGGCCGGATAAGGCGTTTACGCCGCATCCGGCAACATAAAGCGCAATTTGTCAGCAACGTGCTTCCCCGCCACCGGCGGGGTTTTTTTCTGCCTGGA 0.997
+TGGGAATCGGCAGTTTTTATGCTGAAACGCAGCTGGTGATTGATCCCCGTTAATCGATAGATTTGTAGTCAGAGACTGAGATGTTTTCAGTCTCTTTTTTTGTGGATTCAA 0.8640000000000001
+CCTGCGCCTGGCACAGGAACGTTATCCGGACGTTCAGTTCCACCAGACCCGCGAGCATTAATTCTTGCCTCCAGGGCGCGGTAGCCGCTGCGCCCTGTCAATTTCCCTTCC 0.813
+GCACCTGATGAACATCGCATCGATCAAGCCTGCCAAGCCCTCGAAGAAGCCGGCATTTTAATTAAAGACTAAAAAAAGCCCTCTAGTGGGCTTTTTTTATAATTGGTAAGA 0.914
+TTCAAATATGAAGATTGTGCCTGTTGATACCATGCAGGATGCGATTGATTATTTGAATAAGCTGAAAGCGAAAAGCACCTGATTCTCAGGTGCTTTTTCTATACATTTAAA 0.993
+TGATGCGTGACGAATGCTTTGCCATCCAGTACCATAGCGCCCTTTCCATTCCTGGACCTGAATAACACCACTACCTCATAAGCACGGTAGCGGGTGGTTATTGCCTGCAAT 0.441
+ACAAGAGCGGCTACCGTTATCACCCGGGCGAGCCAAGAACCTTCTTGCTCACAGCCAATATGCATTTCTGATTCAGATGTGGGGCGCAGGCCCCACTTTTTGGAGAAATTG 0.461
+GAAGAGATATAGAGAATGGCACGCCGATTACAGCATTTGATTTTTCAGCACTGGTGTAGATAGAAAAAGCCAATGGGATTCCAGTCCCATTGGCTTTTATAATGTATCACA 0.9690000000000001
+CGCATGGAAGAGGTCTGATTACGCTTCATCTTCCGCGTAATTTCTTTACTGTGTAGGCCAACAGGTAACGCAGAAAAAAGGCACCTTGCGGTGCCTTTCTTATCATTCAAT 0.9229999999999999
+GCAGTAACGATTGCCATGCAAAAAGGTATTCTGACAATAGACAACTAAACTGCATATTTGAAAATTGCCCAAACGTACATGCCCGAATGTACGTTTTTTTCATTTCATTGT 0.985
+GATAACAGTTCAATAATGAGAATAGAAGGAAAGAAGATAATTCTAACTTGTTGATGATTTAATTCTGAAAGCTAGGTGCCCTATTGGTACCTGGCTTTTTAAATAGCAACT 0.982
+AACGAAAGGCGAAACAAAAAATAGTGCTCCCGCCTGAGCTTGTAGTCAGACATTCTACATCACCGCTCAACACATGAGCCCGCTAATGAGCGGGTTTTTTCATTATGACAG 0.963
+TTTTAAAGGAATAAAAGCGCAAAAATCACTCGGATGATTCGCATGAGCTCTTCCTTCATTGGTCAACCTAATGAAAAAGGAGGAGCTTATGCGTTTTTTCTTATGTTCGAT 0.991
+ACGCTGAATTTGAAGAAGTCAAAGACAAAAAATAATCGCCCTATAAACGGGTAATTATACTGACACGGGCGAAGGGGAATTTCCTCTCCGCCCGTGCATTCATCTAGGGGC 0.7070000000000001
+CGTCGGTGCGCTAACTAAACACGTACAAGCACTCGACCTTTCAATGCGTTTTCGCTAATAGTTGACAGATTTATCCGCTCCATCGCGGGCGGATAATCTCCCCTTCCCCAA 0.843
+GTACGCCAGAAACCGTCGCGGAGTGCGAAGCATCACACACGGCACGCTTCCTTAAGCCGATGCTGTAATCGTTAAGGCCGCTTTCTGAGCGGCCTTTTCCTTTCAGAGTTG 0.825
+GTTTATTCGGGATCCGCGGAACCTGATCAGGCTAATACCTGCGAAGGGAACAAGAGTTAATCTGCTATCGCATCGCCCCTGCGGCGATCGTCTCTTGCTTCATCCGTCGTC 0.40299999999999997
+ATGATCTTTGGTATTTTGTAAAATCAAAAGAAAATCGCTGGATTCTTGGAAGTGGTCATTAATTAGAGGGGTACAAAGGAGAGTCTAACTCTCCTTTACCATTTGTTGGGG 0.892
+CAATGAAAAAACAAAGCTGCAAAAACGGCTGAACGCCGTCAAACCGAAAAAGTAACCAAAAACCTTTAAGATTTGCATTCCAAGTCTTAAAGGTTTTTTTCATTCTAAGAA 0.992
+AAACTGTCCGGTAGCGTAACCGTGGGTGAAACCCCGGTTATCCGCATCAAGAAGTAATTCTTGCCGCAGTGAAAAATGGCGCCCATCGGCGCCATTTTTTTATGCTTCCGC 0.99
+ACCTAATCGACCTTGACGCCATCCGCCAAAAACGCCGGATGCATCTTTCCTAATTCTATATTTCAAACGAAAAGGCTGCTGAATCACGCAGCCTTTTAAAATTGTTTTGAT 0.951
+AACAGTATGACCCACAGCGGGTACGTGCAGCGGCTTACTGGCACGCAAAGTAACTGATATATAAAAAGAAAAAGGCTGACGATTTCTCGTCAGCCTTTGCTATATCTGGTG 0.578
+TGGGGATTGACTTTTCGAATATTACTATTAAAACCAACCTTGCCCAAGCATTAAACTATCATCAATAAAAAAATCCGCTATCTGTGATAGCGGATTTTTTATGATGCGAAA 0.986
+AGTACACGTATTATAAAAGAGATGAAGAAGCCATTGGGAAACTTGCTGACTTTCTTAAAACAGAGATATAAAAATAAACATCAAAAGATGTTTATTTTTACACCATACATA 0.9990000000000001
+GATAAGCTGATTGACGGCGATTTTGTTGCTGAAGTGAACAGGCTTTATCAGATGAGAAGAAAGAAATAAGCCAGAGCATACAAATGCTCTGGCTTTTCTTTATGCGGCTCA 0.986
+AAAATTAGATAGAAACAATGAAGATAAAAATAGATTTTTTGGTTTTAGATTTTGACCAAATAATATTAAACTAGGGAGTTCTTATAGAACTTCCTTTTAACCTGTTTTAAA 0.937
+ATATCTCCAAAAAGCTGAAAGCTATGGGCGAAATGAAAAACGGCGAAGCGAAGTAATTCCCGTTTTATTCAATGAGGGTTGCCCGGCAACCCTCATTGCTCATTGATTCTT 0.867
+CTGGACTGGCCTGATTTCTACCGGGATCACCTACAAATTCTGATAATGCATCTTTCCAGGGCATTTTGTGCATAAAAACAGGGCGTCACGCCCTGTTTTGCATTACGGTGG 0.951
+ATTTGAAGTAATTAAGGTGGAATACCTGTAAGAATTACCCAATACTCAAGATGTTGATGTATTGTAAAGAAAGGAAAAAGGCCGCTATGCGGCCTTTTATCAACGAACAGA 0.38299999999999995
+CGGTATTTTATACAGGTGAAGCCAGTCCGTTTGTAACCGCTGTGCCGCCTCACTTATATCAGATTGCTGAATGAAGAGAAGGGAGTCCTTCTCTTTTTTCTATTTACATGA 0.988
+TAGATCGTCATGATAAAGAGGCATTTGAACAATTATCGCGCCAATTAAATCAGCTCACATAATATGACCAGCCTTGCAGTGAATTGCAAGGCTTGTTGCCGTAAAGGGGGA 0.7040000000000001
+CAATTTGTATTCGCAGTGTATATTTTGCTGATTTGCCACATTGTCGTCCTTTGTTTAGCGCTCTAAATCAAACAGCCAGAATAAAACTGGCTGTTTTCTTTAATTTCAGCT 0.9890000000000001
+GACGGCGCGAGACGAATTGCCCAGCTTCAGGATAATATTAAAAAAGCAGCATTGCAGCAATAATAAAAACCCCGCTTGTGGAACATAAGCGGGGTATTTCAATTACATCAT 0.965
+CGTCATGAAATTGAAGGACACGATATGGAAGAAATCATGAAAAATCTGACTGCTGCCTTCGATGCGCACTGCTAAATGCCCGTTCTCCGGGCATTTTCTTTTTGGGAGTAC 0.9109999999999999
+ACTCGCAATTATAATACGCTTGATTCTGTTCAGTACGAAATAACTGAATAATACGCACAGTAAAATATTCGAAAGCCACGGATATATCCGTGGCTTTTTATGTTAACCGCC 0.9790000000000001
+GTCCTTAACGATCTCAAATAATATGTTTAGCCTTTTGCCACAAAGGAAAAGACATTACTTTTTTAACTTCTACCGTTCATTTTTTGATGAACGGTTCTTTCATAAGACCTC 0.961
+TGTGACAGCTGTCATCGGCTCACTGGCGTTTTTTGGATTAACGAAAGAACGAGTAGGGCAGAATTCATAAAAAAACCTGACATGACGTCAGGTTTTTTGTTTTATTTAGAA 0.987
+GTTATCATCCGTTTCGCTGAAAAACATAACCCATAAAATGCTAGCTGTACCAGGAACCACCTCCTTAGCCTGTGTAATCTCCCTTACACGGGCTTATTTTTTACGCGTAAT 0.9590000000000001
+TGAGCTGGTCAGAGACACCGCCCGCGATATCAGCACGGCGTTGGGACTGAAAGCACATCCATAATGTCTGTCGCATCCCGCTCTGCGGAGCGGGTTTTTTTGACAAAATTT 0.995
+GGCATTGGCTTCGGTGCGCTGTTTGCGCTGGCAATAACGGCGCTGTGGATCTGGCAGCGCCGTCATTAATATTTAACGCCGGTTTTAACCGGCGTTAATCTTATGGTGCCG 0.862
+GATGGAAGTGGAGAGAATGAGTCTGCCACCTAGCGTATGAATCCATGAAAAATCGAGTGTTTTTAACAAAGTGAGGTTTCCTTAAGGGAAATCTCTTTTTTATTTCTCTTT 0.997
+ACCCGGCTTACAAAGCAAAACGCTATACTGATGAAAGCGAACAGTAATCGTACAGGGTAGTACAAATAAAAAAGGCACGTCAGATGACGTGCCTTTTTTCTTGTGAGCAGT 0.536
+GTTGGTTTATTGCGGACCATCAAACCCACTCACAGGAAATGAAAGTCGCTGAGAAAATGATTGGATAAATGAAAAACCCCCGCGGGATGCGGGGGTTCAATTTAACGAAAG 0.35700000000000004
+GCCGTGTTCCGCGTATGCTGAAATCCGGCTTGCTGTGGATGTATAAACACCATAACGGTTAATGATAGAGAAGAACCGCTGATCAAGTCAGCGGTTTTCTGTATACCCATG 0.828
+CTAGCTGCTCAAGGTGAAGAAAACAGCGGAACACAGAGTATATATAAGCTTTGGGTGAAATAAAAAAAGATTGCCTGTACGAAACAGGCAATCTTTTTTTATTATTTTCCG 1.0
+ATTCTGCTTAACAAGCTAAAATCATGCAACTAGCCTGTAAAATTTCCGCTGTATAGTAACAATAAAAAACACCCCTTCACGTCAATGTGAGGGGTTATTTGTGTGTTAACA 0.986
+AAAAATACCGCAGCTCGATACAAATCAAGACTAGCGAAAAAAGTGAACGGACTTTCTGCATAATATAAAAACGATCCTCAATAATGGGGATCGTTTTTTTCATTTCTTTTT 0.9990000000000001
+CTACTTGAAAGAGAATGGAACATGGTCTAAGGCCTATAAGACCATTAAAGAGATTAAAGATTGGATTAAATAATAAGAGCATCCTGCGGGGTGCTTTTTTTGTTCCCTGTA 0.998
+AATTACAGAAGTCATTAAGAAGTTAGACCGAAAAACGGTTGACGAAATTACGTACCAATAAAGATACGGAAGAATCCGCCTATTGAGGTGGATTCTATTTTTTTGTCTGTA 1.0
+AGCGTATCGGAAAAACAGATCTCTTTCTGTCACCATGTTCCTCGTTACACGTCTGATTGGCAAAAGCAAAAAAGACTCCGTCTAATAAGACGGAGTCTTTTTTTATTTCGT 0.991
+TACCTGCGTGAACTTCGCGGAAAAGCGGCTCGTATTAAAGAGATCAGACGATAATGATAACGAACGAAAAGAGCTTGTTACCTGTAACAAGCTCTTTTTTTATACAGAATT 0.996
+CTGTCTCTCACTATTTGACGCACTGGCTGGACTATCCACATCTACCTTATTCCCCCGAATAACGAGATCCCTTCCAGCACCGGGCAATTGCCCGGTTTTTTTTGCGTTGAA 0.998
+AATTACCGTTTTCGATGATTTCTGGAAAAAGTAATAATTTGCACATATTGGATTGTGCGAAAAAGAGTAATTTGTTCACGCCGGATGCGGCGTGAACGCCTTATTCGACCT 0.588
+AAATGTTTGAAGAAAAACTTGATGAAATGGAAGAGCTGCTGATGAAAGTCAAGCAGTCTTAAAAAAGTAAGCCTGTGCGGAAATGACGCACAGGCTTTTTTAAAACCCTTT 0.9540000000000001
+TCCGCCCATTTAGCAGAAGGCCAAGAAGTCCAAGTCGGAGAACTGATAGGTTACGAAGAATAAAAAGAGGAGCTTGCATAAACGCAGCGCCTCTTTTTTTGAAGAAAGGTG 0.81
+GATCCGGACGGTTACAAAATTGAGTTAATCGAAGAGAAAGACGCCGGTCGCGGTCTGGGCAACTAATCTCCTGCCGGGCGTGAACTCATCGCGCCCGCATCTTTACTGCAT 0.6559999999999999
+GATGATCCGGATTCTTATTATTATGAGGATGATCCGGTGTTTGAATAATGATGAGACAGGACAGGGCATGAGTTCCATATAAACGGAACCATGCCTATTTTATTTGACTAT 0.91
+CACTACATCAATAAACAAAAGCAGGTGCGCGAACAAACAGCCGCTTCAAAAGAAGAATAAAACAAAACAAGGAGGGAGGTTCAATGTCCTTCCTTTTTTGTTACCGAAATA 0.833
+AAAAGTGAAAAAGAAGCAAGCTGGATCCAAAAGCAGCAATCTATCACTTTAAATATGCATCAAAAAGGGTACATCACTTTATCGTGATGTACCCTTTTTTATTATCCTTCT 0.978
+CGAAGGTTCGCCGACAGATTAATGGTAAAGCTGAATCATATCCGCATCAAATAAAGCTTCTGTACACGACAAAAGCCCGCTCCGAGAGCGGGCTTTCTTCAACTTATTTCC 0.9740000000000001
+GCGTGACAAAAAAACGACGCTTGAGAGCAAAATAGAAAGTGTCAATAAACATTTACAGCCATAAAAATAAACCTGTATCCGATCGGATACAGGTTTTAATGTGCGGTTGGA 0.993
+CACGTCGGTGGCGATGAGCTGGATAAACTGCTGGCGGGGAAAGATAGCGACAAATAATTCACCAGACAAATCCCAATAACTTAATTATTGGGATTTGTTATATATAACTTT 0.86
+CGCACTGGAATCCGTTCTGCTGGGCGATAAAGAGTAATTGTGTTTCGCTGCAAGGCGATTGCCTTGTGAAGCCGGAGCGGGAGACTGCTCCGGCTTTTTAGTATCTATTCA 0.986
+GGATCATCGATGTAGGTCGGATAAGGCACTCGCCGCATCCGGCAAGATAAATCGCACGTTGTCAGCAACTGTAACGCAGAAGGTTATCCTTCTGCGTTTTTGTTTAATTAG 0.987
+GGGCTTGTAGATGATAACGAAGCCGCTGTTATTGCCAAATGGCTGTCAGAAAAAAAGTAAGATAAAAACATCCTTGCCGAGTGCTGGCAAGGATGTTTTTATGCCTTGACA 0.992
+GCGTGGGTCGTCTGTATTGTTGTCATTTCCTTTTTGATGCTGTTTTTCATTCAACAGAAAAAAACGCACTAAAAAAACTCCCCATAACGGGGAGTTTTTTGATTAAAACAG 1.0
+ACGGAGGCATTCCTCCTTTCCAAGAAACGCAAAACTATGTAAAAAAAATAACTTCAGTTTATTACGCGTAACCAGAGGTGCTCTTTCCCTCTGGTTTTTTTGCGAAGTGAA 0.99
+GCAACACAACCGGGATTACGGCGCACCACAAGCTGCCGCTGCCCGAGCCTGTGATGCTGAACAGTGCAACCTTGAGCGAGAAATAAGCTCAAGGTTTTTTTATATTGTGAT 0.98
+TGCGGTGAAACGTCACAGTCAGGTGAGCGGCGGTCGTCGTTCTGGCGGACGTAATAATAACGGTTAATCAAAGTATGCCGGACGTCATATCCGGCATTTTTACAGATTAAT 0.5820000000000001
+AGATCGCAGCGAAAGCAGCGGCGGTTGCAAACCAGGGTAAAGCGAAGTAAACGTCATTCGTTTAAAATGAGAAAGCCGACTGCAAGTGAGTCGGCTTTTTTGTTGCTAACA 0.888
+ATATGCCTTGGATAATTACACAGAAGTCAAAAGTGTATGGGTAAACCTTGAAGACTAACATGTATGTTTAAAAAACTGCTGCCTGCCAGCAGTTTTTTTCTTTCTGTAATG 0.9840000000000001
+CGATTCCTGAATTCGAAAAATGGCTGAATGAACTGAAGCCAATGGTGAAAGTCAACGCTTAATTGAACAATCCAAAAGGCCGCGCCTGCGGCCTTTTTTTATGCTTTCTCG 0.996
+AGAAGCGCTTTTAAAAATGATGAAATAAAATAAATTGGCCCCGGCTATTACTATGTCCCCTCTTACAAGCATACATTGTGATATGTAAGGGGGGATTTTCTTGCCAAGATA 0.7979999999999999
+CCTGATACGCTGCGCTTATCAGGCCTACAAGTTCAGCGATCTACATTAGCCGCATCCGGCATGAACAAAGCGCAGGAACAAGCGTCGCATCATGCCTCTTTGACCCACAGC 0.405
+AAACGATTCAAGGACATCACTGAGTCAGTCCTTTATACATTGCACGCAGTAAAGGATGAAATTGCAAGAGAAGACAGCCGGTAAAAGGCTGTCTTCTTTTCGTTTTTATAG 0.961
+AAGAAGGGAAAGGCACAAAGTTCATCATCCGCCTTCCTTTAACGGCAAAACAGCAATAGCATACAGGGCGGCGCATCAACTGATGCATCCGCCTTTTTTGCACACCGCTTC 0.738
+CGCAGTATTCGACAAAGTAGCGTTCACCGCTCTGGTTGAAAAAGCGAAAGCAGCTCTGGCATAAGCCAGTTGAAAGAGGGAGCTAGTCTCCCTCTTTTCGTTTCAACGCCA 0.915
+CCTTGATCAGACACAAACGAAAAAAGGTAAGTGACTGTCCCTATTGAATCTGGCTGATAGATGAATTGAGAAATGACCCCGGCGTTTCGCCGGGGTTTTGTGCTGCATAAG 0.9990000000000001
+GAATGCAGGCAAGCCTGAAGAGTGCTAAGCACTAAAAACGGATAGCAACTATTACTGACGCTTTTCTTAGCGATAAATCATCGTTAAGGGAGGCGTTTTTATTATGGGGAA 0.9990000000000001
+AGATTGAAGGCTACGATCCGCATCCGGGCATTAAAGCGCCGGTGGCTATCTAATTACGAAACATCCTGCCAGAGCCGACGCCAGTGTGCGTCGGTTTTTTTACCCTCCGTT 0.8859999999999999
+GCGCGCAGAATACTTCCGCGCAACAGGACAGCGAAGAAACCGAATAAGGTTTCGGGCTGTTTTTTTACACGGGGAGCCAGCGATCCTGCGTTCCCCGCTGATCTATTTAGA 0.47
+CGAGAAACAGTTAATTAAGACTGGTGACATCGTCGAATATCTGGTGAAACAGATTAAAGGCTGATGCCAGAAAGGGTCCTGAATTTCAGGGCCCTTTTTTTACATGGATTG 0.7909999999999999
+TGAGCTTTTGCCTTCTTCCGCCAATGTTTTCGCCGCAGAAGCGCACGAAACAAAAAAAGCACCACATGTAAAAAAGCTGCCTTTGCGGGCAGCTTTTTTTATTTTTTTCTA 1.0
+GTGCCGGCTGAAATGTCAGATTTGCACGCCGACACTTATATTATTGATGCTGTTTCTGTGTAATGAAAAACCCCTGAGAGAATAACTCTCAGGGACTCTTTATAAACTTTC 0.8540000000000001
+CGCCACTATGACAAACGTTGCCGCCGTAGCGATAATCGCCGTCATAGCTAACAAATAATGCAGTTTGCTGACCAGTCAGTTTGCGCTGACTGGTCAATCTCGTACTTATAA 0.764
+TATCCCTGCTTTTCAAACTGAAAAACTTGCTTTCTTTAAGCAGCATCTTAAAGGCTGATAAATGTGAAAAGCCGCCGCATATCATCAGGCGGTTTTTTTCTGCAAACTGCC 0.344
+TGGCACAACTGAAATTAGATCCTCGTATTTTCATCAAAACAGCGGGATTATGGTCAACAAATCCTTAAAAATGAAAACCTGTCTTTCGACAGGTTTTTTTATTTGAATGAA 0.9890000000000001
+CTGGTCATACGCGTAACGTTGCCTGATTTTTCCGCATAACTCACTATCCTTCTGTCATATCATTAAATTTTTCTGATTTATTGATCTGGCAGAAGGTTCATCACTGTTTCA 0.77
+GGTTCAAGTCATTATTGGCCCGAATGTGGAATTTGCAGCTGAGGAATTGAGGGCTGCTGTCAAATAAAAAAGCGGAGAGGGCAACCTCTCCGCTTTTTCTTATTTATCTTC 0.998
+TCGGCATTCCCGACTGCATTGATCAAGGAAAAGCTGCCGTGTCTGACGCGCTTACCTATTTATTCAGCTAAAACCTCCGCTTTATCGCGGAGGTTTTTTTGATGTGCAATG 0.985
+GTATGAGTTCAAAAAACGGTCGTCTAGTTTTAGCACGCCGTCGCCGCAAAGGCAGAAAAGTATTATCAGCTTAGGCCACTGAATAATGTCAGTGGTCTTTTTTCACGTTAT 0.818
+GATTCATTACGAAACATTAACAAAAGCATTGATCAACTCGATAAATACAATTATGCAATGAAAATTTCGTGAAAAAGACTTGGAAACAAGTCTTTTTTTTCGTTCTACCGA 1.0
+AAATTGGCGATGCGCTGGAACAGCAATAATCCTGAAGCCGCCTCGCAAAAAAATGCGTTGCAGCTGTAACAAGAAAAGGTCGCTTTCGCGGCCTTTTCCATTTCTGAACAT 0.8540000000000001
+AGTGGCTGAAAACATTAAGGAAAGCATAAAAGAGCTTGTCGAAGAACTCAGCATGTTCGCAAAAGCAGGAAATCCCGGCGTCTAAACGCCGGGATTTGTTTATGTGAGAAG 0.647
+CTGAGCAAATCATCAGCGAAATCCAAAACCAGCTTCAAAACCTTAAATAATCATTTCTTGTACAAAAAACGTTCTTGTTATGACACAAGAACGTTTTTTTATTGCTTAATA 1.0
+GGGCATCAGTCTTAATTAGTGCCACTGCTTTTCTTTGATGTCCCCATTTTGTGGAGCCCATCAACCCCGCCATTTCGGTTCAAGGTTGATGGGTTTTTTGTTATCTAAAAC 0.982
+GGCCGAAGCGATTCGTCGTATCAGCAACGAAGAATCGATCTCTGCCATGTTCGAACACTAATCGAACCCGGCTCAAAGACCCGCTGCGGCGGGTTTTTTTGTCTGTAATAT 0.852
+CTCGAGGTATTAACGAATGTATTTCCAAGCCTCCTGTCTAACATGAAGCTTGGAAACAATTGATGCGATAACCCTGTCCAACAAAACAGGGTTATCGTTATGTTATAGAGA 0.7809999999999999
+ACACGTCCTGTTCTGGAGGGGAGTTTCAGACACTCCGTTTCTTGCCTGAAAGTCGATCCGCTTTAAAAACAATAAGGGCTGACAGTTGTCAGCCCTTTTTCACGCTAAAAG 0.888
+CAGCGCACTCGGAACGGCAATGTACTTACATCAGAGGAGAAAACAGAATAGAGCGAATCAGGCATAAAAAAGAGCTGCTCGCTATGCGAGCAGCTTTCTTCTTTTAAACCC 0.968
+CAGCTTTCTGGAATGTTGTAAACTGGGACGAAGTGGCTCGTCTATACAGCGAAGCAAAATAATGGCACAAACAAGGTCCTCATTATGGGACCTTGTTTTTTTATGTCTTCT 0.9990000000000001
+CAAGAGCTTCCGTAATCCGGTTCCGCAGTACGAAGACGTAGCATAATCATCTTTTCTAATAATAAACCGGAGTCGAATGAACATTTGGCTCCGGTTTTTTTATTCTTTTGT 0.9670000000000001
+TGGATGATATGGCAGAGTGGGTGTCAAAAATTAAATAAAAGAACTATTTTTCTCTTTATACATTCACAGGCCGCCGAGATGTTCTCGACAGCCTTTTATTTTTGACTGCTG 0.799
+TGCTTCGGTTTGCGACAACCGGCTTGTGGGGACTTTATCGCATGATTGCGTTTTAATGTGACAGTTTGATAGGGGCTTGGCAGCAGCCAAGCCTCTTTACATAGAAGGGAA 0.74
+GCGGCTGACATGCTTCGCCGCCACCAAATTAAAGGAATTGAGCGTATGCTTGAAAAGCTGAACGCTAGAGAGATCGTTTAGATCCTCTCTAGCGTTTTGTATTGCTTTTTT 0.975
+ACTTCCTCGATTATTGCCGCCGACTGTTTAAAGTCAGCCGTTACCAGCAGGTAAAAGCCTGACTCTTCTTTTCGCGACTGGCATCGCCAGTCGCGTCTTTAACTGGCTTCG 0.608
+CGGGGATTGTGCTGGGGCGTAATGCTCTACGCAATTACAACGCGAAGTAATCTTTTCGGTTTTAAAGAAAAAGGGCAGGGTGGTGACACCTTGCCCGTTTTTTTGCCGGAT 0.856
+TCAGCAAACAGGTGGATATCATCACCGACATGCTGATCAAACGGGCCGAAGAAAATAAAAAATAAAAAAACGGCACAGTCATGACGCTGTGCCGTTTTTTATGATTCACTT 0.986
+TAAACGATTTGCCTGAATGGCTGCGTTAAAAATTTCTCCTCTGTTGTTTATTTGATACCCATCACACTTTCATCTCCCGGTTTTTTCGCCGGGAGATTTTCCTCATTTGAA 0.941
+CAGGCAATGAAAGCTATTCCGGGTACCATTCGCGCCCGTCTGCTGTACTAATTCCCCTTCTCTGAAAATCAACGGGCAGGTCACTGACTTGCCCGTTTTTTTATCCCTTCT 0.976
+GCAAAACAGCCAACCGCTCAAGATTTTTGTATCCCCTGCTACAGAAAGCAAGACAGCCCTTGCATCATTAACAGCCCGGCAGATTACTGCCGGGTTTTTACTGTAAAAAAA 0.963
+GAGCTTCACCATTGAAGGGCTGGCGGTTGGGGTTATTCGCAACGGCGACTGGCTGTAACATATCTCTGAGACCGCGATGCCGCCTGGCGTCGCGGTTTGTTTTTCATCTCT 0.474
+TCGGTTTATTTAAGGGAGAAAATAAAGGGAAACAGCTGATCAAGGTCAGTGATCCGAGCTGAATGAAGATGAAAACGGGAGGGCTTTTTGCCCTCCTTTTGTGTTTCGATG 0.9740000000000001
+CACTTTTGCCTGCGAAGCTGAAATGCTGATTTTCCAGCTGGGTCTGCGTTAATTCCTCTCGGGTACGTACGCCCCTGTCAGTTGCTGGCAGGGGCGTTTTCTTTTCTCTTC 0.968
+GCCTTGGCGGCGGGACAATTGATGATGTGTACAAAGACGGAACAAAATTGTGGTACGTATAAAAGATGAAAAACCTCAACACTGAGTTGGGGTTTTTTAATGAAAGGAAGA 0.764
+CTGAACGACGAAAACTCGATTGAAAATATTGTAGATCAAATTGCTTCAGTTATTCATGATAATCAAAAAAAGTGAATCTCAGTCGAGATTCACTTTTTCTTTAAAATAAAA 0.978
+ATTCTGATTTAGAAGCGGCTGCTGCAAAAACCCTAAAATTGATTCATCAATAATCCATTATAATTGAGTGTCTTGCGGATTGCTCCGCAAGACACTTTTTCAACGTGAACC 0.9940000000000001
+AACATCAGCATTTCTTTTAAGATGTTCGCCTTTTCATTTAAAATCAAAAAGAACCAAAAATAAAGAAAATCCATTTCTCGCATGAGAAATGGATTTTTTATTATTGCCCAG 0.9790000000000001
+GAAAAACGGTATATGCCTGAAGAGCTGAGCCATCAGCCTAAAGAAGTCATCTTTGTGTAACAGACAACAAGGCTTTCGAGTAGTCGAAAGCCTTGTTGTTATCCTTTTATT 0.621
+TCATAGTCGAACTATGTAGTATGTATTTTGGGCTCTTCAAAAACGAAGAGAGAACATAGTACGTTATGCTCCCTTTCAAGAAATTGAAAGGGAGCTTTCTTATTTTCACCC 0.924
+ATACAGGACCTCTTCCCCTCAGCAAGAGGAAGCGCTGCCAATCTCAGTATTGCAAGAAAAAGAATAAAGCGTAACAGGAGGCTGATGATCAGCCTCTTTTTGTTTGCAGCA 0.973
+AGAAAAAATGGCAGCTGCCTGCCGCAGAGGCTTTTGCGGAGCTTGTTTTACATTCGATTCATGAGCAAAAGGAGTGAGTGTCAGGCTCACTCCTTTTCTATTTAAATTGCG 0.871
+ATGGTCAACTTCCTGTTCGAGGGTAAAGAGGTGCATATCGAGGGCTATACGCCGGAAGATAAAAAATAAAAACAGTGCCGGAGCACGCCTCCGGCAACTTGCATAAAAACA 0.695
+GTAAAACAAGATGATTCAGTATTAATCATGCAGCAACACAAGGATAATTAAATATGCGTTATAAATAAGGGAGCGGTAAGGCAATTATCGTTCCTTATTTTTCGATACAAA 0.9570000000000001
+TTGATAAGAAAAAAGGCTTCTCCGCCTTGGTTTTTGTCAACGAAGCAGAAGAATAAAAATGTCTTAATCAAACCTTACTCCGCGCGGGTAAGGTTTTTTTAATGGTTTCTC 0.995
+GGCGGAAAACCGTCTTCATGTGCAAAAAGCACTGCTGAAGGCCATTTTATATAAAGGGGAATCATCAAAAAACTGCTGAGCCAAACTCAGCAGTTTTTTTGATGGCAACAT 0.971
+AAACGGAAGAAGTCGCAGAACGGATTTTTGCGATCTTGAATCAGCATCCGATCATTCAACCGTGATCAAAAGCGGACAGCTTCGGCTGTTCCGCTTTTTTTGTGTTGAATG 0.9840000000000001
+CTTTGCTGGCGAAAGATAAGAAGTTACATCACCTTACGTCTAAACATCGCGTACGCCGCTGACCCTGTCGTGGCCGTTATCACCAGTAGCGGCCACAAACTATTCCACACA 0.61
+CTGATCCTCTTTTCTTCAGAAACGAAAAAGGGAAAAGACGAAGCTTGGGGAGCGATCAAAAAAATGATAAACCGGTAGAGGATCCTCTACCGGTTTTATTTATCGTATAGA 0.9840000000000001
+CCTCATGGCAGGGGCAGATGCATTGTCCAGGAAGCGGCTTTCACATCACATGGATAAATAACGCAGCGAAGGAGCTTTCAATTGAGAAAGCTCCTTGCTGTTTTTTCGAAA 0.8290000000000001
+GGCCACAACCGCTGATTAGCATTGTGCGTTTGGCAATGCCGCTGATGTAATCTGTTACTTTGTAAGTCAGAAAGCCGCCGACATGCTCGGCGGTTTTTCTGAAAAAGAAGG 0.626
+GACCTACAGGAATACGGACATGCACCGATTCGATATGACGAAGATGAACAACACTTTTTAAATGTATAGAAAAAGCACCTGAGAATCAGGTGCTTTTCGCTTTCAGCTTAT 0.986
+TCCGTTATCCTGTCGGTCTTCCATTTGCTGATTCAAAAAGGCATTTTAGAGCCGCTTAGAAAAAAATAAAAAAAGCTGCCCGCAAAGGCAGCTTTTTTACATGTGGTGCTT 0.98
+AATTGTCCTATGTTTATTATTTATGACAGCACCCCGTCTGCTTAAAAGTGACAAAGCGTAAAAGTAACAATCCCCCAGCGAATTCCGCTGGGGGATTTTTCGTTATCTGTT 0.9940000000000001
+CCTGTACTATCCGCACATCCGTGAAATGCTTGAAAAACAAGGATTTAAAGTTGAAAAATAAGCTCTTATTCGGCCTGTCGGATTTTCCGGCAGGCCTTTCATTTACCCGGT 0.992
+GAGGATGGTTCGGAGTGGGCAAAGCGCTCCCTTCATAATCTGGACATTTTAGAAAAAGAATATTTTAACCGGCCATAACCCAGTCTGACAAAAGATTGGGTTTTTTACGTC 0.84
+GCGCAAGCTGAAAAAGTAGCGAAAATCATCGCCGCAAACAGCAGCAATACATAACAGAAACCTGAAACACAAAACGGCAGCCCTTGAGCTGCCGTTTTTTTATTCTGTCAG 0.9990000000000001
+AACGCGGAGGATAACGAAATCATCGCGGAACAGGAAAAAAGACAAAATCAATCTCATATCGAATCATAAAAAATCCGGCGACTGCACGCCGGATTTTTTTGATATCACCCT 0.992
+GCTCATTCGATATCTATCTCCTGTTGCCATCATCATCGTGTTTTTGCATGTGATAGGTATTTTTTAACACACGAAGCCCCCGAGGAAAGGGGGCTTTTTTTAATAGAGCTT 0.963
+CCATCCTCATCGGCCTTGCCGGACTGCCTGTTTATTACGGGATGAAAAAACGAAAAGCAAGCTGATAAAACGGTTCCCTTGTTTAGGGAACCGTTTTTTGGTGAAACAGAA 0.9940000000000001
+TGAGTGAGCTTGAGAAAGAATACAAGTCCCTTCAGAAAATGAAAAAAGAGATCTGACAATAGATATAAAGAGGTGAGTCTGCTGAAAAGCGGGCTTTTTTGTTTTGATTTT 0.97
+TGTCTGCGGCTGCCATTATTTTATCTGTAGCAGCACTTGTAAAGAAAAAGCGTGCCTAATAAAGAAAGCGATCCAGATGTCATGTCTGGGTCGCTTTTTATGTTTAACCGC 0.9990000000000001
+GCAACAAACCACCCGAACTATGAAAAGCCAATTGAGGCTGCTAAGGCATTAGTAAAGTAAGCAGGGAAAAAAGCTCCAGGCTGCCGCCGGAGCTTTTTTCATGGCAAGGAG 0.812
+CTGAAGTCATCATTCGCGATATTCGCACTGAAAAGTTCGGCAGGCTGTCATTTGAACAGCCGACGATGTAAAGGCGCGCAGAAATGCGGGTCTTTATTTTTTCTTGGCTGA 0.912
+TTTGTCGGATTAATTGAAGAAGTTGAAAAACAAGTGTGGATGCTTTCCTCTTATTTAGGGTAACAAAAAAGCTGAACCTTAATCGGGTTCAGCTTTTTGTTTTTTCTTAGC 0.996
+TGTTGTTCGCGGCGTTGACCGGCAGCCTGGAAAACCATCCGGATGGCTTTAATTTTAAATAATTAGCGGATAAAGAAACGGAGCCTTTCGGCTCCGTTATTCATTTACGCG 0.965
+TTTGCAGAAGAAAAATGGCGGATAAAAGACTATAATATCAACAGCCACTTATCCGGCTTTATCAAATAAGAAAAAGACAGGCGTTTGCCTGTCTTTTCTTTTATTTCTTAG 0.968
+AATTCACCTGAGCTCATTGAATCCCATTAAGTACCACTGCCATATCGCTTTATATACCACCTCCTCTTAGCTAATATGTTCTAAGTAGGAGGTGGTATTTTGTTTGTATCT 0.9990000000000001
+AACGATTCGTTATCAGTGCAGGAAAATGCCTGTTAGCGTAAAAGCAAAACACAAATCTATCCATGCAAGCATTCACCGCCGGTTTACTGGCGGTTTTTTTTCGCCGTCATA 0.998
+CAAATGGCCGGAAAAGCGGAAAAAAGCAACACCGATTAAATGCTCTGGATAAGGATTATCCAATTCTAAAAAAAAAGCCCGGACGACTGTTCGGGCTTGTCTTTTTATATG 0.9440000000000001
+TAATCGCGGGAACATATGTCACTTATGCGACACCAGGTGAAGAGGAACTTAATGCTGACGAAGAGATTAGAAAGAGCGAATAATGGTTCGCTCTTTTTATTTTTATGCATA 0.992
+GGAAAATCCGAACGCACAAGCGATTCAGGATGATTTAAAAGATATTGATTCTGAATAAGAAACAAATAAAAAAGGTGAGTCGCAAAACTCACCTTTTTTGTTGTTATCCCT 0.956
+ACATCATTGACCAACCTGTACGAACCAGGGGCCGTCAGCGAGTTCTATATAGAAATAACGGAAATAGACAAAAACGCCGATTCATGATCGGTGTTTTTTATGTAAAAAAGC 0.895
+CCGACGGTTTACTACCCGCCAGCAGCAAACATATTCACGAAAACGCGGAATAAACACCGTCGTCAGAAATGCAAACAGGAGCCTGATGGCTCCTGTTTTTCATTGCACAGT 0.9620000000000001
+CGTTGCAGACGAAGATGAGAAAGAACATTTGGCACAGCTTCTGGTCAAATTGGTTGATAAACAATAAAACATGAGCCGGGCGATATGCGCCCGGCTTTCTTGATATTGTCA 0.7979999999999999
+GCATAAGCTAAAAGAAGAAGGATACGAAAGCTATCTGCATCTCTTTAATAAATAAACTGTTAAAAACAGGCCTGCCTAATGGATAGACAGGCTTGTTTTTATGCCTTTTTC 0.9670000000000001
+GAAAGCAGAAACTGTTATGTCCCAATCGAAAACAGAACAAAACGCAACCATTTCTGGTTAATGAAAAGCCTGCGGGGTTCTTGCCCCGCAGGCTTTTTTAATCTTTAACAA 1.0
+TGTATTAACATACGGGTTTATCAATCAGCAAAATGACCCGCCATTTATTGTCGCCATCGAAAAAAAAGCTCAGATCAGCAAATGATTTGAGCTTTTTTCTTTGAATTTTTC 0.909
+TAAGCCGATTCTGTTCAAATGGCTGAGAGGAATGTCGAAGAATAAGCGGATCATCATCAAATAAAAAACGGCAGCCATGAAAAAACGGCTGCCGTTTTATTTTTGCTGAAC 0.8140000000000001
+GGACCAGCTGATCGTCCTGCTCAAGAAAGCAGGCATACACAGCCAGCATTTGCTGTTTCGTTAACTATTCTACACTCTCTATTTCAGGAGAGTGTTTTTTTGTTTCCATAT 0.9620000000000001
+TGGGGAACCTTTTTGGGATTGGCGCTACTATACCGCAGAAAATTATTATAGAACAAGATAGTGTGTGATGTATAAGACAGTCATTTTGGCTGTCTTTTTCTGTTATTCAAT 0.982
+GGAGAAATATATCAGGACATCGCAAAAAAAATAGATGCAAAAATGTCAGTGCAGGTATAAAAGGTGAACCGGGATTCCAGATCCCGGCTTTCCCTTTATTCACTTTCTTTT 0.706
+GCAGATTGAGAAAGAAGCGGTTGAGATTGTTAGCGAAGTTCTGAAAAACGCGTAAACACATTTAATAAAAAAAGGGCGGTCGCAAGATCGCCCTTTTTTACGTATGACAAA 0.818
+AAAGGACGGAGCAGTTGCTCTGACCCAATATCCAAAGGATTTGATCATACTGTAATAGAAATAAAAAAGGACTTTGTTCTCGACATCGTCCTTTTTTATCTGCATTAAATA 0.9470000000000001
+ACCCGAAACTGCAGGGTATTGCCCAACAGAACAGCTTTAAACATACCTGATAACGTTTAACGGTAACGGTGTCCCGAAACGAACCCGTTTCGGGACAATTTCCAAAGTCTG 0.16
+TATACGGTAAATGACAAACAGGAACCTGTTTTTTTAGAAAATGATATGAAAAAGGAATGAACCTTTCTCCCTTGCATACAAATAGGGAGAAAGGTTTTTTTATATTAATAG 0.981
+AATCTCCAAGTCTACGAGGACCTTACTGATTTCGGCTGCTGGTTCATCCCCGTCACAGATGAACACTAAGAGAGAGGGTCTCCCCTCTACTCGTGTTCTTTACATAATGTT 0.41700000000000004
+TGAAGATTTAAAAAATCGTCGTTATCAGCGCCTGATGAGCTACGGTTACGCGTAATTCGCAAAAGTTCTGAAAAAGGGTCACTTCGGTGGCCCTTTTTTATCGCCACGGTT 0.934
+ACCGTTCACGTTGATATGCTGATTGTTCCGCTGCGCGACGAAGAAGAATAATCTTCCCTCTACGACGTGTTCCTGAACGCCCGCATATGCGGGCGTTTTGCTTTTTGGCGC 0.9990000000000001
+CTTTTATACACATTGGAGCGCGAATTGTCTGCTTTGCATGACGCGTTTACAGCTAAATAAATGATAAAACTCAAACTTATTAACAGTTTGGGTTTTTTTATAACCGCTATT 0.966
+TCATCCGCTCGTCATCGTTTTCGCCATTCTGTTTTTCATCCAGCTGTTTATTTTATAAGGATAGACCAAAAAACCCAAACGTCGCCGTTTGGGTTTTTTATGTAAACAATA 0.991
+GAATTCGCGAAAAACATGTCTAATGGCGATGTCATGAAAGAAGTTCGTGTAGAAGGCTAATCGGCAGGCAAAAGGCTTCCTCTTAGAGAGGAAGCTTTTTTTATTGGCCAA 0.997
+ATGCACGATCGAGTAGGCGGGATAAGGTGTTTACGCCGCATCCGGCATGGAAAACGCGTACTTTGTTATCAATCTGGGGCCAGCAAATGCTGGCCTGATTTTTTCTTGAGG 0.68
+GATTCGAACAGCTGTATTTGCAGCTGGCGTACAGTCTTCTAAGAAAGTTCAATTTGAAATATTTGACTAAAAGGGAGAGGGCCGGCACCTCCCCTTTTTTTACACGCAAAA 0.973
+TTTAATGAACAAACCGAAAAATATAATAAAGCCCGGGAAGATTTATATGATGCTGCAGGCTATCGTGTGAAAAAGAGCTGACTCGATCAGCTCTTTTTTTGAATGAAATGC 0.937
+CGCCGCTGGATAAACGAATTGAAGCTCTGCGTACGGGTGAATACCTGAAGTAATATGAAGTAAATACTAAAAAGCGCGTCCTGATCGACGCGCTTTTTTTATGCCCTGGAT 0.986
+ACCATTTGCAGGGCTTCTTTTTCAGCAGGCCAATACCTCCGGAACAATTCGAACAATTCATTATTGAACAGCCGTCGCAATAACAGCGCCGGCTTTTTTTCACCCATAAGT 0.8590000000000001
+CGGAACACTTTATATTGGAAGTTATACGAAGCTGATGGCTTTTGGGAAATAACTGAATAGAATAGCAGAAGACCTTCTTTTAATAAGAAGGTCTTCTTACTGTGATACAAA 0.982
+GGCCACACTGATAAAATTGTCATCGCGGATGCCGGACTGCCGGTTCCTGACGGCGTTTTGAAAATTGATCTTTCACTGAAGCCGGGCCTTCCGGCTTTCCAAGATACAGCG 0.561
+CTGTTCGCAATGTACCAGGATAACCAACGGTTAATCGCGGCGCATATGTAATTGCATTTCCTTGAGCCTTATCCGACTTGTCAGTCGGATAAGGCTTTTTACTTTGTCTCA 0.606
+GATGAACTAGAAACGAAAGCTGACAGTAAAGAATCGGCGCAAAAATAGAGTTTAAAGACGGAAGAGTAAACTTATTGGGCACCGCAATGGTGCCCAGTACATTTAGATATT 0.628
+TTTCTATATGATGAGCAAAGAGATTGGCAAGAAGCATTATCTTGAAACAAGAACAGACTCATAATGGAAAGGCCGGTGCTGACAGCATCGGCCTTTTATACATATTGGGCG 1.0
+TCACCGTGTATGCAAAGCATGCGGATCATACAACGGCAAAGACATAAATGTAAAAAGTAACTAATGAGAAAAGCGCAGGGTGAAAGCCCTGCGCTTTTTCTTTTTCTCTTC 0.9990000000000001
+TCGGCGCAGTAATTGGAGTATGGGGAAGTCTGACTTCCATCCGCAAGTTTCTGCGAGTATAAAGTGAAAAAGCCGTTCCGTTTTCGGGACGGCTTTTCATTTGCCTTCTTT 0.996
+ACTCATGGAGAAAAAAGGTCTCGATTCTGAAACTATGTTCACTCACCACGCAAACCTTGAATAGCATCACACAACCGGCCTGAAGATCAGGCCGGTTTTATTTTTTCTAAA 0.975
+GTTGAAGATTTTAACGCTACGCTGCCGAAATCTCGTCTGCCGCAAAACATCACCTTAACCGAAGTGTAATTCTCTCTTGCCGGGCATCTGCCCGGCTATTTCCTCTCAGAT 0.8859999999999999
+CCAATTTTTAGAGCAGGCGGCTGTTCATTCAACAGAGCTTGTGTTAAAGGTGATCAAACGAATTCATTAAAACGGGGAGAACGTTCTCCTCCGTTTTTCTCTAAAAACAAC 0.527
+GGGTATATCGACATTATGAAACAAAACCTCGATGCCCTGAAAGATTCACTATTGGTTAAATCATAAGATAGTGTGCGCCGGAGGGGTGCACACTATTTCTTTGTGAGAAAG 0.963
+TTCACAGCGAAGTATTCGCGAAAGTGATCGTAAACGTAGTAGCTGAATAATTCGTTATTCAACGAGACGTAAAAACGCCGACCATTGGTCGGCGTTTTGCTTTCTATTTTT 0.991
+TTTCGTACTGAAAGGTTGGTGGCGCACTTCCTGAAACGGGCAGTGTATTCACCATGCGTAAAGCAATCAGATACCCAGCCCGCCTAATGAGCGGGCTTTTTTTTGAACAAA 0.9109999999999999
+GATTATATCACGGATACAAATATTGAGGATGGTGTCGCTAAAGCGATTCGCCATTGGGTACTATAAAAAAAGAGAGTCCTAAGATGGACTCTCTTTTTTAGTTTGGCAGGT 1.0
+GAAAAACCGGAGTTAAAACCAGCACCGCCTTTTGTTCATAATACACTTCCGGGACGCGAGTAAAGAGACAAGCCCAAAACATGATGTTTTGGGCTTTGATTATGCCTTCAG 0.975
+CTGGCTGTTGCCGCTAAACAGTCCAGCCTGATGGTTGAGTCACTGGTGCAGAAACTTGCACATGGCTAAGTCACTGTTCAGGGCGCTGGTCGCCCTGTCTTTTCTTGCGCC 0.688
+GCAGATTAAAAACTCACGGGACATTTTCATTTCTTTATATAAAGATTTTGCTTAAGAAGGCAAAGAAAAGAAAACAGTTTTCAAGGCTGTTTTCTTTTTATATCCGCAAAA 0.7829999999999999
+CGGCTGTGATGTGGATAAACCTCGTAACCTTGCGAAGAGTGTTACTGTGGAGTAATAAATGTTTAACCCCTTTGGATAAGATTATCTAAAGGGGTGTTTTTATGTCCAAAA 0.9990000000000001
+AAAATGGGCAAACCGTGGACTAGTACTCCTGCAAAAGTAGATTTACCTAATAGCTAATTTTAAAATCACTTTGTCTTTATCGGGGGACAAAGTGATTCTTTGTTTTATACA 0.961
+AGGCTGAAAAGCTCTCTCATAAAGAGTGACGTGGCGAGCAGGACGCTCCCTCAATATCTTGTTCGATACAAAAAACCCGCTTCAAAAAGCGGGTTTTTTATCAGACAGATG 0.978
+AACGGCTGCAGCTGCTTTCTTGTATTACAGGTACAAGAAACTGACAGGTGCTCAAGCCTAAGCAACAAAAAAACGGACGCCCAAGAGCGTCCGTTTTTTCTTATTTCTCAA 0.9840000000000001
+GGATTATGTGATTGTGAAGAATTCCATTTTTAATGGGGATAAATATTAATCATAAAAAAACGCCAAGTCAGCGGTTCTCCGCTTGAGTTGGCGTTTTCTGCTACTTCTTCA 0.997
+TTCAGTTGAAACGGCAAGAGAGAATGCAAAGAAAGCGTTGGACCAGCTAATTTTAAAATAGAGTTTGAACAGGTCTTGTCATGGGACAAGGCCTGTTTTTTTCTTTCTCCG 0.973
+GACGGAGCACCAATGGCAATTATCGAATTGGTTTAATCACATATTTTTGTGTATCTAAAGAAGGGCGGGACAGTTTCTAACTGGATCTATGCCCTTTTTTTAGATACTGCA 0.732
+CTTGTGGAGCTTGCAAAAGAACGCCACGCTGAAAAACAATTGATTAAGCATACATTCTAATGAAGAAGGACACTGCCGGTAAAAGGGCAGTGTTTTTTCCCGTATATACAA 0.879
+TGTATTGAATTTTCATGATTTTGTAGGCCGGATAAGGCGTTCACGCCGCATCCGGCAAGAAGCTATAAGAAAAGGGCGGAGATCATCTCCGCCCTTTTTATTTCTGCAATC 1.0
+ACTGGCAATGACCAAGACCAATGACGATTTCTTCGAAATGATGAAACGCTCATAAATTTGTCTTATGCCAAAAACGCCACGTGTTTACGTGGCGTTTTGCTTTTATATCTG 0.919
+TCTATTCGTGAAGGCGGACGTACTGTTGGTTCAGGCGTTGTTTCTACAATCACTGAGTAATAGTATGGTTTTAAACGAGACCCCTGTGGGTCTCGTTTTTTGTTTGCTTAT 0.998
+AACGTCTTGTATCTTTTGCTCAACAAAACATGGGCGGAGGACAATTCTAATTTACAATTTCACATAATGGCTTAGGAGTGGGGGTATCCCCACTCTTTTTCATTTTTTACA 0.991
+CGTGACGCTGGCATCAACACTGATAACATCGTAGCTCTGGGTCTGGTTTACCAGTTCTAATCTCGATTGATATCGAACAAAGGGCCTGCGGGCCCTTTTTTCATTGTTTTC 0.971
+GATAGCCCTTTATTTTGTGATTAAGAAACGTACAGCCATATTTAAACGATAGCTAGCGGATATGCATAGGGGTGACTGACGCTCCCCTATGCATATTTTTTTACTTGCGAT 0.826
+GCAGAGGATATTTCTCACAGTGCAAAACGGTTAGCCGAATACATCCAGCAGCCTTTTGTTTAAAATACAGCCCTGTCCAACATACGGCAGGGCTGTATTTGTTTAAAAATC 0.8909999999999999
+GAGCGCAGCTGAATAAATCAGTTGAATCTGTCAAAAATGTCATGAAAGTATTATCCTAATAAAAAGAGAGAAAGGCTTGCTTAATACAGCCTTTCTCTTTTTACTATAAAT 0.9990000000000001
+TATATGGCCAAAAAAGCTGCAGAGAAAAAAGAAGAATAAATCGGACATAATGAATATAAAGACTGAATACCTGCTTTTACGTTTTAAAAGCAGGTTTTTTATACACAAAAA 0.9279999999999999
+TGGAAATGGTCGACGGCACCACGTTGTCACACTCCCTTGCCGGGCGTCATAAGATTCGTTTTTAAGCAAACGAGAGCAGGATCACCTGCTCTCGCTTGAAATTATTCTCCC 0.9
+AGATCTTGCGATTGAATGGATCAGAGAAAATATGGATGGCATTACCGACGTTCTGTAACATAAAAAAGCGAAAGAGCCGAAGAGGCCTTTCGCTTTTTTATTCTGTTGAAT 0.976
+CGGCAAAAAGCTTTCGAAGCACTCTGAATACGGATATTACGGAACCAAGGACAATTTCATGCAAAAATAAATAACGTGCATCGTGCCCGTTATTTATTTTTGCGAAAAAAG 0.845
+AGGCATCGAGAAAGTTGAGACTGACTTTGCAGCAGAAGTTGCTGCGATGTCCAAGCAGTCTTAATTATCAAAAAGGAGCCGCCTGAGGGCGGCTTCTTTTTGTGCCCATCT 0.6559999999999999
+AGACAGCCGATGTGGTCTCTGGAGACGACGCAAAATATGTAGATTGTGACTACGAAAACGGCTGGTGTTAATGTTGGCGGTGAATTTCACTGCCTTCTTTTACAATCTGAA 0.723
+GCCTTGAATAGAGATACAAACTTACAAGCGTTCCGCAATTTCTTCGGAAGCGACAGAGTATAAGAAGAAAAAACCTCTTCCGCATGGGAGAGGTTTTTTTAAACAATAAGG 0.9640000000000001
+CAGTCTGGAGCAAATTACTGTGACCAAACAGCCAAATGGCGATGTTATTATTCAGTGAAACACCTGATCATGATTTAGCCCCGTCTCGTCGGGGCTTTTTTATGGCAGAAT 0.885
+AGCGTACCATTAGAAATATTGATGAACATTCTCTTGATAAAATAGTAGCTATACTAAGAGAGCAAACAAAATAAAAAGCCCGTTTTTGGGCTTTTCTTTTTTTATATGGCT 0.9520000000000001
+ATCATCGGCGGAAATCGCTGATTCAAGTTCTGACTGAAGCTGTTCATATGATATACTGTAAGCAAACGACAAACGGCATCATAGTATGCCGTTTGTTTTGGAATAGACAGA 0.506
+TCAGCCCCGCTTCCGGAGCTGACCGAAAAGAACACATTTCATAATCTGATTCAATGATTAGAAAGTCAAAGTCAGGCATCTCTTGGCTTTGACTTTTTTTCTTGCCCGGGA 0.914
+CTGAACAAGCGGAAGTAACGTGTCATGCGGGCGTCAGGCTGCCGTAATGGCAATTTGCGCCCGGACCAGGCCGCAGGGGGGAAACTCTGCGGCCTTTTTCGTTCTTACTGC 1.0
+TTGAAAGGCTGAGCGTGTTTAAAGACTAAAAAACCCGTCCGATCCGGACAGGCTATAGCGTCTTTTCTTCTGCAGCCGGATACGCATCCGGCTGTTTTTTCTTTATGACCG 0.858
+TATTGTGAGTGAGCGGATGATTGCAAAGTACGTGATTCAAAATGGCAACATCATTTATAGAGGAAAGAGAAAAGGCTCCTGAAACCAGGAGCCTTTTTATTTTTAAAAAAT 1.0
+GGCTAAAACGACTTTATTCCCCTGGTATGTGTATCCACCAGTAGAACCCTTCGTTGCCCGAATGCTGGCAGGAACTGTTGGCAGAACGGCAACATTTTTTTTGTCGTTGAC 0.74
+TAAGCAGACAGCAGAGGGAAAACAGGCCTTCAGAAGGTTCATCGATCAGTTGGGCGCCAAACCAGTCAAAAGCCTCAACCGCTAGGGTTGAGGCTTTTTCGATTTTTATGG 0.9640000000000001
+GAGCAATCCTTACTGGAAAGCAGCATTTAAAGGTGTTGTAAGACGTGTTGTTCAATAATAAATATGACAAGGGCCTTCTATAAACAGAAGGCTCTTTCTTTATTAACATAT 0.9440000000000001
+AAAGGCTGGACAATTCGTCAAAGCGGAAAGAAAAACAAATGCTTGATCAGGCATCATAATCACAATGTCTCCCGCATCGAAGTGAGCGGGAGGCTTTCTTTTTTTAAATAC 0.735
diff --git a/mewtwo/data_processing/compute_te.py b/mewtwo/data_processing/compute_te.py
new file mode 100644
index 0000000..472b09a
--- /dev/null
+++ b/mewtwo/data_processing/compute_te.py
@@ -0,0 +1,14 @@
+def ts_to_te(ts: float) -> float:
+ """
+ Return terminator efficiency from terminator strength
+
+ Parameters
+ ----------
+ ts: float, termination strength, as defined by Chen et al., 2013
+
+ Returns
+ -------
+ te: float, termination efficiency
+ """
+
+ return 1 - 1 / ts
diff --git a/mewtwo/embeddings/bases.py b/mewtwo/embeddings/bases.py
index 732079f..da82a4f 100644
--- a/mewtwo/embeddings/bases.py
+++ b/mewtwo/embeddings/bases.py
@@ -3,19 +3,69 @@
from enum import Flag
+class PairingType(Flag):
+ STRUCTURE_BASED = 1
+ WATSON_CRICK = 2
+ WOBBLE = 4
+ WOBBLE_OR_WATSON_CRICK = WOBBLE | WATSON_CRICK
+
+
class Base(Flag):
A = 1
C = 2
G = 4
T = 8
U = 16
+ ZERO_PADDING = 32
+ DNA = A | T | G | C
+ RNA = A | U | G | C
+ PURINES = A | G
+ PYRIMIDINES = C | T | U
+ TWO_H_BONDS = A | T | U
+ THREE_H_BONDS = C | G
- def __repr__(self):
- return self.name
+BASE_TO_ONEHOT = {Base.A: [1, 0, 0, 0],
+ Base.C: [0, 1, 0, 0],
+ Base.G: [0, 0, 1, 0],
+ Base.T: [0, 0, 0, 1],
+ Base.U: [0, 0, 0, 1],
+ Base.ZERO_PADDING: [0, 0, 0, 0]}
+
+
+def base_to_vector(base: Base, one_hot: bool = False) -> list[int]:
+
+ if one_hot:
+ if base not in BASE_TO_ONEHOT:
+ raise ValueError(f"Not a base: {base}")
+ else:
+ return BASE_TO_ONEHOT[base][:]
+
+ else:
+ if base in Base.PURINES:
+ element_1 = 1
+ element_2 = 0
+ elif base in Base.PYRIMIDINES:
+ element_1 = 0
+ element_2 = 1
+
+ elif base == Base.ZERO_PADDING:
+ element_1 = 0
+ element_2 = 0
+ else:
+ raise ValueError(f"Unknown base: {base}")
+
+ if base in Base.TWO_H_BONDS:
+ element_3 = 2
+ elif base in Base.THREE_H_BONDS:
+ element_3 = 3
+ elif base == Base.ZERO_PADDING:
+ element_3 = 0
+ else:
+ raise ValueError(f"Unknown base: {base}")
+
+ return [element_1, element_2, element_3]
-DNA_BASES = Base.A | Base.T | Base.G | Base.C
-RNA_BASES = Base.A | Base.U | Base.G | Base.C
WATSON_CRICK_PAIRS = [Base.A | Base.T,
Base.A | Base.U,
@@ -26,18 +76,18 @@ def __repr__(self):
@dataclass
class BasePair:
- base_1: Optional[Base]
- base_2: Optional[Base]
+ base_1: Base
+ base_2: Base
h_bonded: bool
def __repr__(self):
- if self.base_1 is None:
+ if self.base_1 == Base.ZERO_PADDING:
repr_base_1 = ' '
else:
repr_base_1 = self.base_1.name
- if self.base_2 is None:
+ if self.base_2 == Base.ZERO_PADDING:
repr_base_2 = ' '
else:
repr_base_2 = self.base_2.name
@@ -64,16 +114,41 @@ def __hash__(self):
return hash((self.base_1, self.base_2, self.h_bonded))
def is_watson_crick(self):
- if self.base_1 and self.base_2 and self.base_1 | self.base_2 in WATSON_CRICK_PAIRS:
+ if self.base_1 | self.base_2 in WATSON_CRICK_PAIRS:
return True
return False
def is_wobble(self):
- if self.base_1 and self.base_2 and self.base_1 | self.base_2 in WOBBLE_PAIRS:
+ if self.base_1 | self.base_2 in WOBBLE_PAIRS:
return True
return False
+ def to_vector(self, one_hot: bool = False,
+ pairing_type: PairingType = PairingType.STRUCTURE_BASED) -> list[int]:
+
+ vector = base_to_vector(self.base_1, one_hot)
+ vector.extend(base_to_vector(self.base_2, one_hot))
+ if pairing_type == PairingType.WOBBLE_OR_WATSON_CRICK:
+
+ if self.is_watson_crick() or self.is_wobble():
+ vector.append(1)
+ else:
+ vector.append(0)
+
+ elif pairing_type == PairingType.STRUCTURE_BASED:
+ if self.h_bonded:
+ vector.append(1)
+ else:
+ vector.append(0)
+
+ elif pairing_type == PairingType.WATSON_CRICK:
+ if self.is_watson_crick():
+ vector.append(1)
+ else:
+ vector.append(0)
+ else:
+ raise ValueError(f"Pairing type must be structure-based, Watson-Crick, or a combination of Watson-Crick and Wobble. Got {pairing_type.name}")
-
+ return vector
diff --git a/mewtwo/embeddings/feature_labels.py b/mewtwo/embeddings/feature_labels.py
new file mode 100644
index 0000000..bf2ac1b
--- /dev/null
+++ b/mewtwo/embeddings/feature_labels.py
@@ -0,0 +1,223 @@
+from typing import Optional
+from enum import Enum, Flag
+from dataclasses import dataclass
+
+from mewtwo.embeddings.sequence import SeqType
+from mewtwo.embeddings.bases import Base
+
+
+class FeatureType(Flag):
+ IS_A = 1
+ IS_C = 2
+ IS_G = 4
+ IS_U = 8
+ IS_PURINE = 16
+ IS_PYRIMIDINE = 32
+ NR_H_BONDS = 64
+ IS_BONDED = 128
+ IS_POT = 256
+ IS_BASE_IDENTITY = IS_A | IS_C | IS_G | IS_U
+ ONE_HOT_TYPES = IS_BASE_IDENTITY | IS_BONDED | IS_POT
+ IS_BASE_FEATURE = IS_PURINE | IS_PYRIMIDINE | NR_H_BONDS
+ BASE_FEATURE_TYPES = IS_BASE_FEATURE | IS_BONDED | IS_POT
+
+ @staticmethod
+ def from_base(base: Base) -> "FeatureType":
+ base_to_feature_type = {Base.A: FeatureType.IS_A,
+ Base.C: FeatureType.IS_C,
+ Base.G: FeatureType.IS_G,
+ Base.U: FeatureType.IS_U,
+ Base.PURINES: FeatureType.IS_PURINE,
+ Base.PYRIMIDINES: FeatureType.IS_PYRIMIDINE}
+
+ assert base in base_to_feature_type
+
+ return base_to_feature_type[base]
+
+
+class FeatureCategory(Enum):
+ A_TRACT = 1
+ STEM = 2
+ LOOP = 3
+ U_TRACT = 4
+
+
+class StemShoulder(Enum):
+ UPSTREAM = 1
+ DOWNSTREAM = 2
+
+
+@dataclass
+class FeatureLabel:
+ feature_type: FeatureType
+ feature_category: FeatureCategory
+ base_index: Optional[int] = None
+ stem_shoulder: Optional[StemShoulder] = None
+
+ def __hash__(self):
+ return hash((self.feature_type, self.feature_category, self.base_index, self.stem_shoulder))
+
+ def __repr__(self):
+
+ if self.feature_category == FeatureCategory.STEM:
+ base_description = f"basepair_{self.base_index}"
+ if self.feature_type != FeatureType.IS_BONDED:
+ base_description = f"{base_description}_{self.stem_shoulder.name}"
+ else:
+ base_description = f"base_{self.base_index}"
+
+ return f"{self.feature_category.name}|{base_description}|{self.feature_type.name}"
+
+ @classmethod
+ def from_string(cls, feature_string: str) -> "FeatureLabel":
+ category, base_information, feature_type = feature_string.split('|')
+ feature_category = FeatureCategory[category]
+ base_info_split = base_information.split('_')[1:]
+ base_index = int(base_info_split[0])
+ feature_type = FeatureType[feature_type.strip()]
+
+ shoulder = None
+ if feature_category == FeatureCategory.STEM and feature_type != FeatureType.IS_BONDED:
+ assert len(base_info_split) == 2
+ shoulder = StemShoulder[base_info_split[1]]
+
+ return cls(feature_type, feature_category, base_index, shoulder)
+
+ @classmethod
+ def from_feature_position(cls, feature_position: int, max_a_tract_length: int,
+ max_stem_length: int, max_loop_length: int,
+ max_u_tract_length: int, seq_type: SeqType = SeqType.RNA,
+ one_hot: bool = False, utract_has_pot: bool = True) -> "FeatureLabel":
+
+ if one_hot:
+ nr_a_tract_features = 4 * max_a_tract_length
+ nr_stem_features = 9 * max_stem_length
+ nr_loop_features = 4 * max_loop_length
+
+ if utract_has_pot:
+ nr_u_tract_features = 5 * max_u_tract_length
+ else:
+ nr_u_tract_features = 4 * max_u_tract_length
+
+ else:
+ nr_a_tract_features = 3 * max_a_tract_length
+ nr_stem_features = 7 * max_stem_length
+ nr_loop_features = 3 * max_loop_length
+
+ if utract_has_pot:
+ nr_u_tract_features = 4 * max_u_tract_length
+ else:
+ nr_u_tract_features = 3 * max_u_tract_length
+
+ if feature_position < nr_a_tract_features:
+ feature_category = FeatureCategory.A_TRACT
+ relative_feature_position = feature_position
+
+ elif feature_position < nr_a_tract_features + nr_stem_features:
+ feature_category = FeatureCategory.STEM
+ relative_feature_position = feature_position - nr_a_tract_features
+
+ elif feature_position < nr_a_tract_features + nr_stem_features + nr_loop_features:
+ feature_category = FeatureCategory.LOOP
+ relative_feature_position = feature_position - nr_a_tract_features - nr_stem_features
+
+ elif feature_position < nr_a_tract_features + nr_stem_features + nr_loop_features + nr_u_tract_features:
+ feature_category = FeatureCategory.U_TRACT
+ relative_feature_position = feature_position - nr_a_tract_features - nr_stem_features - nr_loop_features
+
+ else:
+ raise IndexError(f"Feature position {feature_position} does not exist.")
+
+ if feature_category != FeatureCategory.STEM:
+ feature_type, base_index = cls.get_base_information(one_hot, seq_type, feature_category,
+ relative_feature_position, utract_has_pot)
+ shoulder = None
+ else:
+ feature_type, base_index, shoulder = cls.get_basepair_information(one_hot, seq_type,
+ relative_feature_position)
+
+ return cls(feature_type, feature_category, base_index, shoulder)
+
+ @staticmethod
+ def get_base_information(one_hot: bool, seq_type: SeqType, feature_category: FeatureCategory,
+ relative_feature_position: int,
+ utract_has_pot: bool) -> tuple[FeatureType, Optional[int]]:
+
+ if one_hot:
+ if seq_type == SeqType.RNA:
+ features = [Base.A, Base.C, Base.G, Base.U]
+ elif seq_type == SeqType.DNA:
+ features = [Base.A, Base.C, Base.G, Base.T]
+ else:
+ raise ValueError(f"Unsupported sequence type: {seq_type}")
+
+ else:
+ features = [Base.PURINES, Base.PYRIMIDINES, "hydrogen bonds"]
+
+ if feature_category == FeatureCategory.U_TRACT and utract_has_pot:
+ features.append('POT')
+
+ feature_nr = len(features)
+
+ for i in range(feature_nr):
+ if relative_feature_position % feature_nr == i:
+ feature = features[i]
+ if feature == 'POT':
+ feature_type = FeatureType.IS_POT
+ elif feature == 'hydrogen bonds':
+ feature_type = FeatureType.NR_H_BONDS
+ else:
+ feature_type = FeatureType.from_base(feature)
+
+ base_index = relative_feature_position // feature_nr + 1
+ break
+
+ else:
+ raise ValueError(f"Could not find feature type for feature at {relative_feature_position}")
+
+ return feature_type, base_index
+
+ @staticmethod
+ def get_basepair_information(one_hot: bool, seq_type: SeqType,
+ relative_feature_position: int) -> tuple[FeatureType, Optional[int], Optional[str]]:
+ if one_hot:
+ feature_nr = 9
+ if seq_type == SeqType.RNA:
+ features = [Base.A, Base.C, Base.G, Base.U, Base.A, Base.C, Base.G, Base.U, 'bonded']
+ elif seq_type == SeqType.DNA:
+ features = [Base.A, Base.C, Base.G, Base.T, Base.A, Base.C, Base.G, Base.T, 'bonded']
+ else:
+ raise ValueError(f"Unsupported sequence type: {seq_type}")
+
+ else:
+ feature_nr = 7
+ features = [Base.PURINES, Base.PYRIMIDINES, 'hydrogen bonds',
+ Base.PURINES, Base.PYRIMIDINES, 'hydrogen bonds', 'bonded']
+
+ stem_shoulder: Optional[StemShoulder] = None
+
+ for i in range(feature_nr):
+ if relative_feature_position % feature_nr == i:
+ feature = features[i]
+ base_index = relative_feature_position // feature_nr + 1
+
+ if feature != 'bonded':
+ if i < len(features) // 2:
+ stem_shoulder = StemShoulder.UPSTREAM
+
+ else:
+ stem_shoulder = StemShoulder.DOWNSTREAM
+
+ if feature != 'hydrogen bonds':
+ feature_type = FeatureType.from_base(feature)
+ else:
+ feature_type = FeatureType.NR_H_BONDS
+
+ else:
+ feature_type = FeatureType.IS_BONDED
+ break
+ else:
+
+ raise ValueError(f"Could not find feature type for feature at {relative_feature_position}")
+
+ return feature_type, base_index, stem_shoulder
diff --git a/mewtwo/embeddings/sequence.py b/mewtwo/embeddings/sequence.py
index 5335bbb..2da3868 100644
--- a/mewtwo/embeddings/sequence.py
+++ b/mewtwo/embeddings/sequence.py
@@ -1,6 +1,6 @@
from enum import Flag
from typing import Union
-from mewtwo.embeddings.bases import Base, DNA_BASES, RNA_BASES
+from mewtwo.embeddings.bases import Base, base_to_vector
class SeqType(Flag):
@@ -13,6 +13,8 @@ def __init__(self, sequence: str, seq_type: SeqType = SeqType['DNA']):
self.sequence = sequence.upper()
self.seq_type = seq_type
self._check_sequence()
+ self.seq_length = len(sequence)
+ self.__current_index = 0
def __eq__(self, other):
if self.sequence == other.sequence and type(self) == type(other):
@@ -26,6 +28,17 @@ def __hash__(self):
def __repr__(self):
return self.sequence
+ def __iter__(self):
+ return type(self)(self.sequence)
+
+ def __next__(self) -> Base:
+ if self.__current_index < self.seq_length:
+ base = Base[self.sequence[self.__current_index]]
+ self.__current_index += 1
+ return base
+ else:
+ raise StopIteration
+
def __getitem__(self, index: Union[slice, int]) -> Union['Sequence', 'RNASequence', 'DNASequence', Base]:
if isinstance(index, int):
return Base[self.sequence[index]]
@@ -40,18 +53,26 @@ def _check_sequence(self):
if self.seq_type == SeqType.DNA:
try:
base = Base[character]
- if base not in DNA_BASES:
+ if base not in Base.DNA:
raise ValueError(f"DNA sequence must be comprised of bases A, T, C, and G. Found {character} in {self.sequence}")
except KeyError:
raise ValueError(f"DNA sequence must be comprised of bases A, T, C, and G. Found {character} in {self.sequence}")
elif self.seq_type == SeqType.RNA:
try:
base = Base[character]
- if base not in RNA_BASES:
+ if base not in Base.RNA:
raise ValueError(f"RNA sequence must be comprised of bases A, C, G and U. Found {character} in {self.sequence}")
except KeyError:
raise ValueError(f"RNA sequence must be comprised of bases A, C, G, and U. Found {character} in {self.sequence}")
+ def to_vector(self, one_hot: bool = False) -> list[int]:
+ vector = []
+ for character in self.sequence:
+ base = Base[character]
+ vector.extend(base_to_vector(base, one_hot=one_hot))
+
+ return vector
+
class DNASequence(Sequence):
def __init__(self, sequence):
@@ -102,8 +123,6 @@ def get_sequence_type(sequence: str) -> SeqType:
except ValueError:
pass
- seq_types = []
-
if is_dna and is_rna:
return SeqType.DNA | SeqType.RNA
elif is_dna:
@@ -111,4 +130,4 @@ def get_sequence_type(sequence: str) -> SeqType:
elif is_rna:
return SeqType.RNA
else:
- raise ValueError("Sequence is not DNA or RNA")
+ raise ValueError(f"Sequence is not DNA or RNA: {sequence}")
diff --git a/mewtwo/embeddings/terminator/a_tract.py b/mewtwo/embeddings/terminator/a_tract.py
new file mode 100644
index 0000000..ce62e26
--- /dev/null
+++ b/mewtwo/embeddings/terminator/a_tract.py
@@ -0,0 +1,23 @@
+from mewtwo.embeddings.sequence import RNASequence, DNASequence, get_sequence_type, SeqType, convert_to_rna
+from mewtwo.embeddings.bases import Base, base_to_vector
+
+
+class ATract:
+ def __init__(self, sequence: str) -> None:
+
+ seq_type = get_sequence_type(sequence)
+ if SeqType.RNA in seq_type:
+ sequence = RNASequence(sequence)
+ else:
+ sequence = convert_to_rna(DNASequence(sequence))
+ self.sequence = sequence
+
+ def to_vector(self, a_tract_size: int = 10, one_hot: bool = False) -> list[int]:
+ vector: list[int] = []
+ if len(self.sequence) < a_tract_size:
+ for i in range(a_tract_size - len(self.sequence)):
+ vector.extend(base_to_vector(Base.ZERO_PADDING, one_hot))
+ for base in self.sequence[-a_tract_size:]:
+ vector.extend(base_to_vector(base, one_hot))
+
+ return vector
diff --git a/mewtwo/embeddings/terminator/draw_terminator.py b/mewtwo/embeddings/terminator/draw_terminator.py
new file mode 100644
index 0000000..624f16a
--- /dev/null
+++ b/mewtwo/embeddings/terminator/draw_terminator.py
@@ -0,0 +1,251 @@
+from dataclasses import dataclass, field
+import os
+
+from math import pi, sin, cos
+
+from mewtwo.embeddings.terminator.terminator import get_terminator_part_sizes, Terminator
+from mewtwo.parsers.parse_feature_file import parse_feature_file
+from mewtwo.machine_learning.feature_inference.infer_features_rf import sum_importance_per_base, \
+ normalize_importances, SortedFeatures
+
+from mewtwo.embeddings.feature_labels import FeatureLabel, FeatureCategory, FeatureType
+
+
+@dataclass
+class Point:
+ x: float
+ y: float
+
+ def rotate_around_origin(self, angle):
+ new_x = self.x * cos(angle) - self.y * sin(angle)
+ new_y = self.x * sin(angle) + self.y * cos(angle)
+ self.x = new_x
+ self.y = new_y
+
+ def move(self, x, y):
+ self.x += x
+ self.y += y
+
+
+def get_extremes(points: list[Point]) -> tuple[float, float, float, float]:
+ return min([point.x for point in points]), max([point.x for point in points]), \
+ min([point.y for point in points]), max([point.y for point in points])
+
+
+@dataclass
+class TerminatorDrawingOptions:
+ base_diameter: float = 20
+ circle_diameter: float = 15
+ color: tuple[int, int, int] = (255, 0, 0)
+
+ def __hash__(self):
+ return hash((self.base_diameter, self.circle_diameter, self.color))
+
+
+DEFAULT_OPTIONS = TerminatorDrawingOptions()
+
+
+@dataclass
+class BaseDrawing:
+ centre: Point
+ radius: float
+ color: tuple[int, int, int] = (255, 0, 0)
+ transparency: float = 1.0
+
+ def get_svg_circle(self):
+ return f'\n'
+
+
+@dataclass
+class Line:
+ point_1: Point
+ point_2: Point
+
+ def get_svg_line(self):
+ return f''
+
+
+@dataclass
+class TerminatorDrawing:
+ loop_size: int
+ stem_size: int
+ a_tract_size: int
+ u_tract_size: int
+ options: TerminatorDrawingOptions = DEFAULT_OPTIONS
+ feature_to_importance: dict[FeatureLabel, float] = field(default_factory=dict)
+
+ @classmethod
+ def from_feature_file(cls, feature_file: str, features_to_visualise: FeatureType,
+ options: TerminatorDrawingOptions = DEFAULT_OPTIONS) -> "TerminatorDrawing":
+ feature_to_importance = parse_feature_file(feature_file)
+ feature_category_to_size = {FeatureCategory.STEM: 0,
+ FeatureCategory.LOOP: 0,
+ FeatureCategory.U_TRACT: 0,
+ FeatureCategory.A_TRACT: 0}
+
+ for feature_label in feature_to_importance:
+ if feature_category_to_size[feature_label.feature_category] < feature_label.base_index:
+ feature_category_to_size[feature_label.feature_category] = feature_label.base_index
+
+ selected_features_to_importance = {}
+
+ for feature, importance in feature_to_importance.items():
+ if feature.feature_type in features_to_visualise:
+ selected_features_to_importance[feature] = importance
+
+ if len(features_to_visualise) > 1:
+ selected_features_to_importance = sum_importance_per_base(selected_features_to_importance)
+
+ return cls(feature_category_to_size[FeatureCategory.LOOP],
+ feature_category_to_size[FeatureCategory.STEM],
+ feature_category_to_size[FeatureCategory.A_TRACT],
+ feature_category_to_size[FeatureCategory.U_TRACT], options=options,
+ feature_to_importance=selected_features_to_importance)
+
+ @classmethod
+ def from_terminators(cls, terminators: list[Terminator],
+ drawing_options: TerminatorDrawingOptions = DEFAULT_OPTIONS) -> "TerminatorDrawing":
+
+ max_loop, max_stem, max_a, max_u = get_terminator_part_sizes(terminators)
+ return cls(max_loop, max_stem, max_a, max_u, drawing_options)
+
+ def get_svg(self):
+ transparencies = []
+
+ loop_coords = self.get_loop_coords()
+ min_x, max_x, min_y, max_y = get_extremes(loop_coords)
+ x_translation = -1 * min(0.0, min_x) + 10
+ y_translation = -1 * min(0.0, min_y) + 10
+
+ for loop_coord in loop_coords:
+ loop_coord.move(x_translation, y_translation)
+
+ circle_radius = self.options.circle_diameter / 2
+
+ loop = []
+ for loop_coord in loop_coords:
+ loop.append(BaseDrawing(loop_coord, circle_radius))
+ transparencies.append(0.0)
+
+ stem_left_x = loop_coords[0].x
+ stem_right_x = loop_coords[-1].x
+
+ stem_y = loop_coords[0].y
+
+ left_stem_coords = []
+ right_stem_coords = []
+ lines = [Line(Point(stem_left_x + circle_radius, stem_y), Point(stem_right_x - circle_radius, stem_y))]
+
+ for i in range(self.stem_size - 1):
+ stem_y += self.options.base_diameter
+
+ left_stem_coords.append(Point(stem_left_x, stem_y))
+ right_stem_coords.append(Point(stem_right_x, stem_y))
+ lines.append(Line(Point(stem_left_x + circle_radius, stem_y), Point(stem_right_x - circle_radius, stem_y)))
+ transparencies.append(0.0)
+ transparencies.append(0.0)
+
+ left_stem_coords.reverse()
+ right_stem_coords.reverse()
+
+ tract_y = left_stem_coords[0].y
+
+ a_tract_x = left_stem_coords[0].x
+ u_tract_x = right_stem_coords[0].x
+
+ a_tract_coords = []
+ u_tract_coords = []
+
+ for i in range(self.a_tract_size):
+ a_tract_x -= self.options.base_diameter
+ a_tract_coords.append(Point(a_tract_x, tract_y))
+ transparencies.append(0.0)
+
+ a_tract_coords.reverse()
+
+ for i in range(self.u_tract_size):
+ u_tract_x += self.options.base_diameter
+ u_tract_coords.append(Point(u_tract_x, tract_y))
+ transparencies.append(0.0)
+
+ base_coords = a_tract_coords + left_stem_coords + right_stem_coords + loop_coords + u_tract_coords
+
+ if self.feature_to_importance is not None:
+ normalize_importances(self.feature_to_importance)
+ sorted_features = SortedFeatures(self.feature_to_importance)
+ loop_transparencies = [sorted_features.left_stem_shoulder[-1][1]] + [x[1] for x in sorted_features.loop] + [sorted_features.right_stem_shoulder[-1][1]]
+ left_shoulder_transparencies = [x[1] for x in sorted_features.left_stem_shoulder[:-1]]
+ right_shoulder_transparencies = [x[1] for x in sorted_features.right_stem_shoulder[:-1]]
+ a_tract_transparencies = [x[1] for x in sorted_features.a_tract]
+ u_tract_transparencies = [x[1] for x in sorted_features.u_tract]
+ transparencies = a_tract_transparencies + left_shoulder_transparencies + right_shoulder_transparencies + loop_transparencies + u_tract_transparencies
+
+ min_x, max_x, min_y, max_y = get_extremes(base_coords)
+ viewbox = f"0 0 {int(max_x) + 10} {int(max_y) + 10}"
+
+ header = f''
+
+ return header + style + body + footer
+
+ def write_svg(self, out_file):
+ svg_string = self.get_svg()
+ with open(out_file, 'w') as out:
+ out.write(svg_string)
+
+ def get_loop_coords(self):
+ nr_polygon_sides = self.loop_size + 2
+ theta = 2 * pi / nr_polygon_sides
+
+ r = self.options.base_diameter / (2 * sin(pi / nr_polygon_sides))
+
+ angle = pi / nr_polygon_sides
+ loop_centres = []
+
+ while angle < 2 * pi:
+ coords = Point(cos(angle) * r, sin(angle) * r)
+ loop_centres.append(coords)
+ angle += theta
+
+ for base_centre in loop_centres:
+ base_centre.rotate_around_origin(pi / 2)
+
+ return loop_centres
+
+
+def visualise_feature_importances(feature_file, out_dir):
+
+ if not os.path.exists(out_dir):
+ os.mkdir(out_dir)
+
+ out_a = os.path.join(out_dir, "is_a.svg")
+ out_c = os.path.join(out_dir, "is_c.svg")
+ out_u = os.path.join(out_dir, "is_u.svg")
+ out_g = os.path.join(out_dir, "is_g.svg")
+ out_all = os.path.join(out_dir, "all_features.svg")
+
+ terminator_drawing = TerminatorDrawing.from_feature_file(feature_file, FeatureType.ONE_HOT_TYPES)
+ terminator_drawing.write_svg(out_all)
+
+ terminator_drawing = TerminatorDrawing.from_feature_file(feature_file, FeatureType.IS_A)
+ terminator_drawing.write_svg(out_a)
+
+ terminator_drawing = TerminatorDrawing.from_feature_file(feature_file, FeatureType.IS_U)
+ terminator_drawing.write_svg(out_u)
+
+ terminator_drawing = TerminatorDrawing.from_feature_file(feature_file, FeatureType.IS_G)
+ terminator_drawing.write_svg(out_g)
+
+ terminator_drawing = TerminatorDrawing.from_feature_file(feature_file, FeatureType.IS_C)
+ terminator_drawing.write_svg(out_c)
diff --git a/mewtwo/embeddings/terminator/hairpin.py b/mewtwo/embeddings/terminator/hairpin.py
index c7138d1..8897ca5 100644
--- a/mewtwo/embeddings/terminator/hairpin.py
+++ b/mewtwo/embeddings/terminator/hairpin.py
@@ -1,13 +1,20 @@
+from enum import Enum
+from typing import Optional
+
from mewtwo.embeddings.terminator.loop import Loop
from mewtwo.embeddings.terminator.stem import Stem
from mewtwo.embeddings.bases import BasePair, Base
from mewtwo.embeddings.sequence import DNASequence, RNASequence, get_sequence_type, convert_to_rna, SeqType
+class HairpinType(Enum):
+ RNAFOLD = 1
+ TRANSTERMHP = 2
+
+
class Hairpin:
- def __init__(self, hairpin_id: str, distance_to_pot: int,
- prediction_software: str):
- assert prediction_software in ["RNAFold", "TransTermHP"]
+ def __init__(self, hairpin_id: str,
+ prediction_software: HairpinType, distance_to_pot: Optional[int] = None):
self.hairpin_id = hairpin_id
self.distance_to_pot = distance_to_pot
@@ -15,6 +22,8 @@ def __init__(self, hairpin_id: str, distance_to_pot: int,
self.prediction_software = prediction_software
self.hairpin_sequence = None
self.hairpin_structure = None
+ self.loop = None
+ self.stem = None
def __eq__(self, other):
if type(self) != other(type):
@@ -36,7 +45,7 @@ def contains_multiple_hairpins(self):
return False
- def get_hairpin_parts(self):
+ def set_hairpin_parts(self):
assert not self.contains_multiple_hairpins()
last_left_shoulder = 0
@@ -55,10 +64,8 @@ def get_hairpin_parts(self):
right_shoulder_structure = self.hairpin_structure[first_right_shoulder:]
right_shoulder_sequence = self.hairpin_sequence[first_right_shoulder:]
- loop = Loop(loop_sequence, loop_structure)
- stem = Stem(left_shoulder_sequence, left_shoulder_structure, right_shoulder_sequence, right_shoulder_structure)
-
- return loop, stem
+ self.loop = Loop(loop_sequence, loop_structure)
+ self.stem = Stem(left_shoulder_sequence, left_shoulder_structure, right_shoulder_sequence, right_shoulder_structure)
def to_vector(self, max_stem_size, max_loop_size):
assert self.hairpin_sequence is not None and self.hairpin_structure is not None
@@ -66,8 +73,9 @@ def to_vector(self, max_stem_size, max_loop_size):
class RNAFoldHairpin(Hairpin):
- def __init__(self, hairpin_id, distance_to_pot, free_energy, hairpin_sequence, hairpin_structure):
- super().__init__(hairpin_id, distance_to_pot, "RNAFold")
+ def __init__(self, hairpin_id: str, free_energy: float, hairpin_sequence: str, hairpin_structure: str,
+ distance_to_pot: Optional[int] = None):
+ super().__init__(hairpin_id, HairpinType.RNAFOLD, distance_to_pot)
seq_type = get_sequence_type(hairpin_sequence)
if SeqType.RNA in seq_type:
sequence = RNASequence(hairpin_sequence)
@@ -76,15 +84,19 @@ def __init__(self, hairpin_id, distance_to_pot, free_energy, hairpin_sequence, h
self.hairpin_sequence = sequence
self.hairpin_structure = hairpin_structure
self.free_energy = free_energy
+ if not self.contains_multiple_hairpins():
+ self.set_hairpin_parts()
class TransTermHPHairpin(Hairpin):
- def __init__(self, hairpin_id, distance_to_pot, hairpin_score, hairpin):
- super().__init__(hairpin_id, distance_to_pot, "TransTermHP")
+ def __init__(self, hairpin_id, hairpin_score, hairpin, distance_to_pot: Optional[int] = None):
+ super().__init__(hairpin_id, HairpinType.TRANSTERMHP, distance_to_pot)
self.set_hairpin_sequence(hairpin)
self.set_hairpin_structure(hairpin)
self.hairpin_score = hairpin_score
+ if not self.contains_multiple_hairpins():
+ self.set_hairpin_parts()
def set_hairpin_sequence(self, hairpin):
diff --git a/mewtwo/embeddings/terminator/loop.py b/mewtwo/embeddings/terminator/loop.py
index 2d466f0..378a67a 100644
--- a/mewtwo/embeddings/terminator/loop.py
+++ b/mewtwo/embeddings/terminator/loop.py
@@ -1,7 +1,52 @@
from mewtwo.embeddings.sequence import RNASequence
+from mewtwo.embeddings.bases import Base, base_to_vector
class Loop:
def __init__(self, loop_sequence: RNASequence, loop_structure: str) -> None:
self.sequence = loop_sequence
self.structure = loop_structure
+
+ def to_vector(self, max_loop_size, one_hot=False):
+ assert len(self.sequence) <= max_loop_size
+ assert max_loop_size % 2 == 1
+
+ if len(self.sequence) % 2 == 0:
+ center_base = Base.ZERO_PADDING
+ else:
+ center_base = self.sequence[len(self.sequence) // 2]
+ center_vector = base_to_vector(center_base, one_hot=one_hot)
+ padding = (max_loop_size - len(self.sequence)) // 2
+ left_padding = []
+ right_padding = []
+ for i in range(padding):
+ left_padding.extend(base_to_vector(Base.ZERO_PADDING, one_hot=one_hot))
+ right_padding.extend(base_to_vector(Base.ZERO_PADDING, one_hot=one_hot))
+
+ left_vector = []
+ right_vector = []
+ for i, base in enumerate(self.sequence):
+ if i < len(self.sequence) // 2:
+
+ left_vector.extend(base_to_vector(base, one_hot=one_hot))
+ elif i >= len(self.sequence) / 2:
+ right_vector.extend(base_to_vector(base, one_hot=one_hot))
+
+ vector = left_padding + left_vector + center_vector + right_vector + right_padding
+ return vector
+
+
+def get_max_loop_size(loops: list[Loop]) -> int:
+ max_loop_size = 0
+ for loop in loops:
+ loop_size = len(loop.sequence)
+ if loop_size > max_loop_size:
+
+ max_loop_size = loop_size
+
+
+ if max_loop_size % 2 == 0:
+
+ max_loop_size += 1
+
+ return max_loop_size
diff --git a/mewtwo/embeddings/terminator/stem.py b/mewtwo/embeddings/terminator/stem.py
index 0e0a09d..e8325df 100644
--- a/mewtwo/embeddings/terminator/stem.py
+++ b/mewtwo/embeddings/terminator/stem.py
@@ -1,4 +1,4 @@
-from mewtwo.embeddings.bases import BasePair, Base
+from mewtwo.embeddings.bases import BasePair, Base, PairingType
from mewtwo.embeddings.sequence import RNASequence
@@ -12,6 +12,7 @@ def __init__(self, upstream_sequence: RNASequence, upstream_structure: str,
self.upstream_structure = upstream_structure
self.downstream_sequence = downstream_sequence
self.downstream_structure = downstream_structure
+ self.basepairs = self.get_basepairs()
def get_basepairs(self):
basepairs = []
@@ -23,7 +24,7 @@ def get_basepairs(self):
for i, character in enumerate(self.upstream_structure):
if character == '(':
while reverse_downstream_structure[downstream_index] != ')':
- basepairs.append(BasePair(None, reverse_downstream_sequence[downstream_index], False))
+ basepairs.append(BasePair(Base.ZERO_PADDING, reverse_downstream_sequence[downstream_index], False))
downstream_index += 1
basepairs.append(
BasePair(self.upstream_sequence[i], reverse_downstream_sequence[downstream_index], True))
@@ -35,10 +36,29 @@ def get_basepairs(self):
reverse_downstream_sequence[downstream_index], False))
downstream_index += 1
else:
- basepairs.append(BasePair(self.upstream_sequence[i], None, False))
+ basepairs.append(BasePair(self.upstream_sequence[i], Base.ZERO_PADDING, False))
return basepairs
+ def to_vector(self, max_stem_size: int, one_hot: bool = False,
+ pairing_type: PairingType = PairingType.STRUCTURE_BASED) -> list[int]:
+ vector = []
- def to_vector(self, max_stem_size):
- pass
+ for i in range(max_stem_size):
+ try:
+ basepair = self.basepairs[i]
+ except IndexError:
+ basepair = BasePair(Base.ZERO_PADDING, Base.ZERO_PADDING, False)
+ vector.extend(basepair.to_vector(one_hot=one_hot, pairing_type=pairing_type))
+
+ return vector
+
+
+def get_max_stem_size(stems: list[Stem]) -> int:
+ max_stem_size = 0
+ for stem in stems:
+ stem_size = len(stem.basepairs)
+ if stem_size > max_stem_size:
+ max_stem_size += 1
+
+ return max_stem_size
diff --git a/mewtwo/embeddings/terminator/terminator.py b/mewtwo/embeddings/terminator/terminator.py
new file mode 100644
index 0000000..a5baa15
--- /dev/null
+++ b/mewtwo/embeddings/terminator/terminator.py
@@ -0,0 +1,62 @@
+from typing import Union, Optional
+
+from mewtwo.embeddings.terminator.hairpin import RNAFoldHairpin, TransTermHPHairpin
+from mewtwo.embeddings.terminator.a_tract import ATract
+from mewtwo.embeddings.terminator.u_tract import UTract
+from mewtwo.embeddings.sequence import RNASequence
+from mewtwo.embeddings.terminator.loop import get_max_loop_size
+
+
+class Terminator:
+ def __init__(self,
+ hairpin: Union[RNAFoldHairpin, TransTermHPHairpin], a_tract: ATract, u_tract: UTract,
+ sequence: RNASequence,
+ termination_efficiency: Optional[float] = None,
+ start: Optional[int] = None, end: Optional[int] = None, pot: Optional[int] = None,
+ species: Optional[str] = None, chromosome: Optional[str] = None, strand: Optional[str] = None,
+ is_synthetic: bool = False):
+ self.start = start
+ self.end = end
+ self.pot = pot
+ self.species = species
+ self.chromosome = chromosome
+ self.te = termination_efficiency
+ self.sequence = sequence
+ self.strand = strand
+
+ self.hairpin = hairpin
+ self.a_tract = a_tract
+ self.u_tract = u_tract
+ self.is_synthetic = is_synthetic
+
+ def to_vector(self, max_loop_size: int, max_stem_size: int = 10, a_tract_size: int = 10, u_tract_size: int = 10,
+ one_hot: bool = False) -> list[int]:
+ assert not self.hairpin.contains_multiple_hairpins()
+ vector = []
+ vector.extend(self.a_tract.to_vector(a_tract_size=a_tract_size, one_hot=one_hot))
+ vector.extend(self.hairpin.stem.to_vector(max_stem_size=max_stem_size, one_hot=one_hot))
+ vector.extend(self.hairpin.loop.to_vector(max_loop_size=max_loop_size, one_hot=one_hot))
+ vector.extend(self.u_tract.to_vector(u_tract_size=u_tract_size, one_hot=one_hot))
+ return vector
+
+ def get_base_coords(self, max_loop_size, max_stem_size, a_tract_size, u_tract_size):
+ pass
+
+
+def get_terminator_part_sizes(terminators: list[Terminator]) -> tuple[int, int, int, int]:
+ loops = []
+ a_tracts = []
+ u_tracts = []
+ stems = []
+ for terminator in terminators:
+ loops.append(terminator.hairpin.loop)
+ a_tracts.append(terminator.a_tract)
+ u_tracts.append(terminator.u_tract)
+ stems.append(terminator.hairpin.stem)
+
+ max_loop_size = get_max_loop_size(loops)
+ max_stem_size = max([len(stem.basepairs) for stem in stems])
+ max_a_tract_size = max([len(a_tract.sequence) for a_tract in a_tracts])
+ max_u_tract_size = max([len(u_tract.sequence) for u_tract in u_tracts])
+
+ return max_loop_size, max_stem_size, max_a_tract_size, max_u_tract_size
diff --git a/mewtwo/embeddings/terminator/test/test_a_tract.py b/mewtwo/embeddings/terminator/test/test_a_tract.py
new file mode 100644
index 0000000..055b010
--- /dev/null
+++ b/mewtwo/embeddings/terminator/test/test_a_tract.py
@@ -0,0 +1,39 @@
+import unittest
+
+from mewtwo.embeddings.terminator.a_tract import ATract
+from mewtwo.embeddings.sequence import RNASequence
+
+
+class TestATract(unittest.TestCase):
+ def test_to_vector(self):
+ a_tract_1 = ATract("ACGU")
+
+ self.assertEqual(a_tract_1.to_vector(4), [1, 0, 2,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2])
+ self.assertEqual(a_tract_1.to_vector(3), [0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2])
+ self.assertEqual(a_tract_1.to_vector(5), [0, 0, 0,
+ 1, 0, 2,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2])
+
+ self.assertEqual(a_tract_1.to_vector(4, one_hot=True), [1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1])
+ self.assertEqual(a_tract_1.to_vector(3, one_hot=True), [0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1])
+ self.assertEqual(a_tract_1.to_vector(5, one_hot=True), [0, 0, 0, 0,
+ 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1])
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/mewtwo/embeddings/terminator/test/test_hairpin.py b/mewtwo/embeddings/terminator/test/test_hairpin.py
index 962f685..1307a65 100644
--- a/mewtwo/embeddings/terminator/test/test_hairpin.py
+++ b/mewtwo/embeddings/terminator/test/test_hairpin.py
@@ -5,22 +5,22 @@
class TestHairpin(unittest.TestCase):
def test_contains_multiple_hairpins(self):
self.assertTrue(
- RNAFoldHairpin("example_rnafold_true", 5, -9.8, 'tggggccaaacggtgccggtaagaccacca',
- '.((.(((....))).))(((......))).').contains_multiple_hairpins())
+ RNAFoldHairpin("example_rnafold_true", -9.8, 'tggggccaaacggtgccggtaagaccacca',
+ '.((.(((....))).))(((......))).', 5).contains_multiple_hairpins())
self.assertTrue(
- RNAFoldHairpin("example_rnafold_true", 5, -9.8, 'ccattaggaaaggattacc',
- '((....))...((....))').contains_multiple_hairpins())
+ RNAFoldHairpin("example_rnafold_true", -9.8, 'ccattaggaaaggattacc',
+ '((....))...((....))', 5).contains_multiple_hairpins())
self.assertFalse(
- RNAFoldHairpin("example_rnafold_false", 3, -9.1, 'cccacccgaggggtggg',
- '(((((((...)))))))').contains_multiple_hairpins())
+ RNAFoldHairpin("example_rnafold_false", -9.1, 'cccacccgaggggtggg',
+ '(((((((...)))))))', 3).contains_multiple_hairpins())
self.assertFalse(
- RNAFoldHairpin("example_rnafold_false", 3, -9.1, 'cccatcccgaggggtggg',
- '((((.(((...)))))))').contains_multiple_hairpins())
+ RNAFoldHairpin("example_rnafold_false", -9.1, 'cccatcccgaggggtggg',
+ '((((.(((...)))))))', 3).contains_multiple_hairpins())
self.assertFalse(
- TransTermHPHairpin("example_transtermhp_false", 5, -9.8, 'a-tg aaa caat').contains_multiple_hairpins())
+ TransTermHPHairpin("example_transtermhp_false", -9.8, 'a-tg aaa caat', 5).contains_multiple_hairpins())
self.assertFalse(
- TransTermHPHairpin("example_transtermhp_false", 5, -9.8, 'atg aaa cat').contains_multiple_hairpins())
+ TransTermHPHairpin("example_transtermhp_false", -9.8, 'atg aaa cat', 5).contains_multiple_hairpins())
if __name__ == '__main__':
diff --git a/mewtwo/embeddings/terminator/test/test_loop.py b/mewtwo/embeddings/terminator/test/test_loop.py
index fdf3312..d333534 100644
--- a/mewtwo/embeddings/terminator/test/test_loop.py
+++ b/mewtwo/embeddings/terminator/test/test_loop.py
@@ -1,6 +1,55 @@
import unittest
+from mewtwo.embeddings.sequence import RNASequence
+from mewtwo.embeddings.terminator.loop import Loop
+
+
+class TestLoop(unittest.TestCase):
+ def test_to_vector(self):
+ loop_01 = Loop(RNASequence("AGCGU"), '.....')
+
+ self.assertEqual(loop_01.to_vector(max_loop_size=5), [1, 0, 2,
+ 1, 0, 3,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2])
+
+ self.assertEqual(loop_01.to_vector(max_loop_size=9), [0, 0, 0,
+ 0, 0, 0,
+ 1, 0, 2,
+ 1, 0, 3,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2,
+ 0, 0, 0,
+ 0, 0, 0])
+
+ loop_02 = Loop(RNASequence("AGCCGU"), '......')
+
+ with self.assertRaises(AssertionError):
+ loop_02.to_vector(max_loop_size=5)
+
+ with self.assertRaises(AssertionError):
+ loop_02.to_vector(max_loop_size=6)
+
+ self.assertEqual(loop_02.to_vector(max_loop_size=7), [1, 0, 2,
+ 1, 0, 3,
+ 0, 1, 3,
+ 0, 0, 0,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2])
+
+ self.assertEqual(loop_02.to_vector(max_loop_size=9), [0, 0, 0,
+ 1, 0, 2,
+ 1, 0, 3,
+ 0, 1, 3,
+ 0, 0, 0,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2,
+ 0, 0, 0])
+
if __name__ == '__main__':
unittest.main()
-
diff --git a/mewtwo/embeddings/terminator/test/test_stem.py b/mewtwo/embeddings/terminator/test/test_stem.py
index 488c778..31d98bd 100644
--- a/mewtwo/embeddings/terminator/test/test_stem.py
+++ b/mewtwo/embeddings/terminator/test/test_stem.py
@@ -1,6 +1,6 @@
import unittest
from mewtwo.embeddings.terminator.stem import Stem
-from mewtwo.embeddings.bases import BasePair, Base
+from mewtwo.embeddings.bases import BasePair, Base, PairingType
from mewtwo.embeddings.sequence import RNASequence
@@ -9,37 +9,42 @@ def test_get_basepairs(self):
simple_stem = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
BasePair(Base.A, Base.U, True)]
upstream_bulge = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
- BasePair(Base.A, None, False),
+ BasePair(Base.A, Base.ZERO_PADDING, False),
BasePair(Base.U, Base.A, True)]
downstream_bulge = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
- BasePair(None, Base.U, False),
+ BasePair(Base.ZERO_PADDING, Base.U, False),
BasePair(Base.U, Base.A, True)]
mismatch = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
BasePair(Base.U, Base.U, False), BasePair(Base.U, Base.A, True)]
mismatched_closing_stack = [BasePair(Base.G, Base.G, False), BasePair(Base.A, Base.U, True),
BasePair(Base.A, Base.U, True), BasePair(Base.U, Base.A, True)]
double_upstream_bulge = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
- BasePair(Base.A, None, False),
- BasePair(Base.A, None, False), BasePair(Base.U, Base.A, True)]
+ BasePair(Base.A, Base.ZERO_PADDING, False),
+ BasePair(Base.A, Base.ZERO_PADDING, False), BasePair(Base.U, Base.A, True)]
double_downstream_bulge = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
- BasePair(None, Base.U, False),
- BasePair(None, Base.U, False), BasePair(Base.U, Base.A, True)]
+ BasePair(Base.ZERO_PADDING, Base.U, False),
+ BasePair(Base.ZERO_PADDING, Base.U, False), BasePair(Base.U, Base.A, True)]
upstream_mismatch_bulge = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
BasePair(Base.A, Base.C, False),
- BasePair(Base.A, None, False), BasePair(Base.U, Base.A, True)]
+ BasePair(Base.A, Base.ZERO_PADDING, False), BasePair(Base.U, Base.A, True)]
downstream_mismatch_bulge = [BasePair(Base.G, Base.C, True), BasePair(Base.A, Base.U, True),
BasePair(Base.C, Base.U, False),
- BasePair(None, Base.U, False), BasePair(Base.U, Base.A, True)]
+ BasePair(Base.ZERO_PADDING, Base.U, False), BasePair(Base.U, Base.A, True)]
self.assertEqual(simple_stem, Stem(RNASequence('GAA'), '(((', RNASequence('UUC'), ')))').get_basepairs())
self.assertEqual(upstream_bulge, Stem(RNASequence('GAAU'), '((.(', RNASequence('AUC'), ')))').get_basepairs())
self.assertEqual(downstream_bulge, Stem(RNASequence('GAU'), '(((', RNASequence('AUUC'), ').))').get_basepairs())
self.assertEqual(mismatch, Stem(RNASequence('GAUU'), '((.(', RNASequence('AUUC'), ').))').get_basepairs())
- self.assertEqual(mismatched_closing_stack, Stem(RNASequence('GAAU'), '.(((', RNASequence('AUUG'), '))).').get_basepairs())
- self.assertEqual(double_upstream_bulge, Stem(RNASequence('GAAAU'), '((..(', RNASequence('AUC'), ')))').get_basepairs())
- self.assertEqual(double_downstream_bulge, Stem(RNASequence('GAU'), '(((', RNASequence('AUUUC'), ')..))').get_basepairs())
- self.assertEqual(upstream_mismatch_bulge, Stem(RNASequence('GAAAU'), '((..(', RNASequence('ACUC'), ').))').get_basepairs())
- self.assertEqual(downstream_mismatch_bulge, Stem(RNASequence('GACU'), '((.(', RNASequence('AUUUC'), ')..))').get_basepairs())
+ self.assertEqual(mismatched_closing_stack,
+ Stem(RNASequence('GAAU'), '.(((', RNASequence('AUUG'), '))).').get_basepairs())
+ self.assertEqual(double_upstream_bulge,
+ Stem(RNASequence('GAAAU'), '((..(', RNASequence('AUC'), ')))').get_basepairs())
+ self.assertEqual(double_downstream_bulge,
+ Stem(RNASequence('GAU'), '(((', RNASequence('AUUUC'), ')..))').get_basepairs())
+ self.assertEqual(upstream_mismatch_bulge,
+ Stem(RNASequence('GAAAU'), '((..(', RNASequence('ACUC'), ').))').get_basepairs())
+ self.assertEqual(downstream_mismatch_bulge,
+ Stem(RNASequence('GACU'), '((.(', RNASequence('AUUUC'), ')..))').get_basepairs())
with self.assertRaises(AssertionError):
Stem(RNASequence('GAAU'), '.((', RNASequence('AUUG'), '))).')
@@ -47,7 +52,47 @@ def test_get_basepairs(self):
Stem(RNASequence('GAAU'), '.(((', RNASequence('AUUG'), ')).')
def test_to_vector(self):
- pass
+ simple_stem = Stem(RNASequence('GAA'), '(((', RNASequence('UUC'), ')))')
+ upstream_bulge = Stem(RNASequence('GAAU'), '((.(', RNASequence('AUC'), ')))')
+ gu_mismatch = Stem(RNASequence('GAGU'), '((.(', RNASequence('AUUC'), ').))')
+
+ self.assertEqual(simple_stem.to_vector(3), [1, 0, 3, 0, 1, 3, 1,
+ 1, 0, 2, 0, 1, 2, 1,
+ 1, 0, 2, 0, 1, 2, 1])
+ self.assertEqual(simple_stem.to_vector(4), [1, 0, 3, 0, 1, 3, 1,
+ 1, 0, 2, 0, 1, 2, 1,
+ 1, 0, 2, 0, 1, 2, 1,
+ 0, 0, 0, 0, 0, 0, 0])
+ self.assertEqual(simple_stem.to_vector(3, one_hot=True), [0, 0, 1, 0, 0, 1, 0, 0, 1,
+ 1, 0, 0, 0, 0, 0, 0, 1, 1,
+ 1, 0, 0, 0, 0, 0, 0, 1, 1])
+
+ self.assertEqual(upstream_bulge.to_vector(4, one_hot=True), [0, 0, 1, 0, 0, 1, 0, 0, 1,
+ 1, 0, 0, 0, 0, 0, 0, 1, 1,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 0, 0, 0, 1])
+ self.assertEqual(gu_mismatch.to_vector(4, pairing_type=PairingType.WATSON_CRICK),
+ [1, 0, 3, 0, 1, 3, 1,
+ 1, 0, 2, 0, 1, 2, 1,
+ 1, 0, 3, 0, 1, 2, 0,
+ 0, 1, 2, 1, 0, 2, 1])
+
+ self.assertEqual(gu_mismatch.to_vector(4, pairing_type=PairingType.WOBBLE_OR_WATSON_CRICK),
+ [1, 0, 3, 0, 1, 3, 1,
+ 1, 0, 2, 0, 1, 2, 1,
+ 1, 0, 3, 0, 1, 2, 1,
+ 0, 1, 2, 1, 0, 2, 1])
+
+ self.assertEqual(gu_mismatch.to_vector(5, pairing_type=PairingType.WOBBLE_OR_WATSON_CRICK),
+ [1, 0, 3, 0, 1, 3, 1,
+ 1, 0, 2, 0, 1, 2, 1,
+ 1, 0, 3, 0, 1, 2, 1,
+ 0, 1, 2, 1, 0, 2, 1,
+ 0, 0, 0, 0, 0, 0, 0])
+
+ self.assertEqual(upstream_bulge.to_vector(3, one_hot=True), [0, 0, 1, 0, 0, 1, 0, 0, 1,
+ 1, 0, 0, 0, 0, 0, 0, 1, 1,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0])
if __name__ == '__main__':
diff --git a/mewtwo/embeddings/terminator/test/test_u_tract.py b/mewtwo/embeddings/terminator/test/test_u_tract.py
new file mode 100644
index 0000000..1b9b3d4
--- /dev/null
+++ b/mewtwo/embeddings/terminator/test/test_u_tract.py
@@ -0,0 +1,74 @@
+import unittest
+
+from mewtwo.embeddings.terminator.u_tract import UTract
+from mewtwo.embeddings.sequence import RNASequence
+
+
+class TestUTract(unittest.TestCase):
+ def test_to_vector(self):
+ u_tract_1 = UTract("ACGU", 2)
+
+ self.assertEqual(u_tract_1.to_vector(4), [1, 0, 2, 0,
+ 0, 1, 3, 0,
+ 1, 0, 3, 1,
+ 0, 1, 2, 0])
+ self.assertEqual(u_tract_1.to_vector(3), [1, 0, 2, 0,
+ 0, 1, 3, 0,
+ 1, 0, 3, 1])
+ self.assertEqual(u_tract_1.to_vector(5), [1, 0, 2, 0,
+ 0, 1, 3, 0,
+ 1, 0, 3, 1,
+ 0, 1, 2, 0,
+ 0, 0, 0, 0])
+
+ self.assertEqual(u_tract_1.to_vector(4, one_hot=True), [1, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0,
+ 0, 0, 1, 0, 1,
+ 0, 0, 0, 1, 0])
+ self.assertEqual(u_tract_1.to_vector(3, one_hot=True), [1, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0,
+ 0, 0, 1, 0, 1])
+ self.assertEqual(u_tract_1.to_vector(5, one_hot=True), [1, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0,
+ 0, 0, 1, 0, 1,
+ 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0])
+
+ u_tract_2 = UTract("ACGU", None)
+
+ self.assertEqual(u_tract_2.to_vector(4), [1, 0, 2,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2])
+ self.assertEqual(u_tract_2.to_vector(3), [1, 0, 2,
+ 0, 1, 3,
+ 1, 0, 3])
+ self.assertEqual(u_tract_2.to_vector(5), [1, 0, 2,
+ 0, 1, 3,
+ 1, 0, 3,
+ 0, 1, 2,
+ 0, 0, 0])
+
+ self.assertEqual(u_tract_2.to_vector(4, one_hot=True), [1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1])
+ self.assertEqual(u_tract_2.to_vector(3, one_hot=True), [1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0])
+ self.assertEqual(u_tract_2.to_vector(5, one_hot=True), [1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1,
+ 0, 0, 0, 0])
+
+ def test_init(self):
+ u_tract_1 = UTract("ACGU", 2)
+ self.assertEqual(2, u_tract_1.pot)
+
+ with self.assertRaises(AssertionError):
+ UTract("ACGU", 4)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/mewtwo/embeddings/terminator/u_tract.py b/mewtwo/embeddings/terminator/u_tract.py
new file mode 100644
index 0000000..39c7cae
--- /dev/null
+++ b/mewtwo/embeddings/terminator/u_tract.py
@@ -0,0 +1,36 @@
+
+from typing import Optional
+
+from mewtwo.embeddings.sequence import RNASequence, SeqType, convert_to_rna, get_sequence_type, DNASequence
+from mewtwo.embeddings.bases import Base, base_to_vector
+
+
+class UTract:
+ def __init__(self, sequence: str, pot: Optional[int] = None) -> None:
+ seq_type = get_sequence_type(sequence)
+ if SeqType.RNA in seq_type:
+ sequence = RNASequence(sequence)
+ else:
+ sequence = convert_to_rna(DNASequence(sequence))
+ self.sequence = sequence
+ self.pot = pot
+ if self.pot is not None:
+ assert self.pot < len(self.sequence)
+
+ def to_vector(self, u_tract_size: int = 10, one_hot: bool = False) -> list[int]:
+ vector = []
+ for i in range(u_tract_size):
+ try:
+ base = self.sequence[i]
+ except IndexError:
+ base = Base.ZERO_PADDING
+ vector.extend(base_to_vector(base, one_hot))
+
+ if self.pot is not None:
+
+ if i == self.pot:
+ vector.append(1)
+ else:
+ vector.append(0)
+
+ return vector
diff --git a/mewtwo/embeddings/test/test_bases.py b/mewtwo/embeddings/test/test_bases.py
new file mode 100644
index 0000000..6976881
--- /dev/null
+++ b/mewtwo/embeddings/test/test_bases.py
@@ -0,0 +1,67 @@
+import unittest
+
+from mewtwo.embeddings.bases import Base, base_to_vector, BasePair, PairingType
+
+
+class TestBase(unittest.TestCase):
+ def test_to_vector(self):
+ self.assertEqual(base_to_vector(Base.A), [1, 0, 2])
+ self.assertEqual(base_to_vector(Base.U), [0, 1, 2])
+ self.assertEqual(base_to_vector(Base.G), [1, 0, 3])
+ self.assertEqual(base_to_vector(Base.C), [0, 1, 3])
+ self.assertEqual(base_to_vector(Base.T), [0, 1, 2])
+ self.assertEqual(base_to_vector(Base.ZERO_PADDING), [0, 0, 0])
+
+ self.assertEqual(base_to_vector(Base.A, one_hot=True), [1, 0, 0, 0])
+ self.assertEqual(base_to_vector(Base.U, one_hot=True), [0, 0, 0, 1])
+ self.assertEqual(base_to_vector(Base.G, one_hot=True), [0, 0, 1, 0])
+ self.assertEqual(base_to_vector(Base.C, one_hot=True), [0, 1, 0, 0])
+ self.assertEqual(base_to_vector(Base.T, one_hot=True), [0, 0, 0, 1])
+ self.assertEqual(base_to_vector(Base.ZERO_PADDING, one_hot=True), [0, 0, 0, 0])
+
+ self.assertNotEqual(base_to_vector(Base.A, one_hot=True), [1, 0, 2])
+
+ with self.assertRaises(ValueError):
+ base_to_vector(Base.DNA)
+
+
+class TestBasePair(unittest.TestCase):
+ def test_is_watson_crick(self):
+ self.assertTrue(BasePair(Base.C, Base.G, True).is_watson_crick())
+ self.assertTrue(BasePair(Base.G, Base.C, True).is_watson_crick())
+ self.assertTrue(BasePair(Base.A, Base.T, True).is_watson_crick())
+ self.assertTrue(BasePair(Base.T, Base.A, True).is_watson_crick())
+ self.assertTrue(BasePair(Base.A, Base.U, True).is_watson_crick())
+ self.assertTrue(BasePair(Base.U, Base.A, True).is_watson_crick())
+ self.assertFalse(BasePair(Base.G, Base.U, True).is_watson_crick())
+ self.assertFalse(BasePair(Base.U, Base.U, True).is_watson_crick())
+
+ def test_is_wobble(self):
+ self.assertTrue(BasePair(Base.G, Base.U, True).is_wobble())
+ self.assertTrue(BasePair(Base.U, Base.G, True).is_wobble())
+ self.assertFalse(BasePair(Base.G, Base.T, True).is_wobble())
+ self.assertFalse(BasePair(Base.T, Base.G, True).is_wobble())
+
+ def test_to_vector(self):
+ base_pair_1 = BasePair(Base.G, Base.U, False)
+ base_pair_2 = BasePair(Base.A, Base.U, True)
+ base_pair_3 = BasePair(Base.ZERO_PADDING, Base.ZERO_PADDING, True)
+
+ self.assertEqual(base_pair_1.to_vector(), [1, 0, 3, 0, 1, 2, 0])
+ self.assertEqual(base_pair_1.to_vector(one_hot=True), [0, 0, 1, 0, 0, 0, 0, 1, 0])
+ self.assertEqual(base_pair_1.to_vector(pairing_type=PairingType.WOBBLE_OR_WATSON_CRICK), [1, 0, 3, 0, 1, 2, 1])
+ self.assertEqual(base_pair_1.to_vector(pairing_type=PairingType.WATSON_CRICK), [1, 0, 3, 0, 1, 2, 0])
+
+ with self.assertRaises(ValueError):
+ base_pair_1.to_vector(pairing_type=PairingType.WOBBLE)
+
+ self.assertEqual(base_pair_2.to_vector(), [1, 0, 2, 0, 1, 2, 1])
+ self.assertEqual(base_pair_2.to_vector(one_hot=True), [1, 0, 0, 0, 0, 0, 0, 1, 1])
+ self.assertEqual(base_pair_2.to_vector(pairing_type=PairingType.WOBBLE_OR_WATSON_CRICK), [1, 0, 2, 0, 1, 2, 1])
+ self.assertEqual(base_pair_2.to_vector(pairing_type=PairingType.WATSON_CRICK), [1, 0, 2, 0, 1, 2, 1])
+
+ self.assertEqual(base_pair_3.to_vector(pairing_type=PairingType.WOBBLE_OR_WATSON_CRICK), [0, 0, 0, 0, 0, 0, 0])
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/mewtwo/embeddings/test/test_feature_labels.py b/mewtwo/embeddings/test/test_feature_labels.py
new file mode 100644
index 0000000..69db617
--- /dev/null
+++ b/mewtwo/embeddings/test/test_feature_labels.py
@@ -0,0 +1,117 @@
+import unittest
+from mewtwo.embeddings.feature_labels import FeatureLabel, FeatureCategory, FeatureType, StemShoulder
+
+
+class TestFeatureLabel(unittest.TestCase):
+
+ def test_set_base_information(self):
+
+ # A-tract features
+
+ feature_a01 = FeatureLabel.from_feature_position(0, 10, 1, 1, 1)
+ feature_a02 = FeatureLabel.from_feature_position(1, 10, 1, 1, 1)
+ feature_a03 = FeatureLabel.from_feature_position(2, 10, 1, 1, 1)
+ feature_a04 = FeatureLabel.from_feature_position(3, 10, 1, 1, 1)
+ feature_a05 = FeatureLabel.from_feature_position(4, 10, 1, 1, 1)
+ feature_a06 = FeatureLabel.from_feature_position(5, 10, 1, 1, 1)
+
+ feature_a07 = FeatureLabel.from_feature_position(0, 10, 1, 1, 1, one_hot=True)
+ feature_a08 = FeatureLabel.from_feature_position(1, 10, 1, 1, 1, one_hot=True)
+ feature_a09 = FeatureLabel.from_feature_position(2, 10, 1, 1, 1, one_hot=True)
+ feature_a10 = FeatureLabel.from_feature_position(3, 10, 1, 1, 1, one_hot=True)
+ feature_a11 = FeatureLabel.from_feature_position(4, 10, 1, 1, 1, one_hot=True)
+ feature_a12 = FeatureLabel.from_feature_position(5, 10, 1, 1, 1, one_hot=True)
+ feature_a13 = FeatureLabel.from_feature_position(6, 10, 1, 1, 1, one_hot=True)
+ feature_a14 = FeatureLabel.from_feature_position(7, 10, 1, 1, 1, one_hot=True)
+
+ self.assertEqual(feature_a01.feature_type, FeatureType.IS_PURINE)
+ self.assertEqual(feature_a01.base_index, 1)
+ self.assertEqual(feature_a01.stem_shoulder, None)
+ self.assertEqual(feature_a01.feature_category, FeatureCategory.A_TRACT)
+
+ self.assertEqual(feature_a02.feature_type, FeatureType.IS_PYRIMIDINE)
+ self.assertEqual(feature_a02.base_index, 1)
+
+ self.assertEqual(feature_a03.base_index, 1)
+ self.assertEqual(feature_a03.feature_type, FeatureType.NR_H_BONDS)
+
+ self.assertEqual(feature_a04.feature_type, FeatureType.IS_PURINE)
+ self.assertEqual(feature_a04.base_index, 2)
+
+ self.assertEqual(feature_a05.feature_type, FeatureType.IS_PYRIMIDINE)
+ self.assertEqual(feature_a05.base_index, 2)
+
+ self.assertEqual(feature_a06.base_index, 2)
+ self.assertEqual(feature_a06.feature_type, FeatureType.NR_H_BONDS)
+
+ self.assertEqual(feature_a07.feature_type, FeatureType.IS_A)
+ self.assertEqual(feature_a07.base_index, 1)
+
+ self.assertEqual(feature_a08.feature_type, FeatureType.IS_C)
+ self.assertEqual(feature_a09.feature_type, FeatureType.IS_G)
+ self.assertEqual(feature_a10.feature_type, FeatureType.IS_U)
+ self.assertEqual(feature_a11.feature_type, FeatureType.IS_A)
+ self.assertEqual(feature_a12.feature_type, FeatureType.IS_C)
+ self.assertEqual(feature_a13.feature_type, FeatureType.IS_G)
+ self.assertEqual(feature_a14.feature_type, FeatureType.IS_U)
+
+ # Loop features
+
+ def test_set_basepair_information(self):
+ # Stem features
+
+ feature_s01 = FeatureLabel.from_feature_position(30, 10, 10, 1, 1)
+ feature_s02 = FeatureLabel.from_feature_position(31, 10, 10, 1, 1)
+ feature_s03 = FeatureLabel.from_feature_position(32, 10, 10, 1, 1)
+ feature_s04 = FeatureLabel.from_feature_position(33, 10, 10, 1, 1)
+ feature_s05 = FeatureLabel.from_feature_position(34, 10, 10, 1, 1)
+ feature_s06 = FeatureLabel.from_feature_position(35, 10, 10, 1, 1)
+ feature_s07 = FeatureLabel.from_feature_position(36, 10, 10, 1, 1)
+ feature_s08 = FeatureLabel.from_feature_position(37, 10, 10, 1, 1)
+
+ feature_s09 = FeatureLabel.from_feature_position(40, 10, 10, 1, 1, one_hot=True)
+ feature_s10 = FeatureLabel.from_feature_position(41, 10, 10, 1, 1, one_hot=True)
+ feature_s11 = FeatureLabel.from_feature_position(42, 10, 10, 1, 1, one_hot=True)
+ feature_s12 = FeatureLabel.from_feature_position(43, 10, 10, 1, 1, one_hot=True)
+ feature_s13 = FeatureLabel.from_feature_position(44, 10, 10, 1, 1, one_hot=True)
+ feature_s14 = FeatureLabel.from_feature_position(45, 10, 10, 1, 1, one_hot=True)
+ feature_s15 = FeatureLabel.from_feature_position(46, 10, 10, 1, 1, one_hot=True)
+ feature_s16 = FeatureLabel.from_feature_position(47, 10, 10, 1, 1, one_hot=True)
+ feature_s17 = FeatureLabel.from_feature_position(48, 10, 10, 1, 1, one_hot=True)
+
+ self.assertEqual(feature_s01.feature_type, FeatureType.IS_PURINE)
+ self.assertEqual(feature_s01.base_index, 1)
+
+ self.assertEqual(feature_s01.stem_shoulder, StemShoulder.UPSTREAM)
+ self.assertEqual(feature_s01.feature_category, FeatureCategory.STEM)
+
+ self.assertEqual(feature_s02.feature_type, FeatureType.IS_PYRIMIDINE)
+
+ self.assertEqual(feature_s03.feature_type, FeatureType.NR_H_BONDS)
+ self.assertEqual(feature_s03.feature_category, FeatureCategory.STEM)
+
+ self.assertEqual(feature_s04.feature_type, FeatureType.IS_PURINE)
+ self.assertEqual(feature_s04.stem_shoulder, StemShoulder.DOWNSTREAM)
+
+ self.assertEqual(feature_s05.feature_type, FeatureType.IS_PYRIMIDINE)
+ self.assertEqual(feature_s06.feature_type, FeatureType.NR_H_BONDS)
+
+ self.assertEqual(feature_s07.base_index, 1)
+ self.assertEqual(feature_s07.stem_shoulder, None)
+
+ self.assertEqual(feature_s08.base_index, 2)
+ self.assertEqual(feature_s08.feature_type, FeatureType.IS_PURINE)
+
+ self.assertEqual(feature_s09.feature_type, FeatureType.IS_A)
+ self.assertEqual(feature_s10.feature_type, FeatureType.IS_C)
+ self.assertEqual(feature_s11.feature_type, FeatureType.IS_G)
+ self.assertEqual(feature_s12.feature_type, FeatureType.IS_U)
+ self.assertEqual(feature_s13.feature_type, FeatureType.IS_A)
+ self.assertEqual(feature_s14.feature_type, FeatureType.IS_C)
+ self.assertEqual(feature_s15.feature_type, FeatureType.IS_G)
+ self.assertEqual(feature_s16.feature_type, FeatureType.IS_U)
+ self.assertEqual(feature_s17.feature_type, FeatureType.IS_BONDED)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/mewtwo/external_code/__init__.py b/mewtwo/external_code/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/__init__.py b/mewtwo/machine_learning/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/analysis/__init__.py b/mewtwo/machine_learning/analysis/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/analysis/get_performance_rf.py b/mewtwo/machine_learning/analysis/get_performance_rf.py
new file mode 100644
index 0000000..9340196
--- /dev/null
+++ b/mewtwo/machine_learning/analysis/get_performance_rf.py
@@ -0,0 +1,37 @@
+import os
+from sys import argv
+from statistics import mean, stdev
+
+from mewtwo.data_processing.iterate_over_dir import iterate_over_dir
+
+
+def write_average_performance(crossvalidation_dir: str, out_file: str) -> None:
+ test_scores: list[float] = []
+ pearsons: list[float] = []
+ spearmans: list[float] = []
+
+ for folder_name, folder_path in iterate_over_dir(crossvalidation_dir, get_dirs=True):
+ if 'crossvalidation_results' in folder_name:
+ performance_file = os.path.join(folder_path, "performance.txt")
+ with open(performance_file, 'r') as performances:
+ performances.readline()
+ test_score, pearson, spearman = performances.readline().strip().split('\t')
+ test_scores.append(float(test_score))
+ pearsons.append(float(pearson))
+ spearmans.append(float(spearman))
+
+ av_test = mean(test_scores)
+ av_pearson = mean(pearsons)
+ av_spearman = mean(spearmans)
+
+ stdev_test = stdev(test_scores)
+ stdev_pearson = stdev(pearsons)
+ stdev_spearman = stdev(spearmans)
+
+ with open(out_file, 'w') as out:
+ out.write(f"\ttest_score\tpearson\tspearman\n")
+ out.write(f"Mean\t{av_test}\t{av_pearson}\t{av_spearman}\n")
+ out.write(f"Stdev\t{stdev_test}\t{stdev_pearson}\t{stdev_spearman}\n")
+
+if __name__ == "__main__":
+ write_average_performance(argv[1], argv[2])
diff --git a/mewtwo/machine_learning/analysis/get_performance_transformer.py b/mewtwo/machine_learning/analysis/get_performance_transformer.py
new file mode 100644
index 0000000..fcaff54
--- /dev/null
+++ b/mewtwo/machine_learning/analysis/get_performance_transformer.py
@@ -0,0 +1,22 @@
+import os
+from sys import argv
+
+from mewtwo.data_processing.iterate_over_dir import iterate_over_dir
+from mewtwo.parsers.tabular import Tabular
+
+
+def sort_models_by_performance(config_dir):
+ models_and_performances = []
+ for model_name, folder_path in iterate_over_dir(config_dir, get_dirs=True):
+ summary_file = os.path.join(folder_path, "summary.txt")
+ summary_data = Tabular(summary_file, [0])
+ best_performance = max(summary_data.get_column("pearsonr"))
+ models_and_performances.append((model_name, float(best_performance)))
+
+ models_and_performances.sort(key=lambda x: x[1], reverse=True)
+ for model, performance in models_and_performances:
+ print(f"{model}\t{performance:.4f}\n")
+
+
+if __name__ == "__main__":
+ sort_models_by_performance(argv[1])
diff --git a/mewtwo/machine_learning/data_preparation/__init__.py b/mewtwo/machine_learning/data_preparation/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/data_preparation/binning.py b/mewtwo/machine_learning/data_preparation/binning.py
new file mode 100644
index 0000000..64b9573
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/binning.py
@@ -0,0 +1,31 @@
+from math import isclose
+
+
+def bin_data(y, n_bins: int = 5):
+ bin_ranges = []
+ range_start = 0.0
+ step = 1.0 / n_bins
+ bins = []
+
+ for i in range(n_bins):
+ range_end = range_start + step
+ bin_ranges.append((range_start, range_end))
+ range_start = range_end
+
+ for i, y_data in enumerate(y):
+ bin_index = 0
+ bin_range = bin_ranges[bin_index]
+
+ if y_data < 0.0 and not isclose(y_data, 0.0):
+ raise ValueError(f"Expected value between 0.0 and 1.0. Got {y_data}")
+
+ while bin_range[1] <= y_data and not isclose(y_data, bin_range[1]):
+ bin_index += 1
+ try:
+ bin_range = bin_ranges[bin_index]
+ except IndexError:
+ raise ValueError(f"Expected value between 0.0 and 1.0. Got {y_data}")
+
+ bins.append(bin_index)
+
+ return bins
\ No newline at end of file
diff --git a/mewtwo/machine_learning/data_preparation/calculate_sample_weights.py b/mewtwo/machine_learning/data_preparation/calculate_sample_weights.py
new file mode 100644
index 0000000..ef740f1
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/calculate_sample_weights.py
@@ -0,0 +1,22 @@
+from statistics import mean
+
+from mewtwo.machine_learning.data_preparation.binning import bin_data
+
+
+def get_sample_weights(targets: list[float], n_bins=5) -> list[float]:
+ bins = bin_data(targets, n_bins=n_bins)
+ weights = []
+ for i in range(len(targets)):
+ count = bins.count(bins[i])
+ bin_weight = 1.0 / (count + 1e-6)
+
+ weights.append(bin_weight)
+
+ normalized_weights = []
+
+ for weight in weights:
+ normalized_weights.append(weight / mean(weights))
+
+ return normalized_weights
+
+
diff --git a/mewtwo/machine_learning/data_preparation/test/data/mock_data_1.txt b/mewtwo/machine_learning/data_preparation/test/data/mock_data_1.txt
new file mode 100644
index 0000000..28d9bfc
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/test/data/mock_data_1.txt
@@ -0,0 +1,100 @@
+AGGA 0.01
+AGGTCC 0.02
+GGTCCGT 0.03
+AGTGGACC 0.04
+GGTGCCCCGT 0.05
+ATGGC 0.06
+AGGA 0.07
+AGGTCC 0.08
+GGTCCGT 0.09
+AGTGGACC 0.10
+GGTGCCCCGT 0.11
+ATGGC 0.12
+AGGA 0.13
+AGGTCC 0.14
+GGTCCGT 0.15
+AGTGGACC 0.16
+GGTGCCCCGT 0.17
+ATGGC 0.18
+AGGA 0.19
+AGGTCC 0.20
+GGTCCGT 0.21
+AGTGGACC 0.22
+GGTGCCCCGT 0.23
+ATGGC 0.24
+AGGA 0.25
+AGGTCC 0.26
+GGTCCGT 0.27
+AGTGGACC 0.28
+GGTGCCCCGT 0.29
+ATGGC 0.30
+AGGA 0.31
+AGGTCC 0.32
+GGTCCGT 0.33
+AGTGGACC 0.34
+GGTGCCCCGT 0.35
+ATGGC 0.36
+AGGA 0.37
+AGGTCC 0.38
+GGTCCGT 0.39
+ATGGC 0.40
+AGGA 0.41
+AGGTCC 0.42
+GGTCCGT 0.43
+AGTGGACC 0.44
+GGTGCCCCGT 0.45
+ATGGC 0.46
+AGGA 0.47
+AGGTCC 0.48
+GGTCCGT 0.49
+ATGGC 0.50
+AGGA 0.51
+AGGTCC 0.52
+GGTCCGT 0.53
+AGTGGACC 0.54
+GGTGCCCCGT 0.55
+ATGGC 0.56
+AGGA 0.57
+AGGTCC 0.58
+GGTCCGT 0.59
+ATGGC 0.60
+AGGA 0.61
+AGGTCC 0.62
+GGTCCGT 0.63
+AGTGGACC 0.64
+GGTGCCCCGT 0.65
+ATGGC 0.66
+AGGA 0.67
+AGGTCC 0.68
+GGTCCGT 0.69
+ATGGC 0.70
+AGGA 0.71
+AGGTCC 0.72
+GGTCCGT 0.73
+AGTGGACC 0.74
+GGTGCCCCGT 0.75
+ATGGC 0.76
+AGGA 0.77
+AGGTCC 0.78
+GGTCCGT 0.79
+ATGGC 0.80
+AGGA 0.81
+AGGTCC 0.82
+GGTCCGT 0.83
+AGTGGACC 0.84
+GGTGCCCCGT 0.85
+ATGGC 0.86
+AGGA 0.87
+AGGTCC 0.88
+GGTCCGT 0.89
+ATGGC 0.90
+AGGA 0.91
+AGGTCC 0.92
+GGTCCGT 0.93
+AGTGGACC 0.94
+GGTGCCCCGT 0.95
+ATGGC 0.96
+AGGA 0.97
+AGGTCC 0.98
+GGTCCGT 0.99
+GGTCCGT 1.00
\ No newline at end of file
diff --git a/mewtwo/machine_learning/data_preparation/test/output/README.md b/mewtwo/machine_learning/data_preparation/test/output/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/data_preparation/test/test_binning.py b/mewtwo/machine_learning/data_preparation/test/test_binning.py
new file mode 100644
index 0000000..5944729
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/test/test_binning.py
@@ -0,0 +1,28 @@
+import unittest
+
+from mewtwo.machine_learning.data_preparation.binning import bin_data
+
+class TestBinning(unittest.TestCase):
+ def test_bin_data(self):
+ dummy_data_1 = [0.0, 0.05, 0.1, 0.11, 0.15, 0.9, 0.95, 1.0]
+ dummy_bins_1 = [0, 0, 0, 1, 1, 8, 9, 9]
+
+ self.assertEqual(bin_data(dummy_data_1, n_bins=10), dummy_bins_1)
+
+ dummy_data_2 = [1.0, 0.0, 0.05, 0.1, 0.11, 0.15, 0.9, 0.95, 1.0]
+ dummy_bins_2 = [9, 0, 0, 0, 1, 1, 8, 9, 9]
+
+ self.assertEqual(bin_data(dummy_data_2, n_bins=10), dummy_bins_2)
+
+ dummy_data_3 = [1.1, 0.0, 0.05, 0.1, 0.11, 0.15, 0.9, 0.95, 1.0]
+
+ with self.assertRaises(ValueError):
+ bin_data(dummy_data_3)
+
+ dummy_data_4 = [-0.1, 0.0, 0.05, 0.1, 0.11, 0.15, 0.9, 0.95, 1.0]
+
+ with self.assertRaises(ValueError):
+ bin_data(dummy_data_4)
+
+if __name__ == "__main__":
+ unittest.main()
\ No newline at end of file
diff --git a/mewtwo/machine_learning/data_preparation/test/test_calculate_sample_weights.py b/mewtwo/machine_learning/data_preparation/test/test_calculate_sample_weights.py
new file mode 100644
index 0000000..30f5305
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/test/test_calculate_sample_weights.py
@@ -0,0 +1,27 @@
+import unittest
+from math import isclose
+
+from mewtwo.machine_learning.data_preparation.calculate_sample_weights import get_sample_weights
+
+class CalculateSampleWeights(unittest.TestCase):
+ def test_get_sample_weights(self):
+ dataset_1 = [0.1, 0.3, 0.5, 0.7, 0.9]
+ weights_1 = [1.0, 1.0, 1.0, 1.0, 1.0]
+
+ self.assertNearlyEqual(weights_1, get_sample_weights(dataset_1))
+
+ dataset_2 = [0.1, 0.1, 0.3, 0.3, 0.5, 0.5, 0.5, 0.7, 0.9, 0.9]
+ weights_2 = [1.0, 1.0, 1.0, 1.0, 0.66666, 0.666666, 0.66666, 2.0, 1.0, 1.0]
+
+ self.assertNearlyEqual(weights_2, get_sample_weights(dataset_2))
+
+ def assertNearlyEqual(self, list_1, list_2):
+ for i, element_1 in enumerate(list_1):
+ element_2 = list_2[i]
+ if not isclose(element_1, element_2, abs_tol=0.00001):
+ self.fail(f"Lists are not equal: {list_1}, {list_2}. \n First mismatching element: {i} ([{element_1}], [{element_2}])")
+
+
+
+if __name__ == "__main__":
+ unittest.main()
\ No newline at end of file
diff --git a/mewtwo/machine_learning/data_preparation/test/test_train_test_split.py b/mewtwo/machine_learning/data_preparation/test/test_train_test_split.py
new file mode 100644
index 0000000..5a59e71
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/test/test_train_test_split.py
@@ -0,0 +1,36 @@
+import unittest
+import os
+from shutil import rmtree
+
+
+from mewtwo.machine_learning.data_preparation.train_test_split import split_data_from_file
+from mewtwo.parsers.parse_dnabert_data import parse_dnabert_data
+
+BASE_DIR = os.path.dirname(__file__)
+
+
+class TestTrainTestSplit(unittest.TestCase):
+
+ def test_split_data_from_file(self):
+
+
+ test_data_1 = os.path.abspath(os.path.join(BASE_DIR, 'data', 'mock_data_1.txt'))
+ test_output_1 = os.path.abspath(os.path.join(BASE_DIR, 'output', 'mock_output_1'))
+
+ split_data_from_file(test_data_1, test_output_1)
+
+ self.assertEqual(os.path.exists(test_output_1), True)
+ self.assertEqual(os.path.exists(os.path.join(test_output_1, "validation.txt")), True)
+ self.assertEqual(os.path.exists(os.path.join(test_output_1, "train.txt")), True)
+ self.assertEqual(os.path.exists(os.path.join(test_output_1, "test.txt")), True)
+
+ x_train_1, y_train_1 = parse_dnabert_data(os.path.join(test_output_1, "train.txt"))
+ self.assertEqual(len(x_train_1), 50)
+
+ x_test_1, y_test_1 = parse_dnabert_data(os.path.join(test_output_1, "test.txt"))
+ self.assertEqual(len(x_test_1), 25)
+
+ x_val_1, y_val_1 = parse_dnabert_data(os.path.join(test_output_1, "validation.txt"))
+ self.assertEqual(len(x_val_1), 25)
+
+ rmtree(test_output_1)
diff --git a/mewtwo/machine_learning/data_preparation/train_test_split.py b/mewtwo/machine_learning/data_preparation/train_test_split.py
new file mode 100644
index 0000000..b52a20a
--- /dev/null
+++ b/mewtwo/machine_learning/data_preparation/train_test_split.py
@@ -0,0 +1,143 @@
+from sklearn.model_selection import StratifiedShuffleSplit, StratifiedKFold
+from mewtwo.embeddings.terminator.terminator import get_terminator_part_sizes, Terminator
+from mewtwo.parsers.parse_dnabert_data import parse_dnabert_data
+from mewtwo.machine_learning.data_preparation.binning import bin_data
+
+import os
+from sys import argv
+
+
+class CrossvalidationFold:
+ def __init__(self, train: list[Terminator], test: list[Terminator]):
+ self.train = train
+ self.test = test
+
+
+def split_data(terminators, attribute_for_splitting: str, test_size: float = 0.5, n_crossval_sets: int = 5,
+ n_bins: int = 5):
+ max_loop, max_stem, max_a, max_u = get_terminator_part_sizes(terminators)
+ x = []
+ y = []
+ labels = []
+
+ for terminator in terminators:
+ x.append(terminator.to_vector(max_loop, max_stem, max_a, max_u))
+ y.append(terminator.te)
+ attribute = getattr(terminator, attribute_for_splitting)
+ labels.append(attribute)
+
+ if type(labels[0]) in (int, float):
+ labels = bin_data(labels, n_bins)
+
+ sss = StratifiedShuffleSplit(n_splits=1, test_size=test_size, random_state=250589)
+ sss.get_n_splits(x, labels)
+ train_indices, test_indices = next(sss.split(x, labels))
+
+ train_x = []
+ train_terminators = []
+ train_labels = []
+
+ for index in train_indices:
+ train_x.append(x[index])
+ train_terminators.append(terminators[index])
+ train_labels.append(labels[index])
+
+ test_terminators = []
+
+ for index in test_indices:
+ test_terminators.append(terminators[index])
+
+ skf = StratifiedKFold(n_splits=n_crossval_sets, shuffle=True, random_state=100125)
+ crossvalidation_sets = {}
+
+ for i, (train_i, test_i) in enumerate(skf.split(train_x, train_labels)):
+ train_terminators_c = [train_terminators[j] for j in train_i]
+ test_terminators_c = [train_terminators[j] for j in test_i]
+
+ crossvalidation_sets[i] = CrossvalidationFold(train_terminators_c, test_terminators_c)
+
+ return train_terminators, test_terminators, crossvalidation_sets
+
+
+def split_data_from_file(input_file: str, output_dir: str, test_size: float = 0.25, validation_size: float = 0.33333,
+ nr_stratification_bins: int = 5):
+ """
+
+ Parameters
+ ----------
+ input_file: input tabular file with sequences in column one and float in column 2
+ output_dir: output directory
+ test_size: proportion of ALL data
+ validation_size: proportion of TRAINING data
+ nr_stratification_bins: number of bins between 0 and 1 to perform stratification on
+
+ Returns
+ -------
+
+ """
+
+ if not os.path.exists(output_dir):
+ os.mkdir(output_dir)
+
+ train_out = os.path.join(output_dir, 'train.txt')
+ validation_out = os.path.join(output_dir, 'validation.txt')
+ test_out = os.path.join(output_dir, 'test.txt')
+
+ x, y = parse_dnabert_data(input_file)
+ bins = bin_data(y, nr_stratification_bins)
+
+ # Split train and test data
+ tts = StratifiedShuffleSplit(n_splits=1, test_size=test_size, random_state=250589)
+ tts.get_n_splits(x, bins)
+
+ seen_indices, test_indices = next(tts.split(x, bins))
+
+ seen_x = []
+ seen_y = []
+ seen_bins = []
+
+ test_x = []
+ test_y = []
+
+ for index in seen_indices:
+ seen_x.append(x[index])
+ seen_y.append(y[index])
+ seen_bins.append(bins[index])
+
+ for index in test_indices:
+ test_x.append(x[index])
+ test_y.append(y[index])
+
+ tvs = StratifiedShuffleSplit(n_splits=1, test_size=validation_size, random_state=100125)
+ tvs.get_n_splits(seen_x, seen_bins)
+
+ train_indices, validation_indices = next(tvs.split(seen_x, seen_bins))
+
+ train_x = []
+ train_y = []
+
+ for index in train_indices:
+ train_x.append(seen_x[index])
+ train_y.append(seen_y[index])
+
+ validation_x = []
+ validation_y = []
+
+ for index in validation_indices:
+ validation_x.append(seen_x[index])
+ validation_y.append(seen_y[index])
+
+ out_files = test_out, train_out, validation_out
+ out_x = test_x, train_x, validation_x
+ out_y = test_y, train_y, validation_y
+
+ for i, out_file in enumerate(out_files):
+
+ with open(out_file, 'w') as out:
+ for j, seq in enumerate(out_x[i]):
+ te = out_y[i][j]
+ out.write(f"{seq}\t{te}\n")
+
+
+if __name__ == "__main__":
+ split_data_from_file(argv[1], argv[2])
diff --git a/mewtwo/machine_learning/feature_inference/__init__.py b/mewtwo/machine_learning/feature_inference/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/feature_inference/infer_features_rf.py b/mewtwo/machine_learning/feature_inference/infer_features_rf.py
new file mode 100644
index 0000000..7d221dd
--- /dev/null
+++ b/mewtwo/machine_learning/feature_inference/infer_features_rf.py
@@ -0,0 +1,136 @@
+import os
+from statistics import mean, stdev
+
+from mewtwo.parsers.parse_feature_file import parse_feature_file
+from mewtwo.data_processing.iterate_over_dir import iterate_over_dir
+from mewtwo.writers.write_feature_importances import write_feature_importances
+from mewtwo.embeddings.feature_labels import FeatureCategory, FeatureLabel, FeatureType, StemShoulder
+
+
+def get_average_features_from_crossvalidation(input_folder, get_stdev=True):
+ feature_to_importance_list = {}
+ feature_to_stdev = {}
+ for folder_name, folder_path in iterate_over_dir(input_folder, get_dirs=True):
+ if 'crossvalidation_results' in folder_name:
+ feature_file = os.path.join(folder_path, "feature_importances.txt")
+ feature_to_importance = parse_feature_file(feature_file)
+ for feature, importance in feature_to_importance.items():
+ if feature not in feature_to_importance_list:
+ feature_to_importance_list[feature] = []
+
+ feature_to_importance_list[feature].append(importance)
+ feature_to_average_importance = {}
+
+ for feature, importances in feature_to_importance_list.items():
+ if not importances:
+ raise ValueError(f"No importance values found for feature {feature}")
+ elif get_stdev and len(importances) < 2:
+ raise ValueError(f"Too few importance values for feature {feature} to calculate stdev")
+ feature_to_average_importance[feature] = mean(importances)
+ if get_stdev:
+ feature_to_stdev[feature] = stdev(importances)
+
+ if get_stdev:
+ return feature_to_average_importance, feature_to_stdev
+
+ else:
+ return feature_to_average_importance
+
+
+def write_average_importances(input_folder: str, out_file: str) -> None:
+ feature_to_average_importance, feature_to_stdev = get_average_features_from_crossvalidation(input_folder)
+ write_feature_importances(feature_to_average_importance, out_file, feature_to_stdev=feature_to_stdev,
+ sort_by_importance=True)
+
+
+class SortedFeatures:
+ def __init__(self, summed_feature_to_importance):
+ sorted_features = {StemShoulder.UPSTREAM: [],
+ StemShoulder.DOWNSTREAM: [],
+ FeatureCategory.U_TRACT: [],
+ FeatureCategory.A_TRACT: [],
+ FeatureCategory.LOOP: []}
+ for summed_feature, importance in summed_feature_to_importance.items():
+ if summed_feature.feature_category != FeatureCategory.STEM:
+ sorted_features[summed_feature.feature_category].append((summed_feature, importance))
+
+ else:
+ sorted_features[summed_feature.stem_shoulder].append((summed_feature, importance))
+
+ self.a_tract = sorted(sorted_features[FeatureCategory.A_TRACT], key=lambda x: x[0].base_index)
+ self.u_tract = sorted(sorted_features[FeatureCategory.U_TRACT], key=lambda x: x[0].base_index)
+ self.loop = sorted(sorted_features[FeatureCategory.LOOP], key=lambda x: x[0].base_index)
+ self.left_stem_shoulder = sorted(sorted_features[StemShoulder.UPSTREAM], key=lambda x: x[0].base_index)
+ self.right_stem_shoulder = sorted(sorted_features[StemShoulder.DOWNSTREAM], key=lambda x: x[0].base_index)
+
+
+def sum_importance_per_base(feature_to_importance):
+ importance_dict = {StemShoulder.UPSTREAM: {},
+ StemShoulder.DOWNSTREAM: {},
+ FeatureCategory.U_TRACT: {},
+ FeatureCategory.A_TRACT: {},
+ FeatureCategory.LOOP: {}}
+
+ one_hot = False
+
+ for feature, importance in feature_to_importance.items():
+ if feature.feature_type in FeatureType.IS_BASE_IDENTITY:
+ one_hot = True
+
+ if feature.feature_category != FeatureCategory.STEM:
+ if feature.base_index not in importance_dict[feature.feature_category]:
+ importance_dict[feature.feature_category][feature.base_index] = []
+ importance_dict[feature.feature_category][feature.base_index].append(importance)
+ else:
+ if feature.base_index not in importance_dict[StemShoulder.UPSTREAM]:
+ importance_dict[StemShoulder.UPSTREAM][feature.base_index] = []
+ if feature.base_index not in importance_dict[StemShoulder.DOWNSTREAM]:
+ importance_dict[StemShoulder.DOWNSTREAM][feature.base_index] = []
+
+ if feature.stem_shoulder is None:
+ importance_dict[StemShoulder.UPSTREAM][feature.base_index].append(importance)
+ importance_dict[StemShoulder.DOWNSTREAM][feature.base_index].append(importance)
+ elif feature.stem_shoulder == StemShoulder.UPSTREAM:
+ importance_dict[StemShoulder.UPSTREAM][feature.base_index].append(importance)
+ elif feature.stem_shoulder == StemShoulder.DOWNSTREAM:
+ importance_dict[StemShoulder.DOWNSTREAM][feature.base_index].append(importance)
+ else:
+ raise ValueError(f"Unknown value for stem shoulder: {feature.stem_shoulder}")
+
+ summed_importances = {}
+
+ for category, base_to_importances in importance_dict.items():
+ if type(category) == StemShoulder:
+ feature_category = FeatureCategory.STEM
+ stem_shoulder = category
+ else:
+ feature_category = category
+ stem_shoulder = None
+
+ for base, importances in base_to_importances.items():
+
+ if one_hot:
+ feature_type = FeatureType.ONE_HOT_TYPES
+ else:
+ feature_type = FeatureType.BASE_FEATURE_TYPES
+
+ feature = FeatureLabel(feature_type, feature_category, base, stem_shoulder)
+ summed_importances[feature] = sum(importances)
+
+ return summed_importances
+
+
+def get_normalized_importances(feature_file):
+ feature_to_importance = parse_feature_file(feature_file)
+ normalize_importances(feature_to_importance)
+
+ return feature_to_importance
+
+
+def normalize_importances(feature_to_importance):
+ max_importance = max(feature_to_importance.values())
+ factor = 1.0 / max_importance
+
+ for feature in feature_to_importance:
+ feature_to_importance[feature] = factor * feature_to_importance[feature]
+
diff --git a/mewtwo/machine_learning/neural_network.py b/mewtwo/machine_learning/neural_network.py
new file mode 100644
index 0000000..d4891b5
--- /dev/null
+++ b/mewtwo/machine_learning/neural_network.py
@@ -0,0 +1,12 @@
+from sklearn.neural_network import MLPRegressor
+
+from mewtwo.machine_learning.prepare_data import terminators_to_ml_input
+
+
+def train_nn(train_terminators, test_terminators, one_hot=True):
+ train_x, train_y, test_x, test_y = terminators_to_ml_input(train_terminators, test_terminators, one_hot=one_hot)
+ print(len(train_x))
+ nn = MLPRegressor(hidden_layer_sizes=(500, 1000, 1000, 500, 100), random_state=100125, max_iter=1000, solver='adam')
+ nn.fit(train_x, train_y)
+
+ print(nn.score(test_x, test_y))
\ No newline at end of file
diff --git a/mewtwo/machine_learning/prepare_data.py b/mewtwo/machine_learning/prepare_data.py
new file mode 100644
index 0000000..e723521
--- /dev/null
+++ b/mewtwo/machine_learning/prepare_data.py
@@ -0,0 +1,21 @@
+from mewtwo.embeddings.terminator.terminator import get_terminator_part_sizes, Terminator
+
+
+def terminators_to_ml_input(train_terminators: list[Terminator], test_terminators: list[Terminator], one_hot=True) -> \
+ tuple[list[list[int]], list[float], list[list[int]], list[float]]:
+ max_loop, max_stem, max_a, max_u = get_terminator_part_sizes(train_terminators + test_terminators)
+
+ train_x = []
+ train_y = []
+ test_x = []
+ test_y = []
+
+ for terminator in train_terminators:
+ train_x.append(terminator.to_vector(max_loop, max_stem, max_a, max_u, one_hot=one_hot))
+ train_y.append(terminator.te)
+
+ for terminator in test_terminators:
+ test_x.append(terminator.to_vector(max_loop, max_stem, max_a, max_u, one_hot=one_hot))
+ test_y.append(terminator.te)
+
+ return train_x, train_y, test_x, test_y
diff --git a/mewtwo/machine_learning/random_forest/__init__.py b/mewtwo/machine_learning/random_forest/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/random_forest/rf_from_data.py b/mewtwo/machine_learning/random_forest/rf_from_data.py
new file mode 100644
index 0000000..e4a6065
--- /dev/null
+++ b/mewtwo/machine_learning/random_forest/rf_from_data.py
@@ -0,0 +1,94 @@
+import os
+from argparse import ArgumentParser, Namespace
+from enum import Enum
+
+from joblib import dump
+
+from mewtwo.parsers.parse_data_chen import get_chen_terminators
+from mewtwo.machine_learning.data_preparation.train_test_split import split_data
+from mewtwo.machine_learning.random_forest.train_random_forest import train_random_forest, RandomForestMode, \
+ FeaturisationMode
+from mewtwo.machine_learning.feature_inference.infer_features_rf import write_average_importances
+from mewtwo.parsers.parse_termite_output import get_termite_terminators
+from mewtwo.embeddings.terminator.draw_terminator import visualise_feature_importances
+
+
+class DataSource(Enum):
+ TERMITE = 1
+ CHEN = 2
+
+
+def parse_arguments() -> Namespace:
+ parser = ArgumentParser(description="Train random forest from E. coli terminator data published by Chen et al.")
+ parser.add_argument("-i", type=str, required=True, help="Path to input file.")
+ parser.add_argument("-o", type=str, required=True, help="Path to output directory.")
+ parser.add_argument("-d", type=str, default="CHEN", help="Data source. Must be CHEN or TERMITE")
+ parser.add_argument("-m", type=str, default="FULL", help="Random forest training mode. Must be one of \
+ 'FULL', 'TRAIN', or 'CROSSVALIDATION'.")
+ parser.add_argument("-a", type=str, default="is_synthetic", help="Attribute for stratified data splitting")
+ parser.add_argument("-f", type=str, default="ONE_HOT", help="Featurisation mode. Must be one of 'ONE_HOT' or \
+ 'PURINE_PYRIMIDINE'.")
+ parser.add_argument("-s", action="store_true", help="If given, save random forest models.")
+ parser.add_argument("-n", type=int, default=100, help="Number of trees in RF")
+
+ args = parser.parse_args()
+ return args
+
+
+def rf_from_data(data_file: str, data_source: DataSource, out_dir: str, attribute: str, save_model: bool = False,
+ mode: RandomForestMode = RandomForestMode.CROSSVALIDATION,
+ featurisation_mode: FeaturisationMode = FeaturisationMode.ONE_HOT, n_trees: int = 100) -> None:
+ if data_source == DataSource.CHEN:
+ terminators = get_chen_terminators(data_file)
+ elif data_source == DataSource.TERMITE:
+ terminators = get_termite_terminators(data_file, species_column=True)
+ else:
+ raise ValueError(f"Unknown data source: {data_source.name}")
+
+ train_terminators, test_terminators, crossvalidation_sets = split_data(terminators,
+ attribute_for_splitting=attribute)
+
+ if featurisation_mode == FeaturisationMode.ONE_HOT:
+ one_hot = True
+ else:
+ one_hot = False
+
+ if RandomForestMode.CROSSVALIDATION in mode:
+ figure_dir = os.path.join(out_dir, "feature_importance_visualisations_crossval")
+
+ for crossval_nr, crossvalidation_set in crossvalidation_sets.items():
+ out_path = os.path.join(out_dir, f"crossvalidation_results_{crossval_nr}")
+
+ rf = train_random_forest(crossvalidation_set.train, crossvalidation_set.test, one_hot=one_hot,
+ out_dir=out_path, n_trees=n_trees)
+ if save_model:
+ model_path = os.path.join(out_dir, f"crossvalidation_model_{crossval_nr}.rf")
+ dump(rf, model_path)
+
+ averaged_features_dir = os.path.join(out_dir, "average_feature_importances.txt")
+
+ write_average_importances(out_dir, averaged_features_dir)
+ visualise_feature_importances(averaged_features_dir, figure_dir)
+
+ if RandomForestMode.TRAIN in mode:
+ figure_dir = os.path.join(out_dir, "feature_importance_visualisations_train")
+
+ rf = train_random_forest(train_terminators, test_terminators, one_hot=one_hot, out_dir=out_dir, n_trees=n_trees)
+ if save_model:
+ model_path = os.path.join(out_dir, f"predictor.rf")
+ dump(rf, model_path)
+
+ visualise_feature_importances(os.path.join(out_dir, "feature_importances.txt"), figure_dir)
+
+
+def main():
+ args = parse_arguments()
+ if not os.path.exists(args.o):
+ os.mkdir(args.o)
+
+ rf_from_data(args.i, DataSource[args.d], args.o, args.a, args.s, RandomForestMode[args.m],
+ FeaturisationMode[args.f], args.n)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/mewtwo/machine_learning/random_forest/train_random_forest.py b/mewtwo/machine_learning/random_forest/train_random_forest.py
new file mode 100644
index 0000000..0655efa
--- /dev/null
+++ b/mewtwo/machine_learning/random_forest/train_random_forest.py
@@ -0,0 +1,92 @@
+import os
+from enum import Enum, Flag
+from typing import Optional
+
+from sklearn.ensemble import RandomForestRegressor
+from scipy.stats import pearsonr, spearmanr
+
+from mewtwo.embeddings.terminator.terminator import get_terminator_part_sizes, Terminator
+from mewtwo.embeddings.feature_labels import FeatureLabel, FeatureCategory
+
+
+class FeaturisationMode(Enum):
+ ONE_HOT = 1
+ PURINE_PYRIMIDINE = 2
+
+
+class RandomForestMode(Flag):
+ CROSSVALIDATION = 1
+ TRAIN = 2
+ FULL = CROSSVALIDATION | TRAIN
+
+
+def train_random_forest(train_terminators: list[Terminator], test_terminators: list[Terminator],
+ out_dir: Optional[str] = None, one_hot: bool = True, n_trees: int = 100):
+
+ features_out = os.path.join(out_dir, "feature_importances.txt")
+ performance_out = os.path.join(out_dir, "performance.txt")
+ datapoints_out = os.path.join(out_dir, "actual_vs_predicted.txt")
+
+ all_terminators = train_terminators + test_terminators
+ max_loop, max_stem, max_a, max_u = get_terminator_part_sizes(all_terminators)
+ train_x = []
+ train_y = []
+ test_x = []
+ test_y = []
+
+ for terminator in train_terminators:
+ train_x.append(terminator.to_vector(max_loop, max_stem, max_a, max_u, one_hot=one_hot))
+ train_y.append(terminator.te)
+
+ for terminator in test_terminators:
+ test_x.append(terminator.to_vector(max_loop, max_stem, max_a, max_u, one_hot=one_hot))
+ test_y.append(terminator.te)
+
+ random_forest = RandomForestRegressor(n_estimators=n_trees, oob_score=True)
+ random_forest.fit(train_x, train_y)
+
+ print("oob", random_forest.oob_score_)
+ importance_and_label = []
+ if train_terminators[0].u_tract.pot is not None:
+ u_tract_pot = True
+ else:
+ u_tract_pot = False
+ for i, feature_importance in enumerate(random_forest.feature_importances_):
+ feature_label = FeatureLabel.from_feature_position(i, max_a, max_stem, max_loop, max_u, one_hot=one_hot,
+ utract_has_pot=u_tract_pot)
+ importance_and_label.append((feature_importance, feature_label))
+
+ importance_and_label.sort(key=lambda x: x[0], reverse=True)
+
+ for importance, label in importance_and_label[:20]:
+ if label.feature_category == FeatureCategory.STEM:
+ print(label.feature_category, label.feature_type, importance, label.base_index, label.stem_shoulder)
+ else:
+ print(label.feature_category, label.feature_type, importance, label.base_index)
+
+ print("test score", random_forest.score(test_x, test_y))
+ print("Pearson correlation: ", pearsonr(random_forest.predict(test_x), test_y))
+
+ if out_dir is not None:
+ if not os.path.exists(out_dir):
+ os.mkdir(out_dir)
+
+ with open(features_out, 'w') as features:
+ features.write("feature_name\tfeature_importance\n")
+ for importance, label in importance_and_label:
+
+ features.write(f"{label}\t{importance:.10f}\n")
+
+ with open(performance_out, 'w') as out:
+ out.write("test_score\tpearson\tspearman\n")
+ out.write(f"{random_forest.score(test_x, test_y):.10f}\t{pearsonr(random_forest.predict(test_x), test_y).statistic:.10f}\t{spearmanr(random_forest.predict(test_x), test_y).statistic}")
+
+ with open(datapoints_out, 'w') as out:
+ out.write(f"actual\tpredicted\n")
+ for i, prediction in enumerate(random_forest.predict(test_x)):
+ true_label = test_y[i]
+ out.write(f"{true_label}\t{prediction}\n")
+ return random_forest
+
+
+
diff --git a/mewtwo/machine_learning/transformer/__init__.py b/mewtwo/machine_learning/transformer/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/transformer/config/__init__.py b/mewtwo/machine_learning/transformer/config/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/machine_learning/transformer/config/config_types.py b/mewtwo/machine_learning/transformer/config/config_types.py
new file mode 100644
index 0000000..fed9d49
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/config/config_types.py
@@ -0,0 +1,53 @@
+from enum import Enum, Flag
+
+
+class EarlyStoppingMetricType(Flag):
+ EVAL_LOSS = 1
+ SPEARMAN_R = 2
+ PEARSON_R = 4
+
+ MAX_METRICS = PEARSON_R | SPEARMAN_R
+ MIN_METRICS = EVAL_LOSS
+
+
+class LossFunctionType(Flag):
+ MSE = 1
+ PEARSON = 2
+ MSE_PEARSON = 4
+ WEIGHTED_MSE = 8
+ WEIGHTED_MSE_PEARSON = 16
+ SPEARMAN = 32
+ MSE_SPEARMAN = 64
+ WEIGHTED_MSE_SPEARMAN = 128
+
+ WEIGHTED = WEIGHTED_MSE | WEIGHTED_MSE_PEARSON | WEIGHTED_MSE_SPEARMAN
+ NEEDS_ALPHA = MSE_PEARSON | WEIGHTED_MSE_PEARSON | MSE_SPEARMAN | WEIGHTED_MSE_SPEARMAN
+ CORRELATION_ONLY = PEARSON | SPEARMAN
+ USES_SPEARMAN = WEIGHTED_MSE_SPEARMAN | SPEARMAN | MSE_SPEARMAN
+
+ @staticmethod
+ def from_string_description(string_description) -> "LossFunctionType":
+ return LossFunctionType[string_description.upper()]
+
+
+class FinetuningType(Enum):
+ LINEAR_HEAD = 1
+ ADAPTER = 2
+
+ @staticmethod
+ def from_string_description(string_description) -> "FinetuningType":
+ return FinetuningType[string_description.upper()]
+
+
+class SchedulerType(Flag):
+ REDUCE_ON_PLATEAU = 1
+ COS_ANNEAL_WARMUP = 2 # Cosine annealing with warmup
+ REDUCE_ON_PLATEAU_WARMUP = 4
+ WARMUP_ONLY = 8
+
+ WARMUP_SCHEDULERS = COS_ANNEAL_WARMUP | REDUCE_ON_PLATEAU_WARMUP | WARMUP_ONLY
+ REDUCE_ON_PLATEAU_SCHEDULERS = REDUCE_ON_PLATEAU | REDUCE_ON_PLATEAU_WARMUP
+
+ @staticmethod
+ def from_string_description(string_description) -> "SchedulerType":
+ return SchedulerType[string_description.upper()]
diff --git a/mewtwo/machine_learning/transformer/dnabert_regressor.py b/mewtwo/machine_learning/transformer/dnabert_regressor.py
new file mode 100644
index 0000000..ef13575
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/dnabert_regressor.py
@@ -0,0 +1,43 @@
+from typing import Optional
+
+import torch.nn as nn
+from peft import get_peft_model, LoraConfig, TaskType
+
+
+class DNABERTRegressor(nn.Module):
+ def __init__(self, base_model, dropout: float = 0.2, use_adapters=False, lora_alpha: int = 16, lora_r: int = 8,
+ lora_dropout: float = 0.1, second_layer_dim: Optional[int] = None):
+ super().__init__()
+ self.base = base_model
+
+ if use_adapters:
+ peft_config = LoraConfig(task_type=TaskType.SEQ_CLS,
+ inference_mode=False,
+ r=lora_r,
+ lora_alpha=lora_alpha,
+ lora_dropout=lora_dropout,
+ target_modules=["attention.self.Wqkv"])
+ self.base = get_peft_model(self.base, peft_config)
+
+ hidden_size = self.base.base_model.config.hidden_size
+
+ if second_layer_dim is None:
+
+ self.regressor = nn.Sequential(nn.Dropout(dropout), nn.Linear(hidden_size, 1),
+ nn.Sigmoid())
+
+ else:
+ self.regressor = nn.Sequential(nn.Dropout(dropout), nn.Linear(hidden_size, second_layer_dim),
+ nn.ReLU(), nn.Dropout(dropout), nn.Linear(second_layer_dim, 1),
+ nn.Sigmoid())
+
+ def forward(self, input_ids, attention_mask=None):
+ # Pass through the model
+ outputs = self.base(input_ids=input_ids, attention_mask=attention_mask)
+ if isinstance(outputs, tuple):
+ last_hidden_state = outputs[0]
+ else:
+ last_hidden_state = outputs.last_hidden_state
+ cls_token = last_hidden_state[:, 0] # CLS token for regression
+ predictions = self.regressor(cls_token).squeeze(-1)
+ return predictions
diff --git a/mewtwo/machine_learning/transformer/finetune_bert.py b/mewtwo/machine_learning/transformer/finetune_bert.py
new file mode 100644
index 0000000..74d9dbd
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/finetune_bert.py
@@ -0,0 +1,160 @@
+import argparse
+import os
+
+from mewtwo.machine_learning.transformer.model import load_model
+from mewtwo.machine_learning.transformer.config.config_types import SchedulerType, EarlyStoppingMetricType
+
+from scipy.stats import pearsonr, spearmanr
+
+
+def parse_arguments() -> argparse.Namespace:
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-i", type=str, required=True,
+ help="Tabular input data, with sequence in one column and efficiency in the second")
+ parser.add_argument("-v", type=str, required=True,
+ help="Tabular input data, with sequence in one column and efficiency in the second")
+ parser.add_argument("-c", type=str, default=None, help="Path to configuration file.")
+ parser.add_argument("-o", type=str, required=True, help="Output directory")
+ parser.add_argument("-e", type=int, default=15, help="Nr of epochs")
+
+ parser.add_argument("-s", action="store_true", help="If given, save model to output_folder/checkpoint.pt")
+ parser.add_argument("-m", type=str, default=None, help="If given, train from this checkpoint")
+
+ args = parser.parse_args()
+
+ if args.c is None:
+ assert args.m
+
+ if args.c is not None and args.m is not None:
+ print("Warning: config file given alongside existing model. Config file will be ignored.")
+
+ if args.c is None and args.m is None:
+ raise ValueError("Model config or previous model checkpoint must be given.")
+
+ return args
+
+
+def metric_has_improved(old_metric, new_metric, metric_type):
+ if metric_type in EarlyStoppingMetricType.MAX_METRICS:
+ if new_metric > old_metric:
+ return True
+ else:
+ return False
+ elif metric_type in EarlyStoppingMetricType.MIN_METRICS:
+ if new_metric < old_metric:
+ return True
+ else:
+ return False
+ else:
+ raise ValueError(f"Unrecognised early stopping metric: {metric_type.name}")
+
+
+def get_metric(eval_loss, pearson, spearman, metric_type):
+ if metric_type == EarlyStoppingMetricType.PEARSON_R:
+ return pearson
+ elif metric_type == EarlyStoppingMetricType.SPEARMAN_R:
+ return spearman
+ elif metric_type == EarlyStoppingMetricType.EVAL_LOSS:
+ return eval_loss
+ else:
+ raise ValueError(f"Unrecognised early stopping metric: {metric_type.name}")
+
+
+def finetune(model, summary, epochs, out_dir, header=False):
+ if header:
+ summary.write("epoch\taverage_train_loss\taverage_eval_loss\tpearsonr\tspearmanr\n")
+ config_file = os.path.join(out_dir, "model.config")
+
+ starting_epoch = model.config.epochs
+ epochs_without_improvement = 0
+
+ best_model_path = os.path.join(out_dir, "best_checkpoint.pt")
+ if model.config.early_stopping_config and \
+ model.config.early_stopping_config.metric in EarlyStoppingMetricType.MAX_METRICS:
+ best_metric = -1.1
+ else:
+ best_metric = 1.1
+
+ for i in range(epochs):
+ current_epoch = starting_epoch + i + 1
+ print(f"LR at epoch {current_epoch}: {model.optimizer.param_groups[0]['lr']}")
+
+ out_file = os.path.join(out_dir, f"epoch_{current_epoch:03d}.txt")
+
+ avg_train_loss = model.train_model()
+ avg_loss, all_preds, all_labels = model.evaluate_model()
+
+ pearson = pearsonr(all_labels, all_preds).statistic
+ spearman = spearmanr(all_labels, all_preds).statistic
+
+ print(f"Epoch {current_epoch}\t- Train loss:\t{avg_train_loss:.4f}")
+ print(f" \t- Eval loss:\t{avg_loss:.4f}")
+
+ print(f" \t- PearsonR:\t{pearson:.4f}")
+ print(f" \t- SpearmanR:\t{spearman:.4f}")
+
+ with open(out_file, 'w') as out:
+ out.write("actual\tpredicted\n")
+ for j, prediction in enumerate(all_preds):
+ label = all_labels[j]
+ out.write(f"{label}\t{prediction}\n")
+
+ summary.write(f"{current_epoch}\t{avg_train_loss:.5f}\t{avg_loss:.5f}\t{pearson:.5f}\t{spearman:.5f}\n")
+
+ model.update_epoch(current_epoch)
+
+ if model.scheduler is not None and \
+ model.config.scheduler_config.type in SchedulerType.REDUCE_ON_PLATEAU_SCHEDULERS:
+ model.scheduler.step(avg_loss)
+
+ if model.config.early_stopping_config is not None:
+ metric = get_metric(avg_loss, pearson, spearman, model.config.early_stopping_config.metric)
+ if metric_has_improved(best_metric, metric, model.config.early_stopping_config.metric):
+ best_metric = metric
+ epochs_without_improvement = 0
+ model.save_model_checkpoint(best_model_path)
+ else:
+ epochs_without_improvement += 1
+ if epochs_without_improvement >= model.config.early_stopping_config.patience:
+ print(f"Early stopping at epoch {current_epoch}")
+ break
+
+ model.config.write_model_config(config_file)
+
+
+def main():
+
+ args = parse_arguments()
+
+ if not os.path.exists(args.o):
+ os.mkdir(args.o)
+
+ summary_file = os.path.join(args.o, "summary.txt")
+
+ if args.m is not None:
+ summary = open(summary_file, 'a')
+ write_header = False
+ model = load_model(args.i, args.v, model_checkpoint=args.m)
+ elif args.c is not None:
+ summary = open(summary_file, 'w')
+ write_header = True
+ model = load_model(args.i, args.v, config_file=args.c)
+ else:
+ raise ValueError("Model or config file must be given")
+
+ current_epoch = model.config.epochs
+
+ if args.m is None:
+ avg_loss, all_preds, all_labels = model.evaluate_model()
+ print(f"Epoch {current_epoch}\t- Eval loss:\t{avg_loss:.4f}")
+
+ finetune(model, summary, args.e, args.o, header=write_header)
+
+ summary.close()
+
+ if args.s is not None:
+ model.save_model_checkpoint(os.path.join(args.o, "checkpoint.pt"))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/mewtwo/machine_learning/transformer/hyperparameter_optimization.py b/mewtwo/machine_learning/transformer/hyperparameter_optimization.py
new file mode 100644
index 0000000..347463e
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/hyperparameter_optimization.py
@@ -0,0 +1,63 @@
+import os
+from argparse import ArgumentParser
+from shutil import copy
+
+from mewtwo.data_processing.iterate_over_dir import iterate_over_dir
+from mewtwo.machine_learning.transformer.model import load_model
+from mewtwo.machine_learning.transformer.finetune_bert import finetune
+
+
+def parse_arguments():
+ parser = ArgumentParser(description="Perform hyperparameter optimisation from directory of configuration files")
+ parser.add_argument('-c', type=str, required=True, help="Directory of model configuration files")
+ parser.add_argument('-i', type=str, required=True, help="Path to training data")
+ parser.add_argument('-v', type=str, required=True, help="Path to validation data")
+ parser.add_argument('-o', type=str, required=True, help="Output directory")
+ parser.add_argument('-e', type=int, default=20, help="Training epochs")
+ parser.add_argument('-f', action="store_true", help="If given, save failed contigs to folder named 'failed'")
+ args = parser.parse_args()
+
+ return args
+
+
+def main():
+ args = parse_arguments()
+ if not os.path.exists(args.o):
+ os.mkdir(args.o)
+
+ failed_configs = []
+
+ for file_name, file_path in iterate_over_dir(args.c, extension='.config'):
+
+ out_dir = os.path.join(args.o, file_name)
+ if not os.path.exists(out_dir):
+ os.mkdir(out_dir)
+
+ try:
+ model = load_model(args.i, args.v, config_file=file_path)
+ summary_file = os.path.join(out_dir, "summary.txt")
+
+ with open(summary_file, 'w') as summary:
+ finetune(model, summary, args.e, out_dir, header=True)
+
+ except Exception as e:
+ f"Could not train model with config {file_name}: {e}"
+ failed_configs.append((file_path, file_name))
+
+ if args.f and failed_configs:
+ failed_dir = os.path.join(args.o, "failed")
+ if not os.path.exists(failed_dir):
+ os.mkdir(failed_dir)
+
+ for file_path, file_name in failed_configs:
+
+ failed_path = os.path.join(failed_dir, f"{file_name}.config")
+
+ if os.path.exists(failed_path):
+ os.remove(failed_path)
+
+ copy(file_path, failed_path)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/mewtwo/machine_learning/transformer/loss_functions.py b/mewtwo/machine_learning/transformer/loss_functions.py
new file mode 100644
index 0000000..7f10db8
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/loss_functions.py
@@ -0,0 +1,129 @@
+from typing import Optional
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from mewtwo.machine_learning.transformer.config.config_types import LossFunctionType
+from mewtwo.parsers.parse_model_config import LossFunctionConfig
+
+
+def weighted_mse_loss(preds, targets, weights):
+ return (weights * (preds - targets) ** 2).mean()
+
+
+class WeightedMSELoss(nn.Module):
+ def __init__(self):
+ super().__init__()
+
+ def forward(self, preds, targets, weights):
+ return weighted_mse_loss(preds, targets, weights)
+
+
+class CombinedMSEPearsonLoss(nn.Module):
+ def __init__(self, alpha=0.5):
+ """
+ alpha: weight for MSE loss (0 <= alpha <= 1)
+ (1 - alpha) will be used for the Pearson correlation loss
+ """
+ super().__init__()
+ self.alpha = alpha
+
+ def forward(self, preds: torch.Tensor, targets: torch.Tensor, weights: Optional[torch.Tensor] = None) -> torch.Tensor:
+ # Ensure preds and targets have the same shape
+ if preds.shape != targets.shape:
+ raise ValueError("Shape mismatch between predictions and targets.")
+
+ if weights is not None:
+ if targets.shape != weights.shape:
+ raise ValueError("Shape mismatch between weights and targets.")
+
+ if weights is None:
+ # MSE Loss
+ mse_loss = F.mse_loss(preds, targets)
+ else:
+ mse_loss = weighted_mse_loss(preds, targets, weights)
+
+ # Pearson Correlation
+ preds_centered = preds - preds.mean()
+ targets_centered = targets - targets.mean()
+
+ numerator = torch.sum(preds_centered * targets_centered)
+ denominator = torch.sqrt(torch.sum(preds_centered ** 2)) * torch.sqrt(torch.sum(targets_centered ** 2)) + 1e-8
+ pearson_corr = numerator / denominator
+
+ corr_loss = 1 - pearson_corr
+
+ # Weighted combination
+ return self.alpha * mse_loss + (1 - self.alpha) * corr_loss
+
+
+def soft_rank(x, regularization_strength=1e-3):
+ """
+ Approximate the ranks of elements in x using a softmax-based method.
+ Returns a tensor of the same shape with values approximating the rank of each element.
+ """
+ x = x.unsqueeze(-1)
+ diff = x - x.transpose(0, 1)
+ P = torch.sigmoid(-diff / regularization_strength)
+ soft_ranks = P.sum(dim=-1) + 0.5 # Adding 0.5 to center ranks correctly
+ return soft_ranks
+
+
+class CombinedMSESpearmanLoss(nn.Module):
+ def __init__(self, alpha=0.5, reg_strength=1e-3):
+ """
+ alpha: weight for MSE loss (0 <= alpha <= 1)
+ reg_strength: smoothness factor for soft ranking
+ """
+ super().__init__()
+ self.alpha = alpha
+ self.reg_strength = reg_strength
+
+ def forward(self, preds, targets):
+ if preds.shape != targets.shape:
+ raise ValueError("Shape mismatch between predictions and targets.")
+
+ # MSE
+ mse_loss = F.mse_loss(preds, targets)
+
+ # Soft ranks
+ preds_rank = soft_rank(preds.squeeze(), self.reg_strength)
+ targets_rank = soft_rank(targets.squeeze(), self.reg_strength)
+
+ # Centered ranks for Spearman
+ preds_rank_centered = preds_rank - preds_rank.mean()
+ targets_rank_centered = targets_rank - targets_rank.mean()
+
+ # Spearman correlation (same as Pearson but on ranks)
+ numerator = torch.sum(preds_rank_centered * targets_rank_centered)
+ denominator = (
+ torch.sqrt(torch.sum(preds_rank_centered**2)) * torch.sqrt(torch.sum(targets_rank_centered**2)) + 1e-8
+ )
+ spearman_corr = numerator / denominator
+ spearman_loss = 1 - spearman_corr
+
+ return self.alpha * mse_loss + (1 - self.alpha) * spearman_loss
+
+
+TYPE_TO_LOSS_FN = {LossFunctionType.MSE: nn.MSELoss,
+ LossFunctionType.WEIGHTED_MSE: WeightedMSELoss,
+ LossFunctionType.MSE_PEARSON: CombinedMSEPearsonLoss,
+ LossFunctionType.MSE_SPEARMAN: CombinedMSESpearmanLoss,
+ LossFunctionType.WEIGHTED_MSE_PEARSON: CombinedMSEPearsonLoss,
+ LossFunctionType.WEIGHTED_MSE_SPEARMAN: CombinedMSESpearmanLoss,
+ LossFunctionType.PEARSON: CombinedMSEPearsonLoss,
+ LossFunctionType.SPEARMAN: CombinedMSESpearmanLoss}
+
+
+def get_loss_function(config: LossFunctionConfig):
+ loss_fn = TYPE_TO_LOSS_FN[config.type]
+ if config.type in LossFunctionType.NEEDS_ALPHA:
+ loss_fn_instance = loss_fn(alpha=config.alpha)
+ elif config.type in LossFunctionType.CORRELATION_ONLY:
+ loss_fn_instance = loss_fn(alpha=0.0)
+ else:
+ loss_fn_instance = loss_fn()
+
+ return loss_fn_instance
+
diff --git a/mewtwo/machine_learning/transformer/model.py b/mewtwo/machine_learning/transformer/model.py
new file mode 100644
index 0000000..d2aa6f6
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/model.py
@@ -0,0 +1,202 @@
+from dataclasses import dataclass
+from typing import Union
+
+import torch
+import torch.optim as optim
+import torch.nn as nn
+
+from torch.utils.data import DataLoader
+from torch.optim.lr_scheduler import ReduceLROnPlateau
+from transformers import AutoTokenizer, get_cosine_schedule_with_warmup
+
+from mewtwo.external_code.dnabert.bert_layers import BertModel
+from mewtwo.machine_learning.transformer.dnabert_regressor import DNABERTRegressor
+from mewtwo.machine_learning.transformer.regressor_dataset import RegressionDataset
+from mewtwo.parsers.parse_dnabert_data import parse_dnabert_data
+from mewtwo.machine_learning.data_preparation.calculate_sample_weights import get_sample_weights
+from mewtwo.machine_learning.transformer.loss_functions import get_loss_function, WeightedMSELoss, \
+ CombinedMSEPearsonLoss, CombinedMSESpearmanLoss
+from mewtwo.machine_learning.transformer.config.config_types import FinetuningType, SchedulerType, LossFunctionType
+from mewtwo.parsers.parse_model_config import ModelConfig
+from mewtwo.machine_learning.transformer.schedulers import WarmupReduceOnPlateau
+
+
+@dataclass
+class Model:
+ model: DNABERTRegressor
+ train_dataloader: DataLoader
+ eval_dataloader: DataLoader
+ tokenizer: AutoTokenizer
+ optimizer: optim.AdamW
+ scheduler: Union[torch.optim.lr_scheduler.LambdaLR, ReduceLROnPlateau, WarmupReduceOnPlateau]
+ loss_function: Union[nn.MSELoss, WeightedMSELoss, CombinedMSEPearsonLoss, CombinedMSESpearmanLoss]
+ config: ModelConfig
+
+ def save_model_checkpoint(self, out_file):
+ torch.save({"model_state_dict": self.model.state_dict(),
+ "config": self.config,
+
+
+ "optimizer_state_dict": self.optimizer.state_dict(),
+ "scheduler_state_dict": self.scheduler.state_dict()}, out_file)
+
+ def update_epoch(self, epoch):
+ self.config.epochs = epoch
+
+ def train_model(self, device='cpu'):
+ self.model.train() # set to training mode
+ self.model.to(device)
+
+ total_loss = 0.0
+ for batch in self.train_dataloader:
+ input_ids = batch["input_ids"].to(device)
+ attention_mask = batch["attention_mask"].to(device)
+ labels = batch["labels"].to(device)
+ weights = batch["weights"].to(device)
+
+ self.optimizer.zero_grad()
+ outputs = self.model(input_ids=input_ids, attention_mask=attention_mask)
+
+ if self.config.loss_function_config.type in LossFunctionType.WEIGHTED:
+ loss = self.loss_function(outputs, labels, weights)
+ else:
+ loss = self.loss_function(outputs, labels)
+
+ loss.backward()
+ self.optimizer.step()
+ if self.scheduler is not None:
+ if self.config.scheduler_config.type in SchedulerType.WARMUP_SCHEDULERS:
+ self.scheduler.step()
+
+ total_loss += loss.item()
+
+ avg_loss = total_loss / len(self.train_dataloader)
+ return avg_loss
+
+ def evaluate_model(self, device="cpu"):
+ self.model.eval() # Set to evaluation mode
+ total_loss = 0.0
+ all_preds = []
+ all_labels = []
+
+ with torch.no_grad():
+ for batch in self.eval_dataloader:
+ input_ids = batch["input_ids"].to(device)
+ attention_mask = batch["attention_mask"].to(device)
+ labels = batch["labels"].to(device)
+ weights = batch["weights"].to(device)
+
+ outputs = self.model(input_ids=input_ids, attention_mask=attention_mask)
+ if self.config.loss_function_config.type in LossFunctionType.WEIGHTED:
+ loss = self.loss_function(outputs, labels, weights)
+ else:
+ loss = self.loss_function(outputs, labels)
+
+ total_loss += loss.item()
+ all_preds.extend(outputs.cpu().numpy())
+ all_labels.extend(labels.cpu().numpy())
+
+ avg_loss = total_loss / len(self.eval_dataloader)
+
+ return avg_loss, all_preds, all_labels
+
+
+def initialise(finetuning_mode: FinetuningType, model_config):
+ tokenizer = AutoTokenizer.from_pretrained("zhihan1996/DNABERT-2-117M", trust_remote_code=True)
+ base_model = BertModel.from_pretrained("zhihan1996/DNABERT-2-117M")
+
+ if finetuning_mode == FinetuningType.LINEAR_HEAD or finetuning_mode == FinetuningType.ADAPTER:
+ for param in base_model.parameters():
+ param.requires_grad = False
+
+ if finetuning_mode == FinetuningType.ADAPTER:
+ assert model_config.adapter_config is not None
+
+ model = DNABERTRegressor(base_model, dropout=model_config.hidden_layer_config.dropout, use_adapters=True,
+ lora_r=model_config.adapter_config.rank,
+ lora_alpha=model_config.adapter_config.alpha,
+ lora_dropout=model_config.adapter_config.dropout,
+ second_layer_dim=model_config.hidden_layer_config.second_layer_dim)
+ else:
+ model = DNABERTRegressor(base_model, dropout=model_config.hidden_layer_config.dropout, use_adapters=False,
+ second_layer_dim=model_config.hidden_layer_config.second_layer_dim)
+
+ return model, tokenizer
+
+
+def prepare_data(input_file: str, tokenizer: AutoTokenizer, shuffle: bool, batch_size: int = 5) \
+ -> DataLoader:
+ sequences, labels = parse_dnabert_data(input_file)
+ sample_weights = get_sample_weights(labels)
+ dataset = RegressionDataset(sequences, labels, sample_weights, tokenizer)
+ dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=shuffle)
+
+ return dataloader
+
+
+def load_model(input_training_data, input_validation_data, config_file=None, model_checkpoint=None):
+ checkpoint = None
+ load_from_checkpoint = False
+ if model_checkpoint is not None:
+ if config_file:
+ print("Warning: Model checkpoint and config file have been given. Config file is ignored.")
+
+ load_from_checkpoint = True
+ checkpoint = torch.load(model_checkpoint)
+ model_config = checkpoint["config"]
+
+ elif config_file is not None:
+ model_config = ModelConfig.from_file(config_file)
+
+ else:
+ raise ValueError("Config file or model checkpoint must be given")
+
+ model, tokenizer = initialise(model_config.finetuning_mode, model_config)
+
+ train_dataloader = prepare_data(input_training_data, tokenizer, True, batch_size=model_config.batch_size)
+ eval_dataloader = prepare_data(input_validation_data, tokenizer, True, batch_size=model_config.batch_size)
+
+ if checkpoint is not None:
+ model.load_state_dict(checkpoint["model_state_dict"])
+
+ optimizer = optim.AdamW(model.parameters(), lr=model_config.learning_rate)
+ optimizer.load_state_dict(checkpoint["optimizer_state_dict"])
+
+ else:
+ optimizer = optim.AdamW(model.parameters(), lr=model_config.learning_rate)
+
+ if model_config.scheduler_config.type == SchedulerType.COS_ANNEAL_WARMUP:
+ warmup_steps = model_config.scheduler_config.warmup_epochs * len(train_dataloader)
+ training_steps = model_config.scheduler_config.training_epochs * len(train_dataloader)
+
+ scheduler = get_cosine_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps,
+ num_training_steps=training_steps)
+ elif model_config.scheduler_config.type == SchedulerType.REDUCE_ON_PLATEAU:
+ scheduler = ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=2, verbose=True,
+ min_lr=5e-6)
+ elif model_config.scheduler_config.type == SchedulerType.REDUCE_ON_PLATEAU_WARMUP:
+ warmup_steps = model_config.scheduler_config.warmup_epochs * len(train_dataloader)
+ scheduler = WarmupReduceOnPlateau(
+ optimizer,
+ warmup_steps=warmup_steps,
+ plateau_scheduler_kwargs={
+ "mode": "min",
+ "patience": model_config.scheduler_config.plateau_patience,
+ "factor": model_config.scheduler_config.factor,
+ "min_lr": 5e-6
+ }, load_from_checkpoint=load_from_checkpoint
+ )
+
+ else:
+ raise ValueError(f"Unknown scheduler type: {model_config.scheduler_config.type.name}")
+
+ if checkpoint is not None:
+ scheduler.load_state_dict(checkpoint["scheduler_state_dict"])
+ for param_group in optimizer.param_groups:
+ param_group['lr'] = scheduler.get_last_lr()[0]
+
+ loss_function = get_loss_function(model_config.loss_function_config)
+ training_model = Model(model, train_dataloader, eval_dataloader, tokenizer, optimizer, scheduler, loss_function,
+ model_config)
+
+ return training_model
diff --git a/mewtwo/machine_learning/transformer/regressor_dataset.py b/mewtwo/machine_learning/transformer/regressor_dataset.py
new file mode 100644
index 0000000..5f23620
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/regressor_dataset.py
@@ -0,0 +1,35 @@
+import torch
+
+from torch.utils.data import Dataset, DataLoader
+
+
+class RegressionDataset(Dataset):
+ def __init__(self, sequences, labels, weights, tokenizer, max_length=512):
+ self.sequences = sequences
+ self.labels = labels
+ self.weights = weights
+ self.tokenizer = tokenizer
+ self.max_length = max_length
+
+ def __len__(self):
+ return len(self.sequences)
+
+ def __getitem__(self, idx):
+ sequence = self.sequences[idx]
+ label = self.labels[idx]
+ weight = self.weights[idx]
+
+ # Tokenize the sequence
+ encoding = self.tokenizer(sequence, truncation=True, padding="max_length", max_length=self.max_length,
+ return_tensors="pt")
+ input_ids = encoding['input_ids'].squeeze(0) # Squeeze the batch dimension
+ attention_mask = encoding['attention_mask'].squeeze(0) # Squeeze the batch dimension
+
+ return {
+ 'input_ids': input_ids,
+ 'attention_mask': attention_mask,
+ 'labels': torch.tensor(label, dtype=torch.float),
+ 'weights': torch.tensor(weight, dtype=torch.float)
+ }
+
+
diff --git a/mewtwo/machine_learning/transformer/schedulers.py b/mewtwo/machine_learning/transformer/schedulers.py
new file mode 100644
index 0000000..eea3464
--- /dev/null
+++ b/mewtwo/machine_learning/transformer/schedulers.py
@@ -0,0 +1,60 @@
+from torch.optim.lr_scheduler import ReduceLROnPlateau
+
+
+class WarmupReduceOnPlateau:
+ def __init__(self, optimizer, warmup_steps, plateau_scheduler_kwargs, load_from_checkpoint=False):
+ self.optimizer = optimizer
+ self.warmup_steps = warmup_steps
+ self.current_step = 0
+ self.base_lrs = [group['lr'] for group in optimizer.param_groups][:]
+
+ if not load_from_checkpoint:
+ for group in optimizer.param_groups:
+ group['lr'] = 0.0
+
+ self.plateau_scheduler = ReduceLROnPlateau(optimizer, **plateau_scheduler_kwargs)
+ self.in_plateau_phase = False
+
+ def step(self, metrics=None):
+
+ if self.current_step <= self.warmup_steps:
+ if metrics is None:
+ # Warmup step
+ self.current_step += 1
+ warmup_factor = min(self.current_step / float(self.warmup_steps), 1.0)
+ for i, param_group in enumerate(self.optimizer.param_groups):
+ param_group['lr'] = self.base_lrs[i] * warmup_factor
+ else:
+ # In warmup, but metrics passed — skip
+ return
+ else:
+ if not self.in_plateau_phase:
+ self.in_plateau_phase = True
+ print("Warmup complete. Switching to ReduceLROnPlateau.")
+
+ if metrics is not None:
+ # Plateau step
+ self.current_step += 1
+ self.plateau_scheduler.step(metrics)
+ else:
+ # Plateau phase, but no metric — skip
+ return
+
+ def get_last_lr(self):
+ return [group['lr'] for group in self.optimizer.param_groups]
+
+ def state_dict(self):
+ return {
+ 'current_step': self.current_step,
+ 'warmup_steps': self.warmup_steps,
+ 'base_lrs': self.base_lrs,
+ 'in_plateau_phase': self.in_plateau_phase,
+ 'plateau_scheduler': self.plateau_scheduler.state_dict()
+ }
+
+ def load_state_dict(self, state_dict):
+ self.current_step = state_dict['current_step']
+ self.warmup_steps = state_dict['warmup_steps']
+ self.base_lrs = state_dict['base_lrs']
+ self.in_plateau_phase = state_dict['in_plateau_phase']
+ self.plateau_scheduler.load_state_dict(state_dict['plateau_scheduler'])
diff --git a/mewtwo/parsers/parse_data_chen.py b/mewtwo/parsers/parse_data_chen.py
new file mode 100644
index 0000000..a468ce6
--- /dev/null
+++ b/mewtwo/parsers/parse_data_chen.py
@@ -0,0 +1,65 @@
+from sys import argv
+
+from mewtwo.parsers.tabular import Tabular
+from mewtwo.data_processing.compute_te import ts_to_te
+from mewtwo.embeddings.terminator.hairpin import RNAFoldHairpin
+from mewtwo.embeddings.terminator.a_tract import ATract
+from mewtwo.embeddings.terminator.u_tract import UTract
+from mewtwo.embeddings.terminator.terminator import Terminator
+
+
+def get_chen_data(input_file, type_column):
+ if not type_column:
+ chen_data = Tabular(input_file, [0])
+ else:
+ chen_data = Tabular(input_file, [1])
+
+ return chen_data
+
+
+def chen_to_dnabert_input(input_file, output_file, type_column: bool = True):
+ with open(output_file, 'w') as out:
+ chen_data = get_chen_data(input_file, type_column)
+ for datapoint in chen_data.data:
+ sequence = chen_data.get_value(datapoint, "Sequence")
+ ts = float(chen_data.get_value(datapoint, "Average Strength"))
+ te = max(0.0, ts_to_te(ts))
+ if 1.0 >= te >= -0.0000001:
+ out.write(f"{sequence}\t{te}\n")
+
+
+def get_chen_terminators(input_file, type_column: bool = True):
+ chen_data = get_chen_data(input_file, type_column)
+ terminators = []
+ for datapoint in chen_data.data:
+ ts = float(chen_data.get_value(datapoint, "Average Strength"))
+ te = max(0.0, ts_to_te(ts))
+ if 1.0 >= te >= -0.0000001:
+ terminator_type = chen_data.get_value(datapoint, 'Type')
+ if terminator_type == 'Synthetic':
+ is_synthetic = True
+ else:
+ is_synthetic = False
+
+ free_energy = chen_data.get_value(datapoint, 'dGH')
+ hairpin_structure = chen_data.get_value(datapoint, 'Structure')
+ hairpin_sequence = chen_data.get_value(datapoint, 'Hairpin')
+ sequence = chen_data.get_value(datapoint, 'Sequence')
+ a_tract_seq = chen_data.get_value(datapoint, 'A-tract')
+ u_tract_seq = chen_data.get_value(datapoint, 'U-tract')
+ terminator_id = chen_data.get_value(datapoint, 'Name')
+
+ hairpin = RNAFoldHairpin(terminator_id, free_energy, hairpin_sequence, hairpin_structure)
+ if not hairpin.contains_multiple_hairpins():
+
+ a_tract = ATract(a_tract_seq)
+ u_tract = UTract(u_tract_seq)
+ terminator = Terminator(hairpin, a_tract, u_tract, sequence, termination_efficiency=te,
+ is_synthetic=is_synthetic)
+ terminators.append(terminator)
+
+ return terminators
+
+
+if __name__ == "__main__":
+ chen_to_dnabert_input(argv[1], argv[2])
diff --git a/mewtwo/parsers/parse_dnabert_data.py b/mewtwo/parsers/parse_dnabert_data.py
new file mode 100644
index 0000000..651fc64
--- /dev/null
+++ b/mewtwo/parsers/parse_dnabert_data.py
@@ -0,0 +1,12 @@
+
+def parse_dnabert_data(input_file: str) -> tuple[list[str], list[float]]:
+ seqs = []
+ tes = []
+ with open(input_file, 'r') as seq_data:
+ for line in seq_data:
+ line = line.strip()
+ seq, te = line.split('\t')
+ te = float(te)
+ seqs.append(seq)
+ tes.append(te)
+ return seqs, tes
diff --git a/mewtwo/parsers/parse_feature_file.py b/mewtwo/parsers/parse_feature_file.py
new file mode 100644
index 0000000..020ff77
--- /dev/null
+++ b/mewtwo/parsers/parse_feature_file.py
@@ -0,0 +1,16 @@
+from mewtwo.parsers.tabular import Tabular
+from mewtwo.embeddings.feature_labels import FeatureLabel
+from mewtwo.embeddings.sequence import SeqType
+
+
+def parse_feature_file(input_file: str) -> dict[FeatureLabel, float]:
+
+ feature_to_importance = {}
+ feature_data = Tabular(input_file, [0])
+ for feature in feature_data.data:
+
+ feature_name = feature_data.get_value(feature, "feature_name")
+ importance = float(feature_data.get_value(feature, "feature_importance"))
+ feature_to_importance[FeatureLabel.from_string(feature_name)] = importance
+
+ return feature_to_importance
diff --git a/mewtwo/parsers/parse_model_config.py b/mewtwo/parsers/parse_model_config.py
new file mode 100644
index 0000000..7c51ccf
--- /dev/null
+++ b/mewtwo/parsers/parse_model_config.py
@@ -0,0 +1,294 @@
+from dataclasses import dataclass
+from typing import Optional, Union
+from math import isclose
+
+
+from mewtwo.machine_learning.transformer.config.config_types import EarlyStoppingMetricType, LossFunctionType, \
+ FinetuningType, SchedulerType
+
+
+@dataclass
+class AdapterConfig:
+ rank: int
+ alpha: int
+ dropout: float
+
+ def __eq__(self, other):
+ if type(self) == type(other) and \
+ self.rank == other.rank and \
+ self.alpha == other.alpha and \
+ isclose(self.dropout, other.dropout, rel_tol=0.01):
+ return True
+
+ else:
+ return False
+
+ @classmethod
+ def from_file(cls, input_file) -> Union["AdapterConfig", None]:
+ rank = None
+ alpha = None
+ dropout = None
+
+ with open(input_file, 'r') as model_config:
+ for line in model_config:
+ line = line.strip()
+ field, value = line.split('\t')
+ if field == "adapter_r":
+ rank = int(value)
+ if field == "adapter_alpha":
+ alpha = int(value)
+ if field == "adapter_dropout":
+ dropout = float(value)
+
+ if rank is None or alpha is None or dropout is None:
+ return None
+ else:
+ return AdapterConfig(rank, alpha, dropout)
+
+
+@dataclass
+class LossFunctionConfig:
+ type: LossFunctionType
+ alpha: Optional[float]
+
+ def __post_init__(self):
+ if self.alpha is not None:
+ assert -0.00000001 < self.alpha < 1.000000001
+
+ def __eq__(self, other):
+ if type(self) == type(other) and self.type == other.type:
+ if self.alpha is not None and other.alpha is not None and isclose(self.alpha, other.alpha, rel_tol=0.01):
+ return True
+ elif self.alpha is None and other.alpha is None:
+ return True
+
+ return False
+
+ @classmethod
+ def from_file(cls, input_file) -> "LossFunctionConfig":
+ function_type = None
+ alpha = None
+
+ with open(input_file, 'r') as model_config:
+ for line in model_config:
+ line = line.strip()
+ field, value = line.split('\t')
+ if field == "loss_function":
+ function_type = LossFunctionType[value]
+ elif field == "loss_function_alpha":
+ alpha = float(value)
+
+ assert function_type is not None
+
+ return LossFunctionConfig(function_type, alpha)
+
+
+@dataclass
+class SchedulerConfig:
+ type: SchedulerType
+ training_epochs: Optional[int] = None
+ warmup_epochs: Optional[int] = None
+ plateau_patience: Optional[int] = None
+ factor: Optional[float] = None
+
+ def __post_init__(self):
+ if self.type in SchedulerType.WARMUP_SCHEDULERS:
+ assert self.warmup_epochs is not None
+
+ if self.type == SchedulerType.COS_ANNEAL_WARMUP:
+ assert self.training_epochs is not None
+ if self.warmup_epochs > self.training_epochs:
+ raise ValueError("Number of warmup steps is greater than the number of training steps.")
+ if self.type in SchedulerType.REDUCE_ON_PLATEAU_SCHEDULERS:
+ assert self.plateau_patience is not None
+ assert self.factor is not None
+
+ def __eq__(self, other):
+ if type(self) == type(other) and \
+ self.training_epochs == other.training_epochs and \
+ self.type == other.type and \
+ self.warmup_epochs == other.warmup_epochs:
+ return True
+
+ return False
+
+ @classmethod
+ def from_file(cls, input_file) -> Union["SchedulerConfig", None]:
+ scheduler_type = None
+ training_epochs = None
+ warmup_epochs = None
+ plateau_patience = None
+ factor = None
+
+ with open(input_file, 'r') as model_config:
+ for line in model_config:
+ line = line.strip()
+ field, value = line.split('\t')
+ if field == "scheduler":
+ scheduler_type = SchedulerType[value]
+ if field == "scheduler_training_epochs":
+ training_epochs = int(value)
+ if field == "scheduler_warmup_epochs":
+ warmup_epochs = int(value)
+ if field == "plateau_patience":
+ plateau_patience = int(value)
+ if field == "factor":
+ factor = float(value)
+
+ if scheduler_type is None:
+ return None
+ else:
+ return SchedulerConfig(scheduler_type, training_epochs, warmup_epochs, plateau_patience, factor)
+
+
+@dataclass
+class EarlyStoppingConfig:
+ metric: EarlyStoppingMetricType
+ patience: int
+
+ def __post_init__(self):
+ assert self.metric is not None
+ assert self.patience is not None
+
+ def __eq__(self, other):
+ if type(self) == type(other) and self.metric == other.metric and self.patience == other.patience:
+ return True
+ return False
+
+ @classmethod
+ def from_file(cls, input_file) -> Union["EarlyStoppingConfig", None]:
+ metric = None
+ patience = None
+
+ with open(input_file, 'r') as model_config:
+ for line in model_config:
+ line = line.strip()
+ field, value = line.split('\t')
+ if field == "early_stopping_patience":
+ metric = EarlyStoppingMetricType[value]
+ if field == "early_stopping_patience":
+ patience = int(value)
+
+ if metric is None or patience is None:
+ return None
+ else:
+ return EarlyStoppingConfig(metric, patience)
+
+
+@dataclass
+class HiddenLayerConfig:
+ dropout: float
+ second_layer_dim: Optional[int]
+
+ def __eq__(self, other):
+ if type(self) == type(other) and isclose(self.dropout, other.dropout, rel_tol=0.01) and \
+ self.second_layer_dim == other.second_layer_dim:
+ return True
+ return False
+
+ @classmethod
+ def from_file(cls, input_file) -> Union["HiddenLayerConfig", None]:
+ dropout = None
+ second_layer_dim = None
+
+ with open(input_file, 'r') as model_config:
+ for line in model_config:
+ line = line.strip()
+ field, value = line.split('\t')
+ if field == "hidden_layer_dropout":
+ dropout = float(value)
+ if field == "second_layer_dim":
+ second_layer_dim = int(value)
+
+ if dropout is None:
+ raise ValueError("Hidden layer config must specify dropout")
+ else:
+ return HiddenLayerConfig(dropout, second_layer_dim)
+
+@dataclass
+class ModelConfig:
+ finetuning_mode: FinetuningType
+ learning_rate: float
+ hidden_layer_config: HiddenLayerConfig
+ loss_function_config: LossFunctionConfig
+ epochs: int
+ batch_size: int
+ early_stopping_config: Optional[EarlyStoppingConfig] = None
+ adapter_config: Optional[AdapterConfig] = None
+ scheduler_config: Optional[SchedulerConfig] = None
+
+ def __eq__(self, other):
+ if self.finetuning_mode == other.finetuning_mode and \
+ isclose(self.learning_rate, other.learning_rate, rel_tol=0.01) and \
+ self.hidden_layer_config == other.hidden_layer_config and \
+ self.loss_function_config == other.loss_function_config and \
+ self.adapter_config == other.adapter_config and \
+ self.scheduler_config == other.scheduler_config and \
+ self.early_stopping_config == other.early_stopping_config:
+
+ return True
+ else:
+ return False
+
+ def write_model_config(self, out_file):
+ assert out_file.endswith('.config')
+
+ with open(out_file, 'w') as out:
+ out.write(f"finetuning_mode\t{self.finetuning_mode.name}\n")
+ out.write(f"learning_rate\t{self.learning_rate:.10f}\n")
+ out.write(f"hidden_layer_dropout\t{self.hidden_layer_config.dropout:.2f}\n")
+ if self.hidden_layer_config.second_layer_dim:
+ out.write(f"second_layer_dim\t{self.hidden_layer_config.second_layer_dim}\n")
+ out.write(f"loss_function\t{self.loss_function_config.type.name}\n")
+ out.write(f"training_epochs\t{self.epochs}\n")
+ out.write(f"batch_size\t{self.batch_size}\n")
+
+ if self.loss_function_config.alpha is not None:
+ out.write(f"loss_function_alpha\t{self.loss_function_config.alpha}\n")
+
+ if self.adapter_config is not None:
+ out.write(f"adapter_r\t{self.adapter_config.rank}\n")
+ out.write(f"adapter_alpha\t{self.adapter_config.alpha}\n")
+ out.write(f"adapter_dropout\t{self.adapter_config.dropout}\n")
+
+ if self.scheduler_config is not None:
+ out.write(f"scheduler\t{self.scheduler_config.type.name}\n")
+ if self.scheduler_config.training_epochs is not None:
+ out.write(f"scheduler_training_epochs\t{self.scheduler_config.training_epochs}\n")
+ if self.scheduler_config.warmup_epochs is not None:
+ out.write(f"scheduler_warmup_epochs\t{self.scheduler_config.warmup_epochs}\n")
+ if self.scheduler_config.plateau_patience is not None:
+ out.write(f"plateau_patience\t{self.scheduler_config.plateau_patience}\n")
+ if self.scheduler_config.factor is not None:
+ out.write(f"factor\t{self.scheduler_config.factor}\n")
+
+ if self.early_stopping_config is not None:
+ out.write(f"early_stopping_patience\t{self.early_stopping_config.patience}\n")
+ out.write(f"early_stopping_metric\t{self.early_stopping_config.metric.name}\n")
+
+ @classmethod
+ def from_file(cls, input_file):
+
+ adapter_config = AdapterConfig.from_file(input_file)
+ scheduler_config = SchedulerConfig.from_file(input_file)
+ loss_function_config = LossFunctionConfig.from_file(input_file)
+ early_stopping_config = EarlyStoppingConfig.from_file(input_file)
+ hidden_layer_config = HiddenLayerConfig.from_file(input_file)
+
+ field_to_value = {}
+
+ with open(input_file, 'r') as model_config:
+ for line in model_config:
+ line = line.strip()
+ field, value = line.split('\t')
+ field_to_value[field] = value
+
+ return cls(FinetuningType.from_string_description(field_to_value["finetuning_mode"]),
+ float(field_to_value["learning_rate"]),
+ hidden_layer_config,
+ loss_function_config,
+ int(field_to_value["training_epochs"]),
+ int(field_to_value["batch_size"]),
+ early_stopping_config,
+ adapter_config,
+ scheduler_config)
diff --git a/mewtwo/parsers/parse_termite_output.py b/mewtwo/parsers/parse_termite_output.py
index cd86231..e453cc8 100644
--- a/mewtwo/parsers/parse_termite_output.py
+++ b/mewtwo/parsers/parse_termite_output.py
@@ -1,12 +1,171 @@
from mewtwo.parsers.tabular import Tabular
from mewtwo.embeddings.terminator.hairpin import RNAFoldHairpin, TransTermHPHairpin
-from mewtwo.embeddings.bases import BasePair
+from mewtwo.embeddings.terminator.terminator import Terminator
+from mewtwo.embeddings.sequence import convert_to_dna
+from mewtwo.embeddings.terminator.a_tract import ATract
+from mewtwo.embeddings.terminator.u_tract import UTract
+from mewtwo.machine_learning.random_forest.train_random_forest import train_random_forest
+from mewtwo.machine_learning.data_preparation.train_test_split import split_data
+from mewtwo.machine_learning.feature_inference.infer_features_rf import write_average_importances
from sys import argv
-from pprint import pprint
+import os
-def rnafold_hairpins_from_termite(input_file, get_rnafold: bool = True, get_transtermhp: bool = False,
+def termite_to_dnabert_input(input_file: str, output_dir: str, species_column: bool = True) -> None:
+ if not os.path.exists(output_dir):
+ os.mkdir(output_dir)
+
+ terminators = get_termite_terminators(input_file, species_column=species_column, te_only=True)
+ spec_to_term = sort_by_species(terminators)
+
+ bacillus_terminators = []
+ ecoli_terminators = []
+
+ for spec, term in spec_to_term.items():
+ if 'Bacillus' in spec and '(d)' in spec:
+ bacillus_terminators.extend(term)
+ elif 'Escherichia' in spec and '(a)' in spec:
+ ecoli_terminators.extend(term)
+
+ all_out_file = os.path.join(output_dir, 'all.txt')
+ ecoli_out_file = os.path.join(output_dir, 'ecoli.txt')
+ bacillus_out_file = os.path.join(output_dir, 'bacillus.txt')
+
+ with open(all_out_file, 'w') as all_out:
+ with open(ecoli_out_file, 'w') as ecoli_out:
+ with open(bacillus_out_file, 'w') as bacillus_out:
+ for terminator in ecoli_terminators:
+ terminator_data = f"{convert_to_dna(terminator.sequence).sequence}\t{terminator.te / 100}\n"
+ all_out.write(terminator_data)
+ ecoli_out.write(terminator_data)
+ for terminator in bacillus_terminators:
+ terminator_data = f"{convert_to_dna(terminator.sequence).sequence}\t{terminator.te / 100}\n"
+ all_out.write(terminator_data)
+ bacillus_out.write(terminator_data)
+
+
+def parse_termite_data(input_file: str, species_column: bool) -> Tabular:
+ if not species_column:
+ termite_data = Tabular(input_file, [0, 6])
+ else:
+ termite_data = Tabular(input_file, [0, 1, 7])
+
+ return termite_data
+
+
+def sort_by_species(terminators: list[Terminator]) -> dict[str, list[Terminator]]:
+
+ species_to_terminators: dict[str, list[Terminator]] = {}
+ for terminator in terminators:
+ if terminator.species not in species_to_terminators:
+ species_to_terminators[terminator.species] = []
+ species_to_terminators[terminator.species].append(terminator)
+
+ return species_to_terminators
+
+
+def get_termite_terminators(input_file: str, prioritise_rnafold: bool = True, species_column: bool = False,
+ te_only: bool = True) -> list[Terminator]:
+ """
+
+ Parameters
+ ----------
+ input_file: str, tabular termite output file
+ prioritise_rnafold: bool, if True, prioritise hairpins predicted with RNAFold. Otherwise, prioritise hairpins
+ predicted with TransTermHP
+ species_column: bool, if True, termite input contains an additional species column
+ te_only: bool, if True, only return terminators for which the termination efficiency is known
+
+ Returns
+ -------
+ list of terminator instances
+
+ """
+ termite_data = parse_termite_data(input_file, species_column)
+
+ rnafold_terminators = {}
+ transtermhp_terminators = {}
+
+ for datapoint in termite_data.data:
+ terminator_id = '|'.join(datapoint)
+ if not species_column:
+ species = "unknown"
+ else:
+ species = termite_data.get_value(datapoint, "Species")
+ chromosome = termite_data.get_value(datapoint, 'chromosome')
+ pot = int(termite_data.get_value(datapoint, 'POT'))
+ start = int(termite_data.get_value(datapoint, 'start'))
+ end = int(termite_data.get_value(datapoint, 'end'))
+ strand = termite_data.get_value(datapoint, 'strand')
+ sequence = termite_data.get_value(datapoint, 'sequence')
+
+ print(sequence)
+
+ te = termite_data.get_value(datapoint, "termination efficiency")
+ if te == '.':
+ te = None
+ elif 0 <= float(te) <= 100:
+ te = float(te) / 100
+ else:
+ print(datapoint, te)
+ te = None
+
+ if te_only and te is None:
+ continue
+
+ if termite_data.get_value(datapoint, 'rnafold') == '+':
+
+ hairpin = RNAFoldHairpin(terminator_id,
+ float(termite_data.get_value(datapoint, "rnafold energy")),
+ termite_data.get_value(datapoint, "rnafold hairpin"),
+ termite_data.get_value(datapoint, "rnafold hairpin structure"),
+ int(termite_data.get_value(datapoint, "rnafold POT distance to hairpin")))
+ if not hairpin.contains_multiple_hairpins():
+
+ a_tract = ATract(termite_data.get_value(datapoint, "rnafold a tract"))
+ relative_pot = int(termite_data.get_value(datapoint, "rnafold POT distance to hairpin"))
+ u_tract = UTract(termite_data.get_value(datapoint, "rnafold u tract"), relative_pot)
+
+ terminator = Terminator(hairpin, a_tract,
+ u_tract, sequence, te, start, end, pot, species, chromosome, strand)
+ rnafold_terminators[terminator_id] = terminator
+
+ if termite_data.get_value(datapoint, 'transtermhp') == '+':
+ hairpin = TransTermHPHairpin(terminator_id,
+ termite_data.get_value(datapoint, "transtermhp hairpin score"),
+ termite_data.get_value(datapoint, "transtermhp hairpin"),
+ termite_data.get_value(datapoint, "transtermhp POT distance to hairpin"))
+ if not hairpin.contains_multiple_hairpins():
+
+ a_tract = ATract(termite_data.get_value(datapoint, "transtermhp a tract"))
+ relative_pot = int(termite_data.get_value(datapoint, "transtermhp POT distance to hairpin"))
+ u_tract = UTract(termite_data.get_value(datapoint, "transtermhp u tract"), relative_pot)
+
+ terminator = Terminator(hairpin, a_tract,
+ u_tract, sequence, te, start, end, pot, species, chromosome, strand)
+ transtermhp_terminators[terminator_id] = terminator
+
+ terminators = []
+
+ if prioritise_rnafold:
+ prioritised_terminators = rnafold_terminators
+ other_terminators = transtermhp_terminators
+ else:
+ prioritised_terminators = transtermhp_terminators
+ other_terminators = rnafold_terminators
+
+ for terminator_id, terminator in prioritised_terminators.items():
+ terminators.append(terminator)
+
+ for terminator_id, terminator in other_terminators.items():
+ if terminator_id not in prioritised_terminators:
+ terminators.append(terminator)
+
+ return terminators
+
+
+def rnafold_hairpins_from_termite(input_file: str, get_rnafold: bool = True, get_transtermhp: bool = False,
get_mutually_exclusive: bool = False, species_column: bool = False):
if get_rnafold and get_transtermhp:
@@ -17,18 +176,16 @@ def rnafold_hairpins_from_termite(input_file, get_rnafold: bool = True, get_tran
rnafold_hairpins = {}
transtermhp_hairpins = {}
- if not species_column:
- termite_data = Tabular(input_file, [0, 6])
- else:
- termite_data = Tabular(input_file, [0, 1, 7])
+ termite_data = parse_termite_data(input_file, species_column)
+
for datapoint in termite_data.data:
hairpin_id = '|'.join(datapoint)
if termite_data.get_value(datapoint, 'rnafold') == '+':
hairpin = RNAFoldHairpin(hairpin_id,
- termite_data.get_value(datapoint, "rnafold POT distance to hairpin"),
termite_data.get_value(datapoint, "rnafold energy"),
termite_data.get_value(datapoint, "rnafold hairpin"),
- termite_data.get_value(datapoint, "rnafold hairpin structure"))
+ termite_data.get_value(datapoint, "rnafold hairpin structure"),
+ termite_data.get_value(datapoint, "rnafold POT distance to hairpin"))
rnafold_hairpins[hairpin_id] = hairpin
if termite_data.get_value(datapoint, 'transtermhp') == '+':
hairpin = TransTermHPHairpin(hairpin_id,
@@ -36,7 +193,9 @@ def rnafold_hairpins_from_termite(input_file, get_rnafold: bool = True, get_tran
termite_data.get_value(datapoint, "transtermhp hairpin score"),
termite_data.get_value(datapoint, "transtermhp hairpin"))
transtermhp_hairpins[hairpin_id] = hairpin
+
hairpins = []
+
if get_rnafold:
for hairpin_id, hairpin in rnafold_hairpins.items():
hairpins.append(hairpin)
@@ -57,35 +216,54 @@ def rnafold_hairpins_from_termite(input_file, get_rnafold: bool = True, get_tran
if __name__ == "__main__":
- hairpins = rnafold_hairpins_from_termite(argv[1], get_rnafold=True, get_transtermhp=True, species_column=True)
- counter = 0
- basepairs_to_counts_rnafold = {}
- basepairs_to_counts_transtermhp = {}
- for hairpin in hairpins:
- if hairpin.contains_multiple_hairpins():
- counter += 1
- print(hairpin.distance_to_pot, hairpin.free_energy, hairpin.hairpin_sequence, hairpin.hairpin_structure)
- else:
- loop, stem = hairpin.get_hairpin_parts()
- for basepair in stem.get_basepairs():
- if hairpin.prediction_software == 'RNAFold':
-
- if basepair not in basepairs_to_counts_rnafold:
-
- basepairs_to_counts_rnafold[basepair] = 0
- basepairs_to_counts_rnafold[basepair] += 1
- else:
- if basepair not in basepairs_to_counts_transtermhp:
- basepairs_to_counts_transtermhp[basepair] = 0
- basepairs_to_counts_transtermhp[basepair] += 1
- if basepair == BasePair('A', 'A', True):
- print(hairpin.hairpin_sequence)
- print(hairpin.hairpin_structure)
-
- print(f"{counter} structures contain multiple hairpins")
- pprint(basepairs_to_counts_rnafold)
- pprint(basepairs_to_counts_transtermhp)
+ quantified_terminators = get_termite_terminators(argv[1], species_column=True, te_only=True)
+ species_to_terminators = sort_by_species(quantified_terminators)
+ bacillus_terminators = []
+ ecoli_terminators = []
+
+ for species, species_terminators in species_to_terminators.items():
+ if 'Bacillus' in species and '(d)' in species:
+ bacillus_terminators.extend(species_terminators)
+ elif 'Escherichia' in species and '(a)' in species:
+ ecoli_terminators.extend(species_terminators)
+
+ all_terminators = bacillus_terminators + ecoli_terminators
+ train_terminators, test_terminators, crossvalidation_sets = split_data(all_terminators, "species", test_size=0.1)
+
+ for crossval_nr, crossvalidation_set in crossvalidation_sets.items():
+ out_dir = os.path.join(argv[2], f"crossvalidation_results_{crossval_nr}")
+ rf = train_random_forest(crossvalidation_set.train, crossvalidation_set.test, one_hot=True, out_dir=out_dir)
+
+ write_average_importances(argv[2], os.path.join(argv[2], "average_feature_importances.txt"))
+ # train_terminators, test_terminators, _ = split_data(ecoli_terminators, test_size=0.1)
+ #
+ # train_random_forest(train_terminators, test_terminators, one_hot=True)
+ #
+ # train_terminators, test_terminators, _ = split_data(all_terminators, test_size=0.1)
+ #
+ # train_random_forest(train_terminators, test_terminators, one_hot=True)
+
+ print(min([t.te for t in all_terminators]), max([t.te for t in all_terminators]))
+
+ # termite_to_dnabert_input(argv[1], argv[2], species_column=True)
+
+ # train_nn(train_terminators, test_terminators)
+
+
+
+
+
+ # for terminator in quantified_terminators:
+ # print(terminator.te)
+ # print(terminator.to_vector(max_loop_size=max_loop, max_stem_size=max_stem, a_tract_size=max_a, u_tract_size=max_u))
+ # print(terminator.to_vector(max_loop_size=max_loop, max_stem_size=max_stem, a_tract_size=max_a,
+ # u_tract_size=max_u, one_hot=True))
+
+ # print(max_loop, max_stem, max_a, max_u)
+
+ # all_terminators = get_termite_terminators(argv[1], species_column=True, te_only=False)
+ # print(len(all_terminators))
diff --git a/mewtwo/parsers/test/test_parse_termite_output.py b/mewtwo/parsers/test/test_parse_termite_output.py
index e9d4fb7..1c35782 100644
--- a/mewtwo/parsers/test/test_parse_termite_output.py
+++ b/mewtwo/parsers/test/test_parse_termite_output.py
@@ -1,6 +1,4 @@
import unittest
-from mewtwo.parsers.parse_termite_output import RNAFoldHairpin, TransTermHPHairpin
-
if __name__ == '__main__':
unittest.main()
\ No newline at end of file
diff --git a/mewtwo/writers/__init__.py b/mewtwo/writers/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mewtwo/writers/write_feature_importances.py b/mewtwo/writers/write_feature_importances.py
new file mode 100644
index 0000000..a6bde76
--- /dev/null
+++ b/mewtwo/writers/write_feature_importances.py
@@ -0,0 +1,25 @@
+from typing import Optional
+
+
+def write_feature_importances(feature_to_importance: dict[str, float], out_file: str,
+ feature_to_stdev: Optional[dict[str, float]] = None,
+ sort_by_importance: bool = True) -> None:
+ features_and_importances = list(feature_to_importance.items())
+
+ if sort_by_importance:
+ features_and_importances.sort(key=lambda x: x[1], reverse=True)
+
+ with open(out_file, 'w') as out:
+ if feature_to_stdev:
+ out.write("feature_name\tfeature_importance\tstdev\n")
+ else:
+ out.write("feature_name\tfeature_importance\n")
+
+ for feature, importance in features_and_importances:
+ if feature_to_stdev:
+ stdev = feature_to_stdev[feature]
+ out.write(f"{feature}\t{importance}\t{stdev}\n")
+ else:
+
+ out.write(f"{feature}\t{importance}\n")
+
diff --git a/mewtwo/writers/write_model_settings.py b/mewtwo/writers/write_model_settings.py
new file mode 100644
index 0000000..2bd87b5
--- /dev/null
+++ b/mewtwo/writers/write_model_settings.py
@@ -0,0 +1,168 @@
+
+from argparse import ArgumentParser
+import os
+
+from mewtwo.parsers.parse_model_config import ModelConfig, AdapterConfig, SchedulerConfig, LossFunctionConfig, \
+ EarlyStoppingConfig, HiddenLayerConfig
+
+from mewtwo.machine_learning.transformer.config.config_types import FinetuningType, LossFunctionType, SchedulerType, \
+ EarlyStoppingMetricType
+
+
+def parse_arguments():
+ parser = ArgumentParser(description="Write config files for hyperparameter optimization")
+ parser.add_argument('--batch_sizes', type=int, nargs='*', default=[4, 8])
+ parser.add_argument('--learning_rates', type=float, nargs='*', default=[1e-5, 5e-5, 1e-4, 5e-4, 1e-3])
+ parser.add_argument('--finetuning_types', type=str, nargs='*', default=["LINEAR_HEAD", "ADAPTER"])
+ parser.add_argument('--dropout', type=float, nargs='*', default=[0.1, 0.2, 0.3])
+ parser.add_argument('--lora_rank', type=int, nargs='*', default=[4, 8])
+ parser.add_argument('--lora_dropout', type=float, nargs='*', default=[0.0, 0.05, 0.1])
+ parser.add_argument('--training_epochs', type=int, default=30)
+ parser.add_argument('--warmup_epochs', type=int, nargs='*', default=[3, 6, 10])
+ parser.add_argument('--loss_functions', type=str, nargs='*', default=['MSE', 'MSE_PEARSON', 'MSE_SPEARMAN',
+ 'WEIGHTED_MSE', 'WEIGHTED_MSE_PEARSON',
+ "WEIGHTED_MSE_SPEARMAN", 'PEARSON', "SPEARMAN"])
+ parser.add_argument('--loss_function_alpha', type=float, nargs='*', default=[0.25, 0.5, 0.75])
+ parser.add_argument('--early_stopping_metrics', type=str, nargs='*', default=["PEARSON_R", "SPEARMAN_R", "EVAL_LOSS"])
+ parser.add_argument('--early_stopping_patiences', type=int, nargs='*', default=[2, 3])
+ parser.add_argument('--use_early_stopping', action="store_true")
+ parser.add_argument('--scheduler_types', type=str, nargs='*', default=["COS_ANNEAL_WARMUP", "REDUCE_ON_PLATEAU",
+ "REDUCE_ON_PLATEAU_WARMUP", "WARMUP_ONLY"])
+ parser.add_argument('--plateau_patiences', type=int, nargs='*', default=[2, 3])
+ parser.add_argument('--plateau_factors', type=float, nargs='*', default=[0.5])
+ parser.add_argument('--second_layer_dim', type=int, nargs='*', default=[])
+ parser.add_argument('-o', type=str, required=True, help="Output directory")
+ args = parser.parse_args()
+ return args
+
+
+def get_hyperoptimization_configs(batch_sizes, learning_rates,
+ finetuning_types,
+ hidden_layer_dropouts, lora_rank,
+ lora_dropout, training_epochs,
+ warmup_epochs_options, loss_functions, loss_function_alpha,
+ scheduler_types, use_early_stopping,
+ early_stopping_metrics, early_stopping_patiences,
+ plateau_patiences, plateau_factors, second_layer_dims):
+ model_configs = []
+
+ for batch_size in batch_sizes:
+ for finetuning_type_str in finetuning_types:
+ finetuning_type = FinetuningType.from_string_description(finetuning_type_str)
+ if finetuning_type.name != "ADAPTER":
+ lora_rank_options = [None]
+ lora_dropout_options = [None]
+ else:
+ lora_rank_options = lora_rank[:]
+ lora_dropout_options = lora_dropout[:]
+
+ for lora_r in lora_rank_options:
+ if lora_r is not None:
+ lora_alpha = 2 * lora_r
+ else:
+ lora_alpha = None
+
+ for lora_dropout_option in lora_dropout_options:
+ if lora_r:
+ adapter_config = AdapterConfig(lora_r, lora_alpha, lora_dropout_option)
+ else:
+ adapter_config = None
+
+ for scheduler_config_string in scheduler_types:
+ scheduler_type = SchedulerType[scheduler_config_string]
+ if scheduler_type not in SchedulerType.WARMUP_SCHEDULERS:
+ warmup_epochs = [None]
+ else:
+ warmup_epochs = warmup_epochs_options[:]
+
+ if scheduler_type not in SchedulerType.REDUCE_ON_PLATEAU_SCHEDULERS:
+ plateau_patience_options = [None]
+ plateau_factor_options = [None]
+ else:
+ plateau_patience_options = plateau_patiences[:]
+ plateau_factor_options = plateau_factors[:]
+
+ for warmup_epochs_option in warmup_epochs:
+ for plateau_patience in plateau_patience_options:
+ for plateau_factor in plateau_factor_options:
+ scheduler_config = SchedulerConfig(scheduler_type, training_epochs,
+ warmup_epochs_option, plateau_patience,
+ plateau_factor)
+
+ for loss_function_str in loss_functions:
+ loss_function = LossFunctionType.from_string_description(loss_function_str)
+ if loss_function not in LossFunctionType.NEEDS_ALPHA:
+ loss_function_alpha_options = [None]
+ else:
+ loss_function_alpha_options = loss_function_alpha[:]
+
+ for alpha_option in loss_function_alpha_options:
+ loss_function_config = LossFunctionConfig(loss_function, alpha_option)
+
+ for learning_rate in learning_rates:
+ for hidden_layer_dropout in hidden_layer_dropouts:
+ if not second_layer_dims:
+ second_layer_dims = [None]
+
+ for second_layer_dim in second_layer_dims:
+ hidden_layer_config = HiddenLayerConfig(hidden_layer_dropout,
+ second_layer_dim)
+ early_stopping_config = None
+
+ if not use_early_stopping:
+ early_stopping_metric_options = [None]
+ early_stopping_patience_options = [None]
+
+ else:
+ early_stopping_metric_options = early_stopping_metrics[:]
+ early_stopping_patience_options = early_stopping_patiences[:]
+
+ for early_stopping_metric in early_stopping_metric_options:
+ for early_stopping_patience in early_stopping_patience_options:
+ if early_stopping_metric is not None and \
+ early_stopping_patience is not None:
+ early_stopping_config = EarlyStoppingConfig(
+ EarlyStoppingMetricType[early_stopping_metric],
+ early_stopping_patience)
+ model_config = ModelConfig(finetuning_type, learning_rate,
+ hidden_layer_config,
+ loss_function_config, 0,
+ batch_size,
+ early_stopping_config,
+ adapter_config,
+ scheduler_config)
+
+ model_configs.append(model_config)
+
+ return model_configs
+
+
+def main():
+ args = parse_arguments()
+ if not os.path.exists(args.o):
+ os.mkdir(args.o)
+
+ if args.use_early_stopping:
+ early_stopping_metric_options = args.early_stopping_metrics
+ early_stopping_patience_options = args.early_stopping_patiences
+ else:
+ early_stopping_metric_options = [None]
+ early_stopping_patience_options = [None]
+
+ model_configs = get_hyperoptimization_configs(args.batch_sizes, args.learning_rates, args.finetuning_types,
+ args.dropout, args.lora_rank,
+ args.lora_dropout, args.training_epochs,
+ args.warmup_epochs, args.loss_functions,
+ args.loss_function_alpha, args.scheduler_types,
+ args.use_early_stopping,
+ early_stopping_metric_options, early_stopping_patience_options,
+ args.plateau_patiences, args.plateau_factors, args.second_layer_dim)
+
+ for i, model_config in enumerate(model_configs):
+ out_file = os.path.join(args.o, f"model_{i + 1:03}.config")
+ model_config.write_model_config(out_file)
+
+
+if __name__ == "__main__":
+
+ main()
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..59a934f
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,13 @@
+torch==2.2.2
+peft==0.10.0
+scikit-learn==1.6.1
+transformers==4.40.1
+mewtwo==0.0.1
+pip==25.0
+zlib==1.2.13
+wheel==0.45.1
+openssl==3.0.16
+setuptools==72.1.0
+einops==0.8.1
+scipy==1.15.2
+joblib==1.4.2
\ No newline at end of file