У меня есть последовательность ДНК, и я хотел бы получить ее обратное дополнение с помощью 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"))
return
вcomplement
имеет неправильный отступ. - person jonrsharpe   schedule 07.08.2014ins
и другие основания однобуквенными заменителями, переверните, а затем верните их обратно - person Gabriel   schedule 07.08.2014