【问题标题】:python meaning of method sum with use of sigma and pair使用sigma和pair的方法sum的python含义
【发布时间】:2018-09-12 14:33:11
【问题描述】:

我正在尝试了解 Internet 上提供的代码

但我是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

sigma=5

【问题讨论】:

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

标签: python sum alignment bioinformatics


【解决方案1】:

让我们先谈谈你表情中的拉链 它将从您的两个变量中“配对”值,这意味着它将返回一个 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] 放在那里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多