Satuan 2 / 11

Dasar-dasar Analisis Data Biologis dengan Python

Keuntungan:

  • Kemampuan untuk mempercayai keluaran deterministik dengan menulis kode yang membaca dan membersihkan data biologis ke kecerdasan buatan dan menjalankannya sendiri dengan Pandas, NumPy, dan Biopython
  • Mampu menghindari resiko 'kode yang salah bekerja tanpa kesalahan' dengan menguji kode dengan situasi kecil yang hasilnya diketahui dan tes penegasan.
  • Kemampuan untuk membuat analisis berulang dengan penyematan versi, penyemaian keacakan, dan kebiasaan pelestarian data mentah

Bahasa biologi modern semakin menjadi Python. Pemrosesan manual di buku catatan lab kini berubah menjadi baris kode yang memproses puluhan ribu baris tabel per detik. Dalam unit ini, kita akan belajar menggunakan AI sebagai co-programmer yang mencetak kode Python yang membaca, membersihkan, dan merangkum data biologis Anda. Yang penting adalah menulis kode ke kecerdasan buatan, menjalankannya sendiri dan memverifikasi hasilnya; Hal ini karena hal ini tidak bergantung pada prediksi verbal model, namun pada keluaran kode yang deterministik (memberikan hasil yang sama di setiap proses).

Anda tidak perlu mengetahui cara membuat kode di unit ini; Anda akan belajar mengungkapkan niat dengan benar dan memberikan output.

Mengapa Python dan perpustakaan yang mana?

Pustaka Python (perpustakaan: paket fungsi siap pakai) yang paling banyak digunakan dalam biologi adalah:

  • pandas: Untuk membaca data tabular (CSV, Excel) dan melakukan operasi baris-kolom. Alat dasar untuk memfilter, mengelompokkan, menggabungkan tabel ekspresi gen.
  • NumPy: Untuk array numerik dan operasi matriks; Itu berjalan di bawah panda.
  • Biopython: Untuk bekerja dengan sekuens DNA/RNA/protein, membaca file FASTA, translasi (menerjemahkan DNA menjadi protein).
  • matplotlib / seaborn: Untuk membuat plot.
  • SciPy/statsmodels: Untuk tes statistik.

Kecerdasan buatan mengetahui perpustakaan ini dengan sangat baik. Tugas Anda adalah menyatakan dengan jelas apa yang ingin Anda lakukan dengan perpustakaan mana dan menjalankan serta memverifikasi kode yang dihasilkan.

Petunjuk: Model terkadang dapat "membuat" (berhalusinasi) fungsi perpustakaan yang tidak ada. Jika kode memberikan kesalahan, jangan panik; menempelkan kesalahan kembali ke model seperti biasanya memperbaikinya. Jika masih tidak berhasil, periksa dokumentasi resminya.

Langkah demi langkah: membersihkan meja hitung

Katakanlah Anda memiliki counts.csv: baris adalah gen, kolom adalah sampel, sel adalah jumlah baca mentah. Langkah pertama yang umum:

  1. Memuat: Baca tabel dengan panda.
  2. Penemuan: Periksa ukuran (berapa banyak gen, berapa banyak sampel), nilai yang hilang, duplikat nama gen.
  3. Penyaringan: Buang gen yang tidak terbaca dalam sampel mana pun (jumlah total 0); ini adalah kebisingan.
  4. Ringkasnya: Hitung jumlah total pembacaan per sampel (ukuran perpustakaan); Sampel yang terlalu rendah mungkin gagal.

Anda dapat melakukan outsourcing alur kerja ini ke kecerdasan buatan sebagai berikut:

Peran: Anda adalah asisten Python yang berfokus pada bioinformatika. Tugas: Membaca file counts.csv dengan panda. Data: baris adalah gen (index=gene_id), kolom adalah 24 sampel, nilai adalah bilangan bulat mentah. Saya ingin: (1) mencetak ukurannya, (2) membuang gen yang tidak pernah terbaca, (3) menampilkan total pembacaan per sampel dalam grafik batang. Tambahkan komentar singkat bahasa Turki pada setiap baris. Berikan saja kode yang berfungsi.

Menghasilkan kode model; kamu menjalankannya. Jika Anda melihat 24 kolom dan jumlah gen yang wajar (misalnya 15.000-25.000) pada keluarannya, Anda berada di jalur yang tepat. Jika satu sampel berisi sepersepuluh bacaan dibandingkan sampel lainnya, tuliskan sampel itu.

tiga kasus mini

