如果我有3个DNA序列,我想用一些函数来评估它们:
seq1='AG_CT'
seq2='AG_CT'
seq3='ACT_T'
在python中,如何计算这三个DNA序列的一致性得分和加权对数总和(WSP score)?在
一致性得分是序列与一致性序列之间的成对得分之和,一致性(A)=sum{l}^{i=1}d(i)l是序列的长度,d是两个碱基之间的距离,例如:d(A,B)=2代表A!=B,d(A,-)=d(-,A)=1代表A!='-',否则为0。对于上述示例,A和B可以是“A或C或G或T”
^{pr2}$共识(A)=8
加权对和 WSP(A)=\sum{i=1}^{k-1}\sum{j=i+l}^k\sum{h=1}^l wij*s(A[i,h],[j,h] l:序列长度,k序列数,wij序列i和j的权重
s(A,B)=2代表A!=B,s(A,-)=d(-,A)=-1代表A!='-',3其他。全部权重系数为1。在
seq1= A G _ C T
seq2= A G _ C T
seq3= A C T _ T
3 3 3 3 3
3 2 -1 -1 3
3 2 -1 -1 3
++++++++++++++
(3+3+3)*1+(3+2+2)*1+(3-1-1)*1+(3-1-1)*1+(3+3+3)*1=9*1+7*1+1*1+1*1+9*1
9+7+1+1+9=27
因此,三个序列的WSP得分为27
我将按以下方式处理这个问题。首先,创建计算单个距离和加权和的函数:
以及
^{pr2}$其次,使用^{} function 在相同位置创建一组基:
第三,使用^{} 在每个位置生成对:
最后,将距离和和相加:
注意使用
*pair
将碱基对的2元组解压为计算函数的两个参数。在相关问题 更多 >
编程相关推荐