การสร้างและการสำรวจ pangenome ที่ปราศจากการจัดตำแหน่งอย่างรวดเร็ว
เผยแพร่: ผู้พัฒนา: @master:
FindMyFriends เป็นแพ็คเกจ R สำหรับทำการวิเคราะห์ pangenomic บนจีโนมของจุลินทรีย์ เปิดตัวโดยเป็นส่วนหนึ่งของโครงการ Bioconductor และสามารถติดตั้งได้ด้วยฟังก์ชัน BiocManager::install()
:
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " FindMyFriends " )
สำหรับเวอร์ชันล่าสุด ให้ติดตั้งโดยตรงจาก GitHub:
if ( ! require( devtools )) {
install.packages( ' devtools ' )
library( devtools )
}
install_github( ' thomasp85/FindMyFriends ' )
ในการเปรียบเทียบจีโนมของจุลินทรีย์ pangenome หมายถึงการจัดกลุ่มของยีนในจีโนมโดยอาศัยความคล้ายคลึงกันบางประเภท การวัดความคล้ายคลึงกันนี้ไม่ได้กำหนดไว้อย่างชัดเจน แต่บ่อยครั้งที่ได้มาจากการระเบิดของยีนแต่ละคู่ต่อกัน นี่เป็นความคิดที่ไม่ดีด้วยเหตุผลหลายประการ: การเปรียบเทียบทั้งหมดกับทั้งหมดนำไปสู่การปรับขนาดเวลาการคำนวณที่น่าสยดสยองเมื่อจำนวนยีนเพิ่มขึ้น โดยทั่วไปแล้ว BLAST นั้นช้ามาก และความคล้ายคลึงกันของลำดับเพียงอย่างเดียวไม่สามารถแยกแยะยีนออโธโลล็อกจากพาราลอกได้ ประเด็นสุดท้ายได้รับการแก้ไขแล้วโดยเครื่องมือล่าสุด เช่น PanOCT และ Roary แต่สองรายการแรกยังคงอยู่ (แม้ว่า Roary จะทำอะไรบางอย่างที่ชาญฉลาดเพื่อทำให้ปัญหาน้อยลง)
เข้าสู่ FindMyFriends...
นอกจากนี้ยังเป็นอัลกอริธึมอื่นอีกด้วย แต่ที่สำคัญกว่านั้น มันคือกรอบการทำงานสำหรับการดำเนินการวิเคราะห์ pangenome ที่ไม่เชื่อว่าคุณได้มา pangenome ของคุณตั้งแต่แรกอย่างไร FindMyFriends กำหนดรายการคลาสที่ขยายได้สำหรับการจัดการข้อมูล pangenome ด้วยวิธีที่โปร่งใส และเสียบเข้ากับเครื่องมือจีโนมที่หลากหลายที่ Bioconductor นำเสนอโดยตรง
เอาล่ะ กลับมาที่อัลกอริธึม FindMyFriends ทำงานโดยใช้ CD-Hit เพื่อสร้างการจัดกลุ่มยีนที่หยาบมากในชุดข้อมูลของคุณ จากนั้นปรับแต่งการจัดกลุ่มนี้ในรอบที่สองโดยใช้มาตรการวัดความคล้ายคลึงเพิ่มเติม สิ่งนี้ตรงกันข้ามกับ Roary ที่ใช้ CD-Hit แต่จะจัดกลุ่มยีนที่คล้ายกันมากที่สุดไว้ด้วยกันก่อนที่จะรัน BLAST เท่านั้น ด่านที่สองใน FindMyFriends คือจุดที่ความมหัศจรรย์ทั้งหมดเกิดขึ้น ยีนในแต่ละกลุ่มใหญ่จะถูกเปรียบเทียบโดยลำดับความคล้ายคลึงกัน (โดยใช้ความคล้ายคลึงกันของโคไซน์แบบกิโลเมตร) ความยาวของลำดับ ความเป็นสมาชิกจีโนม และความคล้ายคลึงกันในบริเวณใกล้เคียง จากการเปรียบเทียบเหล่านี้ กราฟจะถูกสร้างขึ้นสำหรับแต่ละกลุ่ม โดยมีขอบที่นิยามความคล้ายคลึงกันเหนือเกณฑ์ที่กำหนดระหว่างยีน จากกราฟนี้ กลุ่มต่างๆ จะถูกค่อยๆ แยกออกมาในลักษณะที่ทำให้แน่ใจว่ากลุ่มที่มีคุณภาพสูงสุดจะถูกแยกออกก่อน กลุ่มเหล่านี้กำหนดกลุ่มสุดท้ายของยีน เนื่องจากเป็นกลุ่มเดียวกัน ผู้ใช้จึงมั่นใจได้ว่าสมาชิกทั้งหมดของกลุ่มยีนที่เกิดขึ้นนั้นมีความคล้ายคลึงกันตามที่กำหนดไว้ และไม่มียีนใดที่สามารถจัดกลุ่มกับกลุ่มยีนอื่น ๆ ได้อย่างเคร่งขรึมโดยยึดตามความคล้ายคลึงกันในระดับสูงกับสมาชิกคนเดียว
ผลลัพธ์คุณภาพสูงมีความสำคัญมากกว่าความเร็ว! แต่นี่เป็นหนึ่งในกรณีที่เกิดขึ้นไม่บ่อยนักที่คุณสามารถกินเค้กและกินมันได้เช่นกัน FindMyFriends เป็นอัลกอริธึมที่เร็วที่สุดในตลาด:
FindMyFriends ขยายขนาดเป็นพันจีโนม และสามารถรองรับความหลากหลายขนาดใหญ่ได้ (เช่น ไม่จำกัดเพียงระดับสายพันธุ์) ตามตัวอย่าง แพนจีโนมตามสายพันธุ์ประมาณ 1,200 สายพันธุ์จากลำดับแลคโตบาซิลเลส (แบคทีเรียกรดแลกติก) ถูกสร้างขึ้นภายในเวลาประมาณ 8 ชั่วโมงบนอินสแตนซ์ AWS c3x8.large โดยใช้คอร์เดียว
การเป็น Framework มีหลายสิ่งที่คุณสามารถทำได้และมีวิธีต่างๆ มากมาย ต่อไปนี้เป็นวิธีการคำนวณ pangenome ที่แนะนำ:
library( FindMyFriends )
# We expect here that your genomes are stored in amino acid fasta files in the
# working directory.
genomes <- list.files( pattern = ' .fasta ' )
# First we create our pangenome object
pg <- pangenome( genomes , translated = TRUE , geneLocation = ' prodigal ' )
# Then we make the initial grouping
pg <- cdhitGrouping( pg )
# And lastly we refine the groups
pg <- neighborhoodSplit( pg )
โปรดดูบทความสั้นสำหรับข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนต่างๆ รวมถึงตัวอย่างเกี่ยวกับสิ่งที่คุณสามารถทำได้กับข้อมูลของคุณเมื่อคุณจัดกลุ่มยีนของคุณเสร็จแล้ว
ต่อไปนี้เป็นคุณสมบัติบางอย่างที่กำลังดำเนินการ/พิจารณา: