Clasificación de secuencias de ADN basada en Milvus
Autor: Mengjia Gu, ingeniera de datos en Zilliz, se graduó de la Universidad McGill con una maestría en Estudios de la Información. Sus intereses incluyen aplicaciones de IA y búsqueda de similitud con bases de datos vectoriales. Como miembro de la comunidad del proyecto de código abierto Milvus, ha proporcionado y mejorado diversas soluciones, como un sistema de recomendación y un modelo de clasificación de secuencias de ADN. ¡Disfruta los desafíos y nunca se rinde!
Introducción
La secuencia de ADN es un concepto popular tanto en la investigación académica como en aplicaciones prácticas, como la trazabilidad genética, la identificación de especies y el diagnóstico de enfermedades. Mientras todas las industrias anhelan un método de investigación más inteligente y eficiente, la inteligencia artificial ha atraído mucha atención, especialmente en los ámbitos biológico y médico. Cada vez más científicos e investigadores contribuyen al aprendizaje automático y al aprendizaje profundo en bioinformática. Para hacer que los resultados experimentales sean más convincentes, una opción común es aumentar el tamaño de la muestra. La colaboración con big data en genómica también aporta más posibilidades de casos de uso en la realidad. Sin embargo, el alineamiento tradicional de secuencias tiene limitaciones, que lo hacen inadecuado para grandes volúmenes de datos. Para reducir las concesiones en la práctica, la vectorización es una buena opción para un gran conjunto de datos de secuencias de ADN.
La base de datos vectorial de código abierto Milvus es adecuada para datos masivos. Es capaz de almacenar vectores de secuencias de ácidos nucleicos y realizar recuperaciones de alta eficiencia. También puede ayudar a reducir el costo de producción o investigación. El sistema de clasificación de secuencias de ADN basado en Milvus solo tarda milisegundos en realizar la clasificación genética. Además, muestra una mayor precisión que otros clasificadores comunes en aprendizaje automático.
Procesamiento de datos
Un gen que codifica información genética está compuesto por una pequeña sección de secuencias de ADN, que consta de 4 bases nucleotídicas [A, C, G, T]. Hay aproximadamente 30.000 genes en el genoma humano, casi 3 mil millones de pares de bases de ADN, y cada par de bases tiene 2 bases correspondientes. Para admitir usos diversos, las secuencias de ADN pueden clasificarse en varias categorías. Para reducir el costo y facilitar el uso de los datos de secuencias largas de ADN, se introduce k-mer en el preprocesamiento de datos. Mientras tanto, hace que los datos de secuencias de ADN sean más similares al texto sin formato. Además, los datos vectorizados pueden acelerar el cálculo en el análisis de datos o el aprendizaje automático.
Figura 1.
k-mer
El método k-mer se utiliza comúnmente en el preprocesamiento de secuencias de ADN. Extrae una pequeña sección de longitud k comenzando desde cada base de la secuencia original, convirtiendo así una secuencia larga de longitud s en (s-k+1) secuencias cortas de longitud k. Ajustar el valor de k mejorará el rendimiento del modelo. Las listas de secuencias cortas son más fáciles para la lectura de datos, la extracción de características y la vectorización.
Vectorización
Las secuencias de ADN se vectorizan en forma de texto. Una secuencia transformada por k-mer se convierte en una lista de secuencias cortas, que se parece a una lista de palabras individuales en una oración. Por lo tanto, la mayoría de los modelos de procesamiento del lenguaje natural también deberían funcionar con datos de secuencias de ADN. Se pueden aplicar metodologías similares al entrenamiento de modelos, la extracción de características y la codificación. Dado que cada modelo tiene sus propias ventajas e inconvenientes, la selección de modelos depende de las características de los datos y del propósito de la investigación. Por ejemplo, CountVectorizer, un modelo de bolsa de palabras, implementa la extracción de características mediante una tokenización sencilla. No establece ningún límite en la longitud de los datos, pero el resultado devuelto es menos evidente en términos de comparación de similitud.
Demostración de Milvus
Milvus puede gestionar fácilmente datos no estructurados y recuperar los resultados más similares entre billones de vectores con una demora promedio de milisegundos. Su búsqueda de similitud se basa en el algoritmo de búsqueda de Vecino más cercano aproximado (ANN). Estos aspectos destacados hacen de Milvus una excelente opción para gestionar vectores de secuencias de ADN, y por lo tanto promover el desarrollo y las aplicaciones de la bioinformática.
Aquí hay una demostración que muestra cómo crear un sistema de clasificación de secuencias de ADN con Milvus. El conjunto de datos experimental incluye 3 organismos y 7 familias de genes. Todos los datos se convierten en listas de secuencias cortas mediante k-mers. Con un modelo CountVectorizer preentrenado, el sistema luego codifica los datos de secuencia en vectores. El diagrama de flujo a continuación representa la estructura del sistema y los procesos de inserción y búsqueda.
Figura 2.
Prueba esta demostración en Milvus bootcamp.
En Milvus, el sistema crea una colección e inserta los vectores correspondientes de secuencias de ADN en la colección (o partición si está habilitada). Al recibir una solicitud de consulta, Milvus devolverá las distancias entre el vector de la secuencia de ADN de entrada y los resultados más similares en la base de datos. La clase de la secuencia de entrada y la similitud entre secuencias de ADN pueden determinarse mediante las distancias vectoriales en los resultados.
# Insert vectors to Milvus collection (partition "human")
DNA_human = collection.insert([human_ids, human_vectors], partition_name='human')
# Search topK results (in partition "human") for test vectors
res = collection.search(test_vectors, "vector_field", search_params, limit=topK, partition_names=['human'])
for results in res:
res_ids = results.ids # primary keys of topK results
res_distances = results.distances # distances between topK results & search input
Clasificación de secuencias de ADN Buscar las secuencias de ADN más similares en Milvus podría indicar la familia de genes de una muestra desconocida, y así conocer su posible funcionalidad. Si una secuencia se clasifica como GPCRs, entonces probablemente influye en funciones corporales. En esta demostración, Milvus ha permitido con éxito que el sistema identifique las familias de genes de las secuencias de ADN humanas buscadas.
Figura 3.
Figura 4.
Similitud genética
La similitud promedio de secuencias de ADN entre organismos ilustra cuán cercanos son sus genomas. La demostración busca en datos humanos las secuencias de ADN más similares a las del chimpancé y el perro, respectivamente. Luego calcula y compara las distancias promedio de producto interno (0,97 para el chimpancé y 0,70 para el perro), lo que demuestra que el chimpancé comparte genes más similares con el humano que el perro. Con datos y diseño de sistema más complejos, Milvus puede apoyar la investigación genética incluso a un nivel superior.
search_params = {"metric_type": "IP", "params": {"nprobe": 20}}
Rendimiento
La demostración entrena el modelo de clasificación con el 80% de los datos de muestra humana (3629 en total) y utiliza el resto como datos de prueba. Compara el rendimiento del modelo de clasificación de secuencias de ADN que usa Milvus con el impulsado por Mysql y 5 clasificadores populares de aprendizaje automático. El modelo basado en Milvus supera a sus equivalentes en precisión.
from sklearn.model_selection import train_test_split
X, y = human_sequence_kmers, human_labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Figura 5.
Exploración adicional
Con el desarrollo de la tecnología de big data, la vectorización de la secuencia de ADN desempeñará un papel más importante en la investigación y la práctica genéticas. Combinados con conocimientos profesionales en bioinformática, los estudios relacionados pueden beneficiarse aún más de la participación de la vectorización de secuencias de ADN. Por lo tanto, Milvus puede presentar mejores resultados en la práctica. Según los distintos escenarios y las necesidades de los usuarios, la búsqueda de similitud y el cálculo de distancia impulsados por Milvus muestran un gran potencial y muchas posibilidades.
- Estudiar secuencias desconocidas: Según algunos investigadores, la vectorización puede comprimir datos de secuencias de ADN. Al mismo tiempo, requiere menos esfuerzo estudiar la estructura, la función y la evolución de secuencias de ADN desconocidas. Milvus puede almacenar y recuperar una enorme cantidad de vectores de secuencias de ADN sin perder precisión.
- Adaptar dispositivos: Limitada por los algoritmos tradicionales de alineación de secuencias, la búsqueda de similitud apenas puede beneficiarse de la mejora de dispositivos (CPU/GPU). Milvus, que admite tanto el cálculo regular con CPU como la aceleración con GPU, resuelve este problema con un algoritmo de vecinos más cercanos aproximados.
- Detectar virus y rastrear orígenes: Los científicos han comparado secuencias genómicas e informado que el virus COVID19 de probable origen en murciélagos pertenece a SARS-COV. Basándose en esta conclusión, los investigadores pueden ampliar el tamaño de la muestra para obtener más pruebas y patrones.
- Diagnosticar enfermedades: Clínicamente, los médicos podrían comparar secuencias de ADN entre pacientes y un grupo sano para identificar genes variantes que causan enfermedades. Es posible extraer características y codificar estos datos utilizando algoritmos adecuados. Milvus puede devolver distancias entre vectores, que pueden relacionarse con datos de enfermedades. Además de ayudar en el diagnóstico de enfermedades, esta aplicación también puede ayudar a inspirar el estudio de la terapia dirigida.
Obtén más información sobre Milvus
Milvus es una potente herramienta capaz de impulsar una amplia gama de aplicaciones de inteligencia artificial y búsqueda de similitud vectorial. Para obtener más información sobre el proyecto, consulta los siguientes recursos:
Sigue leyendo

Why We Built Vector Lakebase: Rethinking Unstructured Data Architecture for AI
Vector Lakebase: a unified, lake-native data foundation for AI workloads — and an answer to what happens after vector databases succeed.

Zilliz Cloud On-Demand Compute: Pay Only for What You Use
The customer case behind Zilliz Cloud On-Demand: how a $10K vector search bill came down to under $500, and the engineering changes that made it possible.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.



