Obtenga el complemento inverso de una hebra de ADN usando Python
- Complemento inverso de una hebra de ADN
-
Obtenga el complemento inverso de una hebra de ADN usando el bucle
for
en Python -
Obtenga el complemento inverso de una hebra de ADN usando el método
join()
en Python -
Obtenga el complemento inverso de una hebra de ADN usando el método
get()
en Python - Obtenga el complemento inverso de una hebra de ADN usando la comprensión de listas en Python
-
Obtenga el complemento inverso de una hebra de ADN usando el método
translate()
en Python - Obtenga el complemento inverso de una hebra de ADN usando el módulo Biopython en Python
- Conclusión
Mientras trabajamos en tareas científicas en Python, necesitamos realizar ciertas tareas. Este artículo analiza varias formas de obtener el complemento inverso de una hebra de ADN utilizando Python.
Complemento inverso de una hebra de ADN
Una hebra de ADN está representada principalmente por cuatro tipos de bases, a saber, Adenina (A), Timina (T), Guanina (G) y Citosina (C). Puede haber otros tipos de bases también.
Cada cadena de ADN está representada por una serie de letras A, T, G y C. Por ejemplo, ACGTAATTGGCC podría ser una de las cadenas de ADN.
Para obtener el complemento de una cadena de ADN, reemplazamos A con T, C con G, G con C y T con A en la cadena original. Por ejemplo, el complemento de ACGTAATTGGCC es TGCATTAACCGG.
Para invertir el complemento de una cadena de ADN, invertiremos los caracteres en el complemento de la cadena de ADN. Por tanto, el complemento inverso será GGCCAATTACGT.
Analicemos ahora las formas de obtener el complemento inverso de una cadena de ADN usando Python.
Obtenga el complemento inverso de una hebra de ADN usando el bucle for
en Python
Seguiremos los siguientes pasos para obtener el complemento inverso de una hebra de ADN usando un bucle for
en Python.
-
Primero definiremos una cadena vacía llamada
reversed_strand
para almacenar la cadena de salida. -
Luego, encontraremos la longitud de la hebra de ADN de entrada usando la función
len()
. La funciónlen()
toma la cadena de la hebra de ADN y devuelve la longitud. -
Después de eso, iteraremos a través de los caracteres de la hebra de ADN de entrada usando un bucle
for
en el orden inverso. -
Durante la iteración, si encontramos el carácter A, agregaremos T a
reversed_strand
. De manera similar, agregaremos T, G y C areversed_strand
si encontramos A, C y G en la secuencia. -
Si encontramos cualquier otro carácter en la hebra de ADN de entrada, añadiremos el mismo carácter a la
reversed_strand
. -
Después de ejecutar el bucle
for
, obtendremos la hebra de ADN invertida en la variablereversed_strand
.
Puedes observar esto en el siguiente ejemplo.
input_strand = "ACGTAATTGGCC"
reversed_strand = ""
length = len(input_strand)
for i in range(length):
character = input_strand[length - 1 - i]
if character == "A":
reversed_strand = reversed_strand + "T"
elif character == "T":
reversed_strand = reversed_strand + "A"
elif character == "G":
reversed_strand = reversed_strand + "C"
elif character == "C":
reversed_strand = reversed_strand + "G"
else:
reversed_strand = reversed_strand + character
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Obtenga el complemento inverso de una hebra de ADN usando el método join()
en Python
En el enfoque anterior, al crear reversed_strand
, se crea una nueva cadena para cada carácter en la cadena de ADN de entrada. Esto puede resultar costoso en términos de tiempo y memoria si las hebras de ADN de entrada son demasiado largas.
Para evitar esto, podemos usar una lista para obtener el complemento inverso de una hebra de ADN usando Python.
Usaremos los siguientes pasos para complementar inversamente una hebra de ADN usando un bucle for
, una lista y el método join()
.
-
Primero, crearemos una lista vacía llamada
complement_chars
para almacenar los caracteres del complemento inverso de la hebra de ADN. -
Luego, encontraremos la longitud de la hebra de ADN de entrada usando la función
len()
. -
Después de eso, iteraremos a través de los caracteres de la hebra de ADN de entrada usando un bucle
for
en el orden inverso. -
En las iteraciones, si encontramos el carácter A, agregaremos T a
complement_chars
usando el métodoappend()
. El métodoappend()
, cuando se invoca encomplement_chars
, toma un carácter como argumento de entrada y lo agrega acomplement_chars
. -
De manera similar, agregaremos T, G y C a
complement_chars
si encontramos A, C y G en la secuencia. -
Si encontramos cualquier otro carácter en la hebra de ADN de entrada, agregaremos el mismo carácter a los
complement_chars
. -
Después de ejecutar el bucle
for
, obtendremos una lista de caracteres del complemento inverso de la hebra de ADN de entrada encomplement_chars
. -
Después de esto, utilizaremos el método
join()
para obtener el complemento inverso de la hebra de ADN original. El métodojoin()
, cuando se invoca en unacadena_de_entrada
, toma un objeto iterable como argumento de entrada; después de ejecutarse, devuelve una nueva cadena que contiene los elementos del objeto iterable como sus caracteres, separados porinput_string
. -
Para obtener el complemento inverso de la hebra de ADN utilizando el método
join()
, invocaremos el métodojoin()
en una cadena vacía concomplement_chars
como argumento de entrada. Después de ejecutar el métodojoin()
, obtendremos el complemento inverso de la hebra de ADN de entrada.
Puedes observar esto en el siguiente ejemplo.
input_strand = "ACGTAATTGGCC"
reversed_strand = ""
complement_chars = []
length = len(input_strand)
for i in range(length):
character = input_strand[length - 1 - i]
if character == "A":
complement_chars.append("T")
elif character == "T":
complement_chars.append("A")
elif character == "G":
complement_chars.append("C")
elif character == "C":
complement_chars.append("G")
else:
complement_chars.append(character)
reversed_strand = "".join(complement_chars)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Obtenga el complemento inverso de una hebra de ADN usando el método get()
en Python
En lugar de usar el bloque if-else
en el bucle for
, podemos usar un diccionario y el método get()
para obtener el complemento inverso de una hebra de ADN usando Python. Para esta tarea, crearemos el siguiente diccionario.
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
El método get()
recupera un valor asociado a una clave en un diccionario. Cuando se invoca en un diccionario, el método get()
toma la clave como primer argumento de entrada y un valor opcional como segundo argumento de entrada.
Si la clave está presente en el diccionario, devuelve el valor asociado a ella. De lo contrario, el método get()
devuelve el valor opcional pasado como segundo argumento.
Usaremos los siguientes pasos para invertir el complemento de una hebra de ADN usando el método get()
y reverse_dict
.
-
Primero, definiremos una cadena vacía llamada
reversed_strand
para almacenar la cadena de salida. -
Luego, encontraremos la longitud de la hebra de ADN de entrada usando la función
len()
. -
Después de eso, iteraremos a través de los caracteres de la hebra de ADN de entrada en orden inverso usando un bucle
for
. -
Durante la iteración, invocaremos el método
get()
enreverse_dict
con el carácter actual como primer y segundo argumento. Si el carácter actual está presente enreverse_dict
, el métodoget()
devolverá el complemento de cadena de ADN; de lo contrario, el métodoget()
devolverá el carácter actual. -
Añadiremos la salida del método
get()
areversed_strand
. -
Después de ejecutar el bucle
for
, obtendremos la hebra de ADN invertida en la variablereversed_strand
.
Puedes observar esto en el siguiente ejemplo.
input_strand = "ACGTAATTGGCC"
reversed_strand = ""
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
length = len(input_strand)
for i in range(length):
character = input_strand[length - 1 - i]
reversed_strand = reversed_strand + reverse_dict.get(character, character)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Como se discutió anteriormente, el enfoque de crear cadenas en el bucle for
es costoso. Por lo tanto, podemos usar una lista y el método join()
con el método get()
para obtener el complemento inverso de una hebra de ADN usando Python, como se muestra en el siguiente ejemplo.
input_strand = "ACGTAATTGGCC"
reversed_strand = ""
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
complement_chars = []
length = len(input_strand)
for i in range(length):
character = input_strand[length - 1 - i]
complement_chars.append(reverse_dict.get(character, character))
reversed_strand = "".join(complement_chars)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Aquí, primero hemos creado una lista de caracteres en el complemento inverso mientras iteramos la hebra de ADN de entrada. Después de eso, hemos creado el complemento inverso uniendo los caracteres usando el método join()
.
Obtenga el complemento inverso de una hebra de ADN usando la comprensión de listas en Python
En lugar de usar el bucle for
, también puede usar la comprensión de listas para complementar inversamente una hebra de ADN usando Python.
Primero invertiremos la hebra de ADN de entrada mediante la indexación para complementar una hebra de ADN mediante la comprensión de listas. Después de eso, usaremos la comprensión de listas con el método get()
y reverse_dict
creado en el último ejemplo para obtener una lista de caracteres del complemento inverso.
Una vez que obtengamos la lista de caracteres, usaremos el método join()
para encontrar el complemento inverso de la hebra de ADN de entrada, como se muestra en el siguiente ejemplo.
input_strand = "ACGTAATTGGCC"
reversed_strand = ""
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
temp = input_strand[::-1]
complement_chars = [reverse_dict.get(character) for character in temp]
reversed_strand = "".join(complement_chars)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Obtenga el complemento inverso de una hebra de ADN usando el método translate()
en Python
También podemos encontrar el complemento inverso de una hebra de ADN utilizando el método translate()
. Para ello utilizaremos los siguientes pasos.
-
Primero, invertiremos la hebra de ADN de entrada utilizando la indexación de cadenas. Después de eso, crearemos una tabla de traducción usando la función
maketrans()
. -
La función
maketrans()
toma dos cadenas como argumentos de entrada, y la longitud de ambas cadenas debe ser la misma. Después de la ejecución, devuelve una tabla de traducción en la que cada carácter de la primera cadena se asigna al carácter en la misma posición en la segunda cadena. -
Al invocar el método
maketrans()
en la hebra de ADN de entrada, pasaremos"ATGC"
como primer argumento de entrada y"TACG"
como segundo argumento de entrada. De esta forma, cada carácter de la hebra de ADN de entrada se mapeará en su complemento. -
Después de crear la tabla de traducción, utilizaremos el método
translate()
para obtener el complemento inverso de la hebra de ADN. -
El método
translate()
, cuando se invoca en una cadena, toma una tabla de traducción como argumento de entrada. Después de la ejecución, devuelve una nueva cadena reemplazando los caracteres de la cadena en la que se invoca de acuerdo con la tabla de traducción; si la asignación de un carácter no se encuentra en la tabla de traducción, copia el mismo carácter en la cadena de salida. -
Invocaremos el método
translate()
en la hebra de ADN invertida con la tabla de traducción como argumento de entrada. -
Después de ejecutar el método
translate()
, obtendremos el complemento inverso de la hebra de ADN de entrada.
Puedes observar esto en el siguiente ejemplo.
input_strand = "ACGTAATTGGCC"
translation_table = input_strand.maketrans("ATCG", "TAGC")
temp = input_strand[::-1]
reversed_strand = temp.translate(translation_table)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Obtenga el complemento inverso de una hebra de ADN usando el módulo Biopython en Python
También podemos usar el módulo Biopython en Python para complementar inversamente una hebra de ADN. Usando la siguiente declaración, puede instalar el módulo Biopython usando el instalador del paquete para Python PIP3.
pip3 install Bio
El módulo Biopython proporciona el método reverse_complement()
para complementar inversamente una hebra de ADN usando Python. Cuando se invoca en un objeto de secuencia de ADN, el método reverse_complement()
devuelve el complemento inverso de una secuencia de ADN.
Usaremos los siguientes pasos para obtener el complemento inverso de una hebra de ADN usando el método reverse_complement()
en Python.
-
Primero, creamos una secuencia de ADN a partir de la hebra de ADN utilizando la función
Seq()
. La funciónSeq()
toma una cadena que representa la hebra de ADN como entrada y devuelve una secuencia de ADN. -
Después de obtener el objeto de secuencia de ADN, invocaremos el método
reverse_complement()
sobre la secuencia para obtener el complemento inverso de la hebra de ADN, como se muestra en el siguiente ejemplo.
from Bio.Seq import Seq
input_strand = "ACGTAATTGGCC"
sequence = Seq(input_strand)
reversed_strand = sequence.reverse_complement()
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)
Producción :
The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT
Conclusión
En este artículo, hemos discutido varios enfoques para complementar inversamente una hebra de ADN usando Python. De todos estos métodos, puede elegir el enfoque con el método translate()
si no tiene permitido usar una biblioteca externa; de lo contrario, puede usar el módulo Biopython para complementar inversamente una hebra de ADN en Python.
Esperamos que hayas disfrutado leyendo este artículo. Estén atentos para más artículos informativos.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub