繁体   English   中英

DNA 序列点图

[英]DNA sequence Dotplots

我目前正在编写一个脚本来在给定两个序列时创建一个点图。 到目前为止,我可以得到一个可爱的小点图。

The X axis is: >HeaderOfSeq1

X = ATCGTAGCTACGTACGT
The Y axis is: >HeaderOfSeq2

Y = ATGCGATCGTGCTAC 

ATGCGATCGTGCTAC
===============|
\    \       \ |A
 \    \  \  \  |T
   \   \   \  \|C
  \ \   \ \    |G
 \    \  \  \  |T
\    \       \ |A
  \ \   \ \    |G
   \   \   \  \|C
 \    \  \  \  |T
\    \       \ |A
   \   \   \  \|C
  \ \   \ \    |G
 \    \  \  \  |T
\    \       \ |A
   \   \   \  \|C
  \ \   \ \    |G
 \    \  \  \  |T

这是一个 --ascii 过滤器(没有那个过滤器, / 是匹配的字母),它也是脚本的一部分。 没有我想要和需要做的就是把它变成一个 matplotlib 图。

我在这一点上有点卡住了,我已经从 np 获得了两个具有所有可能组合的数组,我希望重叠并返回一个等高线图会相当简单,也许它基本上显示了上面的点图,但更漂亮. 顺便说一句,Matplot 是一个要求,标准化等等。 由于它们的字符串格式,我无法对网格网格(无论如何我都知道)做任何事情,所以我被卡住了。

任何帮助将不胜感激!! 如果需要,我也会发布一些实际代码。

IIUC,你可以这样做:

X, Y = 'ATCGTAGCTACGTACGT', 'ATGCGATCGTGCTAC'
X, Y = np.array(list(X)), np.array(list(Y))

plt.imshow(X==Y[:,None])        # the magic happens here, contourf should work similarly
plt.xticks(np.arange(len(X)), X)
plt.yticks(np.arange(len(Y)), Y)
plt.show()

输出:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM