gpt4 book ai didi

python - 计算两个已对齐序列之间的同一性百分比

转载 作者:太空宇宙 更新时间:2023-11-04 01:28:04 32 4
gpt4 key购买 nike

我在这样的文件中有两个字符串:

>1
atggca---------gtgtggcaatcggcacat
>2
atggca---------gtgtggcaatcggcacat

在Biopython中使用AlignIO函数:

from Bio import AlignIO
print AlignIO.read("neighbor.fas", "fasta")

返回这个:

SingleLetterAlphabet() alignment with 2 rows and 33 columns
atggca---------gtgtggcaatcggcacat 1
atggca---------gtgtggcaatcggcacat 2

我想计算此比对中两行之间的同一性百分比。

row = align[:,n]

允许提取可以比较的单个列。

只包含“-”的列不应计算在内。

最佳答案

这是一个快速但不是生物学上准确的答案。

使用 Levenshtein Python 扩展和 C 库。

http://code.google.com/p/pylevenshtein/

Levenshtein Python C 扩展模块包含用于快速计算的函数 - Levenshtein(编辑)距离和编辑操作 - 字符串相似度 - 近似中值字符串,以及通常的字符串平均 - 字符串序列和集合相似度 它支持普通字符串和 Unicode 字符串.

既然这些序列是字符串,为什么不呢!

sudo pip install python-Levenshtein

然后启动 ipython:

In [1]: import Levenshtein

In [3]: Levenshtein.ratio('atggca---------gtgtggcaatcggcacat'.replace('-',''),
'atggca---------gtgtggcaatcggcacat'.replace('-','')) * 100
Out[3]: 100.0

In [4]: Levenshtein.ratio('atggca---------gtgtggcaatcggcacat'.replace('-',''),
'atggca---------gtgtggcaatcggcacaa'.replace('-','')) * 100
Out[4]: 95.83333333333334

关于python - 计算两个已对齐序列之间的同一性百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266622/

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