Trong quá trình phân tích dữ liệu metagenome/metatranscriptome, việc xác định nguồn gốc nhân thực của các mẫu (đặc biệt là mẫu nước) đóng vai trò quan trọng. Các giải pháp thông tin sinh học đơn lẻ thường không đảm bảo được độ nhạy và chính xác cao, do đó sử dụng nhiều công cụ phân loại khác nhau và kết hợp kết quả (**`ensemble`**) có thể cải thiện đáng kể hiệu suất.
Sử dụng đa công cụ để nhận diện chuỗi nhân thực
Các công cụ phân loại truyền thống như **`kaiju + nr_euk`** và **`kraken2 + gtdb`** có thể nhận diện chuỗi nhân thực và nguyên sinh nhưng cần cơ sở dữ liệu tham chiếu bổ sung, và phạm vi bao phủ của cơ sở dữ liệu ảnh hưởng đến kết quả cuối cùng.- Sử dụng **`kaiju`** để phân loại chuỗi:
mkdir ketqua_kaiju
kaiju -t /du_lieu/kaiju/nr_euk/taxonomy/nodes.dmp \
-f /du_lieu/kaiju/nr_euk/kaiju_db_nr_euk.fmi \
-i input.fasta -o ketqua_kaiju/phan_loai.txt -z 40 -s 75 -e 5 -x
chuyen_doi_taxon -c 3 /du_lieu/kaiju/nr_euk/taxonomy/taxon.map \
ketqua_kaiju/phan_loai.txt |\
chon_cot -f1 - C |\
lay_cot 2,4 > ketqua_kaiju/danh_gia.txt
eutig-tk danh_gia ketqua_kaiju/danh_gia.txt > xem_ketqua/kaiju.txt
- Sử dụng **`kraken2`** để phân loại chuỗi:
mkdir ketqua_kraken2
kraken2 --db /du_lieu/kraken2/db_kraken2 \
--threads 40 \
--output ketqua_kraken2/phan_loai.txt \
--confidence 0.05 input.fasta
chuyen_doi_taxon -c 3 /du_lieu/kraken2/db_kraken2/taxonomy/taxon.map \
ketqua_kraken2/phan_loai.txt |\
chon_cot -f1 - C |\
lay_cot 2,6 > ketqua_kraken2/danh_gia.txt
eutig-tk danh_gia ketqua_kraken2/danh_gia.txt > xem_ketqua/kraken2.txt
Một số công cụ chuyên dụng cho phân loại chuỗi nhân thực như **`whokaryote`**, **`tiara`**, **`EukRep`**, và **`DeepMicroClass`** đều dựa trên thuật toán học máy, không yêu cầu cơ sở dữ liệu tham chiếu bổ sung nhưng có yêu cầu về độ dài chuỗi.
- Sử dụng **`whokaryote`** để dự đoán chuỗi nhân thực:
mkdir ketqua_whokaryote
apptainer exec apptainer/whokaryote-1.1.2.sif \
whokaryote.py --contigs input.fasta \
--outdir ketqua_whokaryote \
--threads 40 \
--minsize 1000
eutig-tk whokaryote ketqua_whokaryote/du_doan_T.tsv > xem_ketqua/whokaryote.txt
- Sử dụng **`tiara`** để dự đoán chuỗi nhân thực:
mkdir ketqua_tiara
apptainer exec apptainer/tiara-1.0.3.sif \
tiara -i input.fasta -m 1000 \
-o ketqua_tiara/du_doan.txt \
-t 40
eutig-tk tiara ketqua_tiara/du_doan.txt > xem_ketqua/tiara.txt
- Sử dụng **`EukRep`** để dự đoán chuỗi nhân thực:
mkdir ketqua_eukrep
apptainer exec apptainer/eukrep-0.6.7.sif \
EukRep -i input.fasta \
-o ketqua_eukrep/du_doan.txt \
--prokarya ketqua_eukrep/prokarya.txt \
--min 1000 --seq_names
eutig-tk eukrep ketqua_eukrep/du_doan.txt ketqua_eukrep/prokarya.txt > xem_ketqua/eukrep.txt
- Sử dụng **`DeepMicroClass`** để dự đoán chuỗi nhân thực:
apptainer exec apptainer/DeepMicroClass-1.0.2.sif \
DeepMicroClass predict --input input.fasta \
--output_dir DeepMicroClass \
--device cpu
eutig-tk deepmicroclass DeepMicroClass/input_pred_one-hot_hybrid.tsv > xem_ketqua/DeepMicroClass.txt
Kết hợp và tổng hợp thông tin
Công cụ **`eutig-tk`** được phát triển nhằm thống nhất định dạng đầu ra của các tệp khác nhau, phân loại chuỗi thành bốn nhóm: **`eukaryote`, `prokaryote`**, **`Others`** và **`NA`**. Lệnh **`eutig-tk`**:Usage: eutig-kit <command> <arguments>
Version: 0.0.1
Command:
deepmicroclass Nhãn eukaryote/prokaryote cho DeepMicroClass.
whokaryote Nhãn eukaryote/prokaryote cho Whokaryote.
tiara Nhãn eukaryote/prokaryote cho Tiara.
eukrep Nhãn eukaryote/prokaryote cho EukRep.
taxify Nhãn eukaryote/prokaryote cho Kaiju/Kraken2.
inspect Phân loại eukaryote/prokaryote theo quy tắc EUKsemble.
Sử dụng lệnh sau để tổng hợp:
tsv-utils agg \
-k 1 -t seqname -c 2 -p NA \
DeepMicroClass:xem_ketqua/DeepMicroClass.txt \
eukrep:xem_ketqua/eukrep.txt \
tiara:xem_ketqua/tiara.txt \
whokaryote:xem_ketqua/whokaryote.txt \
kaiju:xem_ketqua/kaiju.txt \
kraken2:xem_ketqua/kraken2.txt | \
eutig-tk inspect - > tong_hop.txt
Phương pháp phân loại dựa trên **EUKsemble** với các mức độ xếp hạng và chiến lược phân tích tích hợp để đạt được độ chính xác tối ưu.