# K-mero

En bioinformática, los k-meros son subcadenas de la longitud $k$ contenidas dentro de una secuencia biológica. Principalmente utilizadas en el contexto de genómica computacional y análisis de secuencias, en el cual los k-meros están compuestos de nucleótidos (es decir, A, T, G, y C). Son utilizados para ensamblar secuencias de ADN, mejorar la expresión génica heteróloga, identificar especies en muestras metagenómicas, y crear vacunas atenuadas. Normalmente, el término k-mero hace referencia a todas las subsecuencias de longitud $k$ de una secuencia, tal que la secuencia AGAT tendría cuatro monómeros (A, G, A y T), tres dímeros (AG, GA, AT), dos trímeros (AGA y GAT) y un tetrámero (AGAT). De manera más general, una secuencia de longitud $L$ tendrá $L-k+1$ k-meros y $n^{k}$ k-meros posibles en total, $n$ es el número de monómeros posibles (p. ej. cuatro en el caso del ADN).

## Introducción

Los k-meros son sencillamente subsecuencias de longitud $k$. Por ejemplo, todos los k-meros posibles de una secuencia de ADN se muestran abajo:
k-meros para GTAGAGCTGT :
| k | k-meros |
| 1 | G, T, A, G, A, G, C, T, G, T |
| 2 | GT, TA, AG, GA, AG, GC, CT, TG, GT |
| 3 | GTA, TAG, AGA, GAG, AGC, GCT, CTG, TGT |
| 4 | GTAG, TAGA, AGAG, GAGC, AGCT, GCTG, CTGT |
| 5 | GTAGA, TAGAG, AGAGC, GAGCT, AGCTG, GCTGT |
| 6 | GTAGAG, TAGAGC, AGAGCT, GAGCTG, AGCTGT |
| 7 | GTAGAGC, TAGAGCT, AGAGCTG, GAGCTGT |
| 8 | GTAGAGCT, TAGAGCTG, AGAGCTGT |
| 9 | GTAGAGCTG, TAGAGCTGT |
| 10 | GTAGAGCTGT |
Una forma de visualizar los k-meros es mediante el espectro de k-meros, que muestra la multiplicidad de cada k-mero en una secuencia versus el número de k-meros con aquella multiplicidad. El número de modas (o picos en la distribución) de un espectro de k-meros para el genoma de una especie varía, pero generalmente las especies poseen una distribución unimodal. No obstante, todos los mamíferos tienen una distribución multimodal. Por otro, lado, el número de modas dentro de un espectro de k-meros también puede variar entre regiones de genomas: los humanos poseen espectro de k-meros unimodal en las 5' UTR y en los exones, pero espectro multimodal en las 3' UTR y en los intrones.

## Fuerzas que afectan la frecuencia de los k-meros

La frecuencia en el uso del k-mero se ve afectada por numerosas fuerzas, que trabajan en múltiples niveles, a menudo, en conflicto. Los k-meros para valores más altos de k se ven afectados por las fuerzas que también afectan los valores más bajos de k. Por ejemplo, si el 1-mero A no ocurre en una secuencia, tampoco se producirá ninguno de los 2-meros que contienen A (AA, AT, AG y AC).

### k = 1

