Evident adalah alat untuk melakukan penghitungan ukuran efek dan daya pada data mikrobioma.
Anda dapat menginstal Evident versi terbaru dari PyPi menggunakan perintah berikut:
pip install evident
Terbukti juga tersedia sebagai plugin QIIME 2. Pastikan Anda telah mengaktifkan lingkungan QIIME 2 dan menjalankan perintah instalasi yang sama seperti di atas.
Untuk memeriksa apakah Evident terinstal dengan benar, jalankan perintah berikut dari baris perintah:
qiime evident --help
Anda akan melihat sesuatu seperti ini jika Evident diinstal dengan benar:
Usage: qiime evident [OPTIONS] COMMAND [ARGS]...
Description: Perform power analysis on microbiome data. Supports
calculation of effect size given metadata covariates and supporting
visualizations.
Plugin website: https://github.com/biocore/evident
Getting user support: Please post to the QIIME 2 forum for help with this
plugin: https://forum.qiime2.org
Options:
--version Show the version and exit.
--example-data PATH Write example data and exit.
--citations Show citations and exit.
--help Show this message and exit.
Commands:
multivariate-effect-size-by-category
Multivariate data effect size by category.
multivariate-power-analysis Multivariate data power analysis.
plot-power-curve Plot power curve.
univariate-effect-size-by-category
Univariate data effect size by category.
univariate-power-analysis Univariate data power analysis.
univariate-power-analysis-repeated-measures
Univariate data power analysis for repeated
measures.
visualize-results Tabulate evident results.
Terbukti dapat beroperasi pada dua jenis data:
Data univariat dapat berupa keragaman alfa. rasio log, koordinat PCoA, dll. Data multivariat biasanya berupa matriks jarak keanekaragaman beta.
Untuk tutorial ini kita akan menggunakan nilai keragaman alfa, namun perintahnya hampir sama untuk matriks jarak keragaman beta.
Pertama, buka Python dan impor Evident
import evident
Selanjutnya, muat file keragaman dan sampel metadata Anda.
import pandas as pd
metadata = pd . read_table ( "data/metadata.tsv" , sep = " t " , index_col = 0 )
faith_pd = metadata [ "faith_pd" ]
Struktur data utama di Evident adalah 'DataHandler'. Ini adalah cara Evident menyimpan data dan metadata untuk penghitungan daya. Untuk contoh keragaman alfa, kami akan memuat kelas UnivariateDataHandler
dari Evident. UnivariateDataHandler
mengambil input Seri panda dengan nilai keragaman dan DataFrame panda yang berisi metadata sampel. Secara default, Evident hanya akan mempertimbangkan kolom metadata dengan maksimal 5 level. Kami memilih 5 sampel sebagai nilai default karena kolom dengan lebih dari 5 grup mungkin merupakan indikasi kolom teknis (misalnya ID subjek). Untuk mengubah perilaku ini, berikan nilai untuk argumen max_levels_per_category
. Anda dapat mengatur nilai ini ke -1 agar tidak memberikan batas atas level untuk menghapus kolom. Selain itu, Evident tidak akan mempertimbangkan tingkat kategori apa pun yang diwakili oleh kurang dari 3 sampel. Kami memilih 3 sampel sebagai nilai default karena level dengan kurang dari 3 sampel mungkin menunjukkan varian yang tinggi. Untuk mengubah perilaku ini, gunakan argumen min_count_per_level
(harus > 1).
adh = evident . UnivariateDataHandler ( faith_pd , metadata )
Selanjutnya, katakanlah kita ingin mendapatkan ukuran pengaruh perbedaan keanekaragaman antara dua kelompok sampel. Dalam contoh kita, kita memiliki kolom dalam "klasifikasi" metadata yang membandingkan dua kelompok pasien dengan penyakit Crohn. Pertama, kita akan melihat rata-rata PD Faith antara kedua kelompok ini.
metadata . groupby ( "classification" ). agg ([ "count" , "mean" , "std" ])[ "faith_pd" ]
yang mengakibatkan
count mean std
classification
B1 99 13.566110 3.455625
Non-B1 121 9.758946 3.874911
Sepertinya ada perbedaan yang cukup besar antara kedua kelompok ini. Apa yang ingin kami lakukan sekarang adalah menghitung besarnya dampak perbedaan ini. Karena kita hanya membandingkan dua kelompok, kita dapat menggunakan d. Cohen. Evident secara otomatis memilih ukuran efek yang tepat untuk dihitung - baik Cohen's d jika hanya terdapat dua kategori atau Cohen's f jika terdapat lebih dari 2.
adh . calculate_effect_size ( column = "classification" )
Ini memberitahu kita bahwa ukuran efek kita adalah 1,03.
Sekarang katakanlah kita ingin melihat berapa banyak sampel yang kita perlukan untuk dapat mendeteksi perbedaan ini dengan kekuatan 0,8. Evident memungkinkan Anda dengan mudah menentukan argumen untuk observasi alfa, pangkat, atau total untuk analisis pangkat. Kami kemudian dapat memplot hasil ini sebagai kurva daya untuk meringkas data.
from evident . plotting import plot_power_curve
import numpy as np
alpha_vals = [ 0.01 , 0.05 , 0.1 ]
obs_vals = np . arange ( 10 , 101 , step = 10 )
results = adh . power_analysis (
"classification" ,
alpha = alpha_vals ,
total_observations = obs_vals
)
plot_power_curve ( results , target_power = 0.8 , style = "alpha" , markers = True )
Saat kita memeriksa plot ini, kita dapat melihat berapa banyak sampel yang perlu kita kumpulkan untuk mengamati ukuran efek yang sama pada tingkat signifikansi dan kekuatan yang berbeda.
Evident memungkinkan pengguna untuk secara interaktif melakukan penghitungan ukuran efek dan daya menggunakan Bokeh. Untuk membuat aplikasi Bokeh, gunakan perintah berikut:
from evident . interactive import create_bokeh_app
create_bokeh_app ( adh , "app" )
Ini akan menyimpan file yang diperlukan ke direktori baru app/
. Arahkan ke direktori yang berisi app/
( bukan app/
itu sendiri) dan jalankan perintah ini dari terminal Anda:
bokeh serve --show app
Ini akan membuka jendela browser dengan visualisasi interaktif. Tab "Ringkasan" memberikan gambaran umum tentang data dan ukuran/kekuatan efek. Barplot yang menunjukkan ukuran efek metadata untuk kategori biner dan kelas jamak (diberi peringkat dalam urutan menurun) ditampilkan. Di sebelah kanan adalah kurva daya dinamis yang menunjukkan analisis daya untuk kolom metadata. Tingkat signifikansi, rentang pengamatan total, dan kolom yang dipilih dapat diubah dengan menggunakan panel kontrol di sisi kiri tab.
Tukar ke tab "Data" menggunakan bilah di atas. Di sini Anda dapat melihat diagram kotak data untuk setiap kategori metadata. Pilih kolom dari dropdown untuk mengubah data mana yang ditampilkan. Anda juga dapat mencentang kotak "Tampilkan titik sebar" untuk melapisi data mentah ke dalam plot kotak.
Perhatikan bahwa karena bukti menggunakan Python untuk melakukan penghitungan daya, saat ini tidak mungkin untuk menyematkan aplikasi interaktif ini ke halaman web mandiri.
Evident memberikan dukungan untuk kerangka analisis data mikrobioma QIIME 2 yang populer. Kami berasumsi dalam tutorial ini bahwa Anda sudah familiar dengan penggunaan QIIME 2 pada baris perintah. Jika tidak, kami menyarankan Anda membaca dokumentasi yang bagus sebelum Anda mulai menggunakan Evident. Perhatikan bahwa kami hanya menguji Evident pada QIIME 2 versi 2021.11. Jika Anda menggunakan versi yang berbeda dan mengalami kesalahan, harap beri tahu kami melalui masalah.
Untuk menghitung daya, kita dapat menjalankan perintah berikut:
qiime evident univariate-power-analysis
--m-sample-metadata-file metadata.qza
--m-sample-metadata-file faith_pd.qza
--p-data-column faith_pd
--p-group-column classification
--p-alpha 0.01 0.05 0.1
--p-total-observations $(seq 10 10 100)
--o-power-analysis-results results.qza
Kami menyediakan beberapa contoh file metadata ke QIIME 2 karena digabungkan secara internal. Anda harus memberikan nilai untuk --p-data-column
sehingga Terbukti mengetahui kolom mana dalam metadata gabungan yang berisi nilai numerik (ini hanya diperlukan untuk analisis univariat). Dalam kasus ini, nama vektor faith_pd.qza
adalah faith_pd
sehingga kita menggunakannya sebagai input.
Perhatikan bagaimana kita menggunakan $(seq 10 10 100)
untuk memberikan masukan ke dalam argumen --p-total-observations
. seq
adalah perintah pada sistem mirip UNIX yang menghasilkan urutan angka. Dalam contoh kita, kita menggunakan seq
untuk menghasilkan nilai dari 10 hingga 100 dalam interval 10 (10, 20, ..., 100).
Dengan artefak hasil ini, kita dapat memvisualisasikan kurva daya untuk memahami bagaimana daya bervariasi menurut jumlah observasi dan tingkat signifikansi. Jalankan perintah berikut:
qiime evident plot-power-curve
--i-power-analysis-results results.qza
--p-target-power 0.8
--p-style alpha
--o-visualization power_curve.qzv
Anda dapat melihat visualisasi ini di view.qiime2.org langsung di browser Anda.
Evident memberikan dukungan untuk memparalelkan penghitungan ukuran efek melalui joblib. Paralelisasi dilakukan di kolom yang berbeda saat menggunakan effect_size_by_category
dan pairwise_effect_size_by_category
. Pertimbangkan paralelisasi jika Anda memiliki banyak sampel dan/atau banyak kategori metadata yang berbeda. Secara default, tidak ada paralelisasi yang dilakukan.
Dengan Python:
from evident . effect_size import effect_size_by_category
effect_size_by_category (
adh ,
[ "classification" , "cd_resection" , "cd_behavior" ],
n_jobs = 2
)
Dengan QIIME 2:
qiime evident univariate-effect-size-by-category
--m-sample-metadata-file metadata.qza
--m-sample-metadata-file faith_pd.qza
--p-data-column faith_pd
--p-group-columns classification sex cd_behavior
--p-n-jobs 2
--o-effect-size-results alpha_effect_sizes.qza
Jika Anda menemukan bug di Evident, silakan posting masalah GitHub dan kami akan menyelesaikannya sesegera mungkin. Kami menyambut setiap ide atau pembaruan/perbaikan dokumentasi, jadi silakan kirimkan masalah dan/atau permintaan penarikan jika Anda memiliki pemikiran untuk menjadikan Evident lebih baik.
Jika pertanyaan Anda mengenai Evident versi QIIME 2, pertimbangkan untuk memposting ke forum QIIME 2. Anda dapat membuka terbitan di papan Dukungan Plugin Komunitas dan memberi tag @gibsramen jika diperlukan.
Jika Anda menggunakan Evident dalam karya Anda, harap kutip pracetak kami di bioRxiv.