gpt4 book ai didi

python - 使用 Python 反向补充 DNA 链

转载 作者:太空狗 更新时间:2023-10-29 22:00:06 25 4
gpt4 key购买 nike

我有一个 DNA 序列,想使用 Python 对其进行反向补码。它位于 CSV 文件的一列中,我想将反向补码写入同一文件中的另一列。棘手的部分是,有一些单元格除了 A、T、G 和 C 之外还有其他东西。我能够用这段代码获得反向补码:

def complement(seq):
complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'}
bases = list(seq)
bases = [complement[base] for base in bases]
return ''.join(bases)
def reverse_complement(s):
return complement(s[::-1])

print "Reverse Complement:"
print(reverse_complement("TCGGGCCC"))

但是,当我尝试使用下面的代码查找补码字典中不存在的项目时,我只得到最后一个碱基的补码。它不会迭代。我想知道如何修复它。

def complement(seq):
complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'}
bases = list(seq)
for element in bases:
if element not in complement:
print element
letters = [complement[base] for base in element]
return ''.join(letters)
def reverse_complement(seq):
return complement(seq[::-1])

print "Reverse Complement:"
print(reverse_complement("TCGGGCCCCX"))

最佳答案

其他答案都很好,但如果你打算处理真正的 DNA 序列,我建议使用 Biopython .如果遇到“-”、“*”或不定义之类的字符怎么办?如果你想对你的序列做进一步的操作怎么办?您想为每种文件格式创建一个解析器吗?

您要求的代码非常简单:

from Bio.Seq import Seq

seq = Seq("TCGGGCCC")

print seq.reverse_complement()
# GGGCCCGA

现在如果你想做另一个转换:

print seq.complement()
print seq.transcribe()
print seq.translate()

输出

AGCCCGGG
UCGGGCCC
SG

如果您遇到奇怪的字符,则无需继续向您的程序中添加代码。 Biopython 处理它:

seq = Seq("TCGGGCCCX")
print seq.reverse_complement()
# XGGGCCCGA

关于python - 使用 Python 反向补充 DNA 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25188968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com