Penulis & Pemelihara: Huang Lin: [email protected]
ANCOMBC adalah paket yang mengandung kelimpahan diferensial (DA) dan analisis korelasi untuk data mikrobioma. Secara khusus, paket ini mencakup analisis komposisi mikrobioma dengan bias koreksi 2 (ANCOM-BC2), analisis komposisi mikrobioma dengan koreksi bias (ANCOM-BC), dan analisis komposisi mikrobiom (ANCOM) untuk analisis DA, dan estimasi jarang korelasi antara mikrobioma (SECOM) untuk analisis korelasi. Data mikrobioma biasanya tunduk pada dua sumber bias: fraksi pengambilan sampel yang tidak sama (bias sampel spesifik) dan efisiensi sekuensing diferensial (bias spesifik takson). Metodologi yang termasuk dalam paket ANCOMBC dirancang untuk memperbaiki bias ini dan membangun estimator yang konsisten secara statistik.
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " ANCOMBC " )
library( ANCOMBC )
? ancombc2
? ancombc
? ancom
? secom_linear
? secom_dist
1. Kami mendukung tes untuk interaksi sekarang!
Versi baru ancom
, ancombc
, dan ancombc2
mendukung dimasukkannya istilah interaksi dalam analisis. Lihatlah sketsa terbaru untuk panduan terperinci.
2. Analisis sensitivitas sangat penting!
Untuk pengguna: Kecuali fokus utama studi Anda adalah kekuatan, kami sangat merekomendasikan agar analisis sensitivitas dihidupkan (pengaturan default), karena secara signifikan mengurangi positif palsu.
Untuk para peneliti: Kami telah mencatat beberapa makalah baru-baru ini mengkritik ANCOM-BC2 karena tidak secara memadai mengendalikan positif palsu. Namun, kritik ini gagal menjelaskan fitur analisis sensitivitas kami. Membandingkan ANCOM-BC2 tanpa menggunakan fitur tertanamnya, seperti analisis sensitivitas, bukan evaluasi yang adil. Kami menekankan poin ini dalam pembaruan terbaru kami.
1. T: Apa perbedaan antara formula
dan argumen group
di ancombc
dan ancombc2
?
A: formula
dan argumen group
melayani tujuan yang berbeda dalam fungsi ancombc
dan ancombc2
. Berikut ini rincian perbedaan mereka:
formula
: Argumen ini digunakan untuk menentukan variabel dalam percobaan Anda yang berpotensi mempengaruhi kelimpahan mikroba. Sangat penting untuk memasukkan semua variabel yang relevan dalam formula
untuk memastikan penyesuaian yang tepat dan hasil yang akurat. Misalnya, jika Anda memiliki variabel kontinu seperti age
sebagai variabel utama Anda yang menarik, dan Anda memiliki variabel kategori tambahan yang membutuhkan penyesuaian tetapi tidak secara langsung terkait dengan pertanyaan penelitian Anda, Anda dapat memasukkannya ke dalam formula
sambil meninggalkan group
sebagai nol.
group
: Argumen group
adalah opsional dan hanya boleh ditentukan jika Anda ingin mendeteksi nol struktural (uji kehadiran/absen) atau melakukan perbandingan multi-kelompok, seperti uji global, tes terarah berpasangan, jenis tes Dunnett, atau uji tren Dunnett . Jika variabel minat Anda adalah variabel kategori dengan lebih dari tiga tingkatan dan Anda ingin melakukan perbandingan multi-kelompok, Anda harus memasukkan argumen group
. Penting untuk dicatat bahwa group
tidak sama dengan main_var
di ancom
. Dalam ancombc
dan ancombc2
, group
digunakan untuk perbandingan multi-kelompok dan koreksi nilai-p untuk beberapa perbandingan.
Ingatlah untuk tidak memasukkan main_var
dalam adj_formula
di ancom
, tetapi selalu memasukkan group
dalam formula
atau fix_formula
(di ancombc
dan ancombc2
, masing -masing) jika group
tidak nol. Ini memastikan bahwa penyesuaian dan perbandingan yang tepat dilakukan dalam analisis.
2. T: Mengapa beberapa taksa tidak ada dari hasil utama?
A: Ada beberapa alasan mengapa taksa tertentu mungkin tidak ada dari hasil utama di ancombc
atau ancombc2
. Inilah penjelasannya:
Pengecualian Prevalensi: Taxa dengan prevalensi di bawah ambang batas yang ditentukan ( prv_cut
) akan dikeluarkan dari analisis. Nilai prv_cut
menentukan prevalensi minimum yang diperlukan agar takson dipertimbangkan dalam analisis. Jika prevalensi takson berada di bawah ambang batas ini, itu tidak akan dimasukkan dalam hasil utama.
Struktural Zeros: Taxa yang menunjukkan nol struktural, yang berarti mereka secara konsisten memiliki jumlah nol di semua sampel, akan dianggap signifikan hanya dengan uji ada/tidak ada. Metodologi ANCOM-BC dan ANCOM-BC2 tidak dirancang untuk mendeteksi perbedaan taksa yang signifikan dengan nol struktural. Akibatnya, taksa ini dirangkum secara terpisah dan tidak termasuk dalam hasil utama ancombc
atau ancombc2
.
Untuk mengakses hasil uji ada/absen, Anda dapat merujuk ke output zero_ind
. Ini akan memberikan informasi tentang taksa yang menunjukkan nol struktural.
3. T: Dalam hasil utama, apa yang diwakili lfc_(Intercept)
, lfc_groupB
, dan lfc_groupC
jika saya memiliki variabel group
dengan kategori A
, B
, dan C
?
A: Dalam hasil utama, istilah lfc_groupB
dan lfc_groupC
mewakili perubahan log lip (logfc) relatif terhadap grup referensi, yang merupakan grup A
secara default. Nilai -nilai logfc ini menunjukkan perbedaan kelimpahan antara Grup B
dan Grup A
, dan antara Grup C
dan Grup A
, masing -masing.
Di sisi lain, lfc_(Intercept)
mengacu pada perubahan log rata -rata grand, yang mungkin bukan parameter minat khusus dalam konteks ini.
Perlu disebutkan bahwa jika Anda ingin mengubah grup referensi, Anda dapat menggunakan fungsi factor
dalam R untuk mengatur ulang tingkat variabel group
yang sesuai.
4. T: Saya menemukan pesan kesalahan yang menyatakan "'peringkat' harus menjadi nilai dari 'Taxonomyranks ()'. Apa artinya dan bagaimana saya bisa mengatasinya?
A: Pesan kesalahan "'peringkat' harus menjadi nilai dari 'Taxonomyranks ()'" biasanya terjadi ketika peringkat nama dalam tax_table
Anda tidak diberi label dengan benar. Untuk menyelesaikan masalah ini, disarankan untuk menggunakan fungsi taxonomyRanks(se)
, di mana se
adalah objek tse
Anda.
Pertama, pastikan bahwa nama peringkat dalam tax_table
Anda dinamai dengan benar sebagai salah satu peringkat taksonomi standar, seperti "kerajaan", "filum", "kelas", "orde", "keluarga", "genus", atau "spesies ". Jika nama peringkat saat ini diberi label sebagai sesuatu yang lain, seperti "TA1", "TA2", "TA3", dan sebagainya, Anda perlu memperbaruinya.
Masalah ini biasanya terjadi ketika tax_table
dibentuk dari data.frame
bukan matrix
. Oleh karena itu, penting untuk memastikan bahwa nama peringkat ditetapkan dengan benar sebelum melanjutkan analisis.
Setelah Anda memperbarui nama peringkat di tax_table
Anda, Anda dapat menggunakan fungsi ancombc2
, menentukan tingkat taksonomi yang diinginkan menggunakan argumen tax_level
(misalnya, "Genus"). Ini akan memungkinkan Anda untuk melakukan analisis statistik pada data microbiome Anda di tingkat taksonomi yang ditentukan.
5. T: Saya menemukan masalah saat menggunakan rand_formula
di ancombc2
. Apa sintaks yang benar untuk menentukan efek acak?
A: Saat menentukan efek acak menggunakan rand_formula
di ancombc2
, penting untuk mengikuti konvensi sintaks yang digunakan dalam paket lmerTest
. Perhatikan penempatan tanda kurung dan batang vertikal .
Untuk menentukan efek subjek acak dengan benar, sintaks harus dalam bentuk "(1|subjid)"
, di mana subjid
mewakili nama variabel untuk pengidentifikasi subjek. Sintaks ini memastikan bahwa efek subjek acak diperhitungkan dengan benar dalam analisis.
Di sisi lain, tidak benar menggunakan rand_formula
sebagai "1|subjid"
atau "(subjid)"
untuk menentukan efek acak. Sintaks yang benar harus selalu mencakup tanda kurung di sekitar efek acak dan batang vertikal untuk memisahkannya dari efek tetap.
Dengan menggunakan sintaks yang benar untuk menentukan efek acak, Anda akan dapat secara akurat memasukkan efek ini ke dalam analisis ancombc2
Anda.
6. T: Apa perbedaan antara hasil utama dan hasil jenis tes Dunnett di ANCOM-BC2?
A: Hasil utama dan hasil jenis tes Dunnett di ANCOM-BC2 memberikan informasi tentang taksa yang berlimpah secara berbeda, tetapi ada perbedaan dalam koreksi nilai-p.
Dalam hasil utama, nilai-p dikoreksi di seluruh taksa, yang berarti bahwa mereka memperhitungkan beberapa perbandingan di antara taksa yang berbeda. Koreksi ini membantu mengendalikan tingkat positif palsu ketika menentukan signifikansi taksa individu.
Di sisi lain, jenis tes Dunnett tidak hanya memperbaiki nilai-p di seluruh taksa tetapi juga mengoreksi beberapa perbandingan antar kelompok. Secara khusus, ini membandingkan kelimpahan masing -masing takson dalam kelompok B
dan C
dengan grup referensi A
. Koreksi untuk beberapa perbandingan dalam jenis tes Dunnett menghasilkan hasil yang lebih konservatif, mengurangi kemungkinan hasil positif palsu.
Oleh karena itu, sementara hasil utama dan jenis tes Dunnett memberikan informasi tentang taksa yang berbeda secara berbeda, hasil jenis tes Dunnett menawarkan kontrol tambahan untuk beberapa perbandingan, membuatnya lebih konservatif dan dapat diandalkan.
7. T: Dapatkah fungsi interaksi fungsi ancombc
atau ancombc2
dalam analisis?
A: Ya, versi baru ancom
, ancombc
, dan ancombc2
mendukung dimasukkannya istilah interaksi dalam analisis.
8. T: Dapatkah metodologi ANCOM-BC diterapkan pada tipe data lain seperti kelimpahan fungsional, RNA-seq, atau data RNA sel tunggal?
A: Metodologi ANCOM-BC dapat diterapkan pada tipe data lain selama mereka dianggap komposisi. Namun, penting untuk menyadari bahwa metodologi ini terutama telah dibandingkan dan divalidasi menggunakan data microbiome. Untuk diskusi lebih lanjut, Anda dapat merujuk ke posting ini.
9. T: Apa arti "bukan matriks pasti positif" dalam pemasangan model efek campuran ancombc2
? Bagaimana cara men -debug masalah ini?
A: Pesan kesalahan "Bukan matriks pasti positif" menunjukkan bahwa matriks korelasi yang digunakan dalam model efek campuran tidak pasti positif. Matriks pasti positif adalah matriks kuadrat di mana semua nilai eigen positif. Kesalahan ini biasanya terjadi ketika ada masalah dengan spesifikasi data atau model.
Untuk men -debug masalah ini, saya sarankan untuk menyesuaikan model efek campuran dengan data mentah Anda menggunakan paket lmerTest
di R. Gunakan efek tetap yang sama dan spesifikasi efek acak yang Anda gunakan dalam fungsi ancombc2
. Dengan menyesuaikan model secara langsung, Anda dapat menerima pesan kesalahan yang lebih informatif yang dapat membantu mendiagnosis masalah.
Berikut adalah langkah -langkah yang dapat Anda ikuti untuk men -debug masalah ini:
lmerTest
di R: install.packages("lmerTest")
dan library(lmerTest)
.ancombc2
.lmer()
dari paket lmerTest
.Dengan mengikuti langkah -langkah ini, Anda dapat memperoleh pemahaman yang lebih baik tentang masalah yang menyebabkan kesalahan "bukan matriks pasti positif" dan mengambil tindakan yang tepat untuk mengatasinya.
Jika Anda terus menghadapi kesulitan atau membutuhkan bantuan lebih lanjut, mungkin akan membantu untuk mencari saran dari ahli statistik atau ahli di bidang penelitian spesifik Anda.
10. T: Jika nilai LFC yang lebih tinggi sesuai dengan kelimpahan yang lebih besar, mengapa beberapa jumlah OTU/ASV saya menunjukkan arah yang berlawanan?
A: Penting untuk dicatat bahwa nilai-nilai Log-Fold Change (LFC) dalam konteks ANCOM-BC atau ANCOM-BC2 tidak secara langsung mencerminkan kelimpahan relatif (seperti proporsi) atau kelimpahan yang diamati (seperti jumlah OTU atau ASV) . Nilai LFC mewakili perbedaan dalam kelimpahan yang dikoreksi bias antar kelompok.
Dalam ANCOM-BC atau ANCOM-BC2, nilai LFC yang lebih tinggi menunjukkan perbedaan yang lebih besar dalam kelimpahan yang dikoreksi bias antar kelompok. Namun, ini tidak selalu berarti bahwa kelompok dengan LFC yang lebih tinggi memiliki kelimpahan relatif yang lebih tinggi atau jumlah yang diamati lebih besar untuk OTU atau ASV tertentu.
11. T: Bisakah Anda memberi saya contoh yang lebih rumit dalam melakukan tes tren ANCOM-BC2?
A: Misalnya, saat menggunakan tes tren dengan variabel group
dari 5 kategori yang dipesan ( A, B, C, D, E
) di r, kami sebenarnya memperkirakan 4 kontras, yaitu ( BA, CA, DA, EA
) . Menguji tren A < B < C < D < E
adalah setara dengan pengujian 0 < B - A < C - A < D - A < E - A
. Oleh karena itu, kita dapat menentukan matriks kontras sebagai berikut:
# B-A C-A D-A E-A
1 0 0 0
- 1 1 0 0
0 - 1 1 0
0 0 - 1 1
Di r, itu harus
matrix (c( 1 , 0 , 0 , 0 ,
- 1 , 1 , 0 , 0 ,
0 , - 1 , 1 , 0 ,
0 , 0 , - 1 , 1 ),
nrow = 4 ,
byrow = TRUE )
Untuk diskusi yang lebih mendalam, Anda dapat merujuk ke posting ini.
12. T: OMG, saya masih sangat bingung di nol struktural. Apa mereka? Apa yang dilakukan argumen struc_zero
dan neg_lb
?
A: Takson dianggap memiliki nol struktural dalam beberapa (> = 1) kelompok jika sepenuhnya atau hampir sepenuhnya tidak ada dalam kelompok tersebut. Misalnya, jika ada tiga kelompok, G1, G2, dan G3, dan jumlah takson A adalah 0 di G1 tetapi bukan nol di G2 dan G3, takson A akan dianggap mengandung nol struktural di G1. Dalam skenario ini, takson A dinyatakan secara berbeda berlimpah antara G1 dan G2, G1 dan G3, dan akibatnya secara global berbeda banyak sehubungan dengan variabel grup. Taxa seperti itu tidak dianalisis lebih lanjut menggunakan ANCOM-BC atau ANCOM-BC2, tetapi hasilnya dirangkum dalam zero_ind
. Anda dapat memperlakukan deteksi nol struktural sebagai melakukan uji ada/absen.
Deteksi nol struktural didasarkan pada kertas terpisah, ANCOM-II. Secara khusus, pengaturan neg_lb = TRUE
menunjukkan bahwa kedua kriteria yang dinyatakan dalam Bagian 3.2 dari ANCOM-II digunakan untuk mendeteksi nol struktural. Atau, pengaturan neg_lb = FALSE
hanya akan menggunakan Persamaan 1 di Bagian 3.2 dari ANCOM-II untuk mendeklarasikan nol struktural, menjadikannya pendekatan yang lebih konservatif. Karena tabel OTU/ASV biasanya sangat jarang, disarankan untuk memilih neg_lb = FALSE
untuk mencegah penemuan palsu. Namun, jika Anda memiliki tabel yang lebih padat seperti tabel tingkat keluarga dengan ukuran sampel yang cukup besar, menggunakan neg_lb = TRUE
mungkin merupakan ide yang lebih baik. Penting untuk dicatat bahwa neg_lb
tidak memiliki fungsi jika struc_zero
diatur ke FALSE
. Oleh karena itu, ada tiga kemungkinan kombinasi: struc_zero = FALSE
(terlepas dari neg_lb
), struc_zero = TRUE, neg_lb = FALSE
, atau struc_zero = TRUE, neg_lb = TRUE
.