La arquitectura DNABERT (Bidirectional Encoder Representations from Transformers for DNA) es un modelo de aprendizaje profundo diseñado para analizar secuencias de ADN utilizando una adaptación de la arquitectura BERT, originalmente desarrollada para el procesamiento del lenguaje natural.
Su principal innovación consiste en representar las secuencias genómicas como un lenguaje formado por fragmentos de nucleótidos, denominados k-mers, y utilizar mecanismos de autoatención bidireccional para aprender relaciones contextuales entre estos fragmentos.
DNABERT fue presentada por Yanrong Ji, Zhihan Zhou, Han Liu y Ramana V. Davuluri en el artículo científico DNABERT: Pre-trained Bidirectional Encoder Representations from Transformers Model for DNA-Language in Genome, publicado en febrero de 2021 en la revista Bioinformatics.
La arquitectura surgió a partir de una idea fundamental: las secuencias de ADN contienen patrones, regularidades y relaciones contextuales que pueden estudiarse mediante técnicas similares a las utilizadas para comprender el lenguaje humano.
En procesamiento del lenguaje natural, BERT aprende representaciones contextuales a partir de grandes cantidades de texto.
DNABERT adapta este principio a secuencias compuestas principalmente por cuatro nucleótidos: adenina (A), citosina (C), guanina (G) y timina (T).
En lugar de procesar palabras, DNABERT utiliza grupos de nucleótidos superpuestos. Estos grupos permiten representar patrones locales y estudiar su relación con otras regiones de la secuencia.
El modelo aprende inicialmente mediante una tarea de Masked Language Modeling (MLM), donde se ocultan determinados fragmentos de ADN y el sistema intenta reconstruirlos utilizando el contexto disponible.
Posteriormente, puede adaptarse mediante fine-tuning a tareas genómicas especializadas, como identificación de promotores, predicción de sitios de unión de factores de transcripción y reconocimiento de sitios de empalme.
Los experimentos originales mostraron que DNABERT podía obtener resultados competitivos frente a métodos especializados de predicción de elementos reguladores del genoma.
Además, los investigadores desarrollaron procedimientos para visualizar regiones relevantes y analizar cómo determinadas mutaciones pueden modificar las predicciones del modelo.
La familia evolucionó posteriormente con DNABERT-2, presentada en 2023, que introdujo cambios importantes en la tokenización, la información posicional y el preentrenamiento multiespecie.
En esta guía exploraremos qué es DNABERT, cómo funciona la tokenización mediante k-mers, cómo se utiliza la autoatención bidireccional, qué significa el preentrenamiento con máscaras y cuáles son sus aplicaciones en bioinformática.
También compararemos DNABERT con BERT, HyenaDNA y DNABERT-2, e incluiremos ejemplos prácticos en Python, referencias oficiales y metadatos SEO para WordPress.
¿Qué es la arquitectura DNABERT?
DNABERT es un modelo de lenguaje genómico basado en un encoder Transformer bidireccional.
Su objetivo consiste en aprender representaciones numéricas que capturen patrones presentes dentro de secuencias de ADN.
La arquitectura utiliza como punto de partida BERT, uno de los modelos más influyentes del procesamiento del lenguaje natural.
BERT aprende representaciones utilizando información situada antes y después de cada posición de una secuencia.
DNABERT aplica este mismo principio a fragmentos de ADN.
En lugar de recibir una frase como:
«La inteligencia artificial transforma la investigación».
El modelo recibe una secuencia como:
ATGCGTACCTGATCGATCGT
Posteriormente, la convierte en una sucesión de tokens formados por varios nucleótidos.
Estos tokens atraviesan capas Transformer que calculan relaciones contextuales mediante autoatención.
El resultado es una representación vectorial para cada token y otra representación que puede utilizarse para clasificar la secuencia completa.
El objetivo no es traducir directamente ADN a lenguaje natural.
La arquitectura aprende patrones estadísticos asociados con la organización de las secuencias genómicas.
Estos patrones pueden resultar útiles para distinguir regiones funcionales.
Origen y desarrollo de DNABERT
DNABERT apareció como parte de una línea de investigación que buscaba aplicar modelos de lenguaje preentrenados a datos biológicos.
En 2017, la publicación Attention Is All You Need introdujo la arquitectura Transformer.
Posteriormente, BERT demostró que un encoder bidireccional podía aprender representaciones generales mediante tareas de preentrenamiento autosupervisado.
Estas representaciones podían adaptarse después a múltiples tareas de clasificación y comprensión.
Los investigadores de DNABERT observaron que el ADN también puede modelarse como una secuencia de símbolos.
Aunque su funcionamiento biológico es muy diferente del lenguaje humano, existen regularidades que pueden aprenderse estadísticamente.
Por ejemplo, determinadas regiones contienen motivos asociados con la unión de proteínas reguladoras.
Otras contienen patrones relacionados con el procesamiento del ARN.
DNABERT fue diseñada para aprender estas estructuras mediante un modelo Transformer.
Su publicación original apareció en 2021 en Bioinformatics, volumen 37, número 15, páginas 2112–2120.
Los investigadores desarrollaron cuatro configuraciones principales:
- DNABERT-3.
- DNABERT-4.
- DNABERT-5.
- DNABERT-6.
Cada configuración utiliza un tamaño diferente de k-mer.
El modelo fue preentrenado sobre secuencias del genoma humano.
Posteriormente, se evaluó mediante tareas específicas de predicción genómica.
¿Por qué considerar el ADN como un lenguaje?
El ADN está formado por secuencias de nucleótidos.
Los cuatro símbolos principales son:
| Símbolo | Nucleótido |
|---|---|
| A | Adenina |
| C | Citosina |
| G | Guanina |
| T | Timina |
La organización de estos símbolos contiene información relevante para numerosos procesos biológicos.
Entre ellos se encuentran la codificación de proteínas, la regulación de la expresión génica y el procesamiento de transcritos.
Algunos patrones locales pueden reconocerse mediante secuencias cortas.
Otros dependen del contexto.
Por ejemplo, una misma secuencia puede tener distintas implicaciones según su posición y su entorno genómico.
Esta dependencia contextual motivó el uso de Transformers.
La autoatención permite que la representación de un fragmento incorpore información de otros fragmentos dentro de la ventana analizada.
Sin embargo, existe una distinción fundamental.
El ADN no es un lenguaje humano y los patrones estadísticos aprendidos por DNABERT no equivalen automáticamente a una comprensión causal de los mecanismos biológicos.
La analogía lingüística constituye una estrategia de modelado.
Su utilidad debe demostrarse mediante experimentos.
¿Qué son los k-mers?
Un k-mer es un fragmento de una secuencia biológica formado por (k) elementos consecutivos.
En ADN, esos elementos son nucleótidos.
Por ejemplo, para:
[
k=3
]
Un k-mer contiene tres bases.
Consideremos la secuencia:
ATGCGTAC
Si utilizamos k-mers superpuestos de longitud tres, obtenemos:
ATG TGC GCG CGT GTA TAC
Cada nuevo fragmento comienza una posición después del anterior.
Esta estrategia permite conservar información local sobre combinaciones de nucleótidos.
¿Cuántos k-mers contiene una secuencia?
Si una secuencia tiene (L) nucleótidos y utilizamos una ventana deslizante de longitud (k) con paso uno, el número de k-mers es:
[
N=L-k+1
]
Para una secuencia de 100 nucleótidos y k-mers de longitud seis:
[
N=100-6+1=95
]
Por tanto, el modelo recibe 95 tokens de secuencia antes de añadir los tokens especiales.
Esta característica es importante porque los k-mers superpuestos no reducen drásticamente la longitud de la secuencia.
A diferencia de una segmentación no superpuesta, mantienen aproximadamente un token por posición original.
DNABERT-3, DNABERT-4, DNABERT-5 y DNABERT-6
Los autores originales entrenaron cuatro variantes de DNABERT.
| Modelo | Longitud de k-mer | Combinaciones posibles |
|---|---|---|
| DNABERT-3 | 3 | 64 |
| DNABERT-4 | 4 | 256 |
| DNABERT-5 | 5 | 1.024 |
| DNABERT-6 | 6 | 4.096 |
El número de combinaciones posibles de nucleótidos A, C, G y T es:
[
4^k
]
DNABERT incorpora además cinco tokens especiales.
Por tanto, el tamaño del vocabulario original es:
[
|V|=4^k+5
]
Por ejemplo, para DNABERT-6:
[
|V|=4^6+5=4.101
]
Los cinco tokens especiales son:
[CLS]: representación inicial utilizada para clasificación.[SEP]: delimitador de secuencia.[PAD]: relleno para igualar longitudes.[UNK]: token desconocido.[MASK]: marcador de fragmentos ocultos durante preentrenamiento.
La elección de (k) introduce un compromiso.
Los k-mers pequeños utilizan vocabularios más compactos.
Los k-mers grandes representan patrones locales más extensos, pero requieren un vocabulario mayor.
No existe un tamaño óptimo universal para todas las tareas.
¿Cómo funciona la tokenización en DNABERT?
Podemos dividir el proceso en varias etapas.
Paso 1. Recibir una secuencia de ADN
Por ejemplo:
ATGCGTACGTAG
Paso 2. Seleccionar el tamaño de k-mer
Supongamos:
[
k=6
]
Paso 3. Crear fragmentos superpuestos
La secuencia se convierte en:
ATGCGT TGCGTA GCGTAC CGTACG GTACGT TACGTA ACGTAG
Paso 4. Añadir tokens especiales
La entrada conceptual queda:
[CLS] ATGCGT TGCGTA GCGTAC CGTACG GTACGT TACGTA ACGTAG [SEP]
Paso 5. Convertir los tokens en identificadores
Cada k-mer se transforma en un identificador numérico del vocabulario correspondiente.
Paso 6. Crear embeddings
Los identificadores se convierten en vectores.
Paso 7. Procesar mediante Transformer
Los vectores atraviesan las capas de autoatención bidireccional.
Paso 8. Obtener representaciones contextualizadas
Cada token produce una representación que incorpora información procedente de otras posiciones disponibles.
Este procedimiento constituye la entrada básica de DNABERT.
Arquitectura interna de DNABERT
DNABERT original utiliza una arquitectura basada en BERT-Base.
La configuración principal incluye:
| Componente | DNABERT original |
|---|---|
| Arquitectura | Encoder Transformer bidireccional |
| Capas Transformer | 12 |
| Dimensión oculta | 768 |
| Cabezas de atención | 12 |
| Longitud máxima de tokens | 512 |
| Tokenización | k-mers superpuestos |
| Preentrenamiento | Masked Language Modeling |
| Predicción de siguiente oración | Eliminada |
| Datos principales de preentrenamiento | Genoma humano |
El procesamiento utiliza los siguientes componentes.
Embeddings de tokens
Transforman cada k-mer en una representación vectorial.
Embeddings posicionales
Proporcionan información sobre el orden de los tokens dentro de la secuencia.
Multi-Head Self-Attention
Permite calcular relaciones entre diferentes posiciones utilizando múltiples cabezas.
Feed-Forward Networks
Transforman las representaciones mediante operaciones neuronales no lineales.
Layer Normalization
Contribuye a estabilizar el entrenamiento.
Residual Connections
Facilitan el flujo de información entre bloques.
Cabezas de predicción
Permiten predecir tokens enmascarados o clasificar secuencias después del fine-tuning.
¿Qué significa Bidirectional Encoder?
El término Bidirectional Encoder indica que el modelo puede utilizar información procedente de ambos lados de una posición.
Por ejemplo, consideremos:
ATGCGTACGTAGCTAG
Si el modelo intenta reconstruir un fragmento situado en el centro, puede utilizar información anterior y posterior.
Esto es diferente del procesamiento autorregresivo causal, donde una posición solamente puede consultar información anterior.
En DNABERT, la bidireccionalidad resulta especialmente útil para aprender representaciones de fragmentos genómicos.
Una región puede adquirir significado estadístico a partir de su contexto circundante.
Sin embargo, la bidireccionalidad no significa que el modelo observe todo el cromosoma.
Solamente utiliza las posiciones disponibles dentro de su ventana de entrada.
Mecanismo de autoatención en DNABERT
DNABERT utiliza el mecanismo de autoatención de BERT.
Las representaciones de entrada se transforman en consultas, claves y valores:
[
Q=XW_Q
]
[
K=XW_K
]
[
V=XW_V
]
La atención escalada se calcula mediante:
[
\operatorname{Attention}(Q,K,V)=
\operatorname{softmax}
\left(
\frac{QK^T}{\sqrt{d_k}}
\right)V
]
Donde (d_k) representa la dimensión de las claves.
La atención permite calcular pesos asociados con distintas posiciones de la secuencia.
Los resultados de varias cabezas se combinan para producir representaciones contextualizadas.
Esto permite que un fragmento incorpore información de otros k-mers.
La capacidad resulta útil para estudiar patrones genómicos donde el contexto modifica las relaciones aprendidas.
Sin embargo, las puntuaciones de atención no deben interpretarse automáticamente como una explicación causal de la función biológica.
Pueden proporcionar señales exploratorias, pero la interpretación requiere validación adicional.
¿Qué es Masked Language Modeling en DNABERT?
Masked Language Modeling (MLM) es la tarea principal de preentrenamiento de DNABERT.
El procedimiento consiste en ocultar determinados tokens y entrenar el modelo para reconstruirlos.
Por ejemplo, consideremos:
ATGCGT TGCGTA GCGTAC CGTACG GTACGT
Durante el preentrenamiento, podemos sustituir una región por marcadores:
ATGCGT [MASK] [MASK] CGTACG GTACGT
El modelo debe predecir los tokens ocultos utilizando el contexto.
La función de pérdida puede expresarse como:
-\sum_{i\in M}
\log P(x_i\mid x_{\setminus M})
]
Donde:
- (M) representa el conjunto de posiciones enmascaradas.
- (x_i) representa el token original.
- (x_{\setminus M}) representa el contexto disponible.
- (P) representa la distribución predicha por el modelo.
El objetivo es aprender representaciones útiles para reconstruir información ausente.
¿Por qué DNABERT utiliza máscaras contiguas?
La tokenización mediante k-mers superpuestos introduce un problema especial.
Los tokens vecinos comparten gran parte de sus nucleótidos.
Por ejemplo:
ATGCGTTGCGTAGCGTAC
El segundo token comparte cinco de sus seis bases con cada fragmento vecino, considerando el desplazamiento correspondiente.
Si ocultamos solamente un token, los tokens adyacentes pueden revelar una parte importante de su contenido.
Esto puede convertir la tarea de reconstrucción en un problema relativamente sencillo.
Para reducir esta fuga de información, los investigadores modificaron el procedimiento de enmascaramiento de BERT.
DNABERT utiliza regiones contiguas de tokens enmascarados para evitar que la reconstrucción dependa exclusivamente de la superposición local.
En el estudio original se enmascaró aproximadamente el 15 % de las posiciones durante la mayor parte del preentrenamiento, aumentando posteriormente la proporción en la fase final.
Este cambio es especialmente relevante para comprender por qué DNABERT no constituye simplemente una aplicación de BERT sin modificaciones.
¿Qué aprende DNABERT durante el preentrenamiento?
El modelo aprende a predecir fragmentos de ADN a partir de su contexto.
Esta tarea puede permitir aprender regularidades relacionadas con:
- Frecuencia de combinaciones nucleotídicas.
- Patrones locales de secuencia.
- Motivos recurrentes.
- Relaciones contextuales entre regiones.
- Características estadísticas de determinadas regiones genómicas.
Estas representaciones pueden transferirse posteriormente a tareas especializadas.
Sin embargo, el preentrenamiento no proporciona automáticamente conocimiento experimental sobre la función de cada región.
Tampoco demuestra que el modelo haya aprendido mecanismos causales de regulación.
El valor de las representaciones debe evaluarse mediante datos etiquetados y experimentos independientes.
Preentrenamiento y fine-tuning
DNABERT sigue un enfoque de dos etapas.
Primera etapa: preentrenamiento
El modelo aprende representaciones generales a partir de secuencias genómicas sin etiquetas funcionales.
Utiliza Masked Language Modeling.
Segunda etapa: fine-tuning
El modelo se adapta a tareas específicas utilizando conjuntos de datos etiquetados.
Por ejemplo:
- Identificación de promotores.
- Predicción de sitios de unión de factores de transcripción.
- Clasificación de sitios de empalme.
- Reconocimiento de motivos reguladores.
Durante el fine-tuning se añade o adapta una cabeza de predicción.
Para clasificar una secuencia completa, puede utilizarse la representación del token [CLS].
Esta representación atraviesa una capa de clasificación que produce probabilidades para las categorías deseadas.
La arquitectura permite reutilizar los parámetros preentrenados, reduciendo la necesidad de entrenar todo el sistema desde cero.
Aplicación 1: identificación de promotores
Los promotores son regiones del ADN relacionadas con el inicio de la transcripción.
Su identificación constituye una tarea importante en genómica funcional.
DNABERT puede adaptarse a esta tarea mediante clasificación supervisada.
El modelo recibe secuencias etiquetadas como promotoras o no promotoras.
Después, aprende a distinguir patrones asociados con ambas categorías.
Una salida de clasificación puede expresarse como:
[
P(y=1\mid x)
]
Donde:
- (x) representa la secuencia.
- (y=1) indica la clase promotora.
La predicción depende del modelo entrenado y del conjunto de datos.
Es importante recordar que los promotores presentan características diferentes según organismos, tipos celulares y contextos biológicos.
Por tanto, la generalización debe evaluarse cuidadosamente.
Aplicación 2: predicción de sitios de unión de factores de transcripción
Los factores de transcripción son proteínas que pueden unirse a regiones específicas del ADN y participar en la regulación de la expresión génica.
Estas proteínas reconocen patrones de secuencia, aunque su unión real también depende de factores adicionales.
DNABERT puede aprender representaciones útiles para clasificar posibles sitios de unión.
Durante fine-tuning, el modelo recibe ejemplos positivos y negativos.
Posteriormente, aprende relaciones estadísticas entre las secuencias y las etiquetas.
Sin embargo, una predicción basada exclusivamente en secuencia no demuestra que una proteína se una físicamente a esa región en una célula determinada.
La accesibilidad de cromatina, la concentración de proteínas y el contexto celular pueden modificar el resultado.
Aplicación 3: identificación de sitios de empalme
El splicing o empalme es un proceso mediante el cual se eliminan intrones y se combinan exones durante la maduración del ARN.
Determinadas regiones del ADN contienen señales relacionadas con este proceso.
DNABERT puede utilizarse para clasificar secuencias próximas a sitios de empalme.
La autoatención bidireccional permite incorporar información contextual de ambos lados de las posiciones analizadas.
El trabajo original presentó resultados competitivos en tareas de predicción de sitios de empalme.
La calidad depende de los datos utilizados y del protocolo experimental.
Aplicación 4: análisis de motivos genómicos
Un motivo es un patrón de secuencia asociado estadísticamente con una determinada función biológica.
Por ejemplo, algunos factores de transcripción reconocen motivos específicos.
DNABERT puede utilizarse para estudiar qué regiones influyen sobre una predicción.
El proyecto original incluye herramientas de visualización y análisis de motivos.
Estas herramientas permiten examinar patrones de atención y construir representaciones gráficas de secuencias relevantes.
Sin embargo, una región con alta atención no constituye necesariamente una explicación causal.
Para identificar motivos funcionales, conviene combinar métodos de interpretación con análisis de enriquecimiento y validación experimental.
Aplicación 5: análisis de variantes genéticas
Una variante genética puede modificar una o varias bases del ADN.
Por ejemplo:
Secuencia de referencia:
ATGCGTACGTAG
Secuencia alternativa:
ATGCGTTCGTAG
Las secuencias difieren en una posición.
Podemos utilizar un clasificador DNABERT para calcular predicciones sobre ambas.
Después, podemos analizar la diferencia.
Por ejemplo:
[
\Delta p=
p_{\text{alternativa}}-
p_{\text{referencia}}
]
Una diferencia elevada puede sugerir que la variante modifica una característica relevante para el clasificador.
Sin embargo, esto no demuestra que la variante sea patogénica ni que tenga una consecuencia clínica.
La interpretación necesita modelos validados, anotaciones fiables y evidencia biológica adicional.
DNABERT es una herramienta de investigación, no un sistema de diagnóstico médico autónomo.
¿Qué longitud de secuencia admite DNABERT original?
La arquitectura original utiliza una ventana máxima de 512 tokens, incluyendo los tokens especiales.
Esto significa que la cantidad de k-mers disponibles para representar el ADN es menor.
Si reservamos dos posiciones para [CLS] y [SEP], quedan como máximo 510 posiciones de k-mers.
Para un tokenizador superpuesto de longitud (k), la cantidad de nucleótidos representables es aproximadamente:
[
L_{\text{ADN}}=510+k-1
]
Por ejemplo, para DNABERT-6:
[
L_{\text{ADN}}=515
]
Este valor depende de la configuración exacta de entrada.
La limitación de contexto es una diferencia importante respecto a modelos genómicos posteriores.
En determinadas tareas biológicas, las relaciones relevantes pueden encontrarse a distancias mucho mayores.
Por tanto, DNABERT original resulta especialmente apropiada para estudiar regiones locales o ventanas relativamente cortas.
DNABERT frente a BERT original
DNABERT conserva la arquitectura central de BERT, pero modifica el dominio y algunos procedimientos de entrenamiento.
| Característica | BERT original | DNABERT original |
|---|---|---|
| Dominio | Lenguaje natural | ADN |
| Unidad de entrada | Tokens lingüísticos | k-mers |
| Arquitectura | Encoder Transformer | Encoder Transformer |
| Atención | Bidireccional | Bidireccional |
| Preentrenamiento MLM | Sí | Sí |
| Enmascaramiento | Tokens de texto | Regiones de k-mers |
| Next Sentence Prediction | Presente en BERT original | Eliminada |
| Transfer Learning | Tareas lingüísticas | Tareas genómicas |
| Aplicaciones | Clasificación, comprensión, extracción | Promotores, splicing, unión de proteínas |
La principal innovación de DNABERT consiste en adaptar el preentrenamiento y la representación de entradas a las propiedades de las secuencias biológicas.
DNABERT frente a HyenaDNA
HyenaDNA, estudiada en la Entrada 118, utiliza una estrategia arquitectónica diferente.
DNABERT original utiliza autoatención bidireccional.
HyenaDNA utiliza convoluciones implícitas de largo alcance.
| Característica | DNABERT original | HyenaDNA |
|---|---|---|
| Publicación principal | 2021 | 2023 |
| Arquitectura | BERT Transformer | Hyena |
| Mecanismo de contexto | Autoatención | Convoluciones largas |
| Tokenización | k-mers superpuestos | Una base por token |
| Preentrenamiento | MLM | Predicción autorregresiva |
| Contexto máximo característico | 512 tokens | Hasta 1.000.000 de nucleótidos |
| Bidireccionalidad original | Sí | Causal durante preentrenamiento |
| Ventaja principal | Representación contextual de regiones locales | Contexto genómico extremadamente largo |
La diferencia más importante es el equilibrio entre arquitectura y alcance contextual.
DNABERT utiliza un mecanismo de atención que permite relacionar posiciones dentro de una ventana limitada.
HyenaDNA fue diseñada para procesar secuencias considerablemente más extensas.
Sin embargo, una ventana más larga no garantiza automáticamente mejores resultados en todas las tareas.
Para problemas basados en motivos locales, un modelo especializado de contexto corto puede ser suficiente o incluso más preciso.
DNABERT frente a DNABERT-2
DNABERT-2 representa una evolución significativa de la arquitectura original.
Fue presentada en 2023 mediante el artículo DNABERT-2: Efficient Foundation Model and Benchmark for Multi-Species Genome.
Su objetivo consistió en mejorar la eficiencia y generalización de los modelos fundacionales para secuencias genómicas.
Entre las modificaciones importantes se encuentran una tokenización distinta, mecanismos posicionales actualizados y preentrenamiento sobre múltiples especies.
| Característica | DNABERT original | DNABERT-2 |
|---|---|---|
| Año | 2021 | 2023 |
| Tokenización | k-mers superpuestos | Byte Pair Encoding |
| Información posicional | BERT convencional | ALiBi |
| Datos de preentrenamiento | Genoma humano | Genomas multiespecie |
| Arquitectura base | BERT | Transformer optimizado |
| Vocabulario | Depende de (4^k) | Aprendido mediante BPE |
| Evaluación principal | Tareas genómicas especializadas | Genome Understanding Evaluation |
| Objetivo | Representación de ADN mediante BERT | Mayor eficiencia y generalización |
DNABERT-2 introduce BPE, o Byte Pair Encoding, para construir tokens a partir de patrones frecuentes.
También incorpora Attention with Linear Biases (ALiBi), una estrategia posicional que utiliza sesgos en las puntuaciones de atención.
El proyecto incluye el benchmark Genome Understanding Evaluation (GUE), formado por 28 conjuntos de datos correspondientes a siete tareas y cuatro especies.
Estas diferencias justifican estudiar DNABERT-2 como una arquitectura propia en la siguiente entrada del glosario.
¿Qué es Genome Understanding Evaluation?
Genome Understanding Evaluation (GUE) es un conjunto de benchmarks publicado junto con DNABERT-2.
Su objetivo consiste en evaluar capacidades de comprensión genómica de diferentes modelos.
Incluye tareas de clasificación sobre secuencias procedentes de varias especies.
El proyecto proporciona conjuntos de datos y resultados de referencia.
Este tipo de benchmark resulta útil para comparar modelos fundacionales en condiciones definidas.
Sin embargo, los resultados deben interpretarse considerando las particiones de entrenamiento, la similitud entre secuencias y los procedimientos de evaluación.
En genómica, la fuga de información puede producirse cuando secuencias muy similares aparecen simultáneamente en entrenamiento y prueba.
Por ello, un buen diseño experimental debe considerar redundancia, homología y separación adecuada de datos.
Ejemplo práctico: convertir ADN en k-mers con Python
Podemos implementar la tokenización utilizada por DNABERT mediante Python estándar.
El siguiente ejemplo no requiere bibliotecas externas.
def dna_to_kmers(sequence, k=6): sequence = sequence.upper().strip() if k < 1: raise ValueError("k must be positive") if len(sequence) < k: raise ValueError( "Sequence shorter than k" ) allowed = set("ACGT") if not set(sequence).issubset(allowed): raise ValueError( "Sequence contains unsupported characters" ) return [ sequence[i:i + k] for i in range(len(sequence) - k + 1) ]dna = "ATGCGTACGTAG"kmers = dna_to_kmers(dna, k=6)print("DNA:", dna)print("K-mers:", kmers)print("Number of tokens:", len(kmers))
El programa genera ventanas superpuestas de seis nucleótidos.
La cantidad de fragmentos corresponde a:
[
L-k+1
]
Esta es la base del procedimiento de tokenización de DNABERT original.
En un modelo preentrenado, los fragmentos deben convertirse después en identificadores utilizando el vocabulario exacto del checkpoint.
Ejemplo: preparar la entrada de DNABERT-6
Podemos crear una representación textual compatible conceptualmente con el formato esperado por el tokenizador original.
def prepare_dnabert_input(sequence, k=6): kmers = dna_to_kmers(sequence, k) return " ".join(kmers)dna = "ATGCGTACGTAGCTAGCTAGCT"model_input = prepare_dnabert_input( dna, k=6)print(model_input)
La salida contiene k-mers separados por espacios.
Este formato se utiliza habitualmente en el flujo original de DNABERT.
Sin embargo, el ejemplo no añade manualmente [CLS] y [SEP].
Es preferible que estos tokens sean incorporados por el tokenizador oficial para evitar duplicaciones o errores de formato.
Ejemplo: calcular el tamaño del vocabulario
Podemos calcular cuántos k-mers son posibles para diferentes valores de (k).
def vocabulary_size(k): special_tokens = 5 return 4 ** k + special_tokensfor k in [3, 4, 5, 6]: print( f"DNABERT-{k}: " f"{vocabulary_size(k)} tokens" )
Los resultados son:
| Modelo | Tamaño del vocabulario |
|---|---|
| DNABERT-3 | 69 |
| DNABERT-4 | 261 |
| DNABERT-5 | 1.029 |
| DNABERT-6 | 4.101 |
Estos valores corresponden al diseño del vocabulario descrito en el artículo original.
Ejemplo práctico: cargar DNABERT-6 con Hugging Face
Los autores mantienen checkpoints de DNABERT original en Hugging Face.
Uno de ellos es:
zhihan1996/DNA_bert_6
El siguiente ejemplo muestra cómo cargarlo mediante Transformers.
import torchfrom transformers import ( AutoTokenizer, AutoModelForMaskedLM)model_name = "zhihan1996/DNA_bert_6"tokenizer = AutoTokenizer.from_pretrained( model_name, trust_remote_code=True)model = AutoModelForMaskedLM.from_pretrained( model_name, trust_remote_code=True)dna = "ATGCGTACGTAGCTAGCTAGCT"kmers = dna_to_kmers(dna, k=6)encoded = tokenizer( " ".join(kmers), return_tensors="pt")model.eval()with torch.inference_mode(): outputs = model(**encoded)print( "Logits shape:", outputs.logits.shape)
El programa realiza las siguientes operaciones.
Primero, carga el tokenizador y el modelo preentrenado.
Después, convierte la secuencia de ADN en k-mers.
Posteriormente, transforma esos k-mers en identificadores de tokens.
Finalmente, ejecuta DNABERT y obtiene las puntuaciones de predicción.
Es importante tener en cuenta que AutoModelForMaskedLM produce logits para la tarea de reconstrucción de tokens enmascarados.
No constituye directamente un clasificador de promotores o variantes.
Para esas aplicaciones debe utilizarse un modelo ajustado específicamente.
Nota de seguridad: el parámetro trust_remote_code=True permite ejecutar código proporcionado por el repositorio del modelo. Debe utilizarse únicamente después de revisar y confiar en el código y, preferiblemente, fijando una revisión concreta. Algunas versiones antiguas de Transformers pueden requerir entornos específicos para cargar los checkpoints originales.
Ejemplo práctico: predecir un k-mer enmascarado
Podemos experimentar con la tarea de Masked Language Modeling.
El siguiente código supone que ya se han cargado tokenizer y model en el ejemplo anterior.
import torchdna = "ATGCGTACGTAGCTAGCTAGCT"kmers = dna_to_kmers(dna, k=6)mask_position = 5kmers[mask_position] = tokenizer.mask_tokentext = " ".join(kmers)encoded = tokenizer( text, return_tensors="pt")mask_positions = ( encoded["input_ids"][0] == tokenizer.mask_token_id).nonzero(as_tuple=True)[0]model.eval()with torch.inference_mode(): outputs = model(**encoded)logits = outputs.logits[ 0, mask_positions[0]]predicted_id = logits.argmax().item()predicted_token = tokenizer.convert_ids_to_tokens( predicted_id)print("Masked input:", text)print("Predicted k-mer:", predicted_token)
El programa sustituye un k-mer por un token de máscara.
Después, utiliza DNABERT para predecir el token más probable.
Este ejemplo es educativo.
En particular, enmascara una sola posición, mientras que el preentrenamiento original utiliza regiones contiguas para controlar la fuga de información producida por los k-mers superpuestos.
Por tanto, los resultados no deben interpretarse como una evaluación rigurosa de la capacidad del modelo.
Ejemplo: analizar una mutación SNP
Una variante de un solo nucleótido puede modificar varios k-mers superpuestos.
Podemos demostrarlo mediante Python.
reference = "ATGCGTACGTAGCTAGCT"variant = list(reference)# Sustituir un nucleótidovariant[8] = "A"variant = "".join(variant)reference_kmers = dna_to_kmers( reference, k=6)variant_kmers = dna_to_kmers( variant, k=6)for i, (ref, alt) in enumerate( zip(reference_kmers, variant_kmers)): if ref != alt: print( f"Token {i}: " f"{ref} -> {alt}" )
El programa muestra que una modificación de una sola base puede afectar a varios tokens consecutivos.
Esto es una consecuencia directa de utilizar k-mers solapados.
La observación resulta relevante para interpretar modelos genómicos basados en esta tokenización.
La variación de varios embeddings no significa que la mutación tenga múltiples efectos biológicos independientes.
Refleja principalmente cómo se representa la misma variante en diferentes ventanas de tokens.
Fine-tuning: crear un clasificador genómico
Después del preentrenamiento, DNABERT puede adaptarse mediante fine-tuning.
Imaginemos una tarea binaria:
- Clase 0: no promotor.
- Clase 1: promotor.
El modelo produce una representación de la secuencia.
Posteriormente, una cabeza de clasificación transforma esa representación en dos logits.
Las probabilidades se calculan mediante softmax:
[
P(y=c\mid x)=
\frac{\exp(z_c)}
{\sum_j\exp(z_j)}
]
Durante entrenamiento se minimiza una función de pérdida como la entropía cruzada.
El repositorio oficial incluye scripts de fine-tuning y ejemplos de datos para clasificación de promotores.
En un proyecto real conviene seguir el formato documentado por los investigadores y comprobar la compatibilidad de las dependencias.
Además, la evaluación debe utilizar datos independientes.
No sería correcto presentar un clasificador entrenado con pocos ejemplos artificiales como un sistema fiable de predicción biológica.
¿Cómo evaluar un modelo DNABERT?
La evaluación depende de la tarea.
En clasificación binaria, pueden utilizarse diferentes métricas.
Accuracy: proporción de predicciones correctas.
Precision: proporción de predicciones positivas que realmente corresponden a la categoría positiva.
Recall: proporción de casos positivos identificados correctamente.
F1-score: media armónica de precision y recall.
AUROC: capacidad de distinguir entre clases a diferentes umbrales.
AUPRC: relación entre precision y recall a distintos umbrales, especialmente útil cuando existe desequilibrio entre clases.
En genómica también es importante controlar otros factores.
Las secuencias pueden presentar relaciones de homología.
Los ejemplos pueden compartir regiones parcialmente solapadas.
Además, determinadas diferencias entre cromosomas o especies pueden modificar las distribuciones de datos.
Por ello, una buena evaluación debe considerar particiones que reduzcan la fuga de información.
Ventajas de la arquitectura DNABERT
Aprovecha el aprendizaje transferido
Permite preentrenar un modelo general y adaptarlo posteriormente a tareas específicas.
Utiliza contexto bidireccional
Cada posición puede incorporar información anterior y posterior.
Aprende patrones mediante autosupervisión
El preentrenamiento no necesita etiquetas funcionales para cada fragmento.
Permite representar motivos genómicos
La tokenización mediante k-mers proporciona unidades locales útiles para estudiar patrones de ADN.
Facilita el fine-tuning
El modelo puede adaptarse a tareas de clasificación mediante arquitecturas relativamente sencillas.
Dispone de recursos públicos
Los autores publicaron código, checkpoints y herramientas de análisis.
Constituye una referencia histórica importante
DNABERT ayudó a consolidar el uso de modelos BERT preentrenados para genómica.
Limitaciones de DNABERT
La principal limitación de DNABERT original es su ventana relativamente corta.
La arquitectura está basada en BERT-Base y utiliza un máximo habitual de 512 tokens.
Esto impide procesar directamente dentro de una sola entrada relaciones genómicas situadas a grandes distancias.
Otra limitación está relacionada con la tokenización mediante k-mers.
Los fragmentos superpuestos introducen redundancia.
Además, el tamaño del vocabulario aumenta exponencialmente con (k).
El preentrenamiento original también depende principalmente del genoma humano de referencia.
Esto puede limitar la generalización a especies o distribuciones genómicas diferentes.
Otra dificultad está relacionada con la interpretabilidad.
Los mapas de atención pueden proporcionar información exploratoria, pero no deben tratarse como pruebas directas de mecanismos biológicos.
Finalmente, la calidad del modelo depende de los datos utilizados en fine-tuning.
Una clasificación aparentemente precisa puede ser engañosa si existe fuga de información entre entrenamiento y prueba.
DNABERT y la inteligencia artificial aplicada a biología
DNABERT forma parte de una evolución más amplia de la inteligencia artificial aplicada a datos biológicos.
Los modelos fundacionales se utilizan actualmente para estudiar diferentes modalidades.
Entre ellas se encuentran secuencias de ADN, ARN, proteínas y datos celulares.
DNABERT demostró que los métodos de preentrenamiento utilizados por BERT podían adaptarse al análisis genómico.
Posteriormente, investigaciones como DNABERT-2, Nucleotide Transformer y HyenaDNA ampliaron estas posibilidades.
Cada arquitectura utiliza diferentes estrategias de tokenización, contexto y entrenamiento.
La elección depende del problema.
Para identificar motivos locales, puede ser suficiente un modelo de contexto relativamente corto.
Para estudiar regiones reguladoras extensas, puede resultar conveniente una arquitectura capaz de procesar secuencias más largas.
Para integrar información sobre tipos celulares o expresión génica, puede ser necesario utilizar datos adicionales.
La arquitectura debe seleccionarse considerando tanto las características matemáticas como la realidad biológica de la tarea.
Importancia de DNABERT en la evolución de los modelos genómicos
La principal contribución de DNABERT consiste en demostrar que el paradigma de preentrenamiento y fine-tuning de BERT puede adaptarse al ADN.
Su diseño permitió reutilizar un encoder Transformer para aprender representaciones contextuales de secuencias genómicas.
La tokenización mediante k-mers convirtió fragmentos biológicos en unidades procesables por un modelo de lenguaje.
El enmascaramiento contiguo abordó un problema específico de esa representación: la gran superposición entre tokens vecinos.
Los experimentos originales mostraron que estas representaciones podían utilizarse para tareas de identificación de promotores, sitios de empalme y unión de factores de transcripción.
El trabajo también impulsó la investigación sobre interpretabilidad y análisis de variantes.
Aunque arquitecturas posteriores ampliaron el contexto y mejoraron determinadas propiedades de eficiencia, DNABERT continúa siendo una referencia importante para comprender la evolución de los modelos fundacionales genómicos.
Preguntas frecuentes sobre DNABERT
¿Qué es DNABERT?
DNABERT es un modelo de aprendizaje profundo basado en BERT que utiliza Transformers bidireccionales y tokenización mediante k-mers para aprender representaciones de secuencias de ADN.
¿Quién desarrolló DNABERT?
Fue desarrollado por Yanrong Ji, Zhihan Zhou, Han Liu y Ramana V. Davuluri. El trabajo principal se publicó en 2021.
¿Qué significa DNABERT?
Su nombre hace referencia a la adaptación al ADN de Bidirectional Encoder Representations from Transformers.
¿DNABERT utiliza Transformers?
Sí. La arquitectura original está basada en BERT-Base, con doce capas Transformer.
¿Qué es un k-mer?
Es un fragmento formado por k nucleótidos consecutivos.
¿Qué tamaños de k-mer utiliza DNABERT?
El trabajo original presentó configuraciones con k igual a 3, 4, 5 y 6.
¿Qué es DNABERT-6?
Es una configuración que utiliza tokens formados por seis nucleótidos consecutivos.
¿Qué es Masked Language Modeling?
Es una tarea autosupervisada donde el modelo intenta reconstruir tokens ocultos utilizando el contexto disponible.
¿Por qué DNABERT utiliza máscaras contiguas?
Porque los k-mers superpuestos comparten nucleótidos y podrían revelar fácilmente el contenido de un token oculto.
¿DNABERT es bidireccional?
Sí. Puede utilizar información situada antes y después de cada posición dentro de su ventana de entrada.
¿DNABERT puede identificar promotores?
Puede adaptarse mediante fine-tuning a tareas de clasificación de regiones promotoras.
¿DNABERT puede analizar variantes genéticas?
Puede utilizarse como componente de sistemas que comparan secuencias de referencia y alternativas, pero sus predicciones requieren validación.
¿DNABERT puede predecir enfermedades?
No de manera clínica general ni por sí solo. Las aplicaciones médicas requieren modelos especializados y evidencia independiente.
¿Cuál es la diferencia entre DNABERT y BERT?
BERT original procesa lenguaje natural. DNABERT adapta la arquitectura a secuencias genómicas mediante k-mers y un procedimiento de enmascaramiento especializado.
¿Cuál es la diferencia entre DNABERT y HyenaDNA?
DNABERT utiliza atención Transformer bidireccional y k-mers. HyenaDNA utiliza convoluciones largas y una representación individual por nucleótido.
¿Qué es DNABERT-2?
Es una evolución publicada en 2023 que incorpora BPE, ALiBi y preentrenamiento sobre múltiples especies.
¿DNABERT puede procesar un millón de nucleótidos?
No en su configuración original de una sola ventana. Para secuencias de esa escala existen arquitecturas específicas como HyenaDNA.
¿Se puede utilizar DNABERT con Python?
Sí. Los autores publicaron implementaciones y checkpoints compatibles con herramientas del ecosistema PyTorch y Hugging Face.
¿DNABERT es un modelo generativo?
Su arquitectura original es un encoder bidireccional entrenado mediante Masked Language Modeling. No es un generador autorregresivo equivalente a GPT.
¿Por qué es importante estudiar DNABERT?
Porque demuestra cómo adaptar los fundamentos de los Transformers y el aprendizaje autosupervisado a secuencias biológicas.
Conclusión
La arquitectura DNABERT representa una contribución importante al desarrollo de modelos fundacionales para genómica.
Su principal innovación consiste en adaptar BERT al procesamiento de ADN mediante tokenización de k-mers superpuestos, autoatención bidireccional y preentrenamiento mediante Masked Language Modeling.
Esta combinación permite aprender representaciones contextuales de regiones genómicas y reutilizarlas posteriormente en diferentes tareas de clasificación.
Los investigadores demostraron resultados competitivos en identificación de promotores, sitios de empalme y regiones asociadas con unión de factores de transcripción.
Además, DNABERT proporcionó herramientas para analizar motivos de secuencia y estudiar cómo determinadas variantes modifican las predicciones.
Sin embargo, la arquitectura original presenta limitaciones de contexto y depende de las características de sus datos de entrenamiento.
Su evolución hacia DNABERT-2 introdujo nuevas estrategias de tokenización y generalización multiespecie.
Para estudiantes, investigadores y desarrolladores de inteligencia artificial, DNABERT ofrece una lección fundamental:
Los mecanismos de comprensión contextual desarrollados para el lenguaje natural pueden adaptarse a secuencias biológicas, siempre que su tokenización, preentrenamiento y evaluación respeten las propiedades particulares del dominio científico.
Comprender DNABERT permite profundizar en los fundamentos de Transformers bidireccionales, k-mers, Masked Language Modeling, transfer learning y modelos fundacionales aplicados a genómica.
Referencias y fuentes oficiales
- Ji, Y., Zhou, Z., Liu, H. y Davuluri, R. V. (2021). DNABERT: Pre-trained Bidirectional Encoder Representations from Transformers Model for DNA-Language in Genome. Bioinformatics, 37(15), 2112–2120. https://doi.org/10.1093/bioinformatics/btab083
- Oxford Academic. DNABERT — Artículo científico original. https://academic.oup.com/bioinformatics/article/37/15/2112/6128680
- PubMed. DNABERT — Registro científico. https://pubmed.ncbi.nlm.nih.gov/33538820/
- Ji, Y. et al. DNABERT — Repositorio oficial. https://github.com/jerryji1993/DNABERT
- Hugging Face. DNABERT-3 — Checkpoint. https://huggingface.co/zhihan1996/DNA_bert_3
- Hugging Face. DNABERT-4 — Checkpoint. https://huggingface.co/zhihan1996/DNA_bert_4
- Hugging Face. DNABERT-5 — Checkpoint. https://huggingface.co/zhihan1996/DNA_bert_5
- Hugging Face. DNABERT-6 — Checkpoint. https://huggingface.co/zhihan1996/DNA_bert_6
- Zhou, Z. et al. (2023). DNABERT-2: Efficient Foundation Model and Benchmark for Multi-Species Genome. https://arxiv.org/abs/2306.15006
- MAGICS-LAB. DNABERT-2 — Repositorio oficial. https://github.com/MAGICS-LAB/DNABERT_2
- Nguyen, E. et al. (2023). HyenaDNA: Long-Range Genomic Sequence Modeling at Single Nucleotide Resolution. https://arxiv.org/abs/2306.15794
- Devlin, J. et al. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. https://arxiv.org/abs/1810.04805
