Solución:
Las otras respuestas están perfectamente bien, pero si planeas lidiar con secuencias de ADN reales, te sugiero que uses Biopython. ¿Qué pasa si te encuentras con un carácter como “-“, “*” o indefiniciones? ¿Qué pasa si quieres hacer más manipulaciones de tus secuencias? ¿Quieres crear un analizador para cada formato de archivo?
El código que solicita es tan fácil como:
from Bio.Seq import Seq
seq = Seq("TCGGGCCC")
print seq.reverse_complement()
# GGGCCCGA
Ahora, si quieres hacer otras transformaciones:
print seq.complement()
print seq.transcribe()
print seq.translate()
Salidas
AGCCCGGG
UCGGGCCC
SG
Y si se encuentra con caracteres extraños, no es necesario que siga agregando código a su programa. Biopython se ocupa de ello:
seq = Seq("TCGGGCCCX")
print seq.reverse_complement()
# XGGGCCCGA
En general, una expresión generadora es más simple que el código original y evita crear objetos de lista adicionales. Si puede haber inserciones de varios caracteres, vaya con las otras respuestas.
complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'}
seq = "TCGGGCCC"
reverse_complement = "".join(complement.get(base, base) for base in reversed(seq))
import string
old_chars = "ACGT"
replace_chars = "TGCA"
tab = string.maketrans(old_chars,replace_chars)
print "AAAACCCGGT".translate(tab)[::-1]
que te dará el cumplido inverso = ACCGGGTTTT