medaka
เป็นเครื่องมือในการสร้างลำดับฉันทามติและการเรียกตัวแปรจากข้อมูลการเรียงลำดับ nanopore งานนี้ดำเนินการโดยใช้เครือข่ายประสาทใช้ pileup ของการจัดลำดับแต่ละการอ่านกับลำดับการอ้างอิงส่วนใหญ่โดยทั่วไปทั้งร่างแอสเซมบลีหรือลำดับการอ้างอิงฐานข้อมูล มันให้ผลลัพธ์ที่ทันสมัยดีกว่าวิธีการตามลำดับกราฟและวิธีการตามสัญญาณในขณะที่ยังเร็วขึ้น
© 2018- Oxford Nanopore Technologies Ltd.
.fasta
หรือ .fastq
)สำหรับการสร้างแอสเซมบลีร่างเราขอแนะนำ Flye
Medaka สามารถติดตั้งได้หลายวิธี
การติดตั้งด้วย pip
การเปิดตัวไบนารีอย่างเป็นทางการของ Medaka มีให้ใน PYPI และสามารถติดตั้งได้โดยใช้ PIP:
pip install medaka
บนแพลตฟอร์มร่วมสมัย Linux และ MacOS สิ่งนี้จะติดตั้งไบนารีที่คอมไพล์ไว้ล่วงหน้าบนแพลตฟอร์มอื่น ๆ การกระจายแหล่งที่มาอาจถูกดึงและรวบรวม
เราขอแนะนำให้ใช้ Medaka ภายในสภาพแวดล้อมเสมือนจริง ได้แก่ :
python3 -m venv medaka
. ./medaka/bin/activate
pip install --upgrade pip
pip install medaka
การใช้วิธีนี้ทำให้ผู้ใช้ต้องจัดทำไบนารีหลายครั้ง:
และวางสิ่งเหล่านี้ไว้ใน PATH
samtools/bgzip/tabix
เวอร์ชัน> = 1.14 และรุ่น minimap2
> = 2.17 แนะนำให้ใช้เนื่องจากสิ่งเหล่านี้เป็นสิ่งที่ใช้ในการพัฒนา Medaka
การติดตั้งเริ่มต้นมีความจุในการทำงานบน GPU (ดู โดยใช้ GPU ด้านล่าง) หรือบน CPU หากคุณใช้ medaka
เฉพาะใน CPU และไม่ต้องการความสามารถในการทำงานบน GPU คุณอาจต้องการติดตั้ง CPU-only เวอร์ชันด้วย:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
การติดตั้งด้วย conda
แพ็คเกจ Bioconda Medaka ไม่ได้รับการสนับสนุนโดย Oxford Nanopore Technologies
สำหรับผู้ที่ชอบผู้จัดการแพ็คเกจ Conda Medaka มีให้บริการผ่านช่องทาง anaconda.org:
conda create -n medaka -c conda-forge -c nanoporetech -c bioconda medaka
การติดตั้งด้วยวิธีนี้จะรวมเครื่องมือเพิ่มเติมที่จำเป็นในการเรียกใช้เวิร์กโฟลว์การแก้ไขแบบครบวงจร
การติดตั้งจากแหล่งที่มา
วิธีนี้มีประโยชน์เฉพาะเมื่อวิธีการข้างต้นล้มเหลวเนื่องจากจะช่วยในการสร้างการพึ่งพาต่างๆ ไม่น่าเป็นไปได้ที่นักพัฒนาของเราจะสามารถให้ความช่วยเหลือเพิ่มเติมในสถานการณ์เฉพาะของคุณหากคุณติดตั้งโดยใช้วิธีนี้
Medaka สามารถติดตั้งได้จากแหล่งที่มาค่อนข้างง่ายในระบบส่วนใหญ่
ก่อนที่จะติดตั้ง Medaka อาจจำเป็นต้องติดตั้งไลบรารีที่จำเป็นต้องมีบางอย่างติดตั้งโดยผู้จัดการแพ็คเกจที่ดีที่สุด บนวิทยานิพนธ์ Ubuntu คือ:
bzip2 g++ zlib1g-dev libbz2-dev liblzma-dev libffi-dev libncurses5-dev libcurl4-gnutls-dev libssl-dev curl make cmake wget python3-all-dev python-virtualenv
นอกจากนี้ยังจำเป็นต้องติดตั้งและตั้งค่า GIT LFs ก่อนที่จะโคลนที่เก็บ
makefile มีไว้เพื่อดึงรวบรวมและติดตั้งการพึ่งพาโดยตรงทั้งหมดลงในสภาพแวดล้อมเสมือนจริงของ Python ในการตั้งค่าการทำงานของสภาพแวดล้อม:
# Note: certain files are stored in git-lfs, https://git-lfs.github.com/,
# which must therefore be installed first.
git clone https://github.com/nanoporetech/medaka.git
cd medaka
make install
. ./venv/bin/activate
การใช้วิธีนี้ทั้ง samtools
และ minimap2
ถูกสร้างขึ้นจากแหล่งที่มาและไม่จำเป็นต้องได้รับจากผู้ใช้
เมื่อสร้างจากแหล่งที่มาเพื่อติดตั้งรุ่น CPU เท่านั้นโดยไม่มีความสามารถในการทำงานบน GPU ให้แก้ไขข้างต้นเป็น:
MEDAKA_CPU=1 make install
ใช้ GPU
ตั้งแต่เวอร์ชัน 2.0 medaka
ใช้ Pytorch รุ่นก่อนหน้า (v1.x) ใช้ tensorflow
รุ่นเริ่มต้นของ pytorch ที่ติดตั้งเมื่อสร้างจากแหล่งที่มาหรือเมื่อติดตั้งผ่าน pip
สามารถใช้ GPU ได้ทันทีผ่าน Nvidia Cuda อย่างไรก็ตามโปรดทราบว่าแพ็คเกจ torch
ถูกรวบรวมกับไลบรารี Cuda และ Cudnn รุ่นเฉพาะ ผู้ใช้จะถูกส่งไปยังหน้าการติดตั้งคบเพลิงสำหรับข้อมูลเพิ่มเติม Cudnn สามารถรับได้จาก Cudnn Archive ในขณะที่ Cuda จาก Cuda Toolkit Archive
การติดตั้งด้วย conda นั้นแตกต่างกันเล็กน้อย ดู [conda-forge] https://conda-forge.org/docs/user/tipsandtricks/#installing-cuda-enabled-enablep-packages-like-tensorflow-and-pytorch) โดยสรุปแพ็คเกจ Conda ควรทำสิ่งที่เหมาะสมกับคอมพิวเตอร์ที่ติดตั้งอยู่
ตามที่อธิบายไว้ข้างต้นหากไม่จำเป็นต้องใช้ความสามารถในการทำงานบน GPU สามารถติดตั้ง medaka-cpu
ได้ด้วย pytorch รุ่น CPU เท่านั้นที่ไม่ได้ขึ้นอยู่กับไลบรารี CUDA ดังนี้:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
หากใช้แพ็คเกจ prebuilt หรือ
MEDAKA_CPU=1 make install
ถ้าสร้างจากแหล่งที่มา
บันทึกการใช้งาน GPU
medaka
อาจแสดงข้อผิดพลาดของหน่วยความจำทั้งนี้ขึ้นอยู่กับ GPU ของคุณ เพื่อหลีกเลี่ยงขนาดแบทช์การอนุมานเหล่านี้สามารถลดลงจากค่าเริ่มต้นโดยการตั้งค่าตัวเลือก -b
เมื่อเรียกใช้ medaka_consensus
ค่า -b 100
เหมาะสำหรับ 11GB GPU
medaka
สามารถรันได้โดยใช้การตั้งค่าเริ่มต้นผ่านโปรแกรม medaka_consensus
การประกอบในรูปแบบ .fasta
และ basecalls ในรูปแบบ .fasta
หรือ .fastq
เป็นสิ่งจำเป็น โปรแกรมใช้ทั้ง samtools
และ minimap2
หากมีการติดตั้ง Medaka โดยใช้วิธีการจากแหล่งข้อมูลเหล่านี้จะอยู่ในสภาพแวดล้อม Medaka มิฉะนั้นพวกเขาจะต้องได้รับจากผู้ใช้
source ${MEDAKA} # i.e. medaka/venv/bin/activate
NPROC=$(nproc)
BASECALLS=basecalls.fa
DRAFT=draft_assm/assm_final.fa
OUTDIR=medaka_consensus
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC}
ควรตั้งค่าตัวแปร BASECALLS
DRAFT
และ OUTDIR
ในด้านบนอย่างเหมาะสม ตัวเลือก -t
ระบุจำนวนเธรด CPU ที่จะใช้
เมื่อ medaka_consensus
ทำงานเสร็จแล้วฉันทามติจะถูกบันทึกไว้ที่ ${OUTDIR}/consensus.fasta
การโทรแบบ Haploid Variant
การเรียกใช้ตัวแปรสำหรับตัวอย่าง haploid เปิดใช้งานผ่านเวิร์กโฟลว์ medaka_variant
:
medaka_variant -i <reads.fastq> -r <ref.fasta>
ซึ่งต้องการการอ่านเป็น .fasta
หรือ .fastq
และลำดับอ้างอิงเป็นไฟล์ .fasta
การเรียกตัวแปร Diploid
เวิร์กโฟลว์การเรียกตัวที่แตกต่างกันที่ถูกนำไปใช้ในอดีตภายในแพ็คเกจ Medaka นั้นเกินความถูกต้องและการคำนวณประสิทธิภาพโดยวิธีการอื่น ๆ คำแนะนำในปัจจุบันของเราสำหรับการปฏิบัติงานนี้คือการใช้ Clair3 ทั้งโดยตรงหรือผ่านเทคโนโลยี Nanopore Oxford ที่ให้การใช้งาน NextFlow ที่มีให้ผ่าน Epi2ME Labs
เพื่อผลลัพธ์ที่ดีที่สุดสิ่งสำคัญคือต้องระบุรูปแบบการอนุมานที่ถูกต้องตาม Basecaller ที่ใช้ ค่าที่อนุญาตสามารถพบได้โดยการเรียกใช้ medaka tools list_models
basecallers ล่าสุด
รุ่น Basecaller ล่าสุดใส่คำอธิบายประกอบเอาต์พุตของพวกเขากับรุ่นรุ่นของพวกเขา ในกรณีเช่นนี้ Medaka สามารถตรวจสอบไฟล์และพยายามเลือกโมเดลที่เหมาะสมสำหรับตัวเอง โดยทั่วไปจะใช้งานได้ดีที่สุดในกรณีของการส่งออก BAM จาก Basecallers มันจะใช้งานได้สำหรับอินพุต FastQ หาก FASTQ ถูกสร้างขึ้นจากเอาต์พุต Basecaller โดยใช้:
samtools fastq -T '*' dorado.bam | gzip -c > dorado.fastq.gz
medaka inference
คำสั่งจะพยายามกำหนดโมเดลที่ถูกต้องโดยอัตโนมัติโดยตรวจสอบไฟล์อินพุต BAM สคริปต์ผู้ช่วย medaka_consensus
และ medaka_variant
จะพยายามทำเช่นเดียวกันจากอินพุต FASTQ ของพวกเขา
เพื่อตรวจสอบไฟล์ด้วยตัวคุณเองคำสั่ง:
medaka tools resolve_model --auto_model <consensus/variant> <input.bam/input.fastq>
จะพิมพ์รุ่นที่การเลือกรุ่นอัตโนมัติจะใช้
การจัดลำดับแบคทีเรียและพลาสมิด
สำหรับข้อมูลดั้งเดิมที่มีการดัดแปลงแบคทีเรียเช่นไอโซเลตแบคทีเรียตัวอย่าง metagenomic หรือพลาสมิดที่แสดงในแบคทีเรียมีรูปแบบการวิจัยที่แสดงความแม่นยำฉันทามติที่ดีขึ้น รุ่นนี้เข้ากันได้กับ Basecaller หลายรุ่นสำหรับเคมี R10 โดยการเพิ่มธง --bacteria
แบคทีเรียแบบจำลองแบคทีเรียจะถูกเลือกหากเข้ากันได้กับ basecallers อินพุต:
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC} --bacteria
รุ่นเริ่มต้นแบบดั้งเดิมจะถูกใช้หากโมเดลแบคทีเรียไม่สามารถใช้งานได้กับไฟล์อินพุต การเลือกรุ่นสามารถยืนยันได้โดยการรัน:
medaka tools resolve_model --auto_model consensus_bacteria <input.bam/input.fastq>
ซึ่งจะแสดงโมเดล r1041_e82_400bps_bacterial_methylation
หากเข้ากันได้หรือชื่อรุ่นเริ่มต้นเป็นอย่างอื่น
เมื่อการเลือกอัตโนมัติไม่ประสบความสำเร็จและ basecallers ที่เก่ากว่า
หากชื่อของโมเดล Basecaller ที่ใช้เป็นที่รู้จัก แต่ได้หายไปจากไฟล์อินพุตโมเดล Basecaller สามารถให้กับ Medaka ได้โดยตรง อย่างไรก็ตามมันจะต้องต่อท้ายด้วย :consensus
หรือ :variant
ตามที่ผู้ใช้ต้องการใช้ฉันทามติหรือโมเดลการเรียกตัวแปร medaka ตัวอย่างเช่น:
medaka inference input.bam output.hdf
--model [email protected]:variant
จะใช้โมเดลการเรียกตัวแปร Medaka ที่เหมาะสมสำหรับใช้กับโมเดล Basecaller ชื่อ [email protected]
โมเดล Medaka ในอดีตตามระบบการตั้งชื่อที่อธิบายทั้งรุ่นเคมีและ Basecaller ตอนนี้รุ่นเก่าเหล่านี้เลิกใช้แล้วผู้ใช้จะได้รับการสนับสนุนให้ rebasecall ข้อมูลของพวกเขาด้วยรุ่น Basecaller ล่าสุดก่อนที่จะใช้ Medaka
โปรแกรม medaka_consensus
นั้นดีสำหรับชุดข้อมูลง่าย ๆ แต่อาจไม่เหมาะสมสำหรับการเรียกใช้ชุดข้อมูลขนาดใหญ่ในระดับ ระดับความเท่าเทียมที่สูงขึ้นสามารถทำได้โดยการดำเนินการตามขั้นตอนส่วนประกอบของ medaka_consensus
อย่างอิสระ โปรแกรมดำเนินการสามงาน:
mini_align
ซึ่งเป็นม่านบาง ๆ ใน minimap2
)medaka inference
)medaka sequence
) สามขั้นตอนนั้นไม่ต่อเนื่องและสามารถแยกออกจากกันและทำงานได้อย่างอิสระ ในกรณีส่วนใหญ่ขั้นตอนที่ 2 เป็นคอขวดและสามารถขนานกันเล็กน้อย โปรแกรม medaka consensus
สามารถจัดหาอาร์กิวเมนต์ --regions
ออกนอกระบบซึ่งจะ จำกัด การกระทำของมันไปยังลำดับการประกอบเฉพาะจากเอาต์พุตไฟล์ .bam
ในขั้นตอนที่ 1 ดังนั้นงานแต่ละงานสามารถเรียกใช้สำหรับชุดการประกอบชุดประกอบพร้อมกัน ในขั้นตอนสุดท้าย medaka stitch
สามารถใช้เป็นอินพุตอย่างน้อยหนึ่งรายการของไฟล์ .hdf
ตามขั้นตอนที่ 2
ดังนั้นโดยสรุปสิ่งนี้เป็นไปได้:
# align reads to assembly
mini_align -i basecalls.fasta -r assembly.fasta -P -m
-p calls_to_draft.bam -t <threads>
# run lots of jobs like this:
mkdir results
medaka inference calls_to_draft.bam results/contigs1-4.hdf
--region contig1 contig2 contig3 contig4
...
# wait for jobs, then collate results
medaka sequence results/*.hdf polished.assembly.fasta
ไม่แนะนำให้ระบุค่าของ --threads
ที่มากกว่า 2 สำหรับ medaka inference
เนื่องจากประสิทธิภาพการคำนวณการคำนวณนั้นแย่เกินกว่านี้ โปรดทราบว่า medaka inference
อาจถูกมองว่าใช้ทรัพยากรเทียบเท่ากับ <threads> + 4
เป็นเธรดเพิ่มเติม 4 เธรดเพิ่มเติมสำหรับการอ่านและการเตรียมข้อมูลอินพุต
Medaka ได้รับการฝึกฝนให้แก้ไขลำดับการออกจากร่างจากแอสเซมเบลอร์ Flye
การประมวลผลลำดับร่างจากแหล่งทางเลือก (เช่นเอาต์พุตของ CANU หรือ WTDBG2) อาจนำไปสู่ผลลัพธ์ที่แตกต่างกัน
แบบจำลองการแก้ไขในอดีตใน Medaka ได้รับการฝึกฝนให้แก้ไขลำดับการร่างออกจากแอสเซมเบลอร์ Canu ด้วยการใช้ Racon หนึ่งครั้งหรือสี่ครั้งซ้ำ ๆ สำหรับแบบจำลองร่วมสมัยนี่ไม่ใช่กรณีและควรใช้ Medaka โดยตรงกับผลลัพธ์ของ Flye
เราขอขอบคุณ Joanna Pineda และ Jared Simpson ที่ให้ตัวอย่างรหัส HTSLIB ซึ่งช่วยพัฒนารหัสการสร้างฟีเจอร์ที่ดีที่สุดอย่างมากและสำหรับการทดสอบผู้สมัครรุ่น 0.4 รุ่น
เราขอขอบคุณ Devin Drown สำหรับการทำงานผ่านการใช้ medaka
กับ RTX 2080 GPU ของเขา
ใบอนุญาตและลิขสิทธิ์
© 2018- Oxford Nanopore Technologies Ltd.
medaka
จัดจำหน่ายภายใต้เงื่อนไขของ Oxford Nanopore Technologies Plc ใบอนุญาตสาธารณะเวอร์ชัน 1.0
การวิจัย
การเปิดตัวการวิจัยมีให้เป็นผู้สาธิตเทคโนโลยีเพื่อให้การเข้าถึงคุณสมบัติก่อนกำหนดหรือกระตุ้นการพัฒนาชุมชนของเครื่องมือ การสนับสนุนสำหรับซอฟต์แวร์นี้จะน้อยที่สุดและมีให้โดยตรงจากนักพัฒนา การร้องขอคุณสมบัติการปรับปรุงและการอภิปรายยินดีต้อนรับและสามารถนำไปใช้งานได้โดยการร้องขอและดึงคำขอ อย่างไรก็ตามเท่าที่เราต้องการแก้ไขทุกประเด็นและผู้ใช้ข้อเสนอแนะอาจมีนักพัฒนาอาจมีทรัพยากรที่ จำกัด สำหรับการสนับสนุนซอฟต์แวร์นี้ การเผยแพร่การวิจัยอาจไม่มั่นคงและอาจมีการทำซ้ำอย่างรวดเร็วโดยเทคโนโลยี Nanopore Oxford