介绍
这篇文章将为大家详细讲解有关使用python实现炸的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
这次更新了打分函数如下,空位罚分改为5,但不区分差距扩大开放和差距。
& # 39; & # 39; & # 39; & # 39; & # 39;, @author: JiuYu & # 39;& # 39;& # 39;, , def 分数(a, b): # scoring function 分数才能=0, lst才能=[& # 39;交流# 39;& # 39;gt # 39;, & # 39; ca # 39;, & # 39; tg # 39;], if 才能;==b:, ,,,score +=2, elif 才能;+ b  lst:拷贝, ,,,score +=, 5, ,,: ,,,score +=, 7, return 才能;score , def 爆炸(seq1 seq2): # Basic Local Alignment Search Tool l1 才能=,len (seq1), l2 才能=,len (seq2), GAP 才能=5,,,# 5,for any GAP scores 才能=[], point 才能=[], ,, for 才能;j 范围(l2 + 1):拷贝, ,,,if j ==, 0:, ,,,,,line1=[0], ,,,,,么=[0], ,,,,,for 小姐:拷贝范围(l1 - 1, + 1):, ,,,,,,,line1.append(差距*我), ,,,,,,,line2.append (2), 其他,,,,, ,,,,,line1=[], ,,,,,么=[], ,,,,,line1.append(差距* j), ,,,,,line2.append (3), ,,,scores.append (line1), ,,,point.append(么), ,, # fill 从而才能blank of scores 以及point for 才能;j 拷贝范围(1,l2 + 1):, ,,,letter2 =, seq2 (j - 1), ,,,for 小姐:拷贝范围(l1 - 1, + 1):, ,,,,,letter1 =, seq1(张), ,,,,,diagonal_score =,得分(letter1, letter2), +,分数(j - 1)(张), ,,,,,left_score =, GAP +,分数[j](张), ,,,,,up_score =, GAP +,分数(j - 1)(我), ,,,,,max_score =,马克斯(diagonal_score, left_score,, up_score), ,,,,,分数[j] .append (max_score), ,,,,,, ,,,,,if 分数[j][我],==,diagonal_score:, ,,,,,,,点[j] .append (1), ,,,,,elif 分数[j][我],==,left_score:, ,,,,,,,点[j] .append (2), ,,,,,:, ,,,,,,,点[j] .append (3), ,,,,,,,, #才能trace back alignment1才能=& # 39;& # 39;, alignment2才能=& # 39;& # 39;, 小姐:才能=,l2 时间=j 才能;l1 print 才能;& # 39;scores =& # 39;分数[我][j], 事实:while 才能; ,,,if 点[我][j],==, 0:, ,,,,,break ,,,elif 点[我][j],==, 1:, ,,,,,alignment1 +=, seq1 (j - 1), ,,,,,alignment2 +=, seq2(张), ,,,,,小姐:-=,1, ,,,,,j -=, 1, ,,,elif 点[我][j],==, 2:, ,,,,,alignment1 +=, seq1 (j - 1), ,,,,,alignment2 +=, & # 39; & # 39;, ,,,,,j -=, 1, 其他,,,,, ,,,,,alignment1 +=, & # 39; & # 39;, ,,,,,alignment2 +=, seq2(张), ,,,,,小姐:-=,1, ,,,,,, #才能reverse alignment 时间=alignment1 才能;alignment1 [:: 1), 时间=alignment2 才能;alignment2 [:: 1), print 才能;& # 39;从而best 对齐:& # 39;, print 才能;alignment1 print 才能;alignment2 , seq1=raw_input (& # 39; Please  input your first 序列:\ n # 39;), null null爆炸使用python实现的方法