我需要计算蛋白质片段的分子量并将这些值放入列表中

I need to calculate the molecular weight of protein fragments and put those values in a list

我正在使用 Biopython 计算片段权重。 到目前为止,这是我的代码

sequences4 = SeqIO.parse('/content/short_protein_fragments.fasta', 'fasta')
seq_list4 = list(sequences4)

def fragment_weights(fragments):
    for i in fragments:                                             
        fragment_weights = 0.0    
        nums = []                                                   
        for aa in i.seq:                                           
          fragment_weights += SeqUtils.molecular_weight(aa, "protein")
        nums.append(round(fragment_weights, 2))
        print(nums)

fragment_weights(seq_list4)

我希望得到这样的输出:

[3611.86, 2269.63, 469.53, 556.56, 1198.41, 2609.88, 547.69, 1976.23, 2306.48, 938.01, 1613.87, 789.87, 737.75, 2498.71, 2064.25, 1184.39, 1671.87]

而是打印如下值:

[3611.86]
[2269.63]
[469.53]
#and so on until the last value.

这段代码需要在更大的函数中使用,因此需要在整个函数中“记住”数字列表。

在每个 运行 循环中,您定义空列表 nums,然后附加一个值并打印它。接下来运行,同理:定义空列表,追加一个值,打印。

试试这个:在循环之前定义列表,然后在循环中追加值,然后打印出循环。 (注意缩进)。

sequences4 = SeqIO.parse('/content/short_protein_fragments.fasta', 'fasta')
seq_list4 = list(sequences4)

def fragment_weights(fragments):
    nums = []  
    for i in fragments:                                             
        fragment_weights = 0.0                                                             
        for aa in i.seq:                                           
          fragment_weights += SeqUtils.molecular_weight(aa, "protein")
        nums.append(round(fragment_weights, 2))
    print(nums)

fragment_weights(seq_list4)