Kindel usage


In [ ]:
!pip3 install kindel  # Install

!curl -O https://github.com/bede/kindel/blob/master/tests/data_bwa_mem/1.1.sub_test.bam # Fetch test BAM

From the command line

'!' is used to invoke bash from inside the notebook


In [67]:
!kindel consensus --realign 1.1.sub_test.bam  # Generate consensus sequence and report


loading sequences: 11823it [00:00, 13426.29it/s]
building consensus: 100%|███████████████| 9306/9306 [00:00<00:00, 102861.93it/s]
========================= REPORT ===========================
options:
- bam_path: 1.1.sub_test.bam
- realign: True
- min_depth: 2
- min_overlap: 7
- clip_decay_threshold: 0.1
- trim_ends: False
- uppercase: False
- min, max observed depth[50:-50]: 0, 506
observations:
- ambiguous sites: 
- insertion sites: 
- deletion sites: 
- clip-dominant regions: 1438-1500 AACTGCCGCTAGGGGCGCGTTCGGGCTCGCCAACATCTTCAGTCCGGGCGCTAAGCAGAACA
============================================================

>ENA|EU155341|EU155341.2_cns
AAGCGTCTAGCCATGGCGTTAGTATGAGTGTCGTGCAGCCTCCAGGACCCCCCCTCCCGG
GAGAGCCATAGTGGTCTGCGGAACCGGTGAGTACACCGGAATTGCCAGGACGACCGGGTC
CTTTCTTGGATCAACCCGCTCAATGCCTGGAGATTTGGGCGTGCCCCCGCAAGACCGCTA
GCCGAGTAGTGTTGGGTCGCGAAAGGCCTTGTGGTACTGCCTGATAGGGTGCTTGCGAGT
GCCCCGGGAGGTCTCGTAGACCGTGCACCATGAGCACGAATCCTAAACCTCAAAGAAAAA
CCAAACGTAACACCAACCGTCGCCCACAGGACGTCAAGTTCCCGGGTGGCGGTCAGATCG
TTGGTGGAGTTTACTTGTTGCCGCGCAGGGGCCCTAGATTGGGTGTGCGCGCGACGAGGA
AGACTTCCGAGCGGTCGCAACCTCGAGGTAGACGTCAGCCTATCCCCAAGGCGCGTCGGC
CCGAGGGCAGGACCTGGGCTCAGCCCGGGTACCCTTGGCCCCTCTATGGTAATGAGGGCT
GCGGGTGGGCGGGATGGCTCCTGTCCCCCCGTGGCTCTCGGCCTAGCTGGGGCCCCACAG
ACCCCCGGCGTAGGTCGCGCAATTTGGGTAAGGTCATCGATACCCTCACGTGCGGCTTCG
CCGACCTCATGGGGTACATTCCGCTCGTCGGCGCCCCTCTTGGGGGCGCTGCCAGGGCCC
TGGCGCATGGCGTCCGGGTTCTGGAAGACGGCGTGAACTATGCAACAGGGAATCTTCCTG
GTTGCTCTTTCTCTATCTTCCTTCTGGCCCTGCTCTCTTGCCTGACTGTGCCCGCGTCAG
CCTACCAAGTACGCAACTCCTCGGGCATCTACCATGTCACCAATGATTGCCCTAACTCGA
GTATTGTGTACGAGACGGCCGATGCCATTCTACACTCTCCGGGGTGTGTCCCTTGCGTTC
GCGAGGGTAACAGCTCGAAGTGTTGGGTGGCGGTGGCCCCCACAGTCGCCACCAGGGACG
GCAAACTCCCCGCAACACAGCTTCGACGTCACATCGATCTGCTTGTCGGGAGCGCCACCC
TCTGTTCGGCCCTCTATGTGGGGGACTTATGCGGGTCTGTCTTTCTTGTCGGCCAACTGT
TCACTTTCTCCCCCAGACACCACTGGACGACGCAAGACTGCAACTGCTCCATCTACCCCG
GCCATATAACGGGTCACCGCATGGCATGGGATATGATGATGAATTGGTCCCCTACAACAG
CGCTGGTAGTAGCTCAGCTGCTCAGGGTCCCGCAAGCCATCTTGGACATGATCGCTGGTG
CCCACTGGGGAGTCCTAGCGGGCATAGCGTATTTCTCCATGGTGGGGAACTGGGCGAAGG
TCCTGGTGGTGCTGTTGCTGTTTGCCAGCGTCGATGCAGATACCTACACCACCGGGGGaa
ctgccgctaggggcgcgttcgggctcgccaacatcttcagtccgggcgctaagcagaaca
TCCAGCTGATCAACACCAACGGCAGTTGGCACATCAATCGCACGGCCCTGAACTGCAATG
CGAGTCTCGACACTGGCTGGGTGGCGGGGCTCCTCTATTACCACAAATTCAACTCTTCAG
GCTGCACCGAGAGGATGGCCAGCTGTAGACCCCTTGCCGATTTCGATCAGGGCTGGGGCC
CCATCAGCCACACCAACGGAAGCGGCCCCGAACACCGCCCTTACTGCTGGCACTACCCCC
CAAAGCCATGTGGCATCGTGCCAGCAAAGAGTGTATGTGGTCCAGTGTATTGCTTCACTC
CTAGCCCCGTGGTGGTGGGAACGACCGACAAGTTGGGCGCGCCCACCTACAACTGGGGTA
GCAATGACACGGACGTCTTCATCCTCAACAACACCAGGCCACCGTTGGGCAATTGGTTCG
GCTGCACCTGGATGAATGCATCTGGGTTTACCAAAGTGTGCGGAGCGCCCCCTTGTGTCA
TCGGGGGGGGAGGCAACAACACATTGCACTGCCCCACTGACTGCTTCCGCAAACATCCGG
AGGCCACATACTCTCGGTGTGGCTCCGGCCCCTGGGTCACGCCCAGGTGCCTGGTCCATT
ACTCTTACAGGCTTTGGCATTACCCTTGTACTGTCAACTACACCCTGTTCAAAGTCAGGA
TGTACGTGGGAGGGGTCGAGCACAGGCTGGAAGTTGCTTGCAACTGGACGCGGGGCGAGC
GTTGTGATCTGGACGACAGGGACAGGTCCGAGCTCAGCCCGCTGCTGCTGTCCACCACAC
AGTGGCAGGTCCTTCCGTGTTCCTTCACGACCTTGCCAGCCTTGACCACCGGCCTCATCC
ACCTCCACCAGAACATCGTGGACGTGCAATATTTGTACGGGGTGGGGTCAAGTATCGTAT
CCTGGGCCATCAAGTGGGAGTATGTCATTCTCTTGTTCCTCCTGCTTGCAGACGCGCGCA
TCTGCTCCTGCTTGTGGATGATGCTACTCATATCCCAAGCGGAGGCGGCTTTGGAGAACC
TCGTGGTGCTTAATGCGGCGTCTTTGGCCGGGACGCACGGTCTTGTGTCCTTCCTCGTGT
TTTTCTGCTTTGCATGGTATCTCAAGGGTAGGTGGGTGCCCGGGGCGGCCTACGCCTTCT
ACGGGATGTGGCCTCTCCTCCTGCTCCTGTTGGCGTTGCCCCAACGGGCATACGCACTGG
ACACGGAGGTGGCCGCGTCGTGTGGCGGCGTTGTTCTTGTCGGGTTGATGACGCTGACTC
TGTCACCGCATTACAAGCGCTATATCAGCTGGTGCTTTTGGTGGCTTCAGTATTTTCTGA
CCAGAGTAGAAGCGCATCTGCACATGTGGGTTCCCCCCCTCAACGTCCGGGGGGGCCGCG
ACGCTGTCATCCTACTCATGTGTGTTGTACACCCGGCCTTGGTATTTGACATCACCAAGT
TGCTGCTGGCCGTCTTCGGACCCCTTTGGATTCTCCAAACCAGTCTGCTCAAAGTGCCCT
ACTTCGTGCGCGTCCAAGGCCTTCTCCGGGTCTGCGCGCTAGTGCGCAAGATGGCCGGAG
GCCATTACGTGCAGATGATCATGATCAAGCTGGGGGCGCTTACTGGTACCTATGTTTACA
ACCATCTCACCCCTCTCCGGGACTGGGCGCACAACGGCCTACAAGATCTGGCCGTGGCTG
TAGAGCCAGTCGTCTTTTCCCAGATGGAGACCAAGCTCATCACGTGGGGGGCGGACACCG
CCGCGTGCGGTGACATCATCAACGGCTTGCCCGTCTCTGCCCGCAGGGGCCGAGAGATAT
TGCTCGGGCCGGCCGATGGAATGACCTCCAAAGGGTGGAGGTTGCTGGCGCCCATCACGG
CTTATGCCCAGCAGACAAGGGGTCTCTTGGGGTGCATAATTACCAGCCTGACCGGCCGGG
ATAAAAACCAGGTGGAGGGTGAGGTCCAGATTGTGTCAACTGCTGCCCAGACTTTTCTGG
CAACCTGCATCAACGGGGTGTGCTGGACCGTCTACCACGGGGCTGGAACAAGGACCATCG
CGTCATCTAAGGGTCCTGTTATCCAGATGTATACCAATGTAGACCAGGACCTCGTGGGCT
GGCCCGCTCCCCAGGGTGCCCGCTCATTGACACCCTGCACTTGCGGCTCCTCGGACCTTT
ATCTGGTCACGAGGCACGCCGATGTCATTCCCGTGCGCCGGCGAGGTGATAGCAGGGGCA
GCCTGCTTTCGCCCCGGCCCATCTCCTACCTGAAAGGCTCCTCGGGGGGCCCACTGCTGT
GCCCCGCGGGACACGCCGTAGGCATATTCAGAGCCGCGGTATGCACCCGTGGAGTGGCTA
AGGCGGTGGACTTCATCCCCGTAGAAAGCCTAGAGACAACCATGAGGTCCCCAGTGTTCA
CAGACAATTCCTCCCCGCCAGCAGTGCCCCAGAGCTTCCAGGTTGCCCACCTGCACGCTC
CCACCGGCAGCGGTAAGAGCACCAAGGTCCCGGCCGCATACGCGGCGCAGGGCTACAAAG
TGCTGGTGCTCAACCCCTCCGTTGCTGCAACACTGGGCTTTGGCGCTTACATGTCCAAGG
CCCACGGGGTTGATCCTAACATCAGGACTGGGGTGAGGACAATCACTACTGGCAGCCCCA
TCACGTACTCCACCTACGGCAAGTTCCTTGCCGACGGCGGGTGCTCAGGGGGTGCCTATG
ACATAATAATTTGTGACGAGTGCCACTCCACGGATGCCACATCCGTTTTGGGCATCGGCA
CTGTCCTTGACCAAGCAGAGACCGCGGGGGCGAGACTGGTTGTGCTCGCCACCGCCACCC
CTCCGGGCTCCATCACTGTGCCTCATCCTAACATCGAGGAGGTTGCTCTGTCCACCACCG
GAGAGATTCCCTTTTACGGCAAGGCTATCCCCCTTGAGGCAATCAAGGGGGGGAGACACC
TCATCTTTTGCCACTCAAAGAAGAAGTGCGACGAGCTCGCCGCAAAACTGGTCGCGCTGG
GCATCAACGCCGTGGCTTATTACCGCGGCCTTGACGTGTCCGTCATCCCAACCAGTGGCG
ATGTTGTCGTCGTGGCAACTGATGCTCTCATGACCGGCTATACCGGCGACTTTGACTCGG
TGATAGACTGCAACACGTGTGTCACCCAGACAGTCGACTTCAGCCTTGACCCCACCTTCA
CTATTGAGACAACCACGCTTCCCCAGGATGCCGTCTCCCGCACTCAACGTCGGGGTAGGA
CTGGCAGGGGGAAGCCAGGCATCTACAGATTTGTGGCACCGGGGGAGCGCCCTTCCGGCA
TGTTTGACTCGTCCGTCCTCTGCGAGTGCTATGACGCGGGCTGTGCTTGGTACGAGCTCA
CACCCGCCGAGACCACAGTTAGGCTACGAGCATACATGAACACCCCGGGACTCCCCGTGT
GCCAAGACCATCTTGAATTTTGGGAGGGCGTCTTCACGGGTCTCACCCATATAGATGCCC
ACTTTCTATCCCAGACAAAGCAGAGTGGGGAGAACTTTCCTTACCTGGTAGCGTACCAAG
CCACCGTGTGCGCTAGAGCCCAAGCCCCCCCGCCATCGTGGGACCAGATGTGGAAGTGCT
TGATCCGTCTCAAGCCCACCCTTCATGGGCCAACACCTCTGCTATACAGACTGGGCGCTG
TTCAGAATGAAGTCACCCTGACGCACCCAGTTACCAAATACATCATGACATGCATGTCGG
CTGACCTGGAGGTCGTCACGAGTACCTGGGTACTCGTTGGCGGCGTTCTGGCTGCTTTGG
CCGCATATTGCCTATCCACAGGCTGTGTGGTCATAGTAGGCAGGATTGTCTTGTCCGGGA
AGCCGGCAATCATACCTGACAGGGAAGTCCTCTACCGGGAGTTCGATGAGATGGAAGAGT
GCTCTCAGCACTTGCCGTACATCGAGCAAGGGATGATGCTCGCTGAGCAGTTCAAGCAGA
AGGCCCTTGGCCTCCTGCAGACCGCGTCCCGCCAGGCAGAGGTCATCACCCCTGCTGTCC
AAACCAACTGGCAAAGACTCGAGGCCTTCTGGGCAAAGCATATGTGGAACTTCATCAGTG
GGATACAATATCTGGCGGGCCTGTCAACGTTACCTGGTAATCCCGCCATTGCATCATTGA
TGGCTTTTACAGCTGCCGTCACCAGCCCGCTAACCACTAGCCAAACTCTCCTCTTCAACA
TCTTGGGGGGGTGGGTGGCTGCCCAGCTTGCAGCCCCCGGTGCCGCAACCGCCTTTGTGG
GCGCTGGTCTAGCTGGCGCCGCCATCGGCAGTGTTGGACTGGGGAAGGTCCTCGTGGACA
TCCTTGCAGGATATGGCGCGGGCGTGGCGGGAGCTCTCGTAGCGTTCAAGATCATGAGCG
GCGAGGTCCCCTCCACAGAGGACCTGGTCAATCTATTGCCTGCCATTCTTTCGCCCGGGG
CCCTCGTAGTCGGTGTGGTCTGCGCAGCAATACTACGCCGGCATGTTGGCCCGGGCGAGG
GGGCAGTGCAGTGGATGAACCGGTTGATAGCCTTCGCCTCCCGGGGGAACCATGTTTCCC
CCACGCACTACGTGCCGGAGAGCGATGCAGCTGCCCGCGTCACTGCCATACTTAGCAGCC
TCACTGTGACCCAGCTCCTGAGACGACTACACCAGTGGATAAGCTCGGACTGCACCACTC
CGTGCTCCGGTTCCTGGCTAAGGGACATCTGGGACTGGATATGCGAAGTGCTGAGCGATT
TTAAGACCTGGCTGAAGGCCAAGCTCATGCCACAACTGCCCGGGATCCCCTTTGTGTCCT
GCCAACGCGGGTATAAGGGGGTCTGGCGAGGAGATGGCATTATGCACACTCGCTGCCACT
GTGGAGCTGAGATCGCTGGACATGTCAAGAACGGGACGATGAGGATCGTCGGTCCTAAGA
CCTGCAGGAACATGTGGAGTGGGACCTTCCCCATCAACGCCTACACCACGGGCCCCTGTA
CCCCTCTACCTGCGCCGAACTACACGTTTGCGCTGTGGAGGGTGTCTGCGGAGGAATACG
TGGAAATAAGGCGGGTGGGGGACTTCCACTACGTGACGGGCATGACTGCTGACAATCTTA
AATGCCCGTGCCAGGTCCCATCGCCCGAATTTTTCACAGAACTGGACGGGGTGCGCCTAC
ATAGGTTTGCGCCCCCTTGCAAGCCCTTGCTACGAGAAGAGGTGTCGTTCAGAGTAGGAC
TACACGATTACCTGGTGGGGTCGCAGTTACCTTGCGAGCCCGAACCGGACGTGGCCGTGT
TGACGTCCATGCTCACTGATCCCTCCCATATAACAGCAGAGGCGGCTGGGAGGAGGTTAG
CGAGGGGATCGCCCCCTTCGTTGGCCAGCTCTTCGGCCAGCCAGCTGTCGGCTCCATCTC
TCAAGGCTACTTGCACAACCAACCACGACTCCCCTGACGCCGAGCTCATAGAGGCCAACC
TCCTGTGGAGGCAGGAGATGGGCGGCAACATCACCAGGGTCGAGTCAGAGAACAAAGTGG
TGGTTCTGGACTCCTTCGATCCGCTTGTGGCGGAGGAGGATGATCGGGAGGTCTCCGTGC
CCGCAGAAATCCTGCGAAAGTCTCGGAGGTTTGCCCCGGCCCTGCCCATTTGGGCACGGC
CGGACTACAACCCCCCGTTGTTGGAGACGTGGAAAAAACCGGACTACGAACCACCTGTGG
TCCATGGCTGCCCTCTTCCACCTCCACGGCCCCCTCCTGTGCCTCCGCCCCGGAAGAAGC
GGACGGTGGTCCTCACCGAATCAACCGTATCTACTGCCTTGGCCGAGCTTGCCACCAAGA
GCTTTGGCAGCTCCTCAACTTCCGGCATTACGGGCGACGACACAACAGCGTCCTCTGAGC
CCGCCCCCTCTGTCTGCCTCCCAGACTCCGACGCTGAGTCCTATTCTTCCATGCCCCCCC
TGGAGGGGGAGCCTGGGGATCCGGACCTCAGTGACGGGTCATGGTCGACGGTTAGTAGTG
AGGCGGACGCGGAGGATGTCGTGTGCTGCTCAATGTCTTATACCTGGACAGGCGCACTTG
TCACCCCGTGTGCTGCGGAAGAACAAAAATTGCCTATCAACGCACTGAGCAACTCGTTGC
TGCGTCACCACAATCTTGTGTACTCTACCACCTCACGCAGTGCTTGCCAGAGGCAGAAGA
AAGTCACATTTGACAGACTGCAGGTCCTGGACAACCACTACCAGGACGTGCTCAAGGAGG
TTAAGGCGGCGGCGTCAAAAGTGAAGGCAAGCTTGCTATCCGTAGAGGAGGCTTGCAGCC
TGACGCCCCCACATTCAGCCAGATCTAAATTTGGCTATGGGGCAAAGGACGTCCGCAGCC
ATGCCAGAAAGGCCGTAAACCACATCAACTCCGTGTGGAAAGACCTTCTGGAAGACAGTG
TAACACCAATAGATACTACCATCATGGCTAAGAACGAAGTTTTCTGCGTTCAGCCTGAGA
AGGGGGGTCGTAAGCCAGCTCGCCTCATCGTGTTCCCCGACCTGGGGGTACGCGTGTGCG
AGAAGATGGCCCTGTACGACGTGGTCAAGAAACTCCCTGTGGCCGTGATGGGAAGCTCCT
ACGGATTCCAATACTCACCAGGACAGCGGGTTGAATTCCTCGTGCAAGCGTGGAAGTCCA
AGAAGACCCCGATGGGGTTTTCATATGATACCCGCTGCTTTGACTCCACAGTCACTGAGA
GCGACATCCGTACGGAGGAGGCAATCTACCAATGTTGTGACCTGGACCCCCAAGCCCGAG
TGGCCATCAAGTCCCTCACCGAGAGGCTTTATGTCGGGGGCCCTCTTACCAATTCAAGGG
GGGAGAACTGCGGCTATCGCAGATGCCGCGCAAGCGGCGTGCTGACAACTAGCTGCGGTA
ACACCCTCACCTGCTACATCAAGGCCCAAGCAGCCTGTCGAGCCGCAGGGCTCCGGGACT
GCACCATGCTCGTGTGTGGCGACGACCTAGTCGTTATCTGTGAGAGTCAGGGGGTCCCGG
AGGACGCAGCGAGCCTGAGAGCCTTCACGGAGGCTATGACCAGGTACTCCGCTCCCCCCG
GGGACCCCCCCCAACCAGAATACGACTTGGAGCTCATAACATCATGCTCCTCTAACGTGT
CAGTCGCCCACGACGGCGCTGGAAAGAGGGTCTATTACCTTACCCGTGACCCTACGACTC
CCATCGCGAGAGCCGCGTGGGAGACAGCAAGACACACTCCAGTCAATTCCTGGCTAGGCA
ACATAATCATGTTTGCCCCCACATTGTGGGCGAGAATGATACTGATGACCCACTTCTTCA
GTGTCCTCATAGCCAGGGATCAGCTTGAACAGGCCCTTGATTGCGAAATCTACGGAGCCT
GCTACTCCATAGAACCACTGGACCTACCTCCAATCATTCAAAGACTCCATGGCCTTAGCG
CGTTCTCACTCCACAGCTACTCTCCAGGTGAAATCAATAGGGTGGCCGCATGCCTCAGAA
AACTTGGGGTCCCGCCCTTGCGAGCTTGGAGACACCGGGCCCGAAGCGTCCGCGCTAGGC
TTCTGTCCAGAGGAGGCAAGGCTGCCATATGTGGCAAGTACCTCTTCAATTGGGCAGTAA
GAACAAAGCTCAAACTCACTCCAATAGCGGCCGCTAGCCAGCTGGACTTGTCCGGCTGGT
TCACGGCTGGCTACAGCGGGGGAGACATTTATCACAGCGTGTCTCATGCCCGGCCCCGCT
GGTTCTGGTTTTGCCTACTCCTGCTTACTGCAGGGGTAGGCATCTACCTCCTCCCCAACC
GATGAA

