0

到目前为止,我的代码似乎会改变字母。但是,应该这样改变:所有 G 变为 C。所有 C 变为 G。所有 T 变为 A。所有 A 变为 T。

这就是我的问题发生的地方。正如所见,例如,由于 T 变为 A 并且 A 变为 T,因此代码只是将其保留为 T。因为它会将其更改为 A,然后将相同的字符更改回 T。我需要使它成为所有更改同时进行,因此不会像那样重叠。与 G 到 C 和 C 到 G 相同。

这是文本文件中的示例:GTCGACTGCACTCGCCCCCACGAGAGAACAGTATTTAAGGAGCTGCGAAGGTCCAAGTCATGCATTATTG TCTCAGTGCAGTTGTCAGTTGCAGTTCAGCAGACGGGCTAACGAGTACTTGCATCTCTTCAAATTTACTT AATTGATCAAGTAAGTAGCAAAAGGGCACACAATTGAAGGAAATTCTTGTTTAATTGAATTTATTATGCA

基本上就是这样的大弦。我需要颠倒上面概述的所有字母。同样,我试图在更改字符之前计算以下字符串出现的次数:“GCAA”。

到目前为止,这是我的代码:

f = open("filename.txt", "r")
from string import maketrans
table = maketrans("G", "C")
table = maketrans("C", "G")
table = maketrans("T", "A")
table = maketrans("A", "t")
print(f.read().translate(maketrans('G','C')))
print(f.read().translate(maketrans('C','G')))
print(f.read().translate(maketrans('T','A')))
print(f.read().translate(maketrans('A','T')))

print(table)

我不知道我将如何计算任何东西,所以我还没有到达那部分。

4

1 回答 1

0

像这样使用一次 maketrans 调用:

from string import maketrans
table = maketrans("GCTA", "CGAT")
f = open("filename.txt", "r")
input = f.read()
print(input.translate(table))
print(input.count('GCAA'))
于 2013-02-13T23:29:53.797 回答