Evident เป็นเครื่องมือสำหรับคำนวณขนาดเอฟเฟกต์และกำลังของข้อมูลไมโครไบโอม
คุณสามารถติดตั้ง Evident เวอร์ชันล่าสุดจาก PyPi ได้โดยใช้คำสั่งต่อไปนี้:
pip install evident
Evident ยังมีให้บริการในรูปแบบปลั๊กอิน QIIME 2 ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งานสภาพแวดล้อม QIIME 2 และรันคำสั่งการติดตั้งเดียวกันกับข้างต้น
หากต้องการตรวจสอบว่า Evident ติดตั้งอย่างถูกต้อง ให้รันสิ่งต่อไปนี้จากบรรทัดคำสั่ง:
qiime evident --help
คุณควรเห็นสิ่งนี้หาก Evident ติดตั้งอย่างถูกต้อง:
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.
Evident สามารถทำงานกับข้อมูลได้ 2 ประเภท:
ข้อมูลตัวแปรเดียวสามารถเป็นความหลากหลายอัลฟาได้ อัตราส่วนบันทึก พิกัด PCoA ฯลฯ ข้อมูลหลายตัวแปรมักเป็นเมทริกซ์ระยะทางแบบเบต้าความหลากหลาย
สำหรับบทช่วยสอนนี้ เราจะใช้ค่าความหลากหลายอัลฟา แต่คำสั่งเกือบจะเหมือนกันสำหรับเมทริกซ์ระยะทางความหลากหลายเบต้า
ขั้นแรก เปิด Python แล้วนำเข้า Evident
import evident
จากนั้น โหลดไฟล์ความหลากหลายและข้อมูลเมตาตัวอย่างของคุณ
import pandas as pd
metadata = pd . read_table ( "data/metadata.tsv" , sep = " t " , index_col = 0 )
faith_pd = metadata [ "faith_pd" ]
โครงสร้างข้อมูลหลักใน Evident คือ 'DataHandler' นี่เป็นวิธีที่ Evident จัดเก็บข้อมูลและข้อมูลเมตาสำหรับการคำนวณกำลัง สำหรับตัวอย่างความหลากหลายอัลฟ่า เราจะโหลดคลาส UnivariateDataHandler
จาก Evident UnivariateDataHandler
ใช้เป็นอินพุต pandas Series ที่มีค่าความหลากหลายและ pandas DataFrame ที่มีข้อมูลเมตาตัวอย่าง ตามค่าเริ่มต้น Evident จะพิจารณาเฉพาะคอลัมน์ข้อมูลเมตาที่มีสูงสุด 5 ระดับ เราเลือก 5 ตัวอย่างเป็นค่าเริ่มต้น เนื่องจากคอลัมน์ที่มีมากกว่า 5 กลุ่มอาจบ่งบอกถึงคอลัมน์ทางเทคนิค (เช่น รหัสหัวเรื่อง) หากต้องการแก้ไขลักษณะการทำงานนี้ ให้ระบุค่าสำหรับอาร์กิวเมนต์ max_levels_per_category
คุณสามารถตั้งค่านี้เป็น -1 เพื่อไม่ให้มีขีดจำกัดบนของระดับที่จะปล่อยคอลัมน์ นอกจากนี้ Evident จะไม่พิจารณาระดับหมวดหมู่ใดๆ ที่แสดงโดยตัวอย่างน้อยกว่า 3 ตัวอย่าง เราเลือก 3 ตัวอย่างเป็นค่าเริ่มต้น เนื่องจากระดับที่มีตัวอย่างน้อยกว่า 3 ตัวอย่างอาจแสดงความแปรปรวนสูง หากต้องการแก้ไขลักษณะการทำงานนี้ ให้ใช้อาร์กิวเมนต์ min_count_per_level
(ต้องเป็น > 1)
adh = evident . UnivariateDataHandler ( faith_pd , metadata )
ต่อไป สมมติว่าเราต้องการหาขนาดเอฟเฟกต์ของความแตกต่างความหลากหลายระหว่างกลุ่มตัวอย่างสองกลุ่ม เรามีคอลัมน์ใน "การจำแนก" ข้อมูลเมตาในตัวอย่างของเรา ซึ่งเปรียบเทียบผู้ป่วยสองกลุ่มที่เป็นโรคโครห์น อันดับแรก เราจะดูค่าเฉลี่ยของ PD ของ Faith ระหว่างสองกลุ่มนี้
metadata . groupby ( "classification" ). agg ([ "count" , "mean" , "std" ])[ "faith_pd" ]
ซึ่งส่งผลให้
count mean std
classification
B1 99 13.566110 3.455625
Non-B1 121 9.758946 3.874911
ดูเหมือนว่ามีความแตกต่างกันมากระหว่างสองกลุ่มนี้ สิ่งที่เราต้องการทำตอนนี้คือคำนวณขนาดเอฟเฟกต์ของความแตกต่างนี้ เนื่องจากเรากำลังเปรียบเทียบเพียงสองกลุ่ม เราจึงใช้ d ของโคเฮนได้ Evident จะเลือกขนาดเอฟเฟกต์ที่ถูกต้องโดยอัตโนมัติในการคำนวณ - อย่างใดอย่างหนึ่งคือ d ของโคเฮนหากมีเพียงสองประเภท หรือของโคเฮนหากมีมากกว่า 2 หมวดหมู่
adh . calculate_effect_size ( column = "classification" )
สิ่งนี้บอกเราว่าขนาดเอฟเฟกต์ของเราคือ 1.03
ทีนี้ สมมติว่าเราต้องการดูว่าเราต้องมีตัวอย่างจำนวนเท่าใดจึงจะตรวจพบความแตกต่างนี้ด้วยกำลัง 0.8 Evident ช่วยให้คุณสามารถระบุอาร์กิวเมนต์สำหรับอัลฟ่า กำลัง หรือการสังเกตทั้งหมดสำหรับการวิเคราะห์กำลังได้อย่างง่ายดาย จากนั้นเราสามารถพล็อตผลลัพธ์เหล่านี้เป็นกราฟกำลังเพื่อสรุปข้อมูลได้
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 )
เมื่อเราตรวจสอบพล็อตนี้ เราจะเห็นว่าเราต้องรวบรวมตัวอย่างจำนวนเท่าใดเพื่อสังเกตเอฟเฟกต์ขนาดเดียวกันที่ระดับนัยสำคัญและพลังที่ต่างกัน
Evident ช่วยให้ผู้ใช้สามารถ โต้ตอบ การคำนวณขนาดเอฟเฟกต์และกำลังโดยใช้โบเก้ หากต้องการสร้างแอป Bokeh ให้ใช้คำสั่งต่อไปนี้:
from evident . interactive import create_bokeh_app
create_bokeh_app ( adh , "app" )
วิธีนี้จะบันทึกไฟล์ที่จำเป็นลงใน app/
นำทางไปยังไดเร็กทอรีที่มี app/
( ไม่ใช่ app/
เอง) และดำเนินการคำสั่งนี้จากเทอร์มินัลของคุณ:
bokeh serve --show app
นี่ควรเปิดหน้าต่างเบราว์เซอร์พร้อมการแสดงภาพแบบโต้ตอบ แท็บ "สรุป" จะแสดงภาพรวมของข้อมูลและขนาด/กำลังของเอฟเฟกต์ Barplots ที่แสดงขนาดเอฟเฟกต์เมทาดาทาสำหรับทั้งหมวดหมู่ไบนารีและหลายคลาส (จัดอันดับจากมากไปน้อย) จะแสดงขึ้น ทางด้านขวาคือกราฟกำลังแบบไดนามิกที่แสดงการวิเคราะห์กำลังสำหรับคอลัมน์ข้อมูลเมตา ระดับนัยสำคัญ ช่วงการสังเกตทั้งหมด และคอลัมน์ที่เลือกสามารถแก้ไขได้โดยใช้แผงควบคุมทางด้านซ้ายของแท็บ
สลับไปที่แท็บ "ข้อมูล" โดยใช้แถบด้านบน คุณสามารถดู Boxplots ของข้อมูลสำหรับหมวดหมู่ข้อมูลเมตาแต่ละหมวดหมู่ได้ที่นี่ เลือกคอลัมน์จากเมนูแบบเลื่อนลงเพื่อเปลี่ยนข้อมูลที่จะแสดง คุณยังสามารถทำเครื่องหมายที่ช่อง "แสดงจุดกระจาย" เพื่อวางซ้อนข้อมูลดิบลงบน Boxplots
โปรดทราบว่าเนื่องจากเห็นได้ชัดว่าใช้ Python ในการคำนวณกำลัง ในขณะนี้จึง ไม่ สามารถฝังแอปแบบโต้ตอบนี้ลงในหน้าเว็บแบบสแตนด์อโลนได้
Evident ให้การสนับสนุนเฟรมเวิร์ก QIIME 2 ยอดนิยมของการวิเคราะห์ข้อมูลไมโครไบโอม ในบทช่วยสอนนี้ เราถือว่าคุณคุ้นเคยกับการใช้ QIIME 2 บนบรรทัดคำสั่งแล้ว ถ้าไม่ เราขอแนะนำให้คุณอ่านเอกสารประกอบที่ดีก่อนที่คุณจะเริ่มต้นใช้งาน Evident โปรดทราบว่าเราได้ทดสอบ Evident บน QIIME 2 เวอร์ชัน 2021.11 เท่านั้น หากคุณกำลังใช้เวอร์ชันอื่นและพบข้อผิดพลาด โปรดแจ้งให้เราทราบผ่านปัญหา
ในการคำนวณกำลัง เราสามารถรันคำสั่งต่อไปนี้:
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
เราจัดเตรียมไฟล์ข้อมูลเมตาตัวอย่างหลายไฟล์ให้กับ QIIME 2 เนื่องจากมีการรวมไฟล์ไว้ภายใน คุณควรระบุค่าสำหรับ --p-data-column
เพื่อให้ Evident รู้ว่าคอลัมน์ใดในข้อมูลเมตาที่ผสานมีค่าตัวเลข (นี่จำเป็นสำหรับการวิเคราะห์แบบไม่แปรผันเท่านั้น) ในกรณีนี้ ชื่อของเวกเตอร์ faith_pd.qza
คือ faith_pd
ดังนั้นเราจึงใช้สิ่งนั้นเป็นอินพุต
สังเกตว่าเราใช้ $(seq 10 10 100)
เพื่อป้อนข้อมูลลงในอาร์กิวเมนต์ --p-total-observations
อย่างไร seq
เป็นคำสั่งบนระบบที่คล้ายกับ UNIX ที่สร้างลำดับตัวเลข ในตัวอย่างของเรา เราใช้ seq
เพื่อสร้างค่าตั้งแต่ 10 ถึง 100 ในช่วงเวลา 10 (10, 20, ..., 100)
ด้วยสิ่งประดิษฐ์ของผลลัพธ์นี้ เราสามารถมองเห็นกราฟกำลังเพื่อทำความเข้าใจว่ากำลังเปลี่ยนแปลงไปอย่างไรตามจำนวนการสังเกตและระดับนัยสำคัญ รันคำสั่งต่อไปนี้:
qiime evident plot-power-curve
--i-power-analysis-results results.qza
--p-target-power 0.8
--p-style alpha
--o-visualization power_curve.qzv
คุณสามารถดูการแสดงภาพนี้ได้ที่ view.qiime2.org โดยตรงในเบราว์เซอร์ของคุณ
Evident ให้การสนับสนุนการคำนวณขนาดเอฟเฟกต์แบบขนานผ่าน joblib การทำให้ขนานกันจะดำเนินการในคอลัมน์ต่างๆ เมื่อใช้ effect_size_by_category
และ pairwise_effect_size_by_category
พิจารณาการทำแบบคู่ขนานหากคุณมีตัวอย่างจำนวนมากและ/หรือหมวดหมู่ข้อมูลเมตาที่แตกต่างกันจำนวนมากที่น่าสนใจ โดยค่าเริ่มต้น จะไม่มีการขนานกัน
ด้วยหลาม:
from evident . effect_size import effect_size_by_category
effect_size_by_category (
adh ,
[ "classification" , "cd_resection" , "cd_behavior" ],
n_jobs = 2
)
ด้วย 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
หากคุณพบจุดบกพร่องใน Evident โปรดโพสต์ปัญหา GitHub แล้วเราจะดำเนินการแก้ไขโดยเร็วที่สุด เรายินดีรับแนวคิดหรือเอกสารการอัปเดต/การแก้ไข ดังนั้นโปรดส่งปัญหาและ/หรือคำขอดึงข้อมูลหากคุณมีความคิดที่จะทำให้ Evident ดีขึ้น
หากคำถามของคุณเกี่ยวกับ Evident เวอร์ชัน QIIME 2 โปรดโพสต์ไปที่ฟอรัม QIIME 2 คุณสามารถเปิดปัญหาบนกระดานสนับสนุนปลั๊กอินชุมชนและแท็ก @gibsramen หากจำเป็น
หากคุณใช้ Evident ในงานของคุณ โปรดอ้างอิงเอกสารที่พิมพ์ไว้ล่วงหน้าของเราใน bioRxiv