Python DNA序列点图

Python DNA序列点图,python,python-3.x,matplotlib,genetics,Python,Python 3.x,Matplotlib,Genetics,我目前正在编写一个脚本,在给定两个序列时创建点图。到目前为止,我可以得到一个可爱的小点图 The X axis is: >HeaderOfSeq1 X = ATCGTAGCTACGTACGT The Y axis is: >HeaderOfSeq2 Y = ATGCGATCGTGCTAC ATGCGATCGTGCTAC ===============| \ \ \ |A \ \ \ \ |T \ \ \ \|C \ \

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

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是一个要求,顺便说一句,标准化和所有这些。 由于meshgrids的字符串格式,我无法对其执行任何操作(无论如何我都知道),所以我被卡住了

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

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()
输出:


太棒了,谢谢你,很有魅力,看起来也比我想象的简单多了,这是一个额外的奖励!