python对象的序列对齐。

paired的Python项目详细描述


配对

paired是一个python包,用于任意序列的成对对齐。

python有很多用于序列对齐和扭曲的优秀软件包,但主要用于生物或数字数据。paired对任意python对象的列表执行全局对齐,并允许您定义元素对的匹配和评分方式。

基本用法

importpairedseq_1='The quick brown fox jumped over the lazy dog'.split(' ')seq_2='The brown fox leaped over the lazy dog'.split(' ')alignment=paired.align(seq_1,seq_2)print(alignment)# [(0, 0), (1, None), (2, 1), (3, 2), (4, 3), (5, 4), (6, 5), (7, 6), (8, 7)]fori_1,i_2inalignment:print((seq_1[i_1]ifi_1isnotNoneelse'').ljust(15),end='')print(seq_2[i_2]ifi_2isnotNoneelse'')# The            The# quick          # brown          brown# fox            fox# jumped         leaped# over           over# the            the# lazy           lazy# dog            dog

自定义分数

paired使用Needleman-Wunsch algorithm。可以指定不同操作(匹配、不匹配、间隙)的评分:

alignment=paired.align(seq_1,seq_2,match_score=5,mismatch_score=-1,gap_score=-5)

自定义相似性

默认情况下,如果element_1 == element_2匹配两个元素。paired还允许您传递函数来返回给定元素对的匹配/不匹配分数。例如,可以对字符串的区分大小写和不区分大小写的匹配给出不同的分数:

defscorer(a,b):ifa==b:return2elifa.lower()==b.lower():return1else:return-1alignment=paired.align(seq_1,seq_2,scorer=scorer,gap_score=-3)

安装

paired位于PyPi上,可以与pip一起安装。它没有依赖关系。

pip install paired

API

pairwise.align(x, y, match_score=1, mismatch_score=-1, gap_score=-1, scorer=None)

得到两个序列的全局对齐。

参数:

  • xylist):要对齐的对象序列。
  • match\u scorenumeric):配对元素时的分数。
  • mismatch\u scorenumeric):配对不匹配元素时的分数。
  • gap\u scorenumeric):当一个元素没有与其他元素配对时,插入/删除的分数。
  • scorercallable):函数,接受两个元素作为输入,并根据它们的匹配程度返回数值分数。如果通过None,则使用的默认函数相当于lamdba a, b: match_score if a==b else mismatch_score

返回:

  • alignmentlist of tuples):对齐的序列,作为分别进入xy的索引对的列表。间隙用None而不是整数索引表示。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中模拟按键?   尽管元素存在,但HtmlUnit中的java ElementNotFoundException   在Java中,长双精度并发写入不是原子的吗?   java如何在另一个对象数组中打印对象的int值?   java在显示或更改视图后执行一些代码   java JFR:读取时发生OutOfMemoryError。jfr文件   java Android助手检查是否购买   java这种设计模式的好处是什么?   Weblogic 10.3中针对托管服务器的java部署问题   java如何获取字符串。在编译时投诉的格式   声明字符串数组时发生java错误   java JPA在多个并行线程中从表中删除时发生死锁   java Android:在按钮动画之后启动活动   java并发与JMS主题在春季   使用Lucene spatial search/DateRangePrefixTree进行java日期范围查询?   java可选接口问题   JavaDbUnit没有在每个方法之后清洗和插入数据库,所以测试不是独立的   java在IAIK PKCS11包装器中一对私钥和证书如何匹配?