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

使用sigma和pair的方法sum的python含义,python,sum,alignment,bioinformatics,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=愉快,w=卑鄙 v_aligned=LEASNT-LY w_对齐=平均N-LY- 评

我正在努力理解互联网上的一个代码

但我是python新手,无法获得以下代码行:

score = sum([-sigma if '-' in pair else scoring_matrix[pair] for pair in zip(v_aligned, w_aligned)])
我知道方法和,作为个体方法 但我不明白括号里发生了什么

v_-aligned和w_-aligned是两个对齐的字符串,例如,如果v=愉快,w=卑鄙

v_aligned=LEASNT-LY w_对齐=平均N-LY-

评分矩阵为BLOSUM62


sigma=5

让我们先谈谈你表达中的拉链 它将“配对”两个变量的值,这意味着它将返回一个zip对象,如果您遍历该对象,它将返回类似“L”、“M”、“E”、“E”、“a”、“a”、“S”、““-”等内容。 正如你所看到的,它通过你的“单词”的字母,将第一个单词中的一个字母与第二个单词中的另一个“字符”进行匹配

for循环将一步一步地遍历通过zip对象提供给它的每个元组,并且对引用当前元组

不,那么我们有-sigm if'-'在pair-else中的得分矩阵[pair]


这很简单-这是一个条件,它说:如果“-”在当前对中,那么举个例子,让我们取“L”,“M”,然后把-sigma放在这个表中,如果不是,那么把scrring_矩阵[pair]的结果放在那里。正如您所看到的,“-”不在“L”、“M”中,因此它会将评分矩阵[pair]放在那里。

那么为什么不单独执行命令并打印结果呢?你应该从右到左开始。