DNA 配列があり、Python を使用して逆補数を取得したいと考えています。これは CSV ファイルの列の 1 つにあり、同じファイルの別の列に逆補数を書きたいと思います。トリッキーな部分は、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"))