🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
  • Home
  • Blog
  • Klasifikasi Urutan DNA berdasarkan Milvus

Klasifikasi Urutan DNA berdasarkan Milvus

  • Scenarios
September 06, 2021
Jael Gu

Penulis: Mengjia Gu, seorang insinyur data di Zilliz, lulus dari McGill University dengan gelar Master di bidang Studi Informasi. Minatnya meliputi aplikasi AI dan pencarian kemiripan dengan basis data vektor. Sebagai anggota komunitas proyek sumber terbuka Milvus, ia telah menyediakan dan meningkatkan berbagai solusi, seperti sistem rekomendasi dan model klasifikasi sekuens DNA. Dia menikmati tantangan dan tidak pernah menyerah!

Sekuens DNA adalah konsep yang populer dalam penelitian akademis dan aplikasi praktis, seperti penelusuran gen, identifikasi spesies, dan diagnosis penyakit. Ketika semua industri membutuhkan metode penelitian yang lebih cerdas dan efisien, kecerdasan buatan telah menarik banyak perhatian terutama dari bidang biologi dan medis. Semakin banyak ilmuwan dan peneliti yang berkontribusi pada pembelajaran mesin dan pembelajaran mendalam dalam bioinformatika. Untuk membuat hasil eksperimen lebih meyakinkan, salah satu opsi yang umum dilakukan adalah meningkatkan ukuran sampel. Kolaborasi dengan data besar dalam genomik juga membawa lebih banyak kemungkinan kasus penggunaan dalam kenyataan. Namun, penyelarasan sekuens tradisional memiliki keterbatasan, yang membuatnya tidak cocok untuk data yang besar. Untuk mengurangi trade-off pada kenyataannya, vektorisasi adalah pilihan yang baik untuk kumpulan data sekuens DNA yang besar.

Basis data vektor sumber terbuka Milvus ramah untuk data yang sangat besar. Ia mampu menyimpan vektor sekuens asam nukleat dan melakukan pengambilan dengan efisiensi tinggi. Hal ini juga dapat membantu mengurangi biaya produksi atau penelitian. Sistem klasifikasi sekuens DNA berdasarkan Milvus hanya membutuhkan waktu milidetik untuk melakukan klasifikasi gen. Selain itu, sistem ini menunjukkan akurasi yang lebih tinggi daripada pengklasifikasi umum lainnya dalam pembelajaran mesin.

Gen yang mengkodekan informasi genetik terdiri dari sebagian kecil urutan DNA, yang terdiri dari 4 basa nukleotida [A, C, G, T]. Terdapat sekitar 30.000 gen dalam genom manusia, hampir 3 miliar pasangan basa DNA, dan setiap pasangan basa memiliki 2 basa yang sesuai. Untuk mendukung penggunaan yang beragam, sekuens DNA dapat diklasifikasikan ke dalam berbagai kategori. Untuk mengurangi biaya dan mempermudah penggunaan data sekuens DNA yang panjang, k-mer diperkenalkan pada prapemrosesan data. Sementara itu, k-mer membuat data sekuens DNA menjadi lebih mirip dengan teks biasa. Selain itu, data yang divektorisasi dapat mempercepat penghitungan dalam analisis data atau pembelajaran mesin.

1.png 1.png

k-mer

Metode k-mer biasanya digunakan dalam prapemrosesan sekuens DNA. Metode ini mengekstrak bagian kecil dengan panjang k mulai dari setiap basa dari urutan asli, sehingga mengubah urutan panjang dengan panjang s menjadi (s-k+1) urutan pendek dengan panjang k. Menyesuaikan nilai k akan meningkatkan kinerja model. Daftar urutan pendek lebih mudah untuk pembacaan data, ekstraksi fitur, dan vektorisasi.

Vektorisasi

Sekuens DNA divektorisasi dalam bentuk teks. Sekuens yang ditransformasikan oleh k-mer menjadi daftar sekuens pendek, yang terlihat seperti daftar kata-kata dalam sebuah kalimat. Oleh karena itu, sebagian besar model pemrosesan bahasa alami seharusnya dapat digunakan untuk data sekuens DNA juga. Metodologi yang sama dapat diterapkan pada pelatihan model, ekstraksi fitur, dan penyandian. Karena setiap model memiliki kelebihan dan kekurangannya masing-masing, pemilihan model tergantung pada fitur data dan tujuan penelitian. Sebagai contoh, CountVectorizer, model bag-of-words, mengimplementasikan ekstraksi fitur melalui tokenisasi langsung. Model ini tidak menetapkan batasan panjang data, tetapi hasil yang dikembalikan kurang jelas dalam hal perbandingan kemiripan.

Milvus dapat dengan mudah mengelola data yang tidak terstruktur dan mengingat hasil yang paling mirip di antara triliunan vektor dalam penundaan rata-rata milidetik. Pencarian kemiripannya didasarkan pada algoritma pencarian Approximate Nearest Neighbor (ANN). Hal-hal penting ini menjadikan Milvus pilihan yang tepat untuk mengelola vektor sekuens DNA, sehingga mendorong pengembangan dan aplikasi bioinformatika.

Berikut ini adalah demo yang menunjukkan bagaimana membangun sistem klasifikasi sekuens DNA dengan Milvus. Dataset eksperimental mencakup 3 organisme dan 7 keluarga gen. Semua data dikonversi menjadi daftar sekuens pendek dengan k-mers. Dengan model CountVectorizer yang telah dilatih sebelumnya, sistem kemudian mengkodekan data sekuens menjadi vektor. Diagram alir di bawah ini menggambarkan struktur sistem dan proses penyisipan dan pencarian.