Cuando k = 1, hay cuatro k-meros de ADN, es decir, A, T, G y C. A nivel molecular, hay tres enlaces de hidrógeno entre G y C, mientras que solo hay dos entre A y T. Los enlaces GC, como resultado del enlace de hidrógeno adicional (y de interacciones de apilamiento más fuertes), son más estables térmicamente que los enlaces AT. Los mamíferos y las aves poseen una proporción más alta de G y C con respecto a la de A y T (contenido de GC), de donde surgió la hipótesis de que la estabilidad térmica era un factor determinante de la variación del contenido de GC. No obstante, estudios entre diferentes procariotas no han mostrado evidencia de que el contenido de GC se correlacione con la temperatura, como predeciría la hipótesis de adaptación térmica. De hecho, si la selección natural fuese la fuerza impulsora de la variación del contenido de GC, los cambios de un solo nucleótido, frecuentemente sinónimos, alterarían la aptitud de un organismo.
Antes bien, la evidencia actual sugiere que la conversión génica sesgada por GC (gBGC en inglés) es un factor impulsor de la variación del contenido de GC. La gBGC es un proceso en el cual se reemplaza G y C con A y T durante la recombinación . Este proceso, pese a ser diferente de la selección natural, puede ejercer una presión selectiva sobre el ADN al sesgar hacia los reemplazos por GC que se fijan en el genoma. Como es de esperar, el contenido de GC es mayor en los sitios que experimentan una mayor recombinación. Por otra parte, los organismos con mayores tasas de recombinación presentan un mayor contenido de GC, de acuerdo con los efectos predichos por la hipótesis de la gBGC. En consecuencia, la gBGC puede verse como un «impostor» de la selección natural. Es interesante señalar que la gBGC no parece limitarse a eucariotas, los organimos asexuales como las bacterias y las arqueas también experimentan recombinación por medio de la conversión de genes, un proceso de reemplazo de secuencias homólogas que da como resultado múltiples secuencias idénticas en todo el genoma. Si la recombinación es capaz de aumentar el contenido de GC en todos los dominios de la vida, la gBGC se conserva universalmente. Empero, como los mecanismos exactos y las ventajas o desventajas evolutivas de la gBGC se desconocen actualmente, queda por determinar si la gBGC es un subproducto (mayoritariamente) neutro de la maquinaria molecular de la vida o si está bajo presión de selección natural.

### k = 2

A diferencia del contenido de GC, que puede variar considerablemente, los sesgos de dinucleótidos son relativamente constantes en todo el genoma. Si el sesgo de dinucleótidos estuviese sujeto a presiones resultantes de la traducción, entonces habría diferentes patrones de sesgo de dinucleótidos en las regiones codificantes y no codificantes impulsadas por la reducción de la eficiencia de traducción de algunos dinucleótidos. Como no los hay, se puede inferir que las fuerzas que modulan el sesgo de los dinucleótidos son independientes de la traducción. Otra evidencia en contra de las presiones de traducción que afectan el sesgo de dinucleótidos es el hecho de que los sesgos de dinucleótidos de los virus, que dependen en gran medida de la eficiencia de traducción, son moldeados por su familia viral más que por sus anfitriones, de los que secuestran la maquinaria de traducción.
Contrario al creciente contenido de GC de la gBGC existe la supresión de CG, la cual reduce la frecuencia de dímeros CG gracias a la desaminación de dinucleótidos de CG metilados, lo que resulta en sustituciones de CG por TG y en la subsiguiente reducción en el contenido de CG. Esta interacción destaca la interrelación entre las fuerzas que afectan los k-meros para diferentes valores de k.
Un hecho interesante acerca del sesgo hacia dinucléotidos es que este puede servir como medida de «distancia» entre genomas filogenéticamente similares. Los genomas de dos organismos que están estrechamente relacionados comparten más sesgos hacia dinucleótidos que entre dos que están menos relacionados.

### k = 3

Hay veinte aminoácidos naturales usados para construir las proteínas que el ADN codifica. No obstante, sólo hay cuatro nucleótidos, de modo que no puede haber una correspondencia unívoca entre nucleótidos y aminoácidos. Asimismo, hay sólo 16 dímeros de ADN, lo que tampoco es suficiente para representar de manera inequívoca cada aminoácido. Aun así, hay 64 trímeros distintos en el ADN, lo que es suficiente para representar inequívocamente cada aminoácido. Estos trímeros se denominan codones. Aunque cada codón sólo se asigna a un aminoácido, cada aminoácido puede estar representado por múltiples codones. Es por esto que la misma secuencia de aminoácidos puede tener múltiples representaciones de ADN. Curiosamente, cada codón de un aminoácido no se usa en proporciones iguales, esto se denomina sesgo en el uso de codones (CUB). Cuando k = 3, se debe hacer una distinción entre la verdadera frecuencia de los trímeros y la del CUB. Por ejemplo, la secuencia ATGGCA tiene cuatro palabras de longitud 3 dentro de ella (ATG, TGG, GGC y GCA), mientras que sólo contiene dos codones (ATG y GCA). Sin embargo, el CUB es un factor importante que impulsa el sesgo hacia el uso de ciertos trímeros (hasta un tercio de este, pues un tercio de los k-meros en una región codificante son codones). Este será el enfoque principal de esta sección.
La causa exacta de la variación entre las frecuencias de los codones no se entiende completamente. Se sabe que la presencia de un codón está relacionada con la abundancia de ARNt, aquellos codones que coinciden con ARNt más abundantes son más frecuentes y las proteínas más altamente expresadas exhiben mayor CUB. Esto sugiere que la selección por eficiencia o precisión traduccional es la fuerza impulsora detrás de la variación en el CUB.

