dotplots

Dot Plots a generic and basic example two sequences that have a predetermined, optimal alignment, no gaps create a matrix with each sequence as an axis place a 0 if there is a mismatch between the two sequences at that position place a 1 if there is a match visualize matrix by coloring a grid according to 1's or 0's here 1's are yellow, 0's are purple

In [3]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

sequence_1 = 'gctagctagtagcttaggatgatcgtacgtagctagctgattatagagagagaaggagaa'
sequence_2 = 'gctagctagtaccttaggatgatcgtacgaagctaactgattatagagagagcaagcgaa'
dot_matrix = np.zeros((len(sequence_1),len(sequence_2)))
for base in range(0,len(sequence_1)):
    if sequence_1[base] == sequence_2[base]:
        dot_matrix[base,base] = 1
plt.imshow(dot_matrix,cmap="Purples_r",interpolation='none')        
plt.show()
In [5]:
def dot_plot(seq_record,comparison_sequence,complement=True,window=3):
    #subject_strand = str(seq_record.seq).upper()
    subject_strand = seq_record
    #seq_two = str(comparison_sequence).upper()
    seq_two = comparison_sequence
    #seq_two_complement = str(comparison_sequence.complement).upper()
    data = np.array([[int((subject_strand[i:i + window] != seq_two[j:j + window]))
                       for i in range(len(subject_strand) - window)]
                      for j in range(len(seq_two) - window)])
    if complement==True:
        data = data + np.array([[2 * int((subject_strand[i:i + window] != seq_two_complement[j:j + window]))
                               for i in range(len(subject_strand) - window)]
                              for j in range(len(seq_two) - window)])
    return data
In [6]:
#from Bio import pairwise2
#from Bio import SeqIO
#from Bio.Seq import Seq
def make_quick_plot(window):
    import matplotlib.pyplot as plt

    print 'window size: ' + str(window)
    plt.rcParams['figure.figsize'] = 10,10
    plt.imshow(dot_plot(sequence_1,sequence_2,complement=False,window=window),cmap="Purples_r",interpolation='none')
    plt.show()
for i in range(0,10):
    make_quick_plot(i)
window size: 0
window size: 1
window size: 2
window size: 3
window size: 4
window size: 5
window size: 6
window size: 7
window size: 8
window size: 9
In [7]:
sequence_4 = 'gatcgatc'
sequence_3 = 'gctagctagtgatcgatcaccttaggatgatcgtgatcgatcacgaagctaagatcgatcctgattatagaggatcgatcagagatcgatcgatcgatcgatcgatcgcaagcgaa'
def make_quick_plot(window):
    import matplotlib.pyplot as plt

    print 'window size: ' + str(window)
    plt.rcParams['figure.figsize'] = 10,1
    plt.imshow(dot_plot(sequence_3,sequence_4,complement=False,window=window),cmap="Purples_r",interpolation='none')
    plt.show()
for i in range(0,8):
    make_quick_plot(i)
window size: 0
window size: 1
window size: 2
window size: 3
window size: 4
window size: 5
window size: 6
window size: 7
In [8]:
sequence_4 = 'inside my DNA'
sequence_3 = 'I got, I got, I got, I got  Loyalty, got royalty inside my DNA Cocaine quarter piece, got war and peace inside my DNA I got power, poison, pain and joy inside my  NA I got hustle though, ambition, flow, inside my DNA I was born like this, since one like this Immaculate conception I transform like this, perform like this Was Yeshuas new weapon I dont contemplate, I meditate, then off your fucking head This that put-the-kids-to-bed This that I got, I got, I got, I got Realness, I just kill shit cause its in my DNA I got millions, I got riches buildin’ in my DNA I got dark, I got evil, that rot inside my DNA I got off, I got troublesome, heart inside my DNA I just win again, then win again like Wimbledon, I serve Yeah, thats'
def make_quick_plot(window):
    import matplotlib.pyplot as plt

    print 'window size: ' + str(window)
    plt.imshow(dot_plot(sequence_3,sequence_4,complement=False,window=window),cmap="Purples_r",interpolation='none')
    plt.show()
    plt.rcParams['figure.figsize'] = 500,1
for i in range(0,8):
    make_quick_plot(i)
window size: 0
window size: 1
window size: 2
window size: 3
window size: 4
window size: 5
window size: 6
window size: 7
In [9]:
sequence_5 = 'I got, I got, I got, I got  Loyalty, got royalty inside my DNA Cocaine quarter piece, got war and peace inside my DNA I got power, poison, pain and joy inside my DNA I got hustle though, ambition, flow, inside my DNA I was born like this, since one like this Immaculate conception I transform like this, perform like this Was Yeshuas new weapon I dont contemplate, I meditate, then off your fucking head This that put-the-kids-to-bed This that I got, I got, I got, I got Realness, I just kill shit cause its in my DNA I got millions, I got riches buildin’ in my DNA I got dark, I got evil, that rot inside my DNA I got off, I got troublesome, heart inside my DNA I just win again, then win again like Wimbledon, I serve Yeah, thats'
sequence_6 = 'I got, I got, I got, I got  Loyalty, got royalty inside my DNA Cocaine quarter piece, got war and peace inside my DNA I got power, poison, pain and joy inside my DNA I got hustle though, ambition, flow, inside my DNA I was born like this, since one like this Immaculate conception I transform like this, perform like this Was Yeshuas new weapon I dont contemplate, I meditate, then off your fucking head This that put-the-kids-to-bed This that I got, I got, I got, I got Realness, I just kill shit cause its in my DNA I got millions, I got riches buildin’ in my DNA I got dark, I got evil, that rot inside my DNA I got off, I got troublesome, heart inside my DNA I just win again, then win again like Wimbledon, I serve Yeah, thats'
def make_quick_plot(window):
    import matplotlib.pyplot as plt

    print 'window size: ' + str(window)
    plt.rcParams['figure.figsize'] = 10,10
    plt.imshow(dot_plot(sequence_5,sequence_6,complement=False,window=window),cmap="Purples_r",interpolation='none')
    plt.show()
    
for i in range(0,8):
    make_quick_plot(i)
window size: 0
window size: 1
window size: 2
window size: 3
window size: 4
window size: 5
window size: 6
window size: 7
In [11]:
def count_mismatches(seq_A,seq_B):
    count = 0
    for i in range(0,len(seq_A)):
        if seq_A[i] == seq_B[i]:
            count += 1
    return count
def dot_plot_tolerant(seq_record,comparison_sequence,complement=True,window=3):
    #subject_strand = str(seq_record.seq).upper()
    subject_strand = seq_record
    #seq_two = str(comparison_sequence).upper()
    seq_two = comparison_sequence
    #seq_two_complement = str(comparison_sequence.complement).upper()
    data = np.array([[count_mismatches(subject_strand[i:i + window], seq_two[j:j + window])
                       for i in range(len(subject_strand) - window)]
                      for j in range(len(seq_two) - window)])
    if complement==True:
        data = data + np.array([[2 * int((subject_strand[i:i + window] != seq_two_complement[j:j + window]))
                               for i in range(len(subject_strand) - window)]
                              for j in range(len(seq_two) - window)])
    print data
    return data
In [12]:
sequence_5 = 'I got, I got, I got, I got  Loyalty, got royalty inside my DNA Cocaine quarter piece, got war and peace inside my DNA I got power, poison, pain and joy inside my DNA I got hustle though, ambition, flow, inside my DNA I was born like this, since one like this Immaculate conception I transform like this, perform like this Was Yeshuas new weapon I dont contemplate, I meditate, then off your fucking head This that put-the-kids-to-bed This that I got, I got, I got, I got Realness, I just kill shit cause its in my DNA I got millions, I got riches buildin’ in my DNA I got dark, I got evil, that rot inside my DNA I got off, I got troublesome, heart inside my DNA I just win again, then win again like Wimbledon, I serve Yeah, thats'
sequence_6 = 'I got, I got, I got, I got  Loyalty, got royalty inside my DNA Cocaine quarter piece, got war and peace inside my DNA I got power, poison, pain and joy inside my DNA I got hustle though, ambition, flow, inside my DNA I was born like this, since one like this Immaculate conception I transform like this, perform like this Was Yeshuas new weapon I dont contemplate, I meditate, then off your fucking head This that put-the-kids-to-bed This that I got, I got, I got, I got Realness, I just kill shit cause its in my DNA I got millions, I got riches buildin’ in my DNA I got dark, I got evil, that rot inside my DNA I got off, I got troublesome, heart inside my DNA I just win again, then win again like Wimbledon, I serve Yeah, thats'
def make_quick_plot(window):
    import matplotlib.pyplot as plt


    print 'window size: ' + str(window)
    plt.rcParams['figure.figsize'] = 10,10
    plt.imshow(dot_plot_tolerant(sequence_5,sequence_6,complement=False,window=window),cmap="viridis",interpolation='none')
    plt.show()
    
for i in range(1,20):
    make_quick_plot(i)
window size: 1
[[1 0 0 ..., 0 0 0]
 [0 1 0 ..., 0 0 0]
 [0 0 1 ..., 0 0 0]
 ..., 
 [0 0 0 ..., 1 0 0]
 [0 0 0 ..., 0 1 0]
 [0 0 0 ..., 0 0 1]]
window size: 2
[[2 0 0 ..., 0 0 0]
 [0 2 0 ..., 0 0 0]
 [0 0 2 ..., 0 0 0]
 ..., 
 [0 0 0 ..., 2 0 0]
 [0 0 0 ..., 0 2 0]
 [0 0 0 ..., 0 0 2]]
window size: 3
[[3 0 0 ..., 0 0 0]
 [0 3 0 ..., 1 0 0]
 [0 0 3 ..., 0 0 1]
 ..., 
 [0 1 0 ..., 3 0 0]
 [0 0 0 ..., 0 3 0]
 [0 0 1 ..., 0 0 3]]
window size: 4
[[4 0 0 ..., 1 0 0]
 [0 4 0 ..., 0 1 1]
 [0 0 4 ..., 1 0 0]
 ..., 
 [1 0 1 ..., 4 0 0]
 [0 1 0 ..., 0 4 0]
 [0 1 0 ..., 0 0 4]]
window size: 5
[[5 0 0 ..., 0 1 1]
 [0 5 0 ..., 1 0 1]
 [0 0 5 ..., 0 1 0]
 ..., 
 [0 1 0 ..., 5 0 0]
 [1 0 1 ..., 0 5 0]
 [1 1 0 ..., 0 0 5]]
window size: 6
[[6 0 0 ..., 1 0 1]
 [0 6 0 ..., 0 1 0]
 [0 0 6 ..., 0 0 1]
 ..., 
 [1 0 0 ..., 6 0 0]
 [0 1 0 ..., 0 6 0]
 [1 0 1 ..., 0 0 6]]
window size: 7
[[7 0 1 ..., 0 1 0]
 [0 7 0 ..., 0 0 1]
 [1 0 7 ..., 2 0 0]
 ..., 
 [0 0 2 ..., 7 0 0]
 [1 0 0 ..., 0 7 0]
 [0 1 0 ..., 0 0 7]]
window size: 8
[[8 0 1 ..., 0 0 1]
 [0 8 0 ..., 2 0 0]
 [1 0 8 ..., 0 2 0]
 ..., 
 [0 2 0 ..., 8 0 0]
 [0 0 2 ..., 0 8 0]
 [1 0 0 ..., 0 0 8]]
window size: 9
[[9 0 1 ..., 2 0 0]
 [0 9 0 ..., 1 2 0]
 [1 0 9 ..., 1 0 2]
 ..., 
 [2 1 1 ..., 9 0 0]
 [0 2 0 ..., 0 9 0]
 [0 0 2 ..., 0 0 9]]
window size: 10
[[10  0  1 ...,  1  2  0]
 [ 0 10  0 ...,  1  1  2]
 [ 1  0 10 ...,  0  1  1]
 ..., 
 [ 1  1  0 ..., 10  0  0]
 [ 2  1  1 ...,  0 10  0]
 [ 0  2  1 ...,  0  0 10]]
window size: 11
[[11  0  1 ...,  1  1  2]
 [ 0 11  0 ...,  0  1  2]
 [ 1  0 11 ...,  1  0  1]
 ..., 
 [ 1  0  1 ..., 11  0  0]
 [ 1  1  0 ...,  0 11  0]
 [ 2  2  1 ...,  0  0 11]]
window size: 12
[[12  0  1 ...,  0  1  2]
 [ 0 12  0 ...,  1  0  1]
 [ 1  0 12 ...,  0  1  0]
 ..., 
 [ 0  1  0 ..., 12  0  0]
 [ 1  0  1 ...,  0 12  0]
 [ 2  1  0 ...,  0  0 12]]