In [68]:
!kindel plot-clips 1.1.sub_test.bam  # Plot depth of coverage and clipping


loading sequences: 11823it [00:00, 13017.22it/s]
0:77: execution error: "file:///Users/bede/Research/Notebooks/1.1.sub_test.clips.html" doesn’t understand the “open location” message. (-1708)

From Python


In [62]:
from kindel import kindel

In [63]:
consensuses, changes, report = kindel.bam_to_consensus('1.1.sub_test.bam')


loading sequences: 11823it [00:00, 13425.17it/s]
building consensus: 100%|██████████| 9306/9306 [00:00<00:00, 79149.53it/s]

In [52]:
consensuses  # List of Biopython SeqRecords


Out[52]:
[SeqRecord(seq=Seq('AAGCGTCTAGCCATGGCGTTAGTATGAGTGTCGTGCAGCCTCCAGGACCCCCCC...GAA', Alphabet()), id='ENA|EU155341|EU155341.2_cns', name='<unknown name>', description='', dbxrefs=[])]

In [54]:
consensuses[0].id  # Reference sequence name


Out[54]:
'ENA|EU155341|EU155341.2_cns'

In [55]:
consensuses[0].seq  # Biopython Seq object


Out[55]:
Seq('AAGCGTCTAGCCATGGCGTTAGTATGAGTGTCGTGCAGCCTCCAGGACCCCCCC...GAA', Alphabet())

