¿Por qué es necesario este capítulo?
En el capítulo M01 se dijo que el ADN es una cadena de caracteres de cuatro letras. Sin embargo, en realidad el ADN es una doble hélice formada por dos cadenas de caracteres enfrentadas entre sí. Si se conoce la secuencia de una cadena, la secuencia de la cadena opuesta queda determinada automáticamente. Esto se denomina complemento inverso (reverse complement).
Este capítulo es breve. El cálculo en sí mismo consiste en una sola línea de Python. No obstante, examinemos qué errores pueden ocurrir si se interpreta incorrectamente la orientación de la hebra (strand orientation) en la práctica y por qué las herramientas de alineamiento buscan desde el principio en ambas hebras.
Reglas: combinación de dos convenciones
Convención 1: apareamiento complementario
El apareamiento Watson-Crick se determina de la siguiente manera:
A↔TC↔G
Es decir, si en una posición de una hebra hay una A, en la misma posición de la hebra opuesta hay una T; y si hay una C, hay una G. Esto es consecuencia de la geometría de los enlaces de hidrógeno y de las propiedades fisicoquímicas.
Convención 2: dirección
Las cadenas de ADN tienen una dirección química. Presentan extremos 5′ y 3′, y por convención las secuencias se escriben en dirección 5′→3′. Las dos hebras se unen en direcciones antiparalelas (opuestas).
La combinación de estas dos convenciones da lugar a la operación del "complemento inverso".
Operación: complemento inverso = invertir + complementar
Si se tiene una hebra X = x₁ x₂ … xₙ, la hebra opuesta es Y = complement(xₙ) … complement(x₂) complement(x₁). Es decir, se invierte el orden y se cambia cada carácter por su complementario.
A continuación se presenta un ejemplo.
X (5'→3'): A A A A C C C G G T
complement
X' T T T T G G G C C A
reverse
Y (5'→3'): A C C G G G T T T TEl inverso complementario de X es Y.
Implementación en una línea con Python
COMPLEMENT = str.maketrans("ACGT", "TGCA")
def reverse_complement(dna: str) -> str: return dna.upper().translate(COMPLEMENT)[::-1]
# Ejemplo de Rosalind REVCprint(reverse_complement("AAAACCCGGT")) # ACCGGGTTTTstr.maketrans crea una tabla de correspondencias carácter por carácter y translate la utiliza para sustituirlos de una sola vez. [::-1] es el corte de Python que invierte una secuencia. Ambas operaciones caben en una línea.
Esta única función basta para resolver REVC de Rosalind.
¿Por qué debemos tener esto en cuenta en la práctica?
Escenario 1: Por qué las herramientas de alineamiento deben buscar en ambas hebras
El secuenciador no indica desde el principio de qué hebra procede una lectura. Incluso con lecturas paired-end de Illumina, la hebra y la posición de origen se determinan posteriormente.
Por eso, herramientas de alineamiento como BWA, Bowtie2 y minimap2 buscan tanto la orientación directa como el complemento inverso de la lectura contra el genoma de referencia. Esta es una de las principales razones por las que se duplica el cálculo. En una lectura alineada como complemento inverso se activa el bit 0x10 del campo FLAG del archivo SAM/BAM.
Escenario 2: RNA-seq específico de hebra frente a no específico de hebra
Los protocolos convencionales de RNA-seq pierden la información sobre la hebra de transcripción y producen lecturas en ambas orientaciones. Por ello, al cuantificar la expresión génica puede resultar ambiguo a qué hebra génica corresponde una lectura.
El RNA-seq específico de hebra conserva esta información en el propio protocolo. Estos datos no deben procesarse con featureCounts -s 0 (sin hebra); debe indicarse la orientación con -s 1 o -s 2 para obtener una cuantificación correcta. Volveremos sobre ello en S03 y S18.
Escenario 3: Diseño de cebadores y gRNA
Al diseñar cebadores de PCR o gRNA de CRISPR debe decidirse exactamente qué posición de qué hebra se va a dirigir. Un error al calcular el complemento inverso puede arruinar todo el experimento. Las herramientas de diseño de cebadores, como Primer3 o IDT, lo resuelven automáticamente, pero es fácil equivocarse al hacerlo a mano.
Propiedad interesante: la proporción de GC es simétrica
El contenido GC estudiado en M04 es exactamente igual en una secuencia y en su complemento inverso, porque los intercambios G↔C y A↔T no alteran el número de G y C. Por tanto, el contenido GC de todo el genoma es igual sin importar qué hebra se mida.
El contenido AT también es simétrico, pero la frecuencia del dímero AA no lo es: su equivalente en la hebra opuesta es TT. Los sesgos de dímeros y trímeros revelan características adicionales específicas de especie y permiten extraer más información.
Ejercicio: abramos nuestro propio gen en ambas hebras.
Descarguemos un gen que le sea familiar (BRCA1, TP53, etc.) desde NCBI en formato FASTA. Al calcular el reverso complementario de esa secuencia, podrá visualizar cómo difiere la hebra opuesta de la secuencia original. El problema REVC de Rosalind toma 5 minutos.
# Práctica completasequence = "GAAAAGCCAAAGGGAGAAATGGCCAT" # fragmento ficticio de BRCA1print(f"Orientación directa 5'→3': {sequence}")print(f"Complemento inverso 5'→3': {reverse_complement(sequence)}")La confusión de este ejemplo radica en que ambas cadenas están escritas en la convención 5'→3'. Cuando las dos hebras se encuentran físicamente antiparalelas, si escribimos la hebra superior en dirección 5'→3', la hebra inferior queda naturalmente orientada en dirección 3'→5'. El resultado reverse_complement del ejemplo anterior corresponde a invertir esa hebra inferior para volver a representarla en notación 5'→3'.
Trampas comunes en la práctica profesional
- Complementariedad de la letra N: El complemento de
NesN. La función anterior no gestiona esto automáticamente. Para extenderCOMPLEMENT, cambiémoslo astr.maketrans("ACGTN", "TGCAN"). - Secuencias en minúsculas: Las secuencias con enmascaramiento de baja complejidad se escriben en minúsculas. La función anterior normaliza a
dna.upper(), pero existen casos en los que es necesario conservar el caso original. Esto depende de la política del pipeline. - Confusión entre ARN y ADN: El complemento del ARN es A↔U, C↔G. Debe cambiarse a
str.maketrans("ACGU", "UGCA"). Verifiquemos siempre si el original es ADN o ARN. - Campo strand en archivos BED · GFF: Los archivos de anotación génica indican si cada característica pertenece a la hebra
+o a la hebra-. Al extraer la secuencia de la característica, si es la hebra-, se debe tomar automáticamente el complemento inverso.bedtools getfasta -sgestiona esto.
Mapeo CS (Ciencias de la Computación)
- Inversión de cadenas + mapeo de caracteres: Estas dos operaciones son fundamentales que se enseñan en el primer semestre de CS. Sin embargo, el orden de las dos operaciones no cambia el resultado (son conmutativas). Es recomendable dibujarlo en papel para entender por qué.
- Mapeo simétrico: La relación de complementariedad es una involutiva (auto-inversa).
complement(complement(x)) = x. Es decir, si realizas la secuencia: complemento → inversión → complemento → inversión, vuelves a la secuencia original. - Doble índice: Los navegadores genómicos y las herramientas de alineación gestionan esencialmente un doble índice sobre las dos hebras de la secuencia de referencia. Este es un problema interesante de estructuras de datos desde la perspectiva de la eficiencia de almacenamiento y búsqueda.
Ramas hacia el siguiente capítulo
- Siguiente capítulo (M06): Needleman-Wunsch — Alineamiento de dos secuencias. Se intenta alinear tanto la lectura en dirección directa como su complemento inverso, y se toma la mejor opción.
- Dos capítulos después (M07): Smith-Waterman — Alineamiento local. También busca en ambas hebras.
- Ocho capítulos después (M13~M15): BWT · FM-index — Estructura de datos de doble índice del genoma de referencia.
- Doce capítulos después (M16): minimap2 — Mapeo tanto en dirección directa como inversa, incluso para lecturas largas.
Para profundizar más
El texto principal es una descripción reconstruida internamente por BPD. Para un estudio más profundo, consulte a continuación.
- Harvard STAT115 — La clase Semana 1: Dogma Central y Orientación de las Cadenas del profesor Xiaole Shirley Liu (con subtítulos completos y excelente traducción automática). También es recomendable verla junto con M01.
- Manual de NCBI — The Sequence Read Archive (SRA). Aquí se detalla cómo se almacena la información de dirección de los datos de lectura reales.
- Libro web gratuito de referencia: Bioinformatics for Beginners Capítulo 3. Principios del cálculo de complementos inversos y ejemplos prácticos.
- Herramienta de referencia: Biopython (
Bio.Seq.reverse_complement) — En la práctica, con esta función basta.
Resuelve secuencialmente REVC · GC · DNA en Rosalind. Además, calcula las cadenas complementarias directas e inversas para un gen de tu interés y familiarízate con cómo se enfrentan ambas hebras. Esta intuición será necesaria en el ejercicio de alineación Needleman-Wunsch del siguiente capítulo M06.