Saltar al contenido

Complemento inverso de la cadena de ADN usando Python

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

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.