Question: How To Plot A Dot Matrix When I Have A Matrix Of 0'S And 1'S
2
Anish20 wrote:

Hi All, I m quiet new to R Programming. My question may not be very wise, but would like to have some help as I explore more on R. Thanks in advance!

I have a matrix which was constructed based on comparing two sequences (say A and B) A="ATGCTAC" and B="ATCAGAT" and the matrix will be like M(1,1)=1,M(1,2)=1,M(1,3)=0. i.e., similar base positions with 1 and non-similar ones with 0. How can I construct a Dot Matrix plot?

Also if there is any code for Dot Matrix Alignment that uses window and stringency.

Anish

matrix plot • 3.3k views
written 8.2 years ago by Anish20
7
Sean Davis25k wrote:

You might have a look at the seqinr package.

This will give you a dot plot, though it uses boxes instead of dots.

``````library(seqinr)
help(dotPlot)
example(dotPlot)
``````

``````dotPlot(seq1=strsplit("ATGCTAC","")[],seq2=strsplit("ATCAGAT","")[])
``````
5
brentp23k wrote:

Here's an ascii answer in python for kicks:

``````import sys

def draw(A, B):
return " %s\n" % A + "\n".join(b + "".join("\x1B[42m \x1b[0m" \
if a == b else "\x1B[41m \x1B[0m" for a in A) for b in B)

print draw(sys.argv, sys.argv)
``````

If you call it like:

``````python ansidot.py ATGCTAC ATCAGAT
``````

It gives ascii output like: 