In [57]:
{c.id: str(c.seq) for c in consensuses}  # Dict of reference contigs and consensuses


Out[57]:
{'ENA|EU155341|EU155341.2_cns': 'AAGCGTCTAGCCATGGCGTTAGTATGAGTGTCGTGCAGCCTCCAGGACCCCCCCTCCCGGGAGAGCCATAGTGGTCTGCGGAACCGGTGAGTACACCGGAATTGCCAGGACGACCGGGTCCTTTCTTGGATCAACCCGCTCAATGCCTGGAGATTTGGGCGTGCCCCCGCAAGACCGCTAGCCGAGTAGTGTTGGGTCGCGAAAGGCCTTGTGGTACTGCCTGATAGGGTGCTTGCGAGTGCCCCGGGAGGTCTCGTAGACCGTGCACCATGAGCACGAATCCTAAACCTCAAAGAAAAACCAAACGTAACACCAACCGTCGCCCACAGGACGTCAAGTTCCCGGGTGGCGGTCAGATCGTTGGTGGAGTTTACTTGTTGCCGCGCAGGGGCCCTAGATTGGGTGTGCGCGCGACGAGGAAGACTTCCGAGCGGTCGCAACCTCGAGGTAGACGTCAGCCTATCCCCAAGGCGCGTCGGCCCGAGGGCAGGACCTGGGCTCAGCCCGGGTACCCTTGGCCCCTCTATGGTAATGAGGGCTGCGGGTGGGCGGGATGGCTCCTGTCCCCCCGTGGCTCTCGGCCTAGCTGGGGCCCCACAGACCCCCGGCGTAGGTCGCGCAATTTGGGTAAGGTCATCGATACCCTCACGTGCGGCTTCGCCGACCTCATGGGGTACATTCCGCTCGTCGGCGCCCCTCTTGGGGGCGCTGCCAGGGCCCTGGCGCATGGCGTCCGGGTTCTGGAAGACGGCGTGAACTATGCAACAGGGAATCTTCCTGGTTGCTCTTTCTCTATCTTCCTTCTGGCCCTGCTCTCTTGCCTGACTGTGCCCGCGTCAGCCTACCAAGTACGCAACTCCTCGGGCATCTACCATGTCACCAATGATTGCCCTAACTCGAGTATTGTGTACGAGACGGCCGATGCCATTCTACACTCTCCGGGGTGTGTCCCTTGCGTTCGCGAGGGTAACAGCTCGAAGTGTTGGGTGGCGGTGGCCCCCACAGTCGCCACCAGGGACGGCAAACTCCCCGCAACACAGCTTCGACGTCACATCGATCTGCTTGTCGGGAGCGCCACCCTCTGTTCGGCCCTCTATGTGGGGGACTTATGCGGGTCTGTCTTTCTTGTCGGCCAACTGTTCACTTTCTCCCCCAGACACCACTGGACGACGCAAGACTGCAACTGCTCCATCTACCCCGGCCATATAACGGGTCACCGCATGGCATGGGATATGATGATGAATTGGTCCCCTACAACAGCGCTGGTAGTAGCTCAGCTGCTCAGGGTCCCGCAAGCCATCTTGGACATGATCGCTGGTGCCCACTGGGGAGTCCTAGCGGGCATAGCGTATTTCTCCATGGTGGGGAACTGGGCGAAGGTCCTGGTGGTGCTGTTGCTGTTTGCCAGCGTCGATGCAGATACCTACACCACCGGGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCCAGCTGATCAACACCAACGGCAGTTGGCACATCAATCGCACGGCCCTGAACTGCAATGCGAGTCTCGACACTGGCTGGGTGGCGGGGCTCCTCTATTACCACAAATTCAACTCTTCAGGCTGCACCGAGAGGATGGCCAGCTGTAGACCCCTTGCCGATTTCGATCAGGGCTGGGGCCCCATCAGCCACACCAACGGAAGCGGCCCCGAACACCGCCCTTACTGCTGGCACTACCCCCCAAAGCCATGTGGCATCGTGCCAGCAAAGAGTGTATGTGGTCCAGTGTATTGCTTCACTCCTAGCCCCGTGGTGGTGGGAACGACCGACAAGTTGGGCGCGCCCACCTACAACTGGGGTAGCAATGACACGGACGTCTTCATCCTCAACAACACCAGGCCACCGTTGGGCAATTGGTTCGGCTGCACCTGGATGAATGCATCTGGGTTTACCAAAGTGTGCGGAGCGCCCCCTTGTGTCATCGGGGGGGGAGGCAACAACACATTGCACTGCCCCACTGACTGCTTCCGCAAACATCCGGAGGCCACATACTCTCGGTGTGGCTCCGGCCCCTGGGTCACGCCCAGGTGCCTGGTCCATTACTCTTACAGGCTTTGGCATTACCCTTGTACTGTCAACTACACCCTGTTCAAAGTCAGGATGTACGTGGGAGGGGTCGAGCACAGGCTGGAAGTTGCTTGCAACTGGACGCGGGGCGAGCGTTGTGATCTGGACGACAGGGACAGGTCCGAGCTCAGCCCGCTGCTGCTGTCCACCACACAGTGGCAGGTCCTTCCGTGTTCCTTCACGACCTTGCCAGCCTTGACCACCGGCCTCATCCACCTCCACCAGAACATCGTGGACGTGCAATATTTGTACGGGGTGGGGTCAAGTATCGTATCCTGGGCCATCAAGTGGGAGTATGTCATTCTCTTGTTCCTCCTGCTTGCAGACGCGCGCATCTGCTCCTGCTTGTGGATGATGCTACTCATATCCCAAGCGGAGGCGGCTTTGGAGAACCTCGTGGTGCTTAATGCGGCGTCTTTGGCCGGGACGCACGGTCTTGTGTCCTTCCTCGTGTTTTTCTGCTTTGCATGGTATCTCAAGGGTAGGTGGGTGCCCGGGGCGGCCTACGCCTTCTACGGGATGTGGCCTCTCCTCCTGCTCCTGTTGGCGTTGCCCCAACGGGCATACGCACTGGACACGGAGGTGGCCGCGTCGTGTGGCGGCGTTGTTCTTGTCGGGTTGATGACGCTGACTCTGTCACCGCATTACAAGCGCTATATCAGCTGGTGCTTTTGGTGGCTTCAGTATTTTCTGACCAGAGTAGAAGCGCATCTGCACATGTGGGTTCCCCCCCTCAACGTCCGGGGGGGCCGCGACGCTGTCATCCTACTCATGTGTGTTGTACACCCGGCCTTGGTATTTGACATCACCAAGTTGCTGCTGGCCGTCTTCGGACCCCTTTGGATTCTCCAAACCAGTCTGCTCAAAGTGCCCTACTTCGTGCGCGTCCAAGGCCTTCTCCGGGTCTGCGCGCTAGTGCGCAAGATGGCCGGAGGCCATTACGTGCAGATGATCATGATCAAGCTGGGGGCGCTTACTGGTACCTATGTTTACAACCATCTCACCCCTCTCCGGGACTGGGCGCACAACGGCCTACAAGATCTGGCCGTGGCTGTAGAGCCAGTCGTCTTTTCCCAGATGGAGACCAAGCTCATCACGTGGGGGGCGGACACCGCCGCGTGCGGTGACATCATCAACGGCTTGCCCGTCTCTGCCCGCAGGGGCCGAGAGATATTGCTCGGGCCGGCCGATGGAATGACCTCCAAAGGGTGGAGGTTGCTGGCGCCCATCACGGCTTATGCCCAGCAGACAAGGGGTCTCTTGGGGTGCATAATTACCAGCCTGACCGGCCGGGATAAAAACCAGGTGGAGGGTGAGGTCCAGATTGTGTCAACTGCTGCCCAGACTTTTCTGGCAACCTGCATCAACGGGGTGTGCTGGACCGTCTACCACGGGGCTGGAACAAGGACCATCGCGTCATCTAAGGGTCCTGTTATCCAGATGTATACCAATGTAGACCAGGACCTCGTGGGCTGGCCCGCTCCCCAGGGTGCCCGCTCATTGACACCCTGCACTTGCGGCTCCTCGGACCTTTATCTGGTCACGAGGCACGCCGATGTCATTCCCGTGCGCCGGCGAGGTGATAGCAGGGGCAGCCTGCTTTCGCCCCGGCCCATCTCCTACCTGAAAGGCTCCTCGGGGGGCCCACTGCTGTGCCCCGCGGGACACGCCGTAGGCATATTCAGAGCCGCGGTATGCACCCGTGGAGTGGCTAAGGCGGTGGACTTCATCCCCGTAGAAAGCCTAGAGACAACCATGAGGTCCCCAGTGTTCACAGACAATTCCTCCCCGCCAGCAGTGCCCCAGAGCTTCCAGGTTGCCCACCTGCACGCTCCCACCGGCAGCGGTAAGAGCACCAAGGTCCCGGCCGCATACGCGGCGCAGGGCTACAAAGTGCTGGTGCTCAACCCCTCCGTTGCTGCAACACTGGGCTTTGGCGCTTACATGTCCAAGGCCCACGGGGTTGATCCTAACATCAGGACTGGGGTGAGGACAATCACTACTGGCAGCCCCATCACGTACTCCACCTACGGCAAGTTCCTTGCCGACGGCGGGTGCTCAGGGGGTGCCTATGACATAATAATTTGTGACGAGTGCCACTCCACGGATGCCACATCCGTTTTGGGCATCGGCACTGTCCTTGACCAAGCAGAGACCGCGGGGGCGAGACTGGTTGTGCTCGCCACCGCCACCCCTCCGGGCTCCATCACTGTGCCTCATCCTAACATCGAGGAGGTTGCTCTGTCCACCACCGGAGAGATTCCCTTTTACGGCAAGGCTATCCCCCTTGAGGCAATCAAGGGGGGGAGACACCTCATCTTTTGCCACTCAAAGAAGAAGTGCGACGAGCTCGCCGCAAAACTGGTCGCGCTGGGCATCAACGCCGTGGCTTATTACCGCGGCCTTGACGTGTCCGTCATCCCAACCAGTGGCGATGTTGTCGTCGTGGCAACTGATGCTCTCATGACCGGCTATACCGGCGACTTTGACTCGGTGATAGACTGCAACACGTGTGTCACCCAGACAGTCGACTTCAGCCTTGACCCCACCTTCACTATTGAGACAACCACGCTTCCCCAGGATGCCGTCTCCCGCACTCAACGTCGGGGTAGGACTGGCAGGGGGAAGCCAGGCATCTACAGATTTGTGGCACCGGGGGAGCGCCCTTCCGGCATGTTTGACTCGTCCGTCCTCTGCGAGTGCTATGACGCGGGCTGTGCTTGGTACGAGCTCACACCCGCCGAGACCACAGTTAGGCTACGAGCATACATGAACACCCCGGGACTCCCCGTGTGCCAAGACCATCTTGAATTTTGGGAGGGCGTCTTCACGGGTCTCACCCATATAGATGCCCACTTTCTATCCCAGACAAAGCAGAGTGGGGAGAACTTTCCTTACCTGGTAGCGTACCAAGCCACCGTGTGCGCTAGAGCCCAAGCCCCCCCGCCATCGTGGGACCAGATGTGGAAGTGCTTGATCCGTCTCAAGCCCACCCTTCATGGGCCAACACCTCTGCTATACAGACTGGGCGCTGTTCAGAATGAAGTCACCCTGACGCACCCAGTTACCAAATACATCATGACATGCATGTCGGCTGACCTGGAGGTCGTCACGAGTACCTGGGTACTCGTTGGCGGCGTTCTGGCTGCTTTGGCCGCATATTGCCTATCCACAGGCTGTGTGGTCATAGTAGGCAGGATTGTCTTGTCCGGGAAGCCGGCAATCATACCTGACAGGGAAGTCCTCTACCGGGAGTTCGATGAGATGGAAGAGTGCTCTCAGCACTTGCCGTACATCGAGCAAGGGATGATGCTCGCTGAGCAGTTCAAGCAGAAGGCCCTTGGCCTCCTGCAGACCGCGTCCCGCCAGGCAGAGGTCATCACCCCTGCTGTCCAAACCAACTGGCAAAGACTCGAGGCCTTCTGGGCAAAGCATATGTGGAACTTCATCAGTGGGATACAATATCTGGCGGGCCTGTCAACGTTACCTGGTAATCCCGCCATTGCATCATTGATGGCTTTTACAGCTGCCGTCACCAGCCCGCTAACCACTAGCCAAACTCTCCTCTTCAACATCTTGGGGGGGTGGGTGGCTGCCCAGCTTGCAGCCCCCGGTGCCGCAACCGCCTTTGTGGGCGCTGGTCTAGCTGGCGCCGCCATCGGCAGTGTTGGACTGGGGAAGGTCCTCGTGGACATCCTTGCAGGATATGGCGCGGGCGTGGCGGGAGCTCTCGTAGCGTTCAAGATCATGAGCGGCGAGGTCCCCTCCACAGAGGACCTGGTCAATCTATTGCCTGCCATTCTTTCGCCCGGGGCCCTCGTAGTCGGTGTGGTCTGCGCAGCAATACTACGCCGGCATGTTGGCCCGGGCGAGGGGGCAGTGCAGTGGATGAACCGGTTGATAGCCTTCGCCTCCCGGGGGAACCATGTTTCCCCCACGCACTACGTGCCGGAGAGCGATGCAGCTGCCCGCGTCACTGCCATACTTAGCAGCCTCACTGTGACCCAGCTCCTGAGACGACTACACCAGTGGATAAGCTCGGACTGCACCACTCCGTGCTCCGGTTCCTGGCTAAGGGACATCTGGGACTGGATATGCGAAGTGCTGAGCGATTTTAAGACCTGGCTGAAGGCCAAGCTCATGCCACAACTGCCCGGGATCCCCTTTGTGTCCTGCCAACGCGGGTATAAGGGGGTCTGGCGAGGAGATGGCATTATGCACACTCGCTGCCACTGTGGAGCTGAGATCGCTGGACATGTCAAGAACGGGACGATGAGGATCGTCGGTCCTAAGACCTGCAGGAACATGTGGAGTGGGACCTTCCCCATCAACGCCTACACCACGGGCCCCTGTACCCCTCTACCTGCGCCGAACTACACGTTTGCGCTGTGGAGGGTGTCTGCGGAGGAATACGTGGAAATAAGGCGGGTGGGGGACTTCCACTACGTGACGGGCATGACTGCTGACAATCTTAAATGCCCGTGCCAGGTCCCATCGCCCGAATTTTTCACAGAACTGGACGGGGTGCGCCTACATAGGTTTGCGCCCCCTTGCAAGCCCTTGCTACGAGAAGAGGTGTCGTTCAGAGTAGGACTACACGATTACCTGGTGGGGTCGCAGTTACCTTGCGAGCCCGAACCGGACGTGGCCGTGTTGACGTCCATGCTCACTGATCCCTCCCATATAACAGCAGAGGCGGCTGGGAGGAGGTTAGCGAGGGGATCGCCCCCTTCGTTGGCCAGCTCTTCGGCCAGCCAGCTGTCGGCTCCATCTCTCAAGGCTACTTGCACAACCAACCACGACTCCCCTGACGCCGAGCTCATAGAGGCCAACCTCCTGTGGAGGCAGGAGATGGGCGGCAACATCACCAGGGTCGAGTCAGAGAACAAAGTGGTGGTTCTGGACTCCTTCGATCCGCTTGTGGCGGAGGAGGATGATCGGGAGGTCTCCGTGCCCGCAGAAATCCTGCGAAAGTCTCGGAGGTTTGCCCCGGCCCTGCCCATTTGGGCACGGCCGGACTACAACCCCCCGTTGTTGGAGACGTGGAAAAAACCGGACTACGAACCACCTGTGGTCCATGGCTGCCCTCTTCCACCTCCACGGCCCCCTCCTGTGCCTCCGCCCCGGAAGAAGCGGACGGTGGTCCTCACCGAATCAACCGTATCTACTGCCTTGGCCGAGCTTGCCACCAAGAGCTTTGGCAGCTCCTCAACTTCCGGCATTACGGGCGACGACACAACAGCGTCCTCTGAGCCCGCCCCCTCTGTCTGCCTCCCAGACTCCGACGCTGAGTCCTATTCTTCCATGCCCCCCCTGGAGGGGGAGCCTGGGGATCCGGACCTCAGTGACGGGTCATGGTCGACGGTTAGTAGTGAGGCGGACGCGGAGGATGTCGTGTGCTGCTCAATGTCTTATACCTGGACAGGCGCACTTGTCACCCCGTGTGCTGCGGAAGAACAAAAATTGCCTATCAACGCACTGAGCAACTCGTTGCTGCGTCACCACAATCTTGTGTACTCTACCACCTCACGCAGTGCTTGCCAGAGGCAGAAGAAAGTCACATTTGACAGACTGCAGGTCCTGGACAACCACTACCAGGACGTGCTCAAGGAGGTTAAGGCGGCGGCGTCAAAAGTGAAGGCAAGCTTGCTATCCGTAGAGGAGGCTTGCAGCCTGACGCCCCCACATTCAGCCAGATCTAAATTTGGCTATGGGGCAAAGGACGTCCGCAGCCATGCCAGAAAGGCCGTAAACCACATCAACTCCGTGTGGAAAGACCTTCTGGAAGACAGTGTAACACCAATAGATACTACCATCATGGCTAAGAACGAAGTTTTCTGCGTTCAGCCTGAGAAGGGGGGTCGTAAGCCAGCTCGCCTCATCGTGTTCCCCGACCTGGGGGTACGCGTGTGCGAGAAGATGGCCCTGTACGACGTGGTCAAGAAACTCCCTGTGGCCGTGATGGGAAGCTCCTACGGATTCCAATACTCACCAGGACAGCGGGTTGAATTCCTCGTGCAAGCGTGGAAGTCCAAGAAGACCCCGATGGGGTTTTCATATGATACCCGCTGCTTTGACTCCACAGTCACTGAGAGCGACATCCGTACGGAGGAGGCAATCTACCAATGTTGTGACCTGGACCCCCAAGCCCGAGTGGCCATCAAGTCCCTCACCGAGAGGCTTTATGTCGGGGGCCCTCTTACCAATTCAAGGGGGGAGAACTGCGGCTATCGCAGATGCCGCGCAAGCGGCGTGCTGACAACTAGCTGCGGTAACACCCTCACCTGCTACATCAAGGCCCAAGCAGCCTGTCGAGCCGCAGGGCTCCGGGACTGCACCATGCTCGTGTGTGGCGACGACCTAGTCGTTATCTGTGAGAGTCAGGGGGTCCCGGAGGACGCAGCGAGCCTGAGAGCCTTCACGGAGGCTATGACCAGGTACTCCGCTCCCCCCGGGGACCCCCCCCAACCAGAATACGACTTGGAGCTCATAACATCATGCTCCTCTAACGTGTCAGTCGCCCACGACGGCGCTGGAAAGAGGGTCTATTACCTTACCCGTGACCCTACGACTCCCATCGCGAGAGCCGCGTGGGAGACAGCAAGACACACTCCAGTCAATTCCTGGCTAGGCAACATAATCATGTTTGCCCCCACATTGTGGGCGAGAATGATACTGATGACCCACTTCTTCAGTGTCCTCATAGCCAGGGATCAGCTTGAACAGGCCCTTGATTGCGAAATCTACGGAGCCTGCTACTCCATAGAACCACTGGACCTACCTCCAATCATTCAAAGACTCCATGGCCTTAGCGCGTTCTCACTCCACAGCTACTCTCCAGGTGAAATCAATAGGGTGGCCGCATGCCTCAGAAAACTTGGGGTCCCGCCCTTGCGAGCTTGGAGACACCGGGCCCGAAGCGTCCGCGCTAGGCTTCTGTCCAGAGGAGGCAAGGCTGCCATATGTGGCAAGTACCTCTTCAATTGGGCAGTAAGAACAAAGCTCAAACTCACTCCAATAGCGGCCGCTAGCCAGCTGGACTTGTCCGGCTGGTTCACGGCTGGCTACAGCGGGGGAGACATTTATCACAGCGTGTCTCATGCCCGGCCCCGCTGGTTCTGGTTTTGCCTACTCCTGCTTACTGCAGGGGTAGGCATCTACCTCCTCCCCAACCGATGAA'}