작성: 2024/12/01
1. UNITE + INSD란?
UNITE+INSD'는 UNITE 데이터베이스와 International Nucleotide Sequence Database Collaboration(INSDC)의 데이터를 통합한 데이터베이스이다. INSDC는 GenBank, EMBL, DDBJ와 같은 주요 시퀀스 데이터베이스를 포함하고 있다.
2. QIIME의 classifier제작에 필요한 데이터
QIIME2에 사용되는 분류기는 총 두 개의 파일을 각각 종합하여 사용한다. 그러나 unite +insd 서열을 아래와 같은 구조를 따르지 않는다. 먼저 qiime에 사용되는 형식 두 가지를 알아보자.
1. fasta 서열
>서열이름
AGGGCTCATCGCATGTCAGCAGTCAGTCAGTCAGTCAGTCAGT
>서열이름
AGGGCTCATCGCATGTCAGCAGTCAGTCAGTCAGTCAGTCAGT
2. taxonomy 파일
Feature ID Taxon
서열이름 a;b;c;d;e;f
서열이름 a;b;c;d;e;f
3. 서열 다운로드
- 링크: https://unite.ut.ee/repository.php
위 링크에서 스크롤을 내리다 보면 Full "UNITE + INSD" dataset을 발견할 수 있다.
본문과 같이 QIIME2 형식과 일부 다름으로 사용 시 편집이 필요하다.
먼저 오른쪽 Notes에 해당하는 링크에 접속한 뒤, 개인정보를 입력하면 서열을 다운로드할 수 있다.
cd /data/Reference/ITS/QIIME2/UNITE_INSC_240421/
# 압축 풀기
gzip -d UNITE_public_21.04.2024.fasta.gz
4. QIIME2용으로 수정
UNITE+INSD는 fasta와 taxonomy 정보가 하나의 파일로 합쳐져 있다. 이때 우리는 서열의 이름을 추출하여, QIIME의 taxonomy형식으로 변환해 보자.
# 1. header 추출
grep ">" UNITE_public_21.04.2024.fasta > \
UNITE_public_taxonomy_21.04.2024.txt
# 2. QIIME 형식으로 바꾸기
# kpcofgs만 추출하기
# https://forum.qiime2.org/t/converting-a-usearch-unite-its-database-to-qiime-2-format/18915/5?u=soyeon_kim
cat UNITE_public_21.04.2024.fasta | grep '^>' | \
sed 's/>//; s/|.*=/\t/; s/:/__/g; s/,/; /g; s/;$//' | \
sed 's/\(.__\).__[^;]*/\1/g' > \
UNITE_public_taxonomy_modi_21.04.2024.txt
# 3. taxonomy를 feature ID와 Taxon으로 나누기
vi process_taxonomy.sh
#!/bin/bash
# Input 파일 (raw taxonomy 파일)
input_file="UNITE_public_taxonomy_modi_21.04.2024.txt"
# Output 파일
output_file="UNITE_public_taxonomy_modi2_21.04.2024.txt"
# 헤더 추가 및 데이터 처리
{
echo -e "Feature ID\tTaxon" # 헤더 추가
awk -F'\|' '{taxon=$2; sub("\\|.*", "", taxon); print $0 "\t" taxon}' "$input_file"
} > "$output_file"
echo "파일이 성공적으로 생성되었습니다: $output_file
# :q
chmod +x process_taxonomy.sh
./process_taxonomy.sh
5. Train QIIME classifier
# qiime artifect로 import하기
# taxonomy
qiime tools import --type 'FeatureData[Taxonomy]' \
--input-path UNITE_public_taxonomy_modi2_21.04.2024.txt \
--output-path UNITE_public_taxonomy_modi2_21.04.2024.qza
# fasta
qiime tools import --type 'FeatureData[Sequence]' \
--input-path UNITE_public_21.04.2024.fasta \
--output-path UNITE_public_21.04.2024.qza
# train classifier
# 기본 세팅으로 돌리니까 서버에서 12시간 정도 소요되었습니다!
qiime feature-classifier fit-classifier-naive-bayes \
--i-reference-reads UNITE_public_21.04.2024.qza \
--i-reference-taxonomy UNITE_public_taxonomy_modi2_21.04.2024.qza \
--o-classifier UNITE_public_21.04.2024_classifier.qza
위 코드를 그대로 사용하면 무리 없이 분류기를 생성할 수 있다.
만약 코드에 오류가 있다면 댓글로 작성 바랍니다~!
▶ Github
https://github.com/KitHubb/UNITE-INSD-QIIME2-classifier