我正在努力学习Python 3,现在我正在努力学习这一项。
我必须编写一个带有两个参数的函数:
1)作为DNA序列的字符串。
2)与参数1(也是DNA序列)长度相同的字符串
该函数必须返回一个float(两个DNA序列中碱基的比例相同)。
所以,我知道我必须写一个会返回这样的函数:
seq_similarity("ATGC","AGTT")
应该返回
0.75
我只走到这一步,现在我甚至在开始之前就被卡住了:
def sequence_similarity(seq1,seq2):
seq1="AGTC"
seq2="AGTT"
你能帮助我开始吗?
答案 0 :(得分:2)
您可以使用sum(x==y for (x,y) in zip(seq1, seq2))
并为其指定条件:
sum(x==y for (x,y) in zip(seq1, seq2))/len(seq1)
这表示你的两个字符串为3。
然后除以长度:
sum(x==y for (x,y) in zip(seq1, seq2))/float(len(seq1))
如果使用2.x:
,请注意整数import _ from 'lodash';
答案 1 :(得分:0)
有一个内置的
from difflib import SequenceMatcher
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()