Metaphlan3 이란?
metagenome 데이터에서 marker gene을 위주로 데이터에 taxonomy를 assign해주고 다른 분석도 해주는 도구이다
장점은 다른 tool에 비해 빠른 속도를 가진다
현재 버전 4까지 나와있지만. 4는 용량이 많이 커서 노트북이나 데스크탑으로는 사용하기 어렵다
설치만 해도 노트북에서 WSL을 설치하고 conda 에러로 Anaconda를 깔았다 지우고 Metaphlan설치와 에러 해결로 한 5시간 넘게 걸린것 같다..ㅠ
| 설치 방법
- conda 사용 ( 이 방법 사용)
$ conda create --name mpa -c bioconda python=3.7 metaphlan
- pip사용
pip install metaphlan
- 설치 파일 직접 다운로드 (git)
git clone https://github.com/biobakery/MetaPhlAn.git
등이 있다. 일단 오류를 줄이기 위해 bioconda에서 다운받아보자
| 설치전 단계
$ conda config --add channels defaults
$ conda config --add channels bioconda
$ conda config --add channels conda-forge
| 설치
- 업데이트를 하지 않아서 생기는 오류도 많다. 일단 conda를 update해준다
conda update --all
$ conda create --name mpa -c bioconda python=3.7 metaphlan
🚨 에러🚨
# CorruptedEnvironmentError: The target environment has been corrupted. Corrupted environments most commonly
# occur when the conda process is force-terminated while in an unlink-link transaction.
# environment location: /home/ksy/anaconda3
# corrupted file: /home/ksy/anaconda3/conda-meta/distributed-2022.2.1-pyhd3eb1b0_0.json
이는 단순히 corrupted된 파일을 삭제하면 된다 (참고)
rm -rf /home/ksy/anaconda3/conda-meta/distributed-2022.2.1-pyhd3eb1b0_0.json
다시 해보자
$ conda install -c bioconda metaphlan
$ conda create --name mpa -c bioconda metaphlan
$ conda activate mpa
install, create까지 완료 했다. 그러나 activate되지 않았다.
원인을 찾아보니 경로를 삭제후 이를 적용해줘야 했다
source ~/anaconda3/etc/profile.d/conda.sh
이후 다시 활성화 시켜보자
$ conda activate mpa # OK!!
$ conda deactivate
| 데이터 베이스 다운로드
- 데이터 베이스가 들어갈 경로를 만들어 준다
$ cd
$ mkdir -p db/metaphlan_databases
- 콘다 환경 실행, bowtie2의 데이터 베이스를 다운받는다. 혹은 아래 링크에서 수동으로 다운받을 수 있다
# Enter `mpa` environment first
$ conda activate mpa
# Download & install latest database
(mpa) $ metaphlan --install --bowtie2db ~/db/metaphlan_databases
| 샘플 데이터 다운로드 하기
- 데이터의 출처는 Metaphlan공식 튜토리얼이다.
- 데이터를 담을 경로를 만들어 준다
(mpa) $ mkdir metaphlan_analysis
(mpa) $ cd metaphlan_analysis
- 데이터를 다운로드 한다
(mpa) $ curl -LO https://github.com/biobakery/biobakery/raw/master/demos/biobakery_demos/data/metaphlan3/input/SRS014476-Supragingival_plaque.fasta.gz
# or
(mpa) $ wget https://github.com/biobakery/biobakery/raw/master/demos/biobakery_demos/data/metaphlan3/input/SRS014476-Supragingival_plaque.fasta.gz
- 이제 Metaphlan을 돌려서 각 서열을 엮고(Align) 이전에 다운로드 했던 bowtieDB를 이용해 결과를 보자
(mpa) $ metaphlan SRS014476-Supragingival_plaque.fasta.gz --input_type fasta > SRS014476-Supragingival_plaque_profile.txt
| 결과
output은 총 2가지 이다
- SRS014476-Supragingival_plaque.fasta.gz.bowtie2out.txt: contains the intermediate mapping results to unique sequence markers.
HWUSI-EAS1568_102539179:1:100:10001:7882/1 712117__F3PCC2__HMPREF9056_02717
HWUSI-EAS1568_102539179:1:100:10007:17628/1 712357__A0A0K2JD54__AMK43_09330
HWUSI-EAS1568_102539179:1:100:10017:5224/1 2047__E3H3C1__HMPREF0733_12099
HWUSI-EAS1568_102539179:1:100:10023:7402/1 712122__A0A0M4H4P0__AM609_02120
HWUSI-EAS1568_102539179:1:100:10025:16605/1 43768__C0E1K0__murJ
HWUSI-EAS1568_102539179:1:100:10033:18381/1 43768__E0DI09__HMPREF0299_5319
HWUSI-EAS1568_102539179:1:100:10083:4412/1 2047__E3H2T8__coaBC
HWUSI-EAS1568_102539179:1:100:10091:12482/1 505__C4GHX6__GCWU000324_00464
HWUSI-EAS1568_102539179:1:100:10094:10442/1 544581__U1RE23__HMPREF1979_00736
HWUSI-EAS1568_102539179:1:100:10103:1753/1 28133__F9DGE7__CBG57_05925
HWUSI-EAS1568_102539179:1:100:10109:14464/1 43768__E0DGH3__HMPREF0299_6971
HWUSI-EAS1568_102539179:1:100:10112:17904/1 43768__E0DEQ2__HMPREF0299_6337
- SRS014476-Supragingival_plaque_profile.txt: contains the final computed organism abundances.
#mpa_v30_CHOCOPhlAn_201901
#/n/huttenhower_lab/tools/metaphlan3/bin/metaphlan SRS014476-Supragingival_plaque.fasta.gz --input_type fasta
#SampleID Metaphlan_Analysis
#clade_name NCBI_tax_id relative_abundance additional_species
k__Bacteria 2 100.0
k__Bacteria|p__Actinobacteria 2|201174 100.0
k__Bacteria|p__Actinobacteria|c__Actinobacteria 2|201174|1760 100.0
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Corynebacteriales 2|201174|1760|85007 65.25681
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Micrococcales 2|201174|1760|85006 34.74319
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Corynebacteriales|f__Corynebacteriaceae 2|201174|1760|85007|1653 65.25681
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Micrococcales|f__Micrococcaceae 2|201174|1760|85006|1268 34.74319
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Corynebacteriales|f__Corynebacteriaceae|g__Corynebacterium 2|201174|1760|85007|1653|1716 65.25681
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Micrococcales|f__Micrococcaceae|g__Rothia 2|201174|1760|85006|1268|32207 34.74319
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Corynebacteriales|f__Corynebacteriaceae|g__Corynebacterium|s__Corynebacterium_matruchotii 2|201174|1760|85007|1653|1716|43768 65.25681
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Micrococcales|f__Micrococcaceae|g__Rothia|s__Rothia_dentocariosa 2|201174|1760|85006|1268|32207|2047 34.74319 k__Bacteria|p__Actinobacteria|
~
~
데이터를 살펴보자
$ cat SRS014476-Supragingival_plaque_profile.txt | grep -E ‘P__’
grep -E 'P__'를 이용해서 존재하는 Phylum을 관찰할 수 있다
$ cat SRS014476-Supragingival_plaque_profile.txt | grep -E ‘g__’ | grep -v ‘s__’
-v 'S__'는 Species를 제외한다는 명령어다
| 참고
- https://github.com/biobakery/biobakery/wiki/metaphlan3#run-a-single-sample
- https://omicx.cc/posts/2021-12-17-install-and-setup-metaphlan-3/