本文主要是介绍Rosalind 035 Creating a Distance Matrix,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目背景:
这个问题涉及到计算一组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 = 0for i in range(len(a)):if a[i] != b[i]:count+=1return 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))
这篇关于Rosalind 035 Creating a Distance Matrix的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!