#python #alignment
#python #выравнивание
Вопрос:
Я пытаюсь взять две последовательности ДНК и сравнить их, чтобы определить различия, если таковые имеются, в частности удаления или вставки.
Я получаю сообщение об ошибке, что индекс списка находится вне диапазона.
Ошибки: Обратная трассировка (последний последний вызов): Файл «/Users/DiegoJaime/Desktop/MuSK_Fc Alignment_copy.py «, строка 59, в GeneSort(‘FL_MuSK.txt ‘, ‘FL_MuSK_Fc.txt ‘) Файл «/Users/DiegoJaime/Desktop/MuSK_Fc Alignment_copy.py «, строка 49, в GeneSort print(«Место удаления nStart: %s: End: %s’ %(string1[0],string2[-1])) Ошибка IndexError: список индексов вне диапазона
def GeneSort(inFileName1, inFileName2):
in1= inFileName1
masterlist1 = open(in1, 'r')
in2 = inFileName2
masterlist2 = open(in2, 'r')
# Output file of gene names for GO searches
Overlap= 'OverlapGenes.txt'
GeneListOutput= open(Overlap, 'w')
nt1= ''
nt2=''
for line1 in masterlist1:
line1= line1.strip()
nt1 = line1
for line2 in masterlist2:
line2=line2.strip()
nt2 =line2
i = 0
string1 = []
while i < len(nt2)-1:
if nt1[i] != nt2[i]:
string1.append(i)
i = 1
print('%d : %d' %(len(nt1), len(nt2)))
j= len(nt2)-1
i= len(nt1)-1
string2 = []
count=0
while count < len(nt2)-1:
if nt1[i] == nt2[j]:
string2.append(i)
j = j-1
i = i-1
count =1
print( 'Site of deletionnStart: %s : End: %s' %(string1[0],string2[-1]))
GeneSort( 'FL_MuSK.txt', 'FL_MuSK_Fc.txt')
Комментарии:
1. Вы заставляете нас угадывать, где ошибка. Покажите нам все сообщение об ошибке, включая строку, которая вызывает ошибку.
2. Отредактируйте свой пост, чтобы включить обратную трассировку — его трудно прочитать в комментарии.
3. Ошибки, включенные в сообщение
4.
string1
и / илиstring2
являются пустыми списками, и поэтому вы не можете получить доступ к элементам внутри них сstring1[0]
помощью andstring2[-1]
.5. В качестве простого шага отладки попробуйте напечатать
string1
иstring2
непосредственно перед строкой ошибки.