Алгоритмы выравнивания высеваPython

Программы на Python
Ответить
Anonymous
 Алгоритмы выравнивания высева

Сообщение Anonymous »

Я создаю одношаговый алгоритм выравнивания с упреждением в контексте выравнивания белков.
Сейчас я реализую вариант с затравкой, начальные значения также предоставляются функции, в которой пробелы удаляются и сравниваются с последовательностями, чтобы убедиться, что начальные числа являются префиксами последовательностей, подлежащих выравниванию. Затем выравнивание начинается после окончания совпадения начального числа.
Принято ли включать оценки совпадения начальных чисел в общий показатель выравнивания, поскольку мои выходные данные почти всегда говорят, что начальное выравнивание имеет более низкий балл, чем простое, что, как я полагаю, вызвано отсутствием показателя выравнивания начального числа в общем показателе выравнивания.
Будьте благодарны за любые указания и улучшения, если я допустил какую-то ошибку в своем понимании. выше

Код: Выделить всё

def seeded_simple_align(sequences,scoring, seed, gap=-1):

score=scoring

#Removing gaps from seed sequences
prefixes=()
for seq in seed:
seq=re.sub('-', '',seq)
prefixes=prefixes + (seq,)

#Checking the prefixes match the beginning of sequences.
if prefixes[0] != sequences[0][0:len(prefixes[0])] or prefixes[1] != sequences[1][0:len(prefixes[1])]:
raise ValueError('Seeds are not prefixes of corresponding sequences')

#Checking seeds are the same length
if len(seed[0]) != len(seed[1]):
raise ValueError('Seeds have different lengths')

#Finding length of prefixes to remove n amount from sequences
start_pos=len(prefixes[0])

#Removing prefixes from sequences to begin alignment
align=()
for seqs in sequences:
seqs=seqs[start_pos:]
align=align + (seqs,)

#Running simple_align on unaligned sequences to get alignment from gap
result=simple_align(align, scoring, gap)

#Find alignment score of seeds
seed_score=0
for i in range(0,len(seed[0])):
if seed[0][i] == '-' and seed[1][i] == '-':
seed_score+=gap

elif seed[0][i] == '-' or seed[1][i] == '-':
seed_score+=gap

else:
seed_score+=score.match(seed[0][i],seed[1][i])

final_result=seed[0]+result[0], seed[1]+result[1], (result[2]+seed_score)

return final_result

scorer=Scoring('BLOSUM80')

seqs=('ATCCGTACGTTAGCGTACGAT','ATCATGTACTTAAGCGGACGAT')
seeds=('ATC-','ATC-')
t6=seeded_simple_align(seqs,scorer,seeds)
print(t6)
это код, используемый для создания начального выравнивания

Подробнее здесь: https://stackoverflow.com/questions/798 ... algorithms
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»