### k = 4

Similar al efecto visto en el sesgo hacia dinucleótidos, los sesgos hacia tetranucleótidos de organismos filogenéticamente más relacionados son más parecidos entre sí que entre organismos menos emparentados. Aunque no se conoce bien la causa exacta de la variación en este sesgo, se ha conjeturado que es el resultado del mantenimiento de la estabilidad genética a nivel molecular.

## Aplicaciones

La frecuencia de un conjunto de k-meros en el genoma de una especie, en una región genómica, o en una clase de secuencias puede usarse como «firma» de la secuencia subyacente. Comparar estas frecuencias es computacionalmente más fácil que hacer un alineamiento de secuencias y es un método importante en el análisis de secuencias sin alineamientos. También puede ser utilizado como análisis preliminar antes de hacer un alineamiento.

### Ensamblaje de secuencias

En el ensamblaje de secuencias, los k-meros son utilizados en la construcción de grafos de De Bruijn. En un grafo De Bruijn, un k-mero almacenado en un arco de longitud $L$ tiene que solaparse con otro k-mero presente en otro arco por $L-1$ para crear un nodo. Las lecturas (reads) generadas a partir de secuenciación de nueva generación usualmente poseen diferentes longitudes de lectura. Por ejemplo, las aquellas provenientes de la secuenciación por tecnología Illumina tienen una longitud de 100. No obstante, el problema con la secuenciación es que sólo se generan fracciones pequeñas de todos los 100-meros (hectómeros) posibles presentes en el genoma. Esto se debe a errores de lectura, pero sobre todo a simples agujeros de cobertura que se producen durante la secuenciación. El problema es que estas fracciones pequeñas de los posibles k-meros violan el supuesto clave de los grafos De Bruijn de que todas las lecturas de k-mero deben solaparse con su k-mero contiguo en el genoma por $k-1$ (lo cual no puede ocurrir si todos los k-meros posibles no están presentes).
La solución a este problema es dividir las lecturas en k-meros más pequeños, de modo que estos representen todos los posibles k-meros de ese tamaño más pequeño presentes en el genoma. Por otro lado, dividir los k-meros en tamaños más pequeños también ayuda a aliviar el inconveniente de tener diferentes longitudes de lectura. En este ejemplo, las cinco lecturas no representan todos los posibles heptámeros del genoma y, como tal, no se puede crear un gráfico de De Bruijn. Empero, cuando se dividen en tetrámeros, las subsecuencias resultantes son suficientes para reconstruir el genoma usando un gráfico de De Bruijn.
Más allá de ser utilizados directamente para ensamblaje de secuencias, los k-meros pueden usarse para detectar el ensamblaje erróneo del genoma al identificar k-meros sobrerrepresentados, lo cual sugiere que secuencias de ADN repetitivo han sido combinadas. Además, los k-meros también se usan para detectar contaminación bacteriana durante el ensamblaje de genoma eucariota, una aproximación tomada del campo de la metagenómica.

#### Elección del tamaño del k-mero

La selección del tamaño del k-mero implica variedad de efectos en el ensamblaje de secuencias. Tales efectos varían bastante entre k-meros de menor y de mayor tamaño; por ello, debe lograrse una comprensión de los distintos tamaños de k-mero para elegir un tamaño adecuado que equilibre los efectos. Los efectos de los tamaños se describen a continuación.

##### k-meros con tamaños más pequeños

