BLAST程序一般用于,BLAST程序一般用于什么的分析
最近在自学python,又用大蟒实现了一下爆炸。
这次更新了打分函数如下,空位罚分改为-5,但不区分缺口打开和差距扩大。
AGC ta 2-7-5-7G-72-7-5C-5-72-7T-7-5-72
@作者:久宇 def评分(a,b):#评分函数score=0 lst=[AC , GT , CA , TG ]if a elif a b in lst:score=-5 else:score=-7 return score def BLAST(seq 1,seq 2):#基本局部比对搜索工具L1=len(seq 1)L2=len(seq 2)GAP=-5 #-5对于任何缺口分数=[]点=[]对于范围内的j(L2 1):如果j==0:行1 #在范围(1,l2 1)内为j填充分数和点数空白:letter2=seq2[j-1]为我在范围(1,l1 1)内:字母1=se Q1[I-1]diagonal _ score=score(字母1,字母2)scores[j-1][I-1]left_score=GAP scores[j][I-1]up _ score=GAP scores[j-1][I]max _ score=max(diagonal _ score,left _ score,up_score) scores[j].append(max _ score)if scores[j][I]==diagonal _ score:point[j].append(1)elif scores[j][I]==left _ score:point[j].追加(2) else: point[j].append(3)# trace back alignment 1= alignment 2= I=L2 j=L1 print scores=,scores[I][j]==0:break elif point[I][j]==1:alignment 1=se Q1[j-1]alignment 2=seq 2[I-1]I-=1 elif point[I][j]==2:alignment 1=se Q1[j-1]alignment 2=
运行结果:
无疑大蟒对字符串的处理更加强大,语言也更加简单,优雅。比如最后逆序输出对齐,java我是单独写了一个逆序函数,而大蟒只用一个语句就可以完成相同任务。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。