Unit 2 / 11

Asas Analisis Data Biologi dengan Python

Keuntungan:

  • Keupayaan untuk mempercayai output deterministik dengan menulis kod yang membaca dan membersihkan data biologi kepada kecerdasan buatan dan menjalankannya sendiri dengan Pandas, NumPy dan Biopython
  • Dapat mengelakkan risiko 'kod salah berfungsi tanpa ralat' dengan menguji kod dengan situasi kecil yang hasilnya diketahui dan ujian tegas.
  • Keupayaan untuk mewujudkan analisis berulang dengan penyematan versi, pembenihan rawak dan tabiat pemeliharaan data mentah

Bahasa biologi moden semakin menjadi Python. Pemprosesan manual dalam buku nota makmal kini bertukar menjadi baris pemprosesan kod berpuluh ribu baris jadual sesaat. Dalam unit ini, kita akan belajar menggunakan AI sebagai pengaturcara bersama yang mencetak kod Python yang membaca, membersihkan dan meringkaskan data biologi anda. Perkara penting ialah menulis kod ke kecerdasan buatan, jalankan sendiri dan sahkan hasilnya; Ini kerana ia tidak bergantung pada ramalan lisan model, tetapi pada output deterministik (memberikan hasil yang sama dalam setiap larian) kod.

Anda tidak perlu tahu cara membuat kod dalam unit ini; Anda akan belajar untuk menyatakan niat dengan betul dan memberikan output.

Mengapa Python dan perpustakaan mana?

Perpustakaan Python yang paling banyak digunakan (perpustakaan: pakej fungsi siap sedia) dalam biologi ialah:

  • panda: Untuk membaca data jadual (CSV, Excel) dan melaksanakan operasi lajur baris. Alat asas untuk menapis, mengumpulkan, menggabungkan jadual ekspresi gen.
  • NumPy: Untuk tatasusunan angka dan operasi matriks; Ia berjalan di bawah panda.
  • Biopython: Untuk bekerja dengan urutan DNA/RNA/protein, membaca fail FASTA, terjemahan (menterjemah DNA kepada protein).
  • matplotlib / seaborn: Untuk merancang plot.
  • SciPy/statsmodels: Untuk ujian statistik.

Kecerdasan buatan mengetahui perpustakaan ini dengan baik. Tugas anda adalah untuk menyatakan dengan jelas perkara yang anda mahu lakukan dengan perpustakaan yang mana dan menjalankan serta mengesahkan kod yang dijana.

Petunjuk: Model kadangkala boleh "membuat" (halusinasi) fungsi perpustakaan yang tidak wujud. Jika kod memberikan ralat, jangan panik; menampal semula ralat ke dalam model seperti yang biasanya membetulkannya. Jika masih tidak berfungsi, semak dokumentasi rasmi.

Langkah demi langkah: mengosongkan jadual pengiraan

Katakan anda mempunyai counts.csv: baris ialah gen, lajur ialah sampel, sel ialah kiraan bacaan mentah. Langkah pertama yang biasa:

  1. Memuatkan: Baca jadual dengan panda.
  2. Penemuan: Semak saiz (berapa banyak gen, berapa banyak sampel), nilai yang hilang, nama gen pendua.
  3. Penapisan: Buang gen yang tidak dibaca dalam mana-mana sampel (jumlah kiraan 0); ini adalah bunyi bising.
  4. Ringkaskan: Kira jumlah bilangan bacaan bagi setiap sampel (saiz perpustakaan); Sampel yang terlalu rendah mungkin gagal.

Anda boleh menyumber luar aliran kerja ini kepada kecerdasan buatan seperti berikut:

Peranan: Anda adalah pembantu Python yang memberi tumpuan kepada bioinformatik. Tugas: Baca fail counts.csv dengan panda. Data: baris ialah gen (index=gene_id), lajur ialah 24 sampel, nilai ialah kiraan mentah integer. Saya mahu: (1) mencetak saiz, (2) membuang gen yang tidak pernah dibaca, (3) menunjukkan jumlah bacaan setiap sampel dalam graf bar. Tambahkan ulasan pendek bahasa Turki pada setiap baris. Hanya berikan kod kerja.

Menghasilkan kod model; anda menjalankannya. Jika anda melihat 24 lajur dan bilangan gen yang munasabah (mis. 15,000-25,000) dalam output, anda berada di landasan yang betul. Jika satu sampel mengandungi satu persepuluh lebih banyak bacaan daripada yang lain, tuliskan sampel itu.

tiga kes mini