* Un tamaño de k-mero pequeño disminuirá la cantidad de arcos almacenados en el grafo y, como tal, ayudará a disminuir la cantidad de espacio requerido para almacenar la secuencia de ADN.
* Tener tamaños más pequeños aumentará la posibilidad de que todos los k-meros se superpongan y tengan las subsecuencias necesarias para construir el grafo de De Bruijn.
* En cambio, al tener k-meros de menor tamaño, también se corre el riesgo de tener muchos nodos en el grafo que conduce a un solo k-mero. Por lo tanto, esto hará que la reconstrucción del genoma sea más difícil, ya que habría un mayor nivel de ambigüedades al momento de recorrer el grafo debido a la mayor cantidad de nodos que deberán atravesarse.
* La información se pierde a medida que los k -meros se hacen más pequeños.
** Por ejemplo: La posibilidad de AGTCGTAGATGCTG es menor que la de ACGT, pero la primera cadena contiene más información (consulte entropía [teoría de la información] para obtener mayor documentación).
* Los k-meros más cortos también tienen el problema de no poder resolver áreas del ADN donde ocurren microsatélites o regiones repetitivas. Esto se debe a que los k-meros tenderán a sentarse completamente dentro de la región repetitiva y, por lo tanto, es difícil determinar la cantidad de repetición que realmente hay.
** Por ejemplo: Para la subsecuencia ATGTGTGTGTGTGTACG, la cantidad de repeticiones de TG se perderá si se elige un tamaño de k-mero menor que 16. Esto se debe a que la mayoría de los k-meros se ubicarán en la región repetitiva y posiblemente se descarten como repeticiones del mismo k-mero en lugar de ser identificados como la cantidad de repeticiones.

##### k-meros con tamaños más grandes

* Tener k-meros de mayor tamaño aumentará el número de arcos en el grafo, lo que a su vez, aumentará la cantidad de memoria necesaria para almacenar la secuencia de ADN.
* Al aumentar el tamaño de los k-meros, el número de nodos disminuirá. Esto ayudará con la reconstrucción del genoma, pues habrá menos caminos que recorrer en el grafo.
* Los k-meros más grandes también corren un mayor riesgo de no poderse solapar con otros k-meros por $k-1$, de modo que se forman menos nodos. Esto puede provocar desuniones en las lecturas y, como tal, puede dar lugar a una mayor cantidad de cóntigos más cortos.
* Tamaños más grandes de k-mero ayudan a aliviar el problema de las regiones de repetitivas cortas. Esto se debe al hecho de que el k-mero contendrá un equilibrio entre la región repetitiva y las secuencias de ADN adyacentes (con tal de que sean de un tamaño lo suficientemente grande) que pueden ayudar a resolver la cantidad de repetición en esa región en particular.

### Genética y genómica

El sesgo de dinucleótidos se ha aplicado a la detección de islas genéticas asociadas con patogenicidad. Además, existen trabajos donde se ha demostrado que los sesgos por tetranucleótidos son capaces de detectar eficazmente transferencia horizontal de genes tanto en procariotas como en eucariotas.
Otra aplicación de los k-meros está en la taxonomía basada en genómica. Por ejemplo, el contenido de GC se ha utilizado para distinguir entre especies de Erwinia con un éxito moderado. Asimismo, el uso de la Tm, temperatura de fusión del ADN, ha tenido usos taxonómicos. Debido a que los enlaces de GC son más estables térmicamente, las secuencias con un mayor contenido de GC muestran una mayor Tm. En 1987, se propuso el uso de ΔTm como factor para determinar límites entre especies como parte del concepto filogenético de especie, aunque esta propuesta no parece haber ganado terreno dentro de la comunidad científica.
Entre otras aplicaciones de los k-meros dentro de la genética y de la genómica están:
* Cuantificación de isoformas de ARN a partir de datos de RNA-seq
* Clasificación de un haplogrupo mitocondrial en humanos
* Detección de sitios de recombinación en genomas
* Estimación del tamaño del genoma usando frecuencia de k-meros contra profundidad de k-mero
* Caracterización de islas CpG por regiones flanqueantes
* Detección de novo secuencias repetidas, como en los transposones
* Código de barras de ADN para las especies.
* Caracterización de motivos de secuencias de unión a proteínas
* Identificación de mutaciones o polimorfismos utilizando datos de secuenciación de próxima generación (NGS)

### Metagenómica