window size: 13
[[13  0  1 ...,  1  0  1]
 [ 0 13  0 ...,  0  1  0]
 [ 1  0 13 ...,  1  0  1]
 ..., 
 [ 1  0  1 ..., 13  0  0]
 [ 0  1  0 ...,  0 13  0]
 [ 1  0  1 ...,  0  0 13]]
window size: 14
[[14  0  2 ...,  0  1  0]
 [ 0 14  0 ...,  1  0  1]
 [ 2  0 14 ...,  2  1  0]
 ..., 
 [ 0  1  2 ..., 14  0  0]
 [ 1  0  1 ...,  0 14  0]
 [ 0  1  0 ...,  0  0 14]]
window size: 15
[[15  0  2 ...,  1  0  1]
 [ 0 15  0 ...,  3  1  0]
 [ 2  0 15 ...,  1  2  1]
 ..., 
 [ 1  3  1 ..., 15  0  0]
 [ 0  1  2 ...,  0 15  0]
 [ 1  0  1 ...,  0  0 15]]
window size: 16
[[16  0  2 ...,  4  1  0]
 [ 0 16  0 ...,  1  3  1]
 [ 2  0 16 ...,  1  1  2]
 ..., 
 [ 4  1  1 ..., 16  0  0]
 [ 1  3  1 ...,  0 16  0]
 [ 0  1  2 ...,  0  0 16]]
window size: 17
[[17  0  2 ...,  1  4  1]
 [ 0 17  0 ...,  2  1  3]
 [ 2  0 17 ...,  0  1  2]
 ..., 
 [ 1  2  0 ..., 17  0  1]
 [ 4  1  1 ...,  0 17  0]
 [ 1  3  2 ...,  1  0 17]]
window size: 18
[[18  0  2 ...,  2  1  4]
 [ 0 18  0 ...,  0  2  2]
 [ 2  0 18 ...,  1  0  1]
 ..., 
 [ 2  0  1 ..., 18  0  1]
 [ 1  2  0 ...,  0 18  0]
 [ 4  2  1 ...,  1  0 18]]
window size: 19
[[19  0  2 ...,  0  2  2]
 [ 0 19  0 ...,  1  0  2]
 [ 2  0 19 ...,  1  1  0]
 ..., 
 [ 0  1  1 ..., 19  0  1]
 [ 2  0  1 ...,  0 19  0]
 [ 2  2  0 ...,  1  0 19]]
In [26]:
sequence_7 = 'sentence lksjdflkkjsdlfkjsldkfjlksjlkjslkdjf sentence'
sequence_8 = 'wiueyriuwyeriuyweiiuwer sentence'

def make_quick_plot(window):
    import matplotlib.pyplot as plt


    print 'window size: ' + str(window)
    plt.rcParams['figure.figsize'] = 10,10
    plt.imshow(dot_plot_tolerant(sequence_7,sequence_8,complement=False,window=window),cmap="magma",interpolation='none')
    plt.show()
    
for i in range(15,20):
    make_quick_plot(i)
window size: 15
[[0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
  0]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  1]
 [1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
  0]
 [1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
  0]
 [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
  1]
 [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
  0]
 [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
  0]
 [0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
  1]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
  0]
 [2 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0
  1]
 [0 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0
  0]
 [0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 3 0 0 1 1
  0]
 [1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 4 0 0 2
  1]
 [1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 5 0 0
  2]
 [1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 6 0
  0]
 [2 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 7
  0]
 [0 2 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0
  8]]
