Я бы хотел найти количество совпадений между двумя строками, чтобы можно было вычислить процент сходства.Я хотел бы сделать это без необходимости загружать что-либо, поскольку это доставило мне неприятности.Я попытался загрузить zip-файл biopython и не смог понять, как его настроить.Я хотел бы, чтобы что-то, что я мог превратить в функцию, было бы легко использовать для различных последовательностей.Не нужно иметь возможность обрабатывать что-либо более, чем, скажем, 50 символов в строке.
Последовательности, которые я пытаюсь сравнить:
virX = 'TTTTCTTATTGT'
virZ = 'GTGGCAGACGGT'
virY = 'CTTCCTCACCGA'
virU = 'ATTACCAAAAGA'
выходы, которые я ищу: 1) процентное сходство между каждой последовательностью 2) две последовательности с наибольшим сходством
Это сработало, но для адаптации к другим последовательностям требуется много времени:
dnaA = 'ATATGCC'
dnaB = 'AAAGCGC'
count = 0
if dnaA[0] == dnaB[0]:
count +=1
if dnaA[1] == dnaB[1]:
count +=1
if dnaA[2] == dnaB[2]:
count +=1
if dnaA[3] == dnaB[3]:
count +=1
if dnaA[4] == dnaB[4]:
count +=1
if dnaA[5] == dnaB[5]:
count +=1
if dnaA[6] == dnaB[6]:
count +=1
print(count, (count / len(dnaA) * 100), '%')
Я попробовал это, но это не сработало:
count = 0
for i in dnaA:
if i == dnaB[i]:
count += 1
Я попробовал это:
from itertools import izip
def hamming_distance(str1, str2):
assert len(str1) == len(str2)
return sum(chr1 != chr2 for chr1, chr2 in izip(str1, str2))
print(hamming_distance(dnaA, dnaB))
, который возвратил ошибку:
"Traceback (последний вызов был последним): файл" C: / Users / mac03 / AppData / Local / Programs / Python / Python37 /Wk5FriLab.py ", строка 79, из itertools import izip ImportError: невозможно импортировать имя 'izip' из 'itertools' (неизвестное местоположение)"
Я попытался изменить izip
на zip
это не сработало.Я также попробовал эту функцию в записной книжке jupyter, и мне было выдано сообщение об ошибке:
"ImportError Traceback (последний вызов был последним) в 5 6 ----> 7 из itertools import zip 8 def hamming_distance (str1, str2): 9 assent len (str1) == len (str2)
ImportError: невозможно импортировать имя 'zip' из 'itertools' (неизвестное местоположение) "
Iпробовал эти входные данные и также получал ошибки:
python -m ensurepip
"Файл" ", строка 6 python -m surepip I'm ^ SyntaxError: неверный синтаксис"
pip install pip --upgrade
"Файл" ", пункт 7 pip, установка pip --upgrade ^ SyntaxError: неверный синтаксис"
pip install biopython
"Файл" ", строка 7 pip install biopython^ SyntaxError: неверный синтаксис "