นี่คือแพ็คเกจ R สำหรับ GRAPPLE (การวิเคราะห์ mR ทั่วทั้งจีโนมภายใต้ Pervasive PLEiotropy) ซึ่งเป็นกรอบงานที่ครอบคลุมสำหรับการสุ่ม Mendelian
สำหรับรายละเอียดของกรอบงาน GRAPPLE โปรดดูที่ต้นฉบับของเรา
สามารถติดตั้งแพ็คเกจ GRAPPLE ใน R จากที่เก็บ Github นี้:
library(devtools)
install_github("jingshuw/grapple")
เราอาจจำเป็นต้องติดตั้ง PLINK สำหรับการรวมกลุ่ม LD และเตรียมชุดข้อมูลอ้างอิงการรวมกลุ่ม LD ที่เหมาะสมสำหรับ PLINK หากเขา/เธอต้องการให้ GRAPPLE ดำเนินการประมวลผลข้อมูลล่วงหน้า ทรัพยากรหนึ่งของชุดข้อมูลอ้างอิงของประชากรยุโรปสำหรับการรวมตัวกันซึ่งใช้ในรายงาน GRAPPLE ก็คือแผงอ้างอิงยุโรป 1,000 จีโนมที่ดาวน์โหลดที่นี่ http://fileserve.mrcieu.ac.uk/ld/data_maf0.01_rs_ref.tgz จากการอ้างอิง MRCIEU
การวิเคราะห์ด้วย GRAPPLE เริ่มต้นด้วยการประมวลผลล่วงหน้าสถิติสรุป GWAS ดิบ ซึ่งรวมถึงการเลือกเครื่องมือทางพันธุกรรม ประสานชุดข้อมูลเพื่อแบ่งปันผลกระทบที่เหมือนกันและอัลลีลอ้างอิง คำนวณเมทริกซ์สหสัมพันธ์ของสัญญาณรบกวนในความสัมพันธ์ส่วนขอบโดยประมาณซึ่งใช้ร่วมกันระหว่าง SNP และเลือกรายการ SNP ที่เป็นตัวเลือกสำหรับการตรวจจับเครื่องหมายโหมด
GRAPPLE จำเป็นต้องมีรายการไฟล์สถิติสรุป GWAS แบบดิบเพื่อดำเนินการนี้ ไฟล์ GWAS แต่ละไฟล์เป็นไฟล์ ".csv" หรือ ".txt" ที่มีกรอบข้อมูลอย่างน้อย 6 คอลัมน์โดยมีชื่อคอลัมน์เหล่านี้: SNP
, effect_allele
, other_allele
, beta
, se
, pval
คอลัมน์ SNP
มี rsID สำหรับแต่ละ SNP ทั้งคอลัมน์ effect_allele
และ other_allele
จำเป็นต้องมีตัวพิมพ์ใหญ่ คอลัมน์ beta
มีขนาดเอฟเฟกต์โดยประมาณสำหรับลักษณะต่อเนื่องและอัตราส่วนอัตราต่อรองของลักษณะไบนารี และคอลัมน์ se
คือค่าเบี่ยงเบนมาตรฐานของ beta
ที่สอดคล้องกัน
ไฟล์สถิติสรุป GWAS ทั้งหมดในรูปแบบด้านบนที่ใช้ในรายงาน GRAPPLE สามารถดาวน์โหลดได้จากชุดข้อมูล สำหรับต้นฉบับของแต่ละไฟล์ที่เปิดเผยต่อสาธารณะ โปรดดูส่วนที่ 3 ของข้อมูลเสริมของต้นฉบับ
การประมวลผลล่วงหน้าของ GRAPPLE ต้องใช้ไฟล์หนึ่งไฟล์สำหรับโรค (ไฟล์ผลลัพธ์) และไฟล์สองไฟล์สำหรับแต่ละปัจจัยเสี่ยง โดยไฟล์หนึ่งสำหรับการเลือก SNP (ไฟล์การเลือก) และอีกไฟล์หนึ่งสำหรับการประเมินผลกระทบส่วนเพิ่มของ SNP ต่อปัจจัยเสี่ยงนี้ ( ไฟล์การเปิดเผย) เราอนุญาตให้มีบุคคลที่ทับซ้อนกันสำหรับข้อมูล GWAS ในไฟล์ผลลัพธ์และการเปิดเผย ซึ่งควรมีบุคคลที่ทับซ้อนกันน้อยที่สุดระหว่างไฟล์การเลือกกับไฟล์อื่น ๆ เพื่อหลีกเลี่ยงอคติในการเลือก SNP บางครั้งการค้นหาชุดข้อมูล GWAS สำหรับการเลือก SNP อาจเป็นเรื่องยาก ตัวเลือกหนึ่งคือใช้ข้อมูล GWAS จากบรรพบุรุษอื่นๆ
ตามตัวอย่าง คุณสามารถดาวน์โหลดไฟล์สถิติสรุปสำหรับ BMI และ T2D จากชุดข้อมูล และยังดาวน์โหลดแผงอ้างอิงและแตกไฟล์ ".tgz" ในโฟลเดอร์ปัจจุบันได้อีกด้วย จากนั้น เราสามารถเริ่มต้นด้วยการเลือก SNP จากไฟล์เหล่านี้เป็นเครื่องมือทางพันธุกรรม
library(GRAPPLE)
sel.file <- "BMI-ukb.csv"
exp.file <- "BMI-giant17eu.csv"
out.file <- "T2D-diagram12-M.csv"
plink_refdat <- "./data_maf0.01_rs_ref/data_maf0.01_rs_ref"
การแตก SNP อิสระอาจใช้เวลาสักครู่ ขึ้นอยู่กับขนาดของไฟล์สถิติสรุป GWAS
data.list <- getInput(sel.file, exp.file, out.file, plink_refdat, max.p.thres = 0.01, plink_exe = 'plink')
ฟังก์ชันนี้จะแยก SNP อิสระทั้งหมดที่มีค่า p ที่เลือกไม่เกิน 0.01 มันส่งคืนสามองค์ประกอบ หนึ่งคือ 'data' ซึ่งเป็นกรอบข้อมูลของสถิติสรุปของ SNP ที่เลือก และอีกอันคือ 'marker.data' ซึ่งเป็นกรอบข้อมูลสำหรับ SNP ของเครื่องหมายผู้สมัครทั้งหมด ความแตกต่างระหว่าง 'data' และ 'marker.data' คือเราใช้ r2 (0.001) ที่เข้มงวดมากขึ้นในการจับกลุ่ม LD สำหรับการเลือกเครื่องมือทางพันธุกรรมเพื่อรับประกันความเป็นอิสระมากกว่าการเลือกเครื่องหมาย SNP ของผู้สมัคร (r2 = 0.05) องค์ประกอบที่สามคือเมทริกซ์สหสัมพันธ์โดยประมาณสำหรับกลุ่ม GWAS
เราใช้ PLINK เพื่อดำเนินการจับกลุ่ม LD ชื่อ/เส้นทางเริ่มต้นของคำสั่ง plink คือ "plink" (ส่งผ่านอาร์กิวเมนต์ plink_exe
) สำหรับผู้ใช้ที่มีระบบ Linux / Windows คำสั่งนี้จะใช้งานไม่ได้และจำเป็นต้องระบุเส้นทางของไฟล์ exe เช่น "./plink" ขึ้นอยู่กับตำแหน่งที่พวกเขาติดตั้ง plink หาก R ล้มเหลวในการรันคำสั่ง plink จะมีข้อผิดพลาดที่ระบุว่าไม่พบไฟล์ที่รวมเป็นกลุ่ม
หากจำนวนปัจจัยเสี่ยงคือ 1 GRAPPLE จะสามารถตรวจจับจำนวนของวิถีทาง pleiotropic ได้โดยการค้นหาจำนวนโหมดในความน่าจะเป็นของโปรไฟล์ที่แข็งแกร่ง โดยกำหนดเกณฑ์การเลือกค่า p
เราสามารถลองตัวอย่างข้างต้นได้
## Here we take the p-value threshold be 1e-4, but one can try a series of p-values and see if the result is consistent
diagnosis <- findModes(data.list$data, p.thres = 1e-4)
diagnosis$modes
diagnosis$p
ความน่าจะเป็นมีเพียงโหมดเดียวเท่านั้น ดังนั้นเราจึงไม่พบหลักฐานใด ๆ ของวิถีทางเยื่อหุ้มปอดหลายแบบ ข้อมูลดังกล่าวให้การรับประกันแก่เราในการใช้ MR-RAP เพื่อประเมินผลกระทบเชิงสาเหตุของปัจจัยเสี่ยง
result <- grappleRobustEst(data.list$data, p.thres = 1e-4)
ฟังก์ชันนี้ส่งคืนผลลัพธ์การประมาณค่าของเรา
นี่เป็นอีกตัวอย่างหนึ่งที่เราสามารถตรวจจับได้หลายโหมด
library(GRAPPLE)
sel.file <- "CRP-Prins17.csv"
exp.file <- "CRP-Dehghan11.csv"
out.file <- "CAD-Nelson17.csv"
data.list <- getInput(sel.file, exp.file, out.file, plink_refdat, max.p.thres = 0.01)
diagnosis <- findModes(data.list$data, p.thres = 1e-4, marker.data = data.list$marker.data)
diagnosis$p
เราพบสามโหมดในความน่าจะเป็นของโปรไฟล์ การตรวจสอบเครื่องหมาย SNP ยีนของเครื่องหมาย และลักษณะ GWAS ที่แมป เราจะพบว่า LDL-C อาจเป็นลักษณะที่น่าสับสน จากนั้นเราสามารถเรียกใช้ GRAPPLE เพื่อปรับแต่งเอฟเฟกต์ LDL-C ได้
library(GRAPPLE)
sel.file <-c(sel.file, "LDL-gera18.csv")
exp.file <- c(exp.file, "LDL-glgc13.csv")
out.file <- "CAD-Nelson17.csv"
data.list <- getInput(sel.file, exp.file, out.file, plink_refdat, max.p.thres = 0.01)
result <- grappleRobustEst(data.list$data, p.thres = 1e-4)
หลังจากปรับ LDL-C แล้ว เราไม่พบหลักฐานใดๆ ที่แสดงว่า CRP มีผลกระทบเชิงสาเหตุของ CAD