Kasus 1 - Perangkap nilai yang hilang: Seorang siswa menghitung rata-rata dalam tabel metabolomik 30 sampel; Hasilnya tidak masuk akal. Masalah: sel yang hilang diisi dengan teks "ND" bukan NaN (bukan angka), sehingga kolom tersebut dibaca sebagai teks. Itu diperbaiki ketika saya membuat kecerdasan buatan mengatakan "Buat nilai ND NaN dan ubah kolom menjadi angka". Pelajaran: selalu eksplorasi data mentah terlebih dahulu.

Kasus 2 - Kesalahan penggabungan: Seorang peneliti menggabungkan dua tabel (ekspresi dan anotasi gen) tetapi 2.000 gen hilang. Penyebab: di satu tabel ID-nya adalah "ENSG00000141510", di tabel lain adalah "ENSG00000141510.14" (dengan nomor versi). Model menulis satu baris kode yang menghapus nomor versi; Hilangnya berkurang menjadi 40 gen. Pelajaran: menyelaraskan format ID sebelum menggabungkannya.

Kasus 3 — Hilangnya data secara diam-diam: Seorang teknisi tidak menyadari bahwa setelah pemfilteran, jumlah gen turun dari 22.000 menjadi 8.000; ambang batas ditetapkan secara tidak benar (>10 total bukannya >10 pembacaan di setiap sampel). Gen yang diketahui (gen rumah tangga: gen seperti GAPDH yang terus-menerus diekspresikan di setiap sel) pada akhirnya hilang. Pelajaran: periksa pasca-filter gen yang "harus dimiliki".

Menguji dengan situasi yang diketahui (kebiasaan paling penting)

Cara paling pasti untuk memercayai keakuratan kode yang ditulis oleh kecerdasan buatan adalah dengan mengujinya dengan sampel kecil yang hasilnya sudah Anda ketahui sebelumnya. Misalnya, berikan tabel tiruan dengan 5 baris; hitung totalnya secara manual; Lihat apakah kode tersebut memberikan hasil yang sama.

Tambahkan pengujian ke kode pemfilteran yang Anda tulis: Hasilkan DataFrame kecil yang terdiri dari 5 gen, 3 sampel, sengaja menyetel 2 gen ke nol, verifikasi dengan menegaskan bahwa filter membuang 2 gen ini dengan tepat. Jadikan tes dapat dieksekusi.

menegaskan memperingatkan Anda jika kode menyimpang dari perilaku yang diharapkan. Ini adalah perisai terkuat terhadap risiko “kesimpulan palsu yang diam-diam”.

Perintah lemah / Perintah kuat

Lemah: "Bersihkan grafik saya."

Kuat: "counts.csv: gen baris (indeks gen_id), sampel 24 kolom, nilai bilangan bulat mentah. Lakukan hal berikut: laporkan nilai yang hilang, buang gen yang berjumlah 0 di semua sampel, cetak total pembacaan untuk setiap sampel, bandingkan jumlah gen sebelum/sesudah filter. Berikan saja kode Python yang berfungsi dan diberi komentar."

Perbedaan: Perintah kuat menentukan struktur data, langkah-langkah, dan keluaran validasi (sebelum/sesudah perbandingan). Model tidak perlu menebak-nebak.

Bagan perbandingan: AI atau manual?

transaksi

Cetak ke kecerdasan buatan

verifikasi sendiri

Pembacaan CSV, konversi format

Ya

Periksa ukuran dan jenisnya

Memfilter, mengelompokkan

Ya

Hitung sebelum/sesudah

Tes statistik

Ya (kode)

Konfirmasikan asumsi dan uji

“Berapa baris yang tersisa?”

Tidak (biarkan kodenya dihitung)

Baca hasilnya

Makna biologis dari hasilnya

sebagian

Diperlukan komentar ahli

Kesalahan umum

  • Mengandalkan angka yang dihasilkan model: “Berapa ekspresi rata-ratanya?” Ajukan pertanyaan pada kodenya, bukan modelnya.
  • Tidak memeriksa tipe data: Kolom angka yang dibaca seperti teks secara diam-diam memberikan hasil yang salah.
  • Tidak memeriksa pasca-filter: Verifikasi bahwa gen yang diharapkan masih ada.
  • Melupakan benih keacakan: Jika benih tidak ditetapkan dalam kode yang berisi operasi acak, hasilnya berubah setiap saat; kemampuan pengulangannya terganggu.
  • Menjalankan kode tanpa membacanya: Setidaknya baca komentar dan ikuti logikanya.
Perhatian: Hanya karena kodenya berfungsi bukan berarti kode tersebut benar. "Kode salah yang berfungsi tanpa kesalahan" adalah situasi paling berbahaya dalam biologi; karena hasil yang salah dihasilkan secara diam-diam. Pengujian dengan kondisi yang diketahui menghilangkan risiko ini.

Reproduksibilitas: nilai ilmiah dari kode

