La construcción del código de ADN se refiere a la aplicación de la teoría de codificación al diseño de sistemas de ácidos nucleicos para el campo de la computación basada en ADN .
Introducción
Se sabe que las secuencias de ADN aparecen en forma de dobles hélices en las células vivas , en las que una hebra de ADN se hibrida con su hebra complementaria a través de una serie de enlaces de hidrógeno . Para el propósito de esta entrada, nos centraremos únicamente en los oligonucleótidos . La computación del ADN implica permitir que las hebras de oligonucleótidos sintéticos se hibriden de tal manera que se puedan realizar los cálculos . La computación del ADN requiere que el autoensamblaje de las hebras de oligonucleótidos ocurra de tal manera que la hibridación se produzca de una manera compatible con los objetivos del cálculo.
El campo de la computación del ADN se estableció en el artículo seminal de Leonard M. Adelman. [1] Su trabajo es importante por varias razones:
- Muestra cómo se podría utilizar la naturaleza altamente paralela de la computación realizada por el ADN para resolver problemas que son difíciles o casi imposibles de resolver utilizando los métodos tradicionales.
- Es un ejemplo de computación a nivel molecular, en la línea de la nanocomputación , y esto potencialmente es una ventaja importante en cuanto a la densidad de información en los medios de almacenamiento, que nunca podrá ser alcanzada por la industria de los semiconductores.
- Demuestra aspectos únicos del ADN como estructura de datos.
Esta capacidad de computación masiva en paralelo en la computación de ADN se puede aprovechar para resolver muchos problemas computacionales a una escala enormemente grande, como los sistemas computacionales basados en células para el diagnóstico y tratamiento del cáncer y los medios de almacenamiento de densidad ultra alta. [2]
Esta selección de palabras clave (secuencias de oligonucleótidos de ADN) es un obstáculo importante en sí misma debido al fenómeno de la formación de estructura secundaria (en el que las cadenas de ADN tienden a plegarse sobre sí mismas durante la hibridación y, por lo tanto, se vuelven inútiles para cálculos posteriores. Esto también se conoce como autohibridación). El algoritmo Nussinov-Jacobson [3] se utiliza para predecir estructuras secundarias y también para identificar ciertos criterios de diseño que reducen la posibilidad de formación de estructura secundaria en una palabra clave. En esencia, este algoritmo muestra cómo la presencia de una estructura cíclica en un código de ADN reduce la complejidad del problema de probar las palabras clave para estructuras secundarias.
Las construcciones novedosas de dichos códigos incluyen el uso de matrices de Hadamard generalizadas extendidas reversibles cíclicas y un enfoque binario. Antes de sumergirnos en estas construcciones, revisaremos cierta terminología genética fundamental. La motivación de los teoremas presentados en este artículo es que coinciden con el algoritmo de Nussinov-Jacobson, en el sentido de que la existencia de una estructura cíclica ayuda a reducir la complejidad y, por lo tanto, evita la formación de una estructura secundaria, es decir, estos algoritmos satisfacen algunos o todos los requisitos de diseño para oligonucleótidos de ADN en el momento de la hibridación (que es el núcleo del proceso de computación del ADN) y, por lo tanto, no sufren los problemas de la autohibridación.
Definiciones
Un código de ADN es simplemente un conjunto de secuencias sobre el alfabeto .
Cada base de purina es el complemento Watson-Crick de una base de pirimidina única (y viceversa): la adenina y la timina forman un par complementario, al igual que la guanina y la citosina . Este emparejamiento se puede describir de la siguiente manera: .
Este tipo de emparejamiento es químicamente muy estable y fuerte. Sin embargo, a veces se producen emparejamientos de bases no coincidentes debido a mutaciones biológicas .
La mayor parte de la atención que se ha dedicado a la codificación del ADN se ha centrado en la construcción de grandes conjuntos de palabras clave de ADN con propiedades de distancia mínima prescritas. Para ello, establezcamos las bases necesarias para seguir avanzando.
Sea una palabra de longitud sobre el alfabeto . Para , utilizaremos la notación para denotar la subsecuencia . Además, la secuencia obtenida al invertir se denotará como . El complemento de Watson-Crick , o el complemento inverso de q , se define como , donde denota el par de bases del complemento de Watson-Crick de .
Para cualquier par de palabras de longitud y más de , la distancia de Hamming es el número de posiciones en las que . Además, defina la distancia de Hamming inversa como . De manera similar, la distancia de Hamming de complemento inverso es . (donde representa el complemento inverso )
Otra consideración importante del diseño de códigos vinculada al proceso de hibridación de oligonucleótidos se relaciona con el contenido de GC de las secuencias en un código de ADN. El contenido de GC , , de una secuencia de ADN se define como el número de índices tales que . Un código de ADN en el que todas las palabras de código tienen el mismo contenido de GC, , se denomina código de contenido de GC constante .
Una matriz de Hadamard generalizada es una matriz cuadrada con elementos tomados del conjunto de las raíces unitarias, , que satisface = . Aquí denota la matriz identidad de orden , mientras que * representa la conjugación compleja. Nos ocuparemos únicamente del caso de algún primo . Una condición necesaria para la existencia de matrices de Hadamard generalizadas es que . La matriz exponencial , , de es la matriz con los elementos en , se obtiene reemplazando cada elemento en por el exponente .
Los elementos de la matriz del exponente de Hadamard se encuentran en el campo de Galois , y sus vectores de fila constituyen las palabras clave de lo que se llamará un código Hadamard generalizado.
Aquí, los elementos de se encuentran en el campo de Galois .
Por definición, una matriz de Hadamard generalizada en su forma estándar tiene solo 1 en su primera fila y columna. La matriz cuadrada formada por las entradas restantes de se llama núcleo de , y la submatriz correspondiente de la matriz exponencial se llama núcleo de construcción. Por lo tanto, por omisión de la primera columna de todos ceros son posibles los códigos de Hadamard generalizados cíclicos, cuyas palabras de código son los vectores de fila de la matriz perforada.
Además, las filas de dicha matriz exponencial satisfacen las dos propiedades siguientes: (i) en cada una de las filas distintas de cero de la matriz exponencial, cada elemento de aparece un número constante, , de veces; y (ii) la distancia de Hamming entre dos filas cualesquiera es . [4]
Propiedadtú
Sea el grupo cíclico generado por , donde es una raíz primitiva compleja de la unidad, y es un primo fijo. Además, sea , vectores arbitrarios sobre los cuales tienen una longitud , donde es un entero positivo. Defina la colección de diferencias entre exponentes , donde es la multiplicidad del elemento de los cuales aparece en . [4]
Se dice que un vector satisface la propiedad U si y solo si cada elemento de aparece exactamente en tiempos ( )
El siguiente lema es de fundamental importancia para la construcción de códigos Hadamard generalizados.
Lema. Ortogonalidad de vectores sobre – Para primos fijos , vectores arbitrarios de longitud , cuyos elementos son de , son ortogonales si el vector satisface la Propiedad U , donde es la colección de diferencias entre los exponentes de Hadamard asociados con .
Secuencias M
Sea un vector arbitrario de longitud cuyos elementos están en el cuerpo finito , donde es un primo. Sean los elementos de un vector que constituyen el primer periodo de una secuencia infinita que es periódica de periodo . Si es el periodo más pequeño para concebir cualquier subsecuencia, la secuencia se llama una M-secuencia, o una secuencia máxima de menor periodo obtenida permutando cíclicamente los elementos. Si siempre que los elementos de se permutan arbitrariamente para obtener , la secuencia es una M-secuencia, entonces la secuencia se llama M-invariante . Los teoremas que siguen presentan condiciones que aseguran la M-invariancia . En conjunción con una cierta propiedad de uniformidad de los coeficientes polinómicos, estas condiciones producen un método simple por el cual se pueden construir matrices de Hadamard complejas con núcleo cíclico.
El objetivo aquí es encontrar una matriz cíclica cuyos elementos estén en el campo de Galois y cuya dimensión sea . Las filas de serán las palabras de código distintas de cero de un código cíclico lineal , si y solo si hay un polinomio con coeficientes en , que es un divisor propio de y que genera . Para tener palabras de código distintas de cero, debe ser de grado . Además, para generar un núcleo Hadamard cíclico, el vector (de coeficientes de) cuando se opera con la operación de desplazamiento cíclico debe ser de período , y la diferencia vectorial de dos filas arbitrarias de (aumentada con cero) debe satisfacer la condición de uniformidad de Butson, [5] anteriormente denominada Propiedad U . Una condición necesaria para la -periodicidad es que , donde es mónico irreducible sobre . [6]
El enfoque aquí es reemplazar el último requisito con la condición de que los coeficientes del vector se distribuyan uniformemente sobre , es decir, cada residuo aparece el mismo número de veces (Propiedad U). A continuación se presenta una prueba de que este enfoque heurístico siempre produce un núcleo cíclico.
Ejemplos de construcción de código
Construcción de código utilizando matrices de Hadamard complejas
Algoritmo de construcción
Considérese un polinomio irreducible mónico sobre de grado que tiene un compañero adecuado de grado tal que , donde el vector satisface la propiedad U . Esto requiere solamente un algoritmo de computadora simple para la división larga sobre . Como , el ideal generado por es un código cíclico . Además, la propiedad U garantiza que las palabras de código distintas de cero forman una matriz cíclica, cada fila de período bajo permutación cíclica, que sirve como núcleo cíclico para la matriz de Hadamard . Como ejemplo, un núcleo cíclico para resulta de los compañeros y . Los coeficientes de indican que es el conjunto de diferencias relativas, .
Teorema
Sea un primo y , con un polinomio mónico de grado cuyo vector extendido de coeficientes son elementos de . Supóngase que se cumplen las siguientes condiciones:
- vector satisface la propiedad U, y
- , donde es un polinomio irreducible mónico de grado .
Entonces existe un código cíclico lineal p -ario de tamaño de bloque , tal que el código aumentado es la matriz exponencial de la matriz de Hadamard , con , donde el núcleo de es una matriz cíclica.
Prueba:
En primer lugar, observe que es mónica y se divide con grado . Ahora, debemos demostrar que la matriz cuyas filas son palabras de código distintas de cero constituye un núcleo cíclico para alguna matriz Hadamard compleja .
Dado que satisface la propiedad U, todos los residuos distintos de cero de se encuentran en C . Al permutar cíclicamente los elementos de , obtenemos la matriz de exponentes deseada , donde podemos obtener cada palabra de código en permutando la primera palabra de código. (Esto se debe a que la secuencia obtenida al permutar cíclicamente es M-invariante).
También vemos que la ampliación de cada palabra de código de mediante la adición de un elemento cero inicial produce un vector que satisface la propiedad U. Además, dado que el código es lineal, la diferencia vectorial de dos palabras de código arbitrarias también es una palabra de código y, por lo tanto, satisface la propiedad U. Por lo tanto, los vectores de fila del código aumentado forman un exponente de Hadamard. Por lo tanto, es la forma estándar de alguna matriz de Hadamard compleja .
Así, a partir de la propiedad anterior, vemos que el núcleo de es una matriz circulante que consiste en todos los desplazamientos cíclicos de su primera fila. Un núcleo de este tipo se denomina núcleo cíclico, donde en cada elemento de aparece en cada fila de exactamente veces, y la distancia de Hamming entre dos filas cualesquiera es exactamente . Las filas del núcleo forman un código de composición constante , que consiste en desplazamientos cíclicos de cierta longitud sobre el conjunto . La distancia de Hamming entre dos palabras de código cualesquiera en es .
Lo siguiente se puede inferir del teorema explicado anteriormente. (Para una lectura más detallada, el lector puede consultar el artículo de Heng y Cooke. [4] ) Sea para primos y . Sea un polinomio mónico sobre , de grado N − k tal que sobre , para algún polinomio mónico irreducible . Supóngase que el vector , con para (N − k) < i < N, tiene la propiedad de que contiene cada elemento el mismo número de veces. Entonces, los desplazamientos cíclicos del vector forman el núcleo de la matriz exponencial de alguna matriz de Hadamard .
Obviamente, los códigos de ADN con contenido de GC constante se pueden construir a partir de códigos de composición constante (un código de composición constante sobre un alfabeto k-ario tiene la propiedad de que el número de ocurrencias de los símbolos k dentro de una palabra de código es el mismo para cada palabra de código) sobre mediante el mapeo de los símbolos de a los símbolos del alfabeto de ADN, . Por ejemplo, utilizando un código de composición constante cíclico de longitud sobre garantizado por el teorema demostrado anteriormente y la propiedad resultante, y utilizando el mapeo que lleva a , a y a , obtenemos un código de ADN con y un contenido de GC de . Claramente y de hecho, dado que y ninguna palabra de código en no contiene ningún símbolo , también tenemos . Esto se resume en el siguiente corolario. [4]
Corolario
Para cualquier , existen códigos de ADN con palabras de código de longitud , contenido de GC constante y en los que cada palabra de código es un desplazamiento cíclico de una palabra de código generadora fija .
Cada uno de los siguientes vectores genera un núcleo cíclico de una matriz de Hadamard (donde , y en este ejemplo): [4]
;
.
Dónde, .
De este modo, vemos cómo se pueden obtener códigos de ADN a partir de dichos generadores mediante el mapeo en . La elección real del mapeo juega un papel importante en la formación de estructuras secundarias en las palabras de código.
Vemos que todas estas asignaciones producen códigos con esencialmente los mismos parámetros. Sin embargo, la elección real de la asignación tiene una fuerte influencia en la estructura secundaria de las palabras de código. Por ejemplo, la palabra de código ilustrada se obtuvo de mediante la asignación , mientras que la palabra de código se obtuvo del mismo generador mediante la asignación .
Construcción de código mediante un mapeo binario
Tal vez un enfoque más simple para construir/diseñar palabras de código de ADN es tener un mapeo binario al considerar el problema de diseño como el de construir las palabras de código como códigos binarios, es decir, mapear el alfabeto de palabras de código de ADN en el conjunto de palabras binarias de longitud de 2 bits como se muestra: , , , .
Como podemos ver, el primer bit de una imagen binaria determina claramente a qué par complementario pertenece.
Sea una secuencia de ADN. La secuencia obtenida al aplicar la función dada anteriormente a , se denomina imagen binaria de .
Ahora, dejemos que .
Ahora, sea la subsecuencia la subsecuencia par de , y la subsecuencia impar de .
Así, por ejemplo, para , entonces, .
Entonces y .
Definamos un componente par como , y un componente impar como .
A partir de esta elección de mapeo binario, el contenido de GC de la secuencia de ADN = peso de Hamming de .
Por lo tanto, un código de ADN es una palabra de código con contenido GC constante si y solo si su componente par es un código de peso constante.
Sea un código binario que consta de palabras de código de longitud y distancia mínima , tal que implica que .
Para , considere el subcódigo de peso constante , donde denota el peso de Hamming. Elija de modo que , y considere un código de ADN, , con la siguiente elección para sus componentes pares e impares:
, .
Donde denota ordenamiento lexicográfico. El en la definición de asegura que si , entonces , de modo que las distintas palabras de código en no pueden ser complementos inversos entre sí.
El código tiene palabras de código de longitud y peso constante .
Además, y (esto se debe a que es un subconjunto de las palabras de código en ).
También, .
Tenga en cuenta que y ambos tienen peso . Esto implica que y tienen peso .
Y debido a la restricción de peso en , debemos tener para todos , .
Por lo tanto, el código tiene palabras de código de longitud .
De esto, vemos que (porque las palabras clave del componente de se toman de ).
Similarmente, .
Por lo tanto, el código del ADN
con , tiene palabras de código de longitud , y satisface y .
A partir de los ejemplos enumerados anteriormente, uno puede preguntarse: ¿cuál podría ser el potencial futuro de las computadoras basadas en ADN?
A pesar de su enorme potencial, es muy poco probable que este método se implemente en computadoras hogareñas o incluso en computadoras de oficinas, etc., debido a la gran flexibilidad y velocidad, así como a los factores de costo que favorecen a los dispositivos basados en chips de silicio utilizados para las computadoras actuales. [2]
Sin embargo, dicho método podría utilizarse en situaciones donde el único método disponible es éste y requiere la precisión asociada con el mecanismo de hibridación de ADN; aplicaciones que requieren que las operaciones se realicen con un alto grado de confiabilidad.
Actualmente, existen varios paquetes de software, como el paquete Vienna, [7] que pueden predecir formaciones de estructura secundaria en ADN monocatenario (es decir, oligonucleótidos) o secuencias de ARN.
Véase también
Referencias
- ^ Adleman, L. (1994). «Molecular computation of solutions to combinatorial problem» (PDF) . Science . 266 (5187): 1021–4. CiteSeerX 10.1.1.54.2565 . doi :10.1126/science.7973651. PMID 7973651. Archivado desde el original (PDF) el 2005-02-06 . Consultado el 2010-05-04 .
- ^ ab Mansuripur, M.; Khulbe, PK; Kuebler, SM; Perry, JW; Giridhar, MS; Peyghambarian, N. (2003). "Almacenamiento y recuperación de información utilizando macromoléculas como medios de almacenamiento". Serie de resúmenes técnicos de la Optical Society of America .
- ^ Milenkovic, Olgica ; Kashyap, Navin (14–18 de marzo de 2005). Sobre el diseño de códigos para la computación de ADN . Taller internacional sobre codificación y criptografía. Bergen, Noruega. doi :10.1007/11779360_9.
- ^ abcde Cooke, C. (1999). "Construcción polinómica de matrices de Hadamard complejas con núcleo cíclico". Applied Mathematics Letters . 12 : 87–93. doi : 10.1016/S0893-9659(98)00131-1 .
- ^ Adámek, Jiří (1991). Fundamentos de codificación: teoría y aplicaciones de códigos correctores de errores, con una introducción a la criptografía y la teoría de la información . Chichester: Wiley. doi :10.1002/9781118033265. ISBN 978-0-471-62187-4.
- ^ Zierler, N. (1959). "Secuencias recurrentes lineales". J. Soc. Indust. Appl. Math . 7 : 31–48. doi :10.1137/0107003.
- ^ "El paquete de estructura secundaria del ARN de Viena".
Enlaces externos
- Curso de Atri Rudra en la Universidad Estatal de Nueva York, Buffalo