Rosalind 035 Creating a Distance Matrix
2023-12-31 17:39:27
题目背景:
这个问题涉及到计算一组DNA字符串的p距离矩阵。p距离是衡量序列间进化距离的一种方法。以下是问题和过程的详细说明:
-
理解P距离:两个DNA字符串之间的p距离是指在相应位置上两个字符串不同的核苷酸比例。数学上来说,如果你有两个长度相同的字符串
s1
和s2
,那么p距离dp(s1, s2)
就是不同位置的数量除以字符串的总长度。 -
距离矩阵:距离矩阵
D
是一个方阵,其中每个元素Di,j
代表数据集中第i
个和第j
个DNA字符串之间的p距离。
? ? ?3. 如何构建距离矩阵:
???????????假设我们有4条DNA序列。
? ? ? ? ? ?我们需要比较每一对序列,计算它们之间的p距离。
? ? ? ? ? ?然后把这些p距离放在一个表格(矩阵)中。这个表格有4行4列,因为我们有4条序列。
? ? ? ? ? ?每行和每列代表一条序列。表格中的每个数字都是两条序列之间的p距离。
https://rosalind.info/problems/pdst/
代码:
from method import fasta
name_list,value_list = fasta('')
def hamm(a,b):
count = 0
for i in range(len(a)):
if a[i] != b[i]:
count+=1
return float(count/len(a))
#value_list = ['TTTCCATTTA','GATTCATTTC','TTTCCATTTT','GTTCCATTTA']
ans = []
for i in value_list:
temp = []
for j in value_list:
temp.append('{:.5f}'.format(hamm(i, j)))
ans.append(temp)
for i in ans:
print(' '.join(i))
文章来源:https://blog.csdn.net/weixin_45848873/article/details/135317508
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!