我有一个 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"))