爆炸使用python实现的方法

  介绍

这篇文章将为大家详细讲解有关使用python实现炸的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

这次更新了打分函数如下,空位罚分改为5,但不区分差距扩大开放和差距。

使用python实现炸的方法

& # 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实现的方法