Dalam biologi, nilai ilmiah suatu hasil bergantung pada kemampuan orang lain (dan diri Anda di masa depan) untuk mereproduksinya. Operasi tabel manual tidak dicatat; Tidak ada yang tahu sel mana yang berubah dan bagaimana caranya. Kode mendokumentasikan setiap langkah. Oleh karena itu, anggaplah analisis yang Anda hasilkan dengan kecerdasan buatan sebagai catatan yang disimpan dan dibagikan, bukan sebagai kotak sekali pakai.

Tiga kebiasaan penting untuk analisis berulang. Yang pertama adalah penyematan versi: catat versi perpustakaan mana yang Anda gunakan (misalnya pandas 2.2); Versi yang berbeda mungkin memberikan hasil yang berbeda. Yang kedua adalah benih keacakan: memperbaiki benih di setiap kode yang berisi operasi acak sehingga hasilnya sama di setiap proses. Ketiga, jangan pernah mengubah data mentah: jangan sentuh file aslinya, lakukan semua transformasi dalam kode agar dapat dibatalkan.

Tambahkan baris yang mencetak versi perpustakaan yang digunakan di awal kode analisis yang Anda tulis, dan jika ada proses acak, perbaiki seed dengan sanp.random.seed(42). Jangan ubah CSV mentah sama sekali, simpan semua output dalam file terpisah.

Buku catatan Jupyter: kombinasi analisis dan narasi

Lingkungan yang paling banyak digunakan dalam bioinformatika adalah Jupyter notebook (notebook: alat yang menggabungkan kode, keluaran, dan deskripsi dalam dokumen yang sama). Meminta AI menghasilkan kode sesuai dengan sel buku catatan, dengan setiap langkah dipisahkan oleh penjelasan penurunan harga, memudahkan Anda dan kolega Anda untuk mengikuti analisis. Hal ini menjadikan analisis sebagai buku catatan laboratorium yang dapat dibaca, bukan “kotak hitam”.

Mengenali format file biologis

Saat memproses data biologis dengan Python, Anda akan selalu menemukan format file tertentu. Sebelum model dapat membaca file dengan benar, model harus mengetahui format file tersebut; Jika Anda salah memformat, Anda akan jatuh ke dalam perangkap "kode salah yang berfungsi tanpa kesalahan". Yang paling umum adalah:

memformat

Konten

kendaraan yang cocok

CSV/TSV

Data tabel (ekspresi, pengukuran)

panda

CEPAT (.fa/.fasta)

Urutan DNA/RNA/protein

biopython

CEPATQ (.fq)

Urutan mentah dibaca + kualitas

Biopython, alat khusus

VCF

Daftar varian (mutasi).

panda/pysam

GFF/GTF

Anotasi genom (posisi gen)

panda, gffutils

Jika Anda tidak mengenali suatu format, pertama-tama mintalah model untuk mengidentifikasinya dengan memperlihatkan beberapa baris contoh, lalu minta kode yang telah dibaca:

Saya memberikan 5 baris pertama file di bawah ini. Format biofile apa ini? Jelaskan arti kolom/bidang, lalu berikan kode yang aman membaca (pemeriksaan format) file ini dengan Python. 5 baris pertama: [tempel]

Pendekatan ini mencegah kesalahan diam (silent error) yang timbul dari asumsi bentuk.

Singkatnya

Python adalah bahasa pemrosesan utama untuk data biologis; pandas, NumPy dan Biopython adalah alat dasarnya. AI menulis kode ini dengan cepat, tetapi Anda menjalankannya dan memverifikasinya. Kebiasaan yang paling penting adalah menguji kode dengan sampel kecil yang hasilnya Anda ketahui dan masukkan ekspektasi ke dalam kode dengan tegas. Andalkan keluaran deterministik dari kode yang Anda jalankan, bukan tebakan verbal.

Tugas aplikasi

Cetak kode yang membuat AI membaca tabel CSV yang Anda miliki (atau sampelnya), cetak ukurannya, dan saring gen kosong. Kemudian tambahkan tes penegasan dari model dengan 5 baris data dummy. Jalankan kodenya; Catat jumlah gen sebelum dan sesudah filter. Periksa apakah gen housekeeping (misalnya GAPDH/ACTB) masih ada pada hasil.

daftar periksa

  • [ ] Saya memeriksa ukuran dan jenis data sebelum memprosesnya.
  • [] Saya telah secara eksplisit menangani nilai yang hilang.
  • [] Saya membandingkan jumlah baris sebelum/sesudah filter.
  • [] Saya menambahkan tes penegasan dengan kondisi yang diketahui.
  • [ ] Saya menyerahkan penghitungan/perhitungan pada kode, bukan model.
  • [] Saya membaca komentar kode dan mengikuti logikanya.