1.png 1.png

Cobalah demo ini di bootcamp Milvus.

Dalam Milvus, sistem membuat koleksi dan menyisipkan vektor-vektor sekuens DNA yang sesuai ke dalam koleksi (atau partisi jika diaktifkan). Ketika menerima permintaan kueri, Milvus akan mengembalikan jarak antara vektor sekuens DNA masukan dan hasil yang paling mirip dalam database. Kelas urutan masukan dan kemiripan antara urutan DNA dapat ditentukan oleh jarak vektor dalam hasil.

# 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

Klasifikasi Urutan DNAMencari urutan DNA yang paling mirip di Milvus dapat mengimplikasikan keluarga gen dari sampel yang tidak diketahui, sehingga dapat mempelajari kemungkinan fungsinya. Jika sebuah urutan diklasifikasikan sebagai GPCR, maka kemungkinan besar urutan tersebut memiliki pengaruh dalam fungsi tubuh. Dalam demo ini, Milvus telah berhasil memungkinkan sistem untuk mengidentifikasi keluarga gen dari sekuens DNA manusia yang dicari.

3.png 3.png 4.png4.png

Kemiripan Genetik

Kesamaan urutan DNA rata-rata antara organisme menggambarkan seberapa dekat antara genom mereka. Demo ini mencari dalam data manusia untuk sekuens DNA yang paling mirip dengan simpanse dan anjing. Kemudian menghitung dan membandingkan jarak inner product rata-rata (0,97 untuk simpanse dan 0,70 untuk anjing), yang membuktikan bahwa simpanse memiliki lebih banyak kesamaan gen dengan manusia dibandingkan dengan anjing. Dengan data dan desain sistem yang lebih kompleks, Milvus mampu mendukung penelitian genetika bahkan pada tingkat yang lebih tinggi.

search_params = {"metric_type": "IP", "params": {"nprobe": 20}}

Kinerja

Demo ini melatih model klasifikasi dengan 80% data sampel manusia (total 3629) dan menggunakan sisanya sebagai data uji. Demo ini membandingkan kinerja model klasifikasi urutan DNA yang menggunakan Milvus dengan model klasifikasi yang didukung oleh Mysql dan 5 pengklasifikasi pembelajaran mesin yang populer. Model yang didasarkan pada Milvus mengungguli rekan-rekannya dalam hal akurasi.

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)

1.png 1.png

Dengan perkembangan teknologi big data, vektorisasi urutan DNA akan memainkan peran yang lebih penting dalam penelitian dan praktik genetik. Dikombinasikan dengan pengetahuan profesional di bidang bioinformatika, penelitian terkait dapat memperoleh manfaat lebih lanjut dari keterlibatan vektorisasi sekuens DNA. Oleh karena itu, Milvus dapat memberikan hasil yang lebih baik dalam praktiknya. Sesuai dengan skenario dan kebutuhan pengguna yang berbeda, pencarian kemiripan dan penghitungan jarak yang didukung oleh Milvus menunjukkan potensi yang besar dan banyak kemungkinan.

  • Mempelajari urutan yang tidak diketahui: Menurut beberapa peneliti, vektorisasi dapat memampatkan data urutan DNA. Pada saat yang sama, dibutuhkan lebih sedikit usaha untuk mempelajari struktur, fungsi, dan evolusi urutan DNA yang tidak diketahui. Milvus dapat menyimpan dan mengambil sejumlah besar vektor urutan DNA tanpa kehilangan akurasi.
  • Beradaptasi dengan perangkat: Dibatasi oleh algoritme tradisional penyelarasan sekuens, pencarian kemiripan hampir tidak bisa mendapatkan manfaat dari peningkatan perangkat(CPU/GPU). Milvus, yang mendukung komputasi CPU biasa dan akselerasi GPU, menyelesaikan masalah ini dengan algoritme tetangga terdekat.
  • Mendeteksi virus & melacak asal-usulnya: Para ilmuwan telah membandingkan sekuens genom dan melaporkan bahwa virus COVID19 yang kemungkinan berasal dari kelelawar adalah SARS-COV. Berdasarkan kesimpulan ini, para peneliti dapat memperluas ukuran sampel untuk mendapatkan lebih banyak bukti dan pola.
  • Mendiagnosis penyakit: Secara klinis, dokter dapat membandingkan sekuens DNA antara pasien dan kelompok sehat untuk mengidentifikasi varian gen yang menyebabkan penyakit. Dimungkinkan untuk mengekstrak fitur dan menyandikan data ini menggunakan algoritma yang tepat. Milvus mampu mengembalikan jarak antara vektor, yang dapat dikaitkan dengan data penyakit. Selain membantu diagnosis penyakit, aplikasi ini juga dapat membantu menginspirasi studi tentang terapi yang ditargetkan.

Milvus adalah alat yang kuat yang mampu memberdayakan beragam kecerdasan buatan dan aplikasi pencarian kemiripan vektor. Untuk mempelajari lebih lanjut tentang proyek ini, lihat sumber-sumber berikut:

  • Baca blog kami.
  • Berinteraksi dengan komunitas sumber terbuka kami di Slack.
  • Gunakan atau kontribusikan database vektor paling populer di dunia di GitHub.
  • Menguji dan menerapkan aplikasi AI dengan cepat menggunakan bootcamp baru kami.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Terus Baca