Kes 1 — Perangkap nilai hilang: Seorang pelajar mempunyai min yang dikira dalam jadual metabolomik 30 sampel; Hasilnya adalah tidak masuk akal. Masalah: sel yang hilang telah diisi dengan teks "ND" dan bukannya NaN (bukan nombor), jadi lajur dibaca sebagai teks. Ia telah ditetapkan apabila saya membuat kecerdasan buatan berkata "Buat nilai ND NaN dan tukar lajur kepada nombor". Pengajaran: sentiasa meneroka data mentah dahulu.

Kes 2 — Ralat penggabungan: Seorang penyelidik menggabungkan dua jadual (ungkapan dan anotasi gen) tetapi 2,000 gen telah hilang. Punca: dalam satu jadual ID ialah "ENSG00000141510", di satu lagi ia adalah "ENSG00000141510.14" (dengan nombor versi). Model menulis satu baris kod yang mengosongkan nombor versi; Kerugian dikurangkan kepada 40 gen. Pelajaran: selaraskan format ID sebelum menggabungkannya.

Kes 3 — Kehilangan data senyap: Seorang juruteknik tidak menyedari bahawa selepas penapisan, bilangan gen menurun daripada 22,000 kepada 8,000; ambang telah ditetapkan dengan salah (>10 jumlah dan bukannya >10 bacaan dalam setiap sampel). Gen yang diketahui (gen pengemasan: gen seperti GAPDH yang sentiasa dinyatakan dalam setiap sel) akhirnya hilang. Pelajaran: semak gen yang "mesti ada" selepas penapisan.

Menguji dengan situasi yang diketahui (kebiasaan yang paling penting)

Cara paling pasti untuk mempercayai ketepatan kod yang ditulis oleh kecerdasan buatan adalah dengan mengujinya dengan sampel kecil yang hasilnya anda ketahui terlebih dahulu. Sebagai contoh, berikan jadual dummy dengan 5 baris; mengira jumlah secara manual; Lihat jika kod memberikan hasil yang sama.

Tambahkan ujian pada kod penapisan yang anda tulis: Hasilkan DataFrame kecil yang terdiri daripada 5 gen, 3 sampel, tetapkan 2 gen kepada sifar dengan sengaja, sahkan dengan tegas bahawa penapis membuang tepat 2 gen ini. Jadikan ujian boleh dilaksanakan.

menegaskan memberi amaran kepada anda jika kod itu menyimpang daripada tingkah laku yang dijangkakan. Ini adalah perisai terkuat terhadap risiko "kesimpulan palsu senyap".

Gesaan lemah / Gesaan kuat

Lemah: "Bersihkan carta saya."

Berkuasa: "counts.csv: rows gen (gene_id index), 24 lajur sampel, nilai integer mentah. Lakukan perkara berikut: laporkan nilai yang hilang, buang gen yang berjumlah 0 merentas semua sampel, cetak jumlah bacaan untuk setiap sampel, bandingkan kiraan gen sebelum/selepas penapis. Hanya berikan kod Python yang berfungsi, mengulas."

Perbezaan: Gesaan kuat menentukan struktur data, langkah dan output pengesahan (sebelum/selepas perbandingan). Model tidak perlu meneka.

Carta perbandingan: AI atau manual?

transaksi

Cetak ke kecerdasan buatan

sahkan sendiri

Pembacaan CSV, penukaran format

ya

Semak saiz dan jenis

Penapisan, pengelompokan

ya

Kira sebelum/selepas

Ujian statistik

Ya (kod)

Sahkan andaian dan uji

"Berapa banyak baris yang tinggal?"

Tidak (biar kod dikira)

Baca output

Makna biologi hasil

sebahagiannya

Komen pakar diperlukan

Kesilapan biasa

  • Bergantung pada nombor yang dihasilkan oleh model: "Apakah ungkapan purata?" Tanya soalan kepada kod, bukan model.
  • Tidak menyemak jenis data: Lajur nombor yang dibaca seperti teks secara senyap mengembalikan hasil yang salah.
  • Tidak menyemak pasca penapis: Sahkan bahawa gen yang dijangka masih ada.
  • Melupakan benih rawak: Jika benih tidak ditetapkan dalam kod yang mengandungi operasi rawak, hasilnya berubah setiap kali; kebolehulangan terjejas.
  • Menjalankan kod tanpa membacanya: Sekurang-kurangnya baca komen dan ikut logiknya.
Perhatian: Hanya kerana kod berfungsi tidak bermakna kod itu betul. "Kod salah yang berfungsi tanpa ralat" adalah situasi paling berbahaya dalam biologi; kerana hasil yang salah dihasilkan secara senyap. Ujian dengan keadaan yang diketahui menghapuskan risiko ini.

Kebolehulangan: nilai saintifik kod

Dalam biologi, nilai saintifik sesuatu hasil bergantung pada keupayaan orang lain (dan diri masa depan anda) untuk menghasilkan semula. Operasi jadual manual tidak direkodkan; Tiada siapa yang tahu sel mana yang berubah dan bagaimana. Kod mendokumenkan setiap langkah. Oleh itu, fikirkan analisis yang anda hasilkan dengan kecerdasan buatan sebagai rekod yang disimpan dan dikongsi, bukan sebagai kotak sekali sahaja.

Tiga tabiat adalah penting untuk analisis yang boleh diulang. Yang pertama ialah penyematan versi: perhatikan versi perpustakaan yang anda gunakan (cth. panda 2.2); Versi yang berbeza mungkin memberikan hasil yang berbeza. Yang kedua ialah benih rawak: tetapkan benih dalam setiap kod yang mengandungi operasi rawak supaya hasilnya sama dalam setiap larian. Ketiga, jangan sekali-kali menukar data mentah: jangan sentuh fail asal, lakukan semua transformasi dalam kod supaya ia boleh digulung semula.

Tambahkan baris yang mencetak versi perpustakaan yang digunakan pada permulaan kod analisis yang anda tulis, dan jika terdapat proses rawak, betulkan benih dengan sanp.random.seed(42). Jangan ubah CSV mentah sama sekali, simpan semua output dalam fail berasingan.

Buku nota Jupyter: gabungan analisis dan naratif

Persekitaran yang paling banyak digunakan dalam bioinformatik ialah buku nota Jupyter (buku nota: alat yang menggabungkan kod, output dan penerangan dalam dokumen yang sama). Mempunyai AI menjana kod mengikut sel buku nota, dengan setiap langkah dipisahkan oleh penjelasan Penurunan Harga, memudahkan anda dan rakan sekerja anda mengikuti analisis. Ini menjadikan analisis sebagai buku nota makmal yang boleh dibaca, bukan "kotak hitam".

Mengenali format fail biologi

Apabila memproses data biologi dengan Python, anda akan sentiasa menghadapi format fail tertentu. Sebelum model boleh membaca fail dengan betul, ia mesti tahu dalam format apa ia; Jika anda tersalah format, anda akan jatuh ke dalam perangkap "kod salah yang berfungsi tanpa ralat". Yang paling biasa ialah:

format

kandungan

kenderaan yang sesuai

CSV/TSV

Data jadual (ungkapan, ukuran)

panda

FASTA (.fa/.fasta)

Urutan DNA/RNA/protein

biopython

FASTQ (.fq)

Bacaan jujukan mentah + kualiti

Biopython, alatan tersuai

VCF

Senarai varian (mutasi).

panda/pysam

GFF/GTF

Anotasi genom (kedudukan gen)

panda, gffutils

Jika anda tidak mengenali format, mula-mula minta model mengenal pastinya dengan menunjukkan beberapa baris sampel, kemudian minta kod baca:

Saya memberikan 5 baris pertama fail di bawah. Apakah format biofile ini? Terangkan maksud lajur/medan, kemudian berikan kod yang selamat membaca (semakan format) fail ini dalam Python. 5 baris pertama: [tampal]

Pendekatan ini menghalang kesilapan senyap yang timbul daripada andaian bentuk di tempat pertama.

Secara ringkasnya

Python ialah bahasa pemprosesan utama untuk data biologi; panda, NumPy dan Biopython ialah alatan asas. AI menulis kod ini dengan cepat, tetapi anda menjalankannya dan mengesahkannya. Tabiat yang paling kritikal adalah untuk menguji kod dengan sampel kecil yang hasilnya anda tahu dan membenamkan jangkaan ke dalam kod dengan tegas. Bergantung pada output deterministik kod yang anda jalankan, bukan tekaan lisan.

Tugasan permohonan

Cetak kod yang mempunyai AI membaca jadual CSV yang anda miliki (atau satu contoh), cetak saiznya dan tapis gen kosong. Kemudian tambahkan ujian assert daripada model dengan 5 baris data tiruan. Jalankan kod; Perhatikan bilangan gen sebelum dan selepas penapis. Semak sama ada gen pengemasan (cth. GAPDH/ACTB) masih terdapat dalam hasilnya.

senarai semak

  • [ ] Saya menyemak saiz dan jenis data sebelum memprosesnya.
  • [ ] Saya telah mengendalikan nilai yang hilang secara eksplisit.
  • [ ] Saya membandingkan bilangan baris sebelum/selepas penapis.
  • [ ] Saya menambah ujian tegasan dengan keadaan yang diketahui.
  • [ ] Saya menyerahkan pengiraan/pengiraan kepada kod, bukan model.
  • [ ] Saya membaca komen kod dan mengikut logik.