Display/explore (bio)sequences with Bokeh
Example:
from seequence.view import *
from seequence.color import *
sequence_nt = 'GCTAGTGGTGCTAGCCCCGCGAAATTAATACGACTCACTATAGGGTCTAGAAATAATTTTGTTTAACTTTAAGAAGGAGATATACATATGCAAAGCCCAGCACCTGCCGCAGCGCCTGCCCCTGCGGCACGTTCCATCGCAGCTACGCCTCCTAAACTGATCGTGGCAATTAGCGTGGACCAGTTTAGTGCAGACTTGTTCTCGGAGTATCGTCAATATTACACCGGAGGTTTAAAGCGTCTTACATCCGAAGGAGCTGTGTTCCCACGTGGTTATCAGAGTCATGCGGCAACAGAAACGTGTCCTGGTCACTCAACGATCCTGACAGGATCACGTCCGTCACGTACGGGTATTATCGCTAATAACTGGTTCGACTTGGACGCAAAGCGTGAGGATAAAAATCTGTACTGTGCTGAGGATGAATCCCAACCCGGTAGTTCGTCTGACAAGTACGAAGCTTCGCCACTGCACTTAAAGGTACCCACCCTGGGGGGACGCATGAAAGCCGCCAATCCTGCGACTCGTGTCGTCTCTGTTGCCGGCAAGGATCGCGCGGCCATTATGATGGGTGGCGCCACAGCGGATCAGGTCTGGTGGTTAGGGGGGCCTCAGGGGTATGTTTCGTATAAGGGTGTAGCGCCAACTCCCCTTGTAACACAGGTCAATCAGGCCTTTGCACAGCGCTTAGCTCAGCCGAACCCGGGATTTGAGTTGCCTGCTCAGTGCGTCAGCAAGGACTTTCCTGTTCAAGCGGGAAATCGCACAGTGGGTACCGGCCGCTTCGCCCGTGATGCTGGTGACTACAAAGGTTTTCGCATTTCCCCGGAGCAGGATGCTATGACGCTTGCATTCGCTGCCGCGGCCATTGAAAATATGCAATTAGGGAAGCAGGCCCAGACCGATATTATTAGCATTGGACTGAGCGCTACGGATTACGTGGGACACACCTTCGGCACGGAGGGTACGGAGAGTTGCATCCAAGTGGATCGTTTAGACACGGAGCTTGGTGCATTCTTTGATAAACTGGATAAGGATGGGATTGACTACGTAGTAGTGCTGACTGCAGATCATGGAGGACACGATCTGCCCGAACGTCATCGTATGAATGCCATGCCGATGGAACAGCGCGTAGACATGGCCCTGACACCTAAAGCTCTGAATGCTACCATCGCTGAGAAAGCTGGCCTTCCGGGCAAAAAGGTTATTTGGTCAGATGGACCTTCTGGCGATATTTACTATGATAAGGGCCTTACAGCCGCTCAACGTGCCCGTGTTGAAACCGAGGCGTTAAAATACTTGCGCGCGCATCCCCAAGTACAGACTGTATTCACTAAGGCGGAAATCGCGGCTACCCCTTCTCCGTCGGGACCACCTGAGAGCTGGAGTTTGATCCAGGAAGCTCGCGCGTCATTTTACCCGTCGCGCTCCGGGGACCTGTTACTTTTATTGAAACCTCGTGTGATGAGCATTCCTGAGCAAGCAGTCATGGGCTCGGTTGCAACCCATGGATCTCCATGGGATACGGATCGCCGTGTGCCTATCCTGTTTTGGCGCAAAGGTATGCAGCATTTCGAACAACCCTTAGGAGTAGAGACTGTTGATATTTTGCCCTCCTTGGCTGCACTTATTAAGCTTCCTGTTCCTAAGGATCAGATCGACGGCCGCTGTCTGGACTTGGTCGCCGGCAAGGATGATTCCTGTGCTGGACAGGGAGGAGGGTCTGGGGGAGGAGGCAGTGGCATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGCGACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAGCTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACC'
mutreg_aa = 'QSPAPAAAPAPAARSIAATPPKLIVAISVDQFSADLFSEYRQYYTGGLKRLTSEGAVFPRGYQSHAATETCPGHSTILTGSRPSRTGIIANNWFDLDAKREDKNLYCAEDESQPGSSSDKYEASPLHLKVPTLGGRMKAANPATRVVSVAGKDRAAIMMGGATADQVWWLGGPQGYVSYKGVAPTPLVTQVNQAFAQRLAQPNPGFELPAQCVSKDFPVQAGNRTVGTGRFARDAGDYKGFRISPEQDAMTLAFAAAAIENMQLGKQAQTDIISIGLSATDYVGHTFGTEGTESCIQVDRLDTELGAFFDKLDKDGIDYVVVLTADHGGHDLPERHRMNAMPMEQRVDMALTPKALNATIAEKAGLPGKKVIWSDGPSGDIYYDKGLTAAQRARVETEALKYLRAHPQVQTVFTKAEIAATPSPSGPPESWSLIQEARASFYPSRSGDLLLLLKPRVMSIPEQAVMGSVATHGSPWDTDRRVPILFWRKGMQHFEQPLGVETVDILPSLAALIKLPVPKDQIDGRCLDLVAGKDDSCAGQ'
f_ls = []
f_ls.append(view_seq(seq = sequence_nt,
layer = 'seq_nt',
start = -90))
f_ls.append(view_seq(seq = mutreg_aa,
layer = 'mutreg_aa',
start = 0,
scale = 3,
xr = f_ls[0].x_range))
f_ls = list(reversed(f_ls))
gp = gridplot(f_ls, ncols=1,
toolbar_location='left', toolbar_options={'logo':None})
show(gp)
Features:
- visualization:
- align to x-axis with
start
,scale
- hover text with indices
- character -> color mappings (default dicts in
color.py
) - zoom-sensitive character visibility
- align to x-axis with
- interactivity:
x-zoom
: scrollx-pan
: click + dragreset
: double click
Install:
pip install git+https://github.com/FordyceLab/seequence.git
to edit locally:
pip install -e git+https://github.com/FordyceLab/seequence.git#egg=seequence