Thank you very much for your solutions. Both did serve the purpose
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
2 answers
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)
And with your example:
dotPlot(seq1=strsplit("ATGCTAC","")[[1]],seq2=strsplit("ATCAGAT","")[[1]])
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[1], sys.argv[2])
If you call it like:
python ansidot.py ATGCTAC ATCAGAT
It gives ascii output like:
Log in to answer this question.