La variación en la frecuencia y espectro de k-mero se usa mucho en metagenómica tanto para análisis como para binning (agrupamiento de lecturas o cóntigos y posterior asignación a genomas individuales). En el binning, el desafío es separar las lecturas de secuenciación en «contenedores» (bins en inglés) de lecturas para cada organismo (o unidad taxonómica operativa) para luego ensamblarlas. Por ejemplo, en función de las frecuencias de tetranucleótidos (k = 4), el algoritmo TETRA toma muestras metagenómicas y las agrupa en organismos diferentes. Otras herramientas que también usan la frecuencia de k-mero para el binning metagenómico son CompostBin ( k = 6), PCAHIER, PhyloPythia (5 ≤ k ≤ 6), CLARK ( k ≥ 20), y TACOA (2 ≤ k ≤ 6). En desarrollos recientes también se ha aplicado aprendizaje profundo al binning metagenómico mediante el uso de k-meros.
Otras aplicaciones dentro de la metagenómica incluyen:
* Recuperación de marcos de lectura a partir de lecturas sin procesar
* Estimación de la abundancia de especies en muestras metagenómicas
* Determinación de especies presentes en muestras determinadas
* Identificación de biomarcadores para enfermedades a partir de muestras

### Biotecnología

Ciertas aplicaciones biotecnológicas modifican las frecuencias de k-mero en secuencias de ADN para controlar la eficiencia traduccional. En particular, para regular tanto al alza como a la baja las tasas de producción de proteínas.
En la producción de proteínas, se ha utilizado la reducción de la frecuencia de dinucleótidos para obtener tasas más altas de síntesis proteica. Además, el sesgo en el uso de codones puede ser modificado para crear secuencias sinónimas con mayores tasas de expresión proteica. Igualmente, la optimización de pares de codones, una combinación de optimización de codones y de dinucleótidos, también se ha empleado con éxito para aumentar la expresión.
La aplicación más estudiada de los k-meros respecto a a disminución en la eficiencia traduccional es la manipulación de pares de codones para atenuar virus con el fin de crear vacunas. Se ha podido recodificar el virus del dengue, causante de la fiebre del dengue, de modo que su sesgo de pares de codones sea más diferente de la preferencia de uso de codones de los mamíferos en comparación con el virus de tipo salvaje. Si bien el virus recodificado contiene una secuencia de aminoácidos idéntica, presenta una patogenicidad significativamente menor pero provoca una respuesta inmunitaria fuerte. Este enfoque también se ha utilizado eficazmente para crear una vacuna contra la influenza, y una vacuna contra el virus del herpes de la enfermedad de Marek (MDV). No obstante, la manipulación del sesgo de pares de codones empleada para atenuar el MDV no reduce eficazmente la oncogenicidad del virus, lo que destaca una debilidad potencial en las aplicaciones biotecnológicas de este enfoque.
Al estudiar los virus y sus hospederos, ha sido posible concluir que el mecanismo molecular que da como resultado la atenuación de los virus es un aumento de dinucleótidos poco adecuados para la traducción.
Otra herramienta biotecnológica importante es la predicción de la temperatura de hibridación durante una PCR mediante el análisis del efecto del contenido GC en el punto de fusión del ADN.

## Implementación
### Seudocódigo

Determinar los posibles k-meros de una lectura se puede hacer simplemente iterando de uno en uno sobre la longitud de la cadena y sacando cada subcadena de longitud $k$ . El seudocódigo para lograr lo anterior es el siguiente:

##### Python3
### En segmentaciones (pipelines) bioinformáticas

Debido a que el número de k-meros crece exponencialmente para valores de k, contar k-meros con valores grandes de k (usualmente > 10) es una tarea computacionalmente difícil. Mientras que implementaciones como el seudocódigo de arriba sirven para trabajar con valores pequeños de k, para aplicaciones de alto rendimiento o cuando k es grande, tales implementaciones deben ser adaptadas. Para solucionar este problema, se han desarrollado varias herramientas:
* Jellyfish usa una tabla hash sin bloqueo y multiprocesada para el recuento de k-meros y tiene vinculaciones con Python, Ruby y Perl
* KMC es una herramienta para el recuento de k-meros que utiliza una arquitectura multidisco para optimizar la velocidad
* Gerbil usa un enfoque de tabla hash pero con soporte adicional para la aceleración de la GPU
* K-mer Analysis Toolkit (KAT) utiliza una versión modificada de Jellyfish para analizar el recuentos de k-meros