medaka
adalah alat untuk membuat urutan konsensus dan varian panggilan dari data sequencing nanopore. Tugas ini dilakukan dengan menggunakan jaringan saraf yang diterapkan tumpukan sekuensing individu dibaca terhadap urutan referensi, sebagian besar umumnya baik rakitan rancangan atau urutan referensi database. Ini memberikan hasil yang canggih mengungguli metode berbasis grafik-grafik dan metode berbasis sinyal, sementara juga lebih cepat.
© 2018- Oxford Nanopore Technologies Ltd.
.fasta
atau .fastq
)Untuk membuat rancangan rancangan, kami merekomendasikan Flye.
Medaka dapat dipasang dalam salah satu dari beberapa cara.
Instalasi dengan PIP
Rilis Biner Resmi Medaka tersedia di PYPI dan dapat dipasang menggunakan PIP:
pip install medaka
Pada platform Contemporaray Linux dan MacOS ini akan menginstal biner yang sudah dikompilasi, pada platform lain distribusi sumber dapat diambil dan dikompilasi.
Kami merekomendasikan menggunakan Medaka dalam lingkungan virtual, yaitu.:
python3 -m venv medaka
. ./medaka/bin/activate
pip install --upgrade pip
pip install medaka
Menggunakan metode ini mengharuskan pengguna untuk menyediakan beberapa binari:
dan letakkan ini di PATH
. Versi samtools/bgzip/tabix
> = 1.14 dan versi minimap2
> = 2.17 direkomendasikan karena ini adalah yang digunakan dalam pengembangan Medaka.
Instalasi default memiliki kapasitas untuk dijalankan pada GPU (lihat menggunakan GPU di bawah), atau pada CPU. Jika Anda menggunakan medaka
secara eksklusif di CPU, dan tidak perlu kemampuan untuk berjalan di GPU, Anda mungkin ingin menginstal versi CPU saja dengan:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
Instalasi dengan conda
Paket Bioconda Medaka tidak didukung oleh Oxford Nanopore Technologies.
Bagi mereka yang lebih suka manajer paket Conda, Medaka tersedia melalui saluran anaconda.org:
conda create -n medaka -c conda-forge -c nanoporetech -c bioconda medaka
Instalasi dengan metode ini akan menggabungkan alat tambahan yang diperlukan untuk menjalankan alur kerja koreksi ujung ke ujung.
Instalasi dari sumber
Metode ini hanya berguna ketika metode di atas telah gagal, karena akan membantu dalam membangun berbagai dependensi. Tidak mungkin pengembang kami akan dapat memberikan bantuan lebih lanjut dalam keadaan spesifik Anda jika Anda menginstal menggunakan metode ini.
Medaka dapat dipasang dari sumbernya dengan cukup mudah di sebagian besar sistem.
Sebelum menginstal Medaka mungkin diperlukan untuk menginstal beberapa perpustakaan prasyarat, paling baik diinstal oleh manajer paket. Di ubuntu tesis adalah:
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
Selain itu diperlukan untuk menginstal dan mengatur GIT LFS sebelum mengkloning repositori.
Makefile disediakan untuk mengambil, mengkompilasi, dan menginstal semua dependensi langsung ke dalam lingkungan virtual Python. Untuk mengatur lingkungan menjalankan:
# 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
Menggunakan metode ini baik samtools
dan minimap2
dibangun dari sumber dan tidak perlu disediakan oleh pengguna.
Saat membangun dari sumber, untuk menginstal versi CPU saja tanpa kapasitas untuk berjalan di GPU, memodifikasi yang di atas menjadi:
MEDAKA_CPU=1 make install
Menggunakan GPU
Karena versi 2.0 medaka
menggunakan Pytorch. Versi sebelumnya (v1.x) menggunakan TensorFlow.
Versi default Pytorch yang diinstal saat membangun dari sumber atau saat memasang melalui pip
dapat memanfaatkan GPU secara langsung melalui Nvidia Cuda. Namun, perhatikan bahwa paket torch
dikompilasi terhadap versi spesifik perpustakaan CUDA dan CUDNN; Pengguna diarahkan ke halaman instalasi obor untuk informasi lebih lanjut. Cudnn dapat diperoleh dari arsip CUDNN, sementara CUDA dari arsip Toolkit CUDA.
Instalasi dengan Conda sedikit berbeda. Lihat [conda-forge] https://conda-forge.org/docs/user/tipsandtricks/#installing-cuda-erengable-packages-like-tensorflow-and-pytorch). Singkatnya, paket Conda harus melakukan sesuatu yang dipesan lebih dahulu ke komputer yang sedang diinstal.
Seperti dijelaskan di atas, jika kemampuan untuk berjalan pada GPU tidak diperlukan, medaka-cpu
dapat diinstal dengan versi Pytorch khusus CPU yang tidak bergantung pada perpustakaan CUDA, sebagai berikut:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
Jika menggunakan paket prebuilt, atau
MEDAKA_CPU=1 make install
Jika membangun dari sumber.
Catatan Penggunaan GPU
Bergantung pada GPU Anda, medaka
dapat menunjukkan kesalahan memori saat berjalan. Untuk menghindari ini, ukuran batch inferensi dapat dikurangi dari nilai default dengan mengatur opsi -b
saat menjalankan medaka_consensus
. Nilai -b 100
cocok untuk 11GB GPU.
medaka
dapat dijalankan menggunakan pengaturan default melalui program medaka_consensus
. Majelis dalam format .fasta
dan basis di .fasta
atau .fastq
diperlukan. Program ini menggunakan samtools
dan minimap2
. Jika Medaka telah diinstal menggunakan metode dari sumber ini, ini akan ada di dalam lingkungan Medaka, jika tidak mereka perlu disediakan oleh pengguna.
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
variabel, DRAFT
, dan OUTDIR
di atas harus ditetapkan dengan tepat. Opsi -t
menentukan jumlah utas CPU yang akan digunakan.
Ketika medaka_consensus
selesai berjalan, konsensus akan disimpan ke ${OUTDIR}/consensus.fasta
.
Varian haploid panggilan
Varian yang menyerukan sampel haploid diaktifkan melalui alur kerja medaka_variant
:
medaka_variant -i <reads.fastq> -r <ref.fasta>
yang membutuhkan bacaan sebagai .fasta
atau .fastq
dan urutan referensi sebagai file .fasta
.
Varian diploid panggilan
Alur kerja varian panggilan diploid yang secara historis diimplementasikan dalam paket Medaka telah dilampaui dalam akurasi dan menghitung kinerja dengan metode lain, karenanya telah sudah usang. Rekomendasi kami saat ini untuk melakukan tugas ini adalah menggunakan Clair3 baik secara langsung atau melalui Teknologi Nanopore Oxford yang disediakan implementasi NextFlow yang tersedia melalui Lab Epi2Me.
Untuk hasil terbaik, penting untuk menentukan model inferensi yang benar, menurut basecaller yang digunakan. Nilai yang diizinkan dapat ditemukan dengan menjalankan medaka tools list_models
.
Basecallers Terbaru
Versi Basecaller terbaru memberi anotasi output mereka dengan versi model mereka. Dalam kasus seperti itu Medaka dapat memeriksa file dan mencoba memilih model yang sesuai untuk dirinya sendiri. Ini biasanya bekerja paling baik dalam kasus output BAM dari pemain bases. Ini akan berfungsi juga untuk input FastQ asalkan FastQ telah dibuat dari output basecaller menggunakan:
samtools fastq -T '*' dorado.bam | gzip -c > dorado.fastq.gz
Perintah medaka inference
akan mencoba untuk secara otomatis menentukan model yang benar dengan memeriksa file input BAM -nya. Script Helper medaka_consensus
dan medaka_variant
akan melakukan upaya serupa dari input FastQ mereka.
Untuk memeriksa file untuk diri sendiri, perintah:
medaka tools resolve_model --auto_model <consensus/variant> <input.bam/input.fastq>
Akan mencetak model yang akan digunakan oleh pemilihan model otomatis.
Sekuensing bakteri dan plasmid
Untuk data asli dengan modifikasi bakteri, seperti isolat bakteri, sampel metagenomik, atau plasmid yang diekspresikan dalam bakteri, ada model penelitian yang menunjukkan peningkatan akurasi konsensus. Model ini kompatibel dengan beberapa versi Basecaller untuk R10 Chemistries. Dengan menambahkan bendera --bacteria
, model bakteri akan dipilih jika kompatibel dengan input basecaller:
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC} --bacteria
Model default warisan akan digunakan jika model bakteri tidak kompatibel dengan file input. Pilihan model dapat dikonfirmasi dengan menjalankan:
medaka tools resolve_model --auto_model consensus_bacteria <input.bam/input.fastq>
yang akan menampilkan model r1041_e82_400bps_bacterial_methylation
jika kompatibel atau nama model default sebaliknya.
Saat seleksi otomatis tidak berhasil, dan pemain basecaller yang lebih tua
Jika nama model basecaller yang digunakan diketahui, tetapi telah hilang dari file input, model basecaller dapat diberikan ke Medaka secara langsung. Namun harus ditambahkan dengan :consensus
atau :variant
sesuai dengan apakah pengguna yang ingin menggunakan konsensus atau varian yang memanggil model medaka. Misalnya:
medaka inference input.bam output.hdf
--model [email protected]:variant
akan menggunakan model panggilan varian Medaka yang sesuai untuk digunakan dengan model Basecaller bernama [email protected]
.
Secara historis model Medaka mengikuti nomenklatur yang menggambarkan versi kimia dan basecaller. Model -model lama ini sekarang sudah usang, pengguna didorong untuk menebus data mereka dengan versi basecaller yang lebih baru sebelum menggunakan Medaka.
Program medaka_consensus
bagus untuk kumpulan data sederhana tetapi mungkin tidak optimal untuk menjalankan set data besar pada skala. Tingkat paralelisme yang lebih tinggi dapat dicapai dengan menjalankan secara mandiri langkah -langkah komponen medaka_consensus
. Program ini melakukan tiga tugas:
mini_align
yang merupakan jilbab tipis di atas minimap2
)medaka inference
)medaka sequence
) Tiga langkah itu terpisah, dan dapat dibagi terpisah dan berjalan secara mandiri. Dalam kebanyakan kasus, langkah 2. Adalah bottleneck dan dapat diparalelkan secara sepele. Program medaka consensus
dapat disuplai argumen --regions
yang akan membatasi tindakannya ke urutan perakitan tertentu dari output file .bam
pada langkah 1. Oleh karena itu pekerjaan individu dapat dijalankan untuk batch urutan perakitan secara bersamaan. Pada langkah terakhir, medaka stitch
dapat mengambil input satu atau lebih dari output file .hdf
pada Langkah 2.
Jadi secara ringkas sesuatu seperti ini mungkin:
# 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
Tidak disarankan untuk menentukan nilai --threads
lebih besar dari 2 untuk medaka inference
karena efisiensi penskalaan komputasi buruk di luar ini. Perhatikan juga bahwa medaka inference
mungkin terlihat menggunakan sumber daya yang setara dengan <threads> + 4
sebagai tambahan 4 utas digunakan untuk membaca dan menyiapkan data input.
Medaka telah dilatih untuk memperbaiki output urutan draft dari assembler Flye.
Memproses urutan draf dari sumber alternatif (misalnya output CANU atau WTDBG2) dapat menyebabkan hasil yang berbeda.
Model koreksi historis di Medaka dilatih untuk memperbaiki output urutan rancangan dari assembler CANU dengan Racon yang diterapkan baik sekali, atau empat kali secara iteratif. Untuk model kontemporer ini tidak terjadi dan Medaka harus digunakan langsung pada output Flye.
Kami berterima kasih kepada Joanna Pineda dan Jared Simpson karena menyediakan sampel kode HTSLIB yang sangat membantu pengembangan kode pembuatan fitur yang dioptimalkan, dan untuk menguji kandidat rilis versi 0.4.
Kami berterima kasih kepada Devin Drown karena telah bekerja melalui penggunaan medaka
dengan GPU RTX 2080 -nya.
Lisensi dan Hak Cipta
© 2018- Oxford Nanopore Technologies Ltd.
medaka
didistribusikan berdasarkan ketentuan Oxford Nanopore Technologies Plc. Versi Lisensi Publik 1.0
Rilis penelitian
Rilis penelitian disediakan sebagai demonstran teknologi untuk memberikan akses awal ke fitur atau merangsang pengembangan alat masyarakat. Dukungan untuk perangkat lunak ini akan minim dan hanya disediakan langsung oleh pengembang. Permintaan fitur, perbaikan, dan diskusi dipersilakan dan dapat diimplementasikan dengan permintaan forking dan tarik. Betapapun kami ingin memperbaiki setiap masalah dan bagian umpan balik yang mungkin dimiliki pengguna, pengembang mungkin memiliki sumber daya terbatas untuk mendukung perangkat lunak ini. Rilis penelitian mungkin tidak stabil dan dikenakan iterasi cepat oleh Oxford Nanopore Technologies.