使用sigma和pair的方法和的python含义

时间:2018-04-03 09:54:24

标签: python sum alignment bioinformatics

我正在尝试了解互联网上提供的代码

但我是python的新手,无法获得这行代码:

score = sum([-sigma if '-' in pair else scoring_matrix[pair] for pair in zip(v_aligned, w_aligned)])

我知道方法总和,作为单独的方法 但我不明白括号内发生了什么

v_aligned,w_aligned是两个对齐的字符串,例如,如果v = PLEASANTLY且w = MEANLY

v_aligned = LEASNT-LY w_aligned = MEA-N-LY -

scoring_matrix是BLOSUM62

差= 5

1 个答案:

答案 0 :(得分:0)

让我们先谈谈你表达中的那个拉链 它会将你的两个变量中的值“配对”,这意味着它将返回一个zip对象,如果你迭代,将返回这样的('L','M'),('E','E'),( 'A','A'),('S',' - ')等等。 你可以看到它通过你的'单词'的字母,并将第一个单词中的一个字母与第二个单词中的另一个'字符'匹配。

for循环将逐步遍历通过该zip对象提供的每个元组,pair引用当前元组。

不,我们有-sigm if '-' in pair else scoring_matrix[pair]

这很简单 - 这是一个条件:如果' - '在当前对中,那么让我们拿('L','M'),然后把-sigma放在这个表中,如果不是,那么将scrring_matrix [pair]的结果放在那里。你可以看到' - '不在('L','M')所以它会把scoring_matrix [pair]放在那里。