gpt4 book ai didi

python - biopython聚类的简单例子

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:12 24 4
gpt4 key购买 nike

我想获得一些基本的了解如何使用biopython对基因进行聚类。

假设我有一些想要分组的基因。如何将它们提供给算法,以及如何给出一个截止点,该截止点取决于簇的大小和数量?

我尝试过简单的方法:

from Bio.Cluster import kcluster
list1 = [
'ADHAMKCAIROSURBANDJVUGLOBALIZATIONANDURBANFANTASIESPLA',
'AGGESTAMKTHEARABSTATEANDNEOLIBERALGLOBALIZATIONTHEARAB',
'AGGESTAMKTHEARABSTATEANDNEOLIBERALGLOBALIZATIONTHEARAB',
'AGGESTAMKTHEARABSTATEANDNEOLIBERALGLOBALIZATIONTHEARAB'
]
list2 = [Seq(gen, IUPAC.extended_protein) for gen in list1]
clusterid, error, nfound = kcluster(list2)

但它只是给我带来了一个错误:

Traceback (most recent call last):
File "./test.py", line 9, in <module>
clusterid, error, nfound = kcluster(list2)
TypeError: data cannot be converted to needed array.

最佳答案

kcluster函数采用数据矩阵作为输入,而不是 Seq实例。

您需要将序列转换为矩阵并将其提供给 kcluster功能。

将数据转换为仅包含数字元素的矩阵的一种方法是使用 numpy.fromstring功能。它基本上将序列中的每个字母转换为其对应的 ASCII 字母。

这将创建一个编码序列的二维数组,kcluster函数可识别并用于对序列进行聚类。

>>> from Bio.Cluster import kcluster
>>> import numpy as np
>>> sequences = [
... 'ADHAMKCAIROSURBANDJVUGLOBALIZATIONANDURBANFANTASIESPLA',
... 'AGGESTAMKTHEARABSTATEANDNEOLIBERALGLOBALIZATIONTHEARAB',
... 'AGGESTAMKTHEARABSTATEANDNEOLIBERALGLOBALIZATIONTHEARAB',
... 'AGGESTAMKTHEARABSTATEANDNEOLIBERALGLOBALIZATIONTHEARAB'
... ]
>>> matrix = np.asarray([np.fromstring(s, dtype=np.uint8) for s in sequences])
>>> clusterid, error, nfound = kcluster(matrix)
>>> print(clusterid)
[1, 0, 0, 0]

关于python - biopython聚类的简单例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45351428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com