window size: 16
[[0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0]
 [1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1]
 [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
 [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]
 [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1]
 [0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1]
 [2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0 0]
 [0 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 3 0 0 1 1 0]
 [0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 4 0 0 2 1]
 [1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 5 0 0 2]
 [1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 6 0 0]
 [1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 7 0]
 [2 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 8]]
window size: 17
[[0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1]
 [1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
 [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]
 [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1]
 [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1]
 [0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0 0]
 [2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 3 0 0 1 1 0]
 [0 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 4 0 0 2 1]
 [0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 5 0 0 2]
 [1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 6 0 0]
 [1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 7 0]
 [1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 8]]
window size: 18
[[0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1]
 [1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
 [1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]
 [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1]
 [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1]
 [0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0 0]
 [0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 3 0 0 1 1 0]
 [2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 4 0 0 2 1]
 [0 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 5 0 0 2]
 [0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 6 0 0]
 [1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 7 0]
 [1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 8]]
window size: 19
[[0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1]
 [0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
 [1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]
 [1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1]
 [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0]
 [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1]
 [1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0 0]
 [0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 3 0 0 1 1 0]
 [0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 4 0 0 2 1]
 [2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 5 0 0 2]
 [0 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 6 0 0]
 [0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 7 0]
 [1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 0 0 8]]
In [14]:
sequence_11 = 'CCCAGAAGCCGAACTGGGCCAGACAACCCGGCGCTAACGCACTCAAAGCCGGGACGCGACGCGACATATCGGCTAAGAGTAGGCCGGGAGTGTAGACCTTTGGGGTTGAATAAATCTGTCGTAGTAACCGGCTTCAACGACCCGTACAGGTGGCACTTCAGGAGGGGCCCGCAGGGAGGAAGTTTTCTGCTATTCGTGGCCGTTCGTGGTAACTAGTTGCGTTCCTAGCCACTACAATTGTTTCTAAGCCGTGTAATGAGAACAACCACACCATAGCGAATTGATGCGCCGCCTCGGAATACCGTTTTGGCAACCCCTTACTAAGGCCATCGCGATTTTCAGGTATCGTGCATGTAGGGTTGGACCGCACGCATGTTAAACTGCTGGCGAACCGCGATTCCACGACCGGTGCACGATTTAATTACGCCGACGTGACGACATTCCTGCTAATGCCTCACCCGCCGGACCGCCCTCGTGATGGGGTAGCTGGGCATGACCTT'

def make_quick_plot(window):
    import matplotlib.pyplot as plt


    print 'window size: ' + str(window)
    plt.rcParams['figure.figsize'] = 10,10
    plt.imshow(dot_plot_tolerant(sequence_11,sequence_11,complement=False,window=window),cmap="viridis",interpolation='none')
    plt.show()
    
for i in range(1,20):
    make_quick_plot(i)
window size: 1
[[1 1 1 ..., 1 1 0]
 [1 1 1 ..., 1 1 0]
 [1 1 1 ..., 1 1 0]
 ..., 
 [1 1 1 ..., 1 1 0]
 [1 1 1 ..., 1 1 0]
 [0 0 0 ..., 0 0 1]]
window size: 2
[[2 2 1 ..., 1 2 1]
 [2 2 1 ..., 1 2 1]
 [1 1 2 ..., 0 1 1]
 ..., 
 [1 1 0 ..., 2 1 0]
 [2 2 1 ..., 1 2 1]
 [1 1 1 ..., 0 1 2]]
window size: 3
[[3 2 1 ..., 1 2 2]
 [2 3 1 ..., 0 1 2]
 [1 1 3 ..., 1 0 1]
 ..., 
 [1 0 1 ..., 3 1 0]
 [2 1 0 ..., 1 3 1]
 [2 2 1 ..., 0 1 3]]
window size: 4
[[4 2 2 ..., 0 1 2]
 [2 4 1 ..., 1 0 1]
 [2 1 4 ..., 0 1 0]
 ..., 
 [0 1 0 ..., 4 1 0]
 [1 0 1 ..., 1 4 1]
 [2 1 0 ..., 0 1 4]]
window size: 5
[[5 2 2 ..., 1 0 1]
 [2 5 2 ..., 0 1 0]
 [2 2 5 ..., 2 0 1]
 ..., 
 [1 0 2 ..., 5 1 0]
 [0 1 0 ..., 1 5 1]
 [1 0 1 ..., 0 1 5]]
window size: 6
[[6 3 2 ..., 1 1 0]
 [3 6 2 ..., 3 0 1]
 [2 2 6 ..., 3 2 0]
 ..., 
 [1 3 3 ..., 6 1 0]
 [1 0 2 ..., 1 6 1]
 [0 1 0 ..., 0 1 6]]
window size: 7
[[7 3 2 ..., 3 1 1]
 [3 7 2 ..., 3 3 0]
 [2 2 7 ..., 1 4 2]
 ..., 
 [3 3 1 ..., 7 1 0]
 [1 3 4 ..., 1 7 1]
 [1 0 2 ..., 0 1 7]]
window size: 8
[[8 3 2 ..., 3 3 1]
 [3 8 3 ..., 1 4 3]
 [2 3 8 ..., 3 2 4]
 ..., 
 [3 1 3 ..., 8 2 0]
 [3 4 2 ..., 2 8 1]
 [1 3 4 ..., 0 1 8]]
window size: 9
[[9 4 2 ..., 1 4 3]
 [4 9 3 ..., 3 2 4]
 [2 3 9 ..., 2 3 2]
 ..., 
 [1 3 2 ..., 9 3 1]
 [4 2 3 ..., 3 9 2]
 [3 4 2 ..., 1 2 9]]
window size: 10
[[10  4  2 ...,  3  2  4]
 [ 4 10  3 ...,  2  3  2]
 [ 2  3 10 ...,  1  2  3]
 ..., 
 [ 3  2  1 ..., 10  3  1]
 [ 2  3  2 ...,  3 10  3]
 [ 4  2  3 ...,  1  3 10]]
window size: 11
[[11  4  2 ...,  3  3  2]
 [ 4 11  4 ...,  2  2  3]
 [ 2  4 11 ...,  4  1  2]
 ..., 
 [ 3  2  4 ..., 11  3  1]
 [ 3  2  1 ...,  3 11  3]
 [ 2  3  2 ...,  1  3 11]]
window size: 12
[[12  5  2 ...,  2  3  3]
 [ 5 12  4 ...,  4  2  2]
 [ 2  4 12 ...,  4  5  1]
 ..., 
 [ 2  4  4 ..., 12  3  1]
 [ 3  2  5 ...,  3 12  3]
 [ 3  2  1 ...,  1  3 12]]
window size: 13
[[13  5  2 ...,  4  2  3]
 [ 5 13  4 ...,  4  5  2]
 [ 2  4 13 ...,  2  4  6]
 ..., 
 [ 4  4  2 ..., 13  3  1]
 [ 2  5  4 ...,  3 13  3]
 [ 3  2  6 ...,  1  3 13]]
window size: 14
[[14  5  2 ...,  4  5  2]
 [ 5 14  4 ...,  2  4  6]
 [ 2  4 14 ...,  4  2  4]
 ..., 
 [ 4  2  4 ..., 14  3  1]
 [ 5  4  2 ...,  3 14  3]
 [ 2  6  4 ...,  1  3 14]]
window size: 15
[[15  5  2 ...,  2  4  6]
 [ 5 15  5 ...,  4  2  4]
 [ 2  5 15 ...,  2  4  2]
 ..., 
 [ 2  4  2 ..., 15  3  1]
 [ 4  2  4 ...,  3 15  3]
 [ 6  4  2 ...,  1  3 15]]
window size: 16
[[16  6  3 ...,  4  2  4]
 [ 6 16  6 ...,  2  4  2]
 [ 3  6 16 ...,  4  2  4]
 ..., 
 [ 4  2  4 ..., 16  4  1]
 [ 2  4  2 ...,  4 16  3]
 [ 4  2  4 ...,  1  3 16]]
window size: 17
[[17  7  3 ...,  2  4  2]
 [ 7 17  6 ...,  4  2  4]
 [ 3  6 17 ...,  8  5  2]
 ..., 
 [ 2  4  8 ..., 17  5  2]
 [ 4  2  5 ...,  5 17  4]
 [ 2  4  2 ...,  2  4 17]]
window size: 18
[[18  7  3 ...,  4  2  4]
 [ 7 18  7 ...,  8  5  2]
 [ 3  7 18 ...,  4  9  5]
 ..., 
 [ 4  8  4 ..., 18  6  3]
 [ 2  5  9 ...,  6 18  5]
 [ 4  2  5 ...,  3  5 18]]
window size: 19
[[19  8  3 ...,  8  5  2]
 [ 8 19  7 ...,  4  9  5]
 [ 3  7 19 ...,  1  4  9]
 ..., 
 [ 8  4  1 ..., 19  6  3]
 [ 5  9  4 ...,  6 19  6]
 [ 2  5  9 ...,  3  6 19]]
In [ ]: