Contig Annotation Tool (CAT) dan Bin Annotation Tool (BAT) adalah jalur pipa untuk klasifikasi taksonomi sekuens DNA panjang dan genom rakitan metagenom (MAGs / bins) dari mikroorganisme yang dikenal dan (sangat) tidak dikenal, seperti yang dihasilkan oleh studi metagenomik kontemporer. Algoritme inti dari kedua program melibatkan pemanggilan gen, pemetaan ORF yang diprediksi terhadap database protein, dan klasifikasi berbasis pemungutan suara dari seluruh contig/MAG berdasarkan klasifikasi ORF individu. CAT dan BAT dapat dijalankan dari langkah perantara jika file diformat dengan tepat.
Makalah yang menjelaskan algoritme bersama dengan tolok ukur ekstensif dapat ditemukan di https://doi.org/10.1186/s13059-019-1817-x. Jika Anda menggunakan CAT atau BAT dalam penelitian Anda, alangkah baiknya jika Anda dapat mengutip kami:
Read Annotation Tool (RAT) memperkirakan komposisi taksonomi metagenom menggunakan keluaran CAT dan BAT. Naskah yang menjelaskan RAT dengan tolok ukur dapat ditemukan di https://doi.org/10.1038/s41467-024-47155-1. Jika Anda menggunakan RAT dalam penelitian Anda, alangkah baiknya jika Anda dapat mengutip:
Mengutip kode itu sendiri:
Python 3, https://www.python.org/.
BERLIAN, https://github.com/bbuchfink/diamond.
Anak Hilang, https://github.com/hyattpd/Anak Hilang.
RAT memerlukan lebih lanjut (tidak diperlukan untuk CAT dan BAT):
BWA, https://github.com/lh3/bwa.
SAMtools, http://www.htslib.org/download/.
CAT, BAT, dan RAT telah diuji secara menyeluruh pada sistem Linux, dan juga dapat dijalankan di MacOS.
Tidak diperlukan instalasi. Anda dapat menjalankan CAT, BAT dan RAT dengan menyediakan jalur absolut:
$ ./CAT_pack/CAT_pack --help
Alternatifnya, jika Anda menambahkan file di direktori CAT_pack ke variabel $PATH
, Anda dapat menjalankan CAT, BAT, dan RAT dari mana saja:
$ CAT_pack --version
Untuk memulai dengan CAT/BAT/RAT, Anda harus mendapatkan file database di sistem Anda. Anda dapat mengunduh file database yang telah dibuat sebelumnya, atau membuatnya sendiri.
Untuk mengunduh file database, temukan versi terbaru di tbb.bio.uu.nl/tina/CAT_pack_prepare/, unduh dan ekstrak, dan Anda siap berangkat!
Untuk NCBI no:
$ wget tbb.bio.uu.nl/tina/CAT_pack_prepare/20240422_CAT_nr.tar.gz
$ tar -xvzf 20240422_CAT_nr.tar.gz
Untuk GTDB:
$ wget tbb.bio.uu.nl/tina/CAT_pack_prepare/20231120_CAT_gtdb.tar.gz # release 214
$ tar -xvzf 20231120_CAT_gtdb.tar.gz
Daripada menggunakan database yang telah dibuat sebelumnya, Anda dapat membuat database baru sendiri. Modul download
dapat digunakan untuk mengunduh dan memproses data mentah, sebagai persiapan untuk membangun database paket CAT baru. Ini akan memastikan bahwa semua dependensi masukan terpenuhi dan diformat dengan benar untuk CAT_pack prepare
.
Saat ini, dua database didukung, nr NCBI dan protein Genome Taxonomy Database (GTDB).
$ CAT_pack download -db nr -o path/to/nr_data_dir
Akan mengunduh file fasta dengan urutan protein, pemetaannya ke taksi, dan informasi taksonomi dari situs ftp NCBI.
$ CAT_pack download -db gtdb -o path/to/gtdb_data_dir
File yang diperlukan untuk membangun database paket CAT disediakan oleh halaman download GTDB.
CAT_pack download
mengambil file yang diperlukan dan melakukan beberapa proses tambahan agar siap untuk CAT_pack prepare
:
nodes.dmp
dan names.dmp
gaya NCBI.gtdb_proteins_aa_reps.tar.gz
dan dilakukan deduplikasi. Deduplikasi mengurangi redundansi dalam database DIAMOND, sehingga menyederhanakan proses penyelarasan. Urutan duplikat yang tepat diidentifikasi berdasarkan kombinasi MD5sum dari urutan protein dan panjangnya. Hanya satu urutan perwakilan yang disimpan, dengan semua duplikat dikodekan dalam header fasta. Informasi ini kemudian digunakan oleh CAT_pack prepare
untuk menetapkan LCA dari urutan protein dengan tepat di file .fastaid2LCAtaxid
.root
, untuk menghasilkan file all.tree
. File ini tidak digunakan oleh paket CAT tetapi mungkin berguna untuk analisis hilir. Ketika pengunduhan dan pemrosesan file selesai dengan sukses, Anda dapat membuat database paket CAT dengan CAT_pack prepare
.
Untuk semua opsi baris perintah yang tersedia, lihat
$ CAT_pack download -h
Dan
$ CAT_pack prepare -h
Untuk database paket CAT kustom, Anda harus menyiapkan input berikut sebelum meluncurkan proses CAT_pack prepare
.
File fasta yang berisi semua rangkaian protein yang ingin Anda sertakan dalam database Anda.
File names.dmp
yang berisi pemetaan taksid ke peringkat dan nama ilmiahnya. Formatnya harus sama dengan names.dmp
standar NCBI.dmp (menggunakan t|t
sebagai pemisah bidang).
Contohnya terlihat seperti ini:
1 | root | scientific name |
2 | Bacteria | scientific name |
562 | Escherichia coli | scientific name |
nodes.dmp
yang menjelaskan hubungan anak-orang tua dari node di pohon taksonomi dan peringkat (resmi) mereka. Formatnya harus sama dengan nodes.dmp
standar NCBI (menggunakan t|t
sebagai pemisah bidang).Contohnya terlihat seperti ini:
1 | 1 | root |
2 | 1 | superkingdom |
1224 | 2 | phylum |
1236 | 1224 | class |
91437 | 1236 | order |
543 | 91347 | family |
561 | 543 | genus |
562 | 561 | species |
Untuk informasi lebih lanjut tentang file nodes.dmp
dan names.dmp
, lihat NCBI taxdump_readme.txt.
accession.version taxid
.Contohnya seperti ini
accession.version taxid
protein_1 562
protein_2 123456
Setelah semua persyaratan di atas terpenuhi, Anda dapat menjalankan CAT_pack prepare
. Semua masukan perlu ditentukan secara eksplisit agar CAT_pack prepare
berfungsi, misalnya:
$ CAT_pack prepare
--db_fasta path/to/fasta
--names path/to/names.dmp
--nodes path/to/nodes.dmp
--acc2tax path/to/acc2taxid.txt.gz
--db_dir path/to/output_dir
akan membuat output_dir
yang akan terlihat seperti ini
output_dir
├── 2023-11-05_CAT_pack.log
├── db
│ ├── 2023-11-05_CAT_pack.dmnd
│ ├── 2023-11-05_CAT_pack.fastaid2LCAtaxid
│ └── 2023-11-05_CAT_pack.taxids_with_multiple_offspring
└── tax
├── names.dmp
└── nodes.dmp
Catatan:
db
dan tax
dibuat yang berisi semua file yang diperlukan.nodes.dmp
dan names.dmp
di direktori tax
disalin dari lokasi aslinya. Hal ini untuk memastikan bahwa tanda -t
pada CAT, BAT, dan RAT berfungsi.<YYYY-MM-DD>_CAT_pack
. Anda dapat menyesuaikannya dengan opsi --common_prefix
.Untuk semua opsi baris perintah yang tersedia, lihat
$ CAT_pack prepare -h
File database diperlukan dalam proses CAT/BAT/RAT berikutnya. Mereka hanya perlu dibuat/diunduh satu kali atau kapan pun Anda ingin memperbarui database.
Untuk menjalankan CAT/BAT/RAT, masing-masing:
$ CAT_pack contigs # Runs CAT.
$ CAT_pack bins # Runs BAT.
$ CAT_pack reads # Runs RAT.
Jika Anda tidak yakin opsi apa yang dimiliki suatu program, Anda selalu dapat menambahkan --help
ke sebuah perintah. Ini adalah cara yang bagus untuk memulai dengan CAT, BAT, atau RAT.
$ CAT_pack --help
$ CAT_pack contigs --help
$ CAT_pack summarise --help
Jika Anda tidak yakin tentang file masukan apa yang diperlukan, Anda cukup menjalankan CAT/BAT/RAT, karena pesan kesalahan yang sesuai akan dihasilkan jika pemformatan salah.
Setelah Anda mendapatkan file database di sistem Anda, Anda dapat menjalankan CAT untuk memberi anotasi pada kumpulan konfigurasi Anda:
$ CAT_pack contigs -c {contigs fasta} -d {database folder} -t {taxonomy folder}
Beberapa file keluaran dan file log akan dihasilkan. File klasifikasi akhir akan dipanggil out.CAT.ORF2LCA.txt
dan out.CAT.contig2classification.txt
.
Alternatifnya, jika Anda sudah memiliki file fasta protein yang diprediksi dan/atau tabel penyelarasan misalnya dari proses sebelumnya, Anda dapat menyediakannya ke CAT, yang kemudian akan melewati langkah-langkah yang telah dilakukan dan mulai dari sana:
$ CAT_pack contigs -c {contigs fasta} -d {database folder} -t {taxonomy folder} -p {predicted proteins fasta} -a {alignment file}
Header dalam file fasta protein yang diprediksi harus terlihat seperti ini >{contig}_{ORFnumber}
, sehingga CAT dapat memasangkan contigs ke ORF. File penyelarasan harus dipisahkan tab, dengan ORF yang ditanyakan di kolom pertama, nomor aksesi protein di kolom kedua, dan skor bit di kolom ke-12.
Untuk menjalankan BAT pada sekumpulan MAG:
$ CAT_pack bins -b {bin folder} -d {database folder} -t {taxonomy folder}
Alternatifnya, BAT dapat dijalankan pada satu MAG:
$ CAT_pack bins -b {bin fasta} -d {database folder} -t {taxonomy folder}
Beberapa file keluaran dan file log akan dihasilkan. File klasifikasi akhir akan dipanggil out.BAT.ORF2LCA.txt
dan out.BAT.bin2classification.txt
.
Mirip dengan CAT, BAT dapat dijalankan dari langkah-langkah intermidate jika prediksi dan penyelarasan gen telah dilakukan satu kali:
$ CAT_pack bins -b {bin folder} -d {database folder} -t {taxonomy folder} -p {predicted proteins fasta} -a {alignment file}
Jika sebelumnya Anda telah menjalankan CAT pada kumpulan konfigurasi asal MAG, Anda dapat menggunakan file protein dan penyelarasan yang diprediksi sebelumnya untuk mengklasifikasikan MAG.
$ CAT_pack contigs -c {contigs fasta} -d {database folder} -t {taxonomy folder}
$ CAT_pack bins -b {bin folder} -d {database folder} -t {taxonomy folder} -p {predicted proteins fasta from contig run} -a {alignment file from contig run}
Ini adalah cara yang bagus untuk menjalankan CAT dan BAT pada sekumpulan MAG tanpa perlu melakukan prediksi dan penyelarasan protein dua kali!
Keluaran ORF2LCA terlihat seperti ini:
ORF | jumlah pukulan (r: 10) | garis keturunan | skor bit |
---|---|---|---|
contig_1_ORF1 | 7 | 1;131567;2;1783272 | 574.7 |
Dimana garis keturunannya adalah garis keturunan taksonomi penuh dari klasifikasi ORF, dan skor bit adalah skor bit teratas yang ditetapkan ke ORF untuk pemungutan suara. File keluaran BAT ORF2LCA memiliki kolom tambahan tempat ORF ditautkan ke MAG tempat mereka ditemukan.
Output contig2classification dan bin2classification terlihat seperti ini:
contig atau bin | klasifikasi | alasan | garis keturunan | skor garis keturunan (f: 0,3) |
---|---|---|---|---|
contig_1 | taksid ditugaskan | berdasarkan 14/15 ORF | 1;131567;2;1783272 | 1,00; 1,00; 1,00; 0,78 |
contig_2 | taksid ditugaskan (1/2) | berdasarkan 10/10 ORF | 1;131567;2;1783272;17id98711;1117;307596;307595;1890422;33071;1416614;1183438* | 1,00;1,00;1,00;1,00;1,00;1,00;1,00;1,00;1,00;1,00;0,23;0,23 |
contig_2 | taksid ditugaskan (2/2) | berdasarkan 10/10 ORF | 1;131567;2;1783272;1798711;1117;307596;307595;1890422;33071;33072 | 1,00;1,00;1,00;1,00;1,00;1,00;1,00;1,00;1,00;1,00;0,77 |
contig_3 | tidak ada taksi yang ditugaskan | tidak ada ORF yang ditemukan |
Dimana skor garis keturunan mewakili sebagian kecil dari dukungan skor bit untuk setiap klasifikasi. contig_2 memiliki dua klasifikasi. Hal ini dapat terjadi jika parameter f dipilih di bawah 0,5. Untuk penjelasan mengenai klasifikasi berbintang , lihat Menandai tugas taksonomi sugestif dengan tanda bintang.
Untuk menambahkan nama ke taksi di salah satu file keluaran, jalankan:
$ CAT_pack add_names -i {ORF2LCA / classification file} -o {output file} -t {taxonomy folder}
Ini akan menunjukkan kepada Anda bahwa misalnya contig_1 diklasifikasikan sebagai grup Terrabacteria. Untuk hanya mendapatkan peringkat resmi ( yaitu kerajaan super, filum, ...):
$ CAT_pack add_names -i {ORF2LCA / classification file} -o {output file} -t {taxonomy folder} --only_official
Atau, sebagai alternatif:
$ CAT_pack add_names -i {ORF2LCA / classification file} -o {output file} -t {taxonomy folder} --only_official --exclude_scores
Jika Anda telah menamai file klasifikasi CAT atau BAT dengan nama resmi, Anda bisa mendapatkan ringkasan klasifikasi tersebut, di mana total panjang dan jumlah ORF yang mendukung takson dihitung untuk contigs, dan jumlah MAG per takson yang ditemui untuk klasifikasi MAG:
$ CAT_pack summarise -c {contigs fasta} -i {named CAT classification file} -o {output file}
$ CAT_pack summarise -i {named BAT classification file} -o {output file}
CAT_pack summarise
saat ini tidak mendukung file klasifikasi dimana beberapa contigs/MAG memiliki beberapa klasifikasi (seperti contig_2 di atas).
Ketika kita ingin turun ke tingkat taksonomi serendah mungkin untuk suatu klasifikasi, asumsi penting adalah bahwa pada tingkat tersebut konflik antar klasifikasi dapat muncul. Yaitu, jika terdapat klasifikasi yang bertentangan, algoritme akan membuat klasifikasi menjadi lebih konservatif dengan menaikkan satu level. Karena tidak demikian, kita dapat mempercayai klasifikasi tingkat rendah. Namun, konflik tidak selalu mungkin timbul, karena dalam beberapa kasus tidak ada urutan lain dari clade yang ada dalam database. Hal ini berlaku misalnya pada famili Dehalococcoidaceae, yang dalam database kami merupakan satu-satunya perwakilan ordo Dehalococcoidales. Oleh karena itu, di sini kami tidak dapat dengan yakin menyatakan bahwa klasifikasi pada tingkat keluarga lebih tepat daripada klasifikasi pada tingkat ordo. Untuk kasus ini, CAT dan BAT menandai garis keturunan dengan tanda bintang, mulai dari klasifikasi tingkat terendah hingga tingkat di mana konflik dapat timbul karena clade berisi beberapa taksa dengan entri database. Pengguna disarankan untuk memeriksa taksa berbintang dengan lebih hati-hati, misalnya dengan menganalisis identitas urutan antara prediksi ORF dan hit, atau menaikkan garis keturunan ke klasifikasi percaya diri (yaitu klasifikasi pertama tanpa tanda bintang).
Jika Anda tidak ingin tanda bintang di file output Anda, Anda dapat menambahkan flag --no_stars
ke CAT atau BAT.
CAT dan BAT mungkin memerlukan waktu untuk dijalankan, dan mungkin menggunakan cukup banyak RAM dan ruang disk. Tergantung pada apa yang paling Anda hargai, Anda dapat menyetel CAT dan BAT untuk memaksimalkan salah satu dan meminimalkan yang lain. Algoritma klasifikasinya sendiri cepat dan ramah pada memori dan ruang disk. Langkah yang paling mahal adalah penyelarasan dengan DIAMOND, oleh karena itu penyetelan parameter penyelarasan akan memiliki dampak paling besar:
-n / --nproc
memungkinkan Anda memilih jumlah inti yang akan diterapkan.--sensitive
. Hal ini akan meningkatkan sensitivitas namun akan memperlambat penyelarasan.--block_size
lebih rendah akan mengurangi penggunaan memori dan ruang disk sementara. Menyetelnya lebih tinggi akan meningkatkan kinerja.--index_chunks
ke 1 (saat ini default). Parameter ini tidak berpengaruh pada penggunaan ruang disk sementara.--tmpdir
.Mendapatkan bantuan untuk menjalankan utilitas persiapan:
$ CAT_pack prepare --help
Jalankan CAT pada set contig dengan pengaturan parameter default yang menyebarkan 16 core untuk penyelarasan DIAMOND. Beri nama keluaran klasifikasi contig dengan nama resmi, dan buat ringkasan:
$ CAT_pack contigs -c contigs.fasta -d db/ -t tax/ -n 16 --out_prefix first_CAT_run
$ CAT_pack add_names -i first_CAT_run.contig2classification.txt -o first_CAT_run.contig2classification.official_names.txt -t tax/ --only_official
$ CAT_pack summarise -c contigs.fasta -i first_CAT_run.contig2classification.official_names.txt -o CAT_first_run.summary.txt
Jalankan BAT pada kumpulan MAG yang dibuang dari contig ini, gunakan kembali prediksi protein dan file penyelarasan DIAMOND yang dihasilkan sebelumnya selama klasifikasi contig:
$ CAT_pack bins -b bins/ -d db/ -t tax/ -p first_CAT_run.predicted_proteins.faa -a first_CAT_run.alignment.diamond -o first_BAT_run
Jalankan kembali algoritma klasifikasi contig dengan pengaturan parameter khusus, dan beri nama output dengan semua nama dalam garis keturunan, tidak termasuk skor:
$ CAT_pack contigs --range 5 --fraction 0.1 -c contigs.fasta -d db/ -t tax/ -p first_CAT_run.predicted_proteins.faa -a first_CAT_run.alignment.diamond -o second_CAT_run
$ CAT_pack add_names -i second_CAT_run.contig2classification.txt -o second_CAT_run.contig2classification.names.txt -t tax/ --exclude_scores
Jalankan BAT pada kumpulan MAG dengan pengaturan parameter khusus, menekan verbositas dan tidak menulis file log. Selanjutnya, tambahkan nama ke file keluaran ORF2LCA:
$ CAT_pack bins -r 3 -f 0.1 -b bins/ -s .fa -d db/ -t tax/ -p first_CAT_run.predicted_proteins.faa -a first_CAT_run.alignment.diamond --o second_BAT_run --quiet --no_log
$ CAT_pack add_names -i second_BAT_run.ORF2LCA.txt -o second_BAT_run.ORF2LCA.names.txt -t tax/
Kami sering menggunakan kombinasi CAT / BAT untuk mengeksplorasi kemungkinan kontaminasi dalam MAG.
$ CAT_pack contigs -c ../bins/interesting_MAG.fasta -d db/ -t tax/ -o CAT.interesting_MAG
$ CAT_pack bins -b ../bins/interesting_MAG.fasta -d db/ -t tax/ -p CAT.interesting_MAG.predicted_proteins.faa -a CAT.interesting_MAG.alignment.diamond -o BAT.interesting_MAG
Contig yang memiliki sinyal taksonomi berbeda dengan klasifikasi MAG kemungkinan besar merupakan kontaminasi.
Alternatifnya, Anda dapat melihat kontaminasi dari perspektif MAG, dengan mengatur parameter f ke nilai rendah:
$ CAT_pack bins -f 0.01 -b ../bins/interesting_MAG.fasta -d db/ -t tax/ -o BAT.interesting_MAG
$ CAT_pack add_names -i BAT.interesting_MAG.bin2classification.txt -o BAT.interesting_MAG.bin2classification.names.txt -t tax/
BAT akan mengeluarkan sinyal taksonomi apa pun dengan dukungan minimal 1%. Sinyal divergen dengan skor rendah merupakan tanda jelas adanya kontaminasi!
RAT memperkirakan komposisi taksonomi metagenom dengan mengintegrasikan sinyal taksonomi dari MAG, contigs, dan reads. RAT telah ditambahkan ke paket CAT dari versi 6.0. Untuk menggunakan RAT, Anda memerlukan file database paket CAT (lihat Memulai untuk informasi lebih lanjut).
RAT membuat profil terintegrasi menggunakan MAGs/bins, contigs, dan reads. Untuk menentukan elemen mana yang harus diintegrasikan, gunakan argumen --mode
. Kemungkinan huruf untuk --mode
adalah m
(untuk MAG), c
(untuk contigs), dan r
(untuk membaca). Semua kombinasi ketiga huruf tersebut dimungkinkan, kecuali r
saja. Untuk menjalankan alur kerja RAT secara lengkap, tentukan mode, file baca, file contig, folder bin, dan file database:
$ CAT_pack reads --mode mcr -b bin_folder/ -c contigs.fasta -1 forward_reads.fq.gz -2 reverse_reads.fq.gz -d db/ -t tax/
Saat ini, RAT mendukung file baca tunggal serta file baca berpasangan. File baca interlaced saat ini tidak didukung. RAT akan menjalankan CAT dan BAT pada contigs dan MAGs, akan memetakan bacaan kembali ke contigs, dan kemudian mencoba memberi anotasi pada setiap bacaan yang belum dipetakan secara terpisah. Jika Anda sudah memiliki file pemetaan yang diurutkan, Anda dapat menyediakannya dan RAT akan melewati langkah pemetaan:
$ CAT_pack reads --mode mcr -b bin_folder/ -c contigs.fasta --bam1 mapping_file_sorted.bam -1 forward_reads.fq.gz -2 reverse_reads.fq.gz -d db/ -t tax/
Jika CAT dan/atau BAT telah dijalankan pada data Anda, Anda dapat menyediakan file output ke RAT untuk melewati proses CAT dan BAT:
$ CAT_pack reads --mode mcr -b bin_folder/ -c contigs.fasta -1 forward_reads.fq.gz -2 reverse_reads.fq.gz -d db/ -t tax/ --c2c CAT_contig2classification_file.txt --b2c BAT_bin2classification_file.txt
Demikian pula, jika proses RAT sebelumnya mengalami crash setelah pembacaan yang belum dipetakan telah disejajarkan dengan database dengan diamond, Anda dapat menyediakan file perantara untuk melanjutkan proses:
$ CAT_pack reads --mode mcr -b bin_folder/ -c contigs.fasta -1 forward_reads.fq.gz -2 reverse_reads.fq.gz -d db/ -t tax/ --c2c CAT_contig2classification_file.txt --b2c BAT_bin2classification_file.txt --alignment_unmapped unmapped_alignment_file.diamond
Setelah proses RAT selesai, Anda dapat menjalankan add_names pada file kelimpahan (hanya untuk proses RAT dengan database nr):
$ CAT_pack add_names -i RAT.completete_abundance_file.txt -o RAT.completete_abundance_file_with_names.txt -t tax/
Mirip dengan CAT dan BAT, jalur ke semua dependensi dapat diberikan melalui argumen:
$ CAT_pack reads --mode mcr -b bin_folder/ -c contigs.fasta -1 forward_reads.fq.gz -2 reverse_reads.fq.gz -d db/ -t tax/ --path_to_samtools /path/to/samtools
Keluaran RAT terdiri dari:
r
di --mode
).