Bioinformatics/Metagenomics

[QIIME2] QIIME의 3가지 Interface (CLI, GUI, Python API)

2021. 3. 5. 18:10

QIIME2는 3가지 interface를 제공하며, 관련 내용이 QIIME 2 doc에 소개되어있다 (Reference의 URL 참고). 아래는 QIIME 2 doc을 바탕으로 작성되었다.

 

1. Command line interface (q2cli): 가장 일반적으로 사용할 수 있는 interface로, QIIME2의 tutorial은 모두 command line에서 진행된다. CLI의 장점은 Bash shell을 사용할 경우, tab을 통해 자동완성을 지원한다는 점이다.

 

2. Graphical user interface (QIIME2 Studio, q2studio): GUI 환경에서 QIIME을 돌릴 수 있는 studio도 제공하고 있다.

 

3. Python API (Artifact API): QIIME2를 Python 3를 통해 사용할 수 있다. 파일의 압축과 해제를 각 step마다 하지 않기 때문에 더 빠르다. Jupyter를 실행해서 커널을 통해 QIIME2가 설치된 가상환경을 이용하면 편리하다. 각 plugin의 사용방법은 QIIME2 docs 중 Plugins에서 Artifact API 항목을 보면 확인 가능하다. 아래는 사용 예제이다.

 

>>> from qiime2.plugins import feature_table
>>> from qiime2 import Artifact
>>> unrarefied_table = Artifact.load('table.qza')
>>> rarefy_result = feature_table.methods.rarefy(table=unrarefied_table, sampling_depth=100)
>>> rarefied_table = rarefy_result.rarefied_table

# 결과를 중간에 확인 가능하다.
>>> import biom
>>> biom_table = rarefied_table.view(biom.Table)
>>> print(biom_table.head())
# Constructed from biom file
#OTU ID      L1S105  L1S140  L1S208  L1S257  L1S281
b32621bcd86cb99e846d8f6fee7c9ab8     25.0    31.0    27.0    29.0    23.0
99647b51f775c8ddde8ed36a7d60dbcd     0.0     0.0     0.0     0.0     0.0
d599ebe277afb0dfd4ad3c2176afc50e     0.0     0.0     0.0     0.0     0.0
51121722488d0c3da1388d1b117cd239     0.0     0.0     0.0     0.0     0.0
1016319c25196d73bdb3096d86a9df2f     11.0    17.0    12.0    4.0     2.0

# Pandas를 사용해서도 확인이 가능하다.
>>> import pandas as pd
>>> df = rarefied_table.view(pd.DataFrame)
>>> df.head()
        b32621bcd86cb99e846d8f6fee7c9ab8  99647b51f775c8ddde8ed36a7d60dbcd  \
L1S105                              25.0                               0.0
L1S140                              31.0                               0.0
L1S208                              27.0                               0.0
L1S257                              29.0                               0.0
L1S281                              23.0                               0.0

# 다시 QIIME artfacts로 importing, 하지만 artifacts의 metadata는 사라진다.
>>> imported_artifact = Artifact.import_data("FeatureTable[Frequency]", df)

# Alpha diversity 결과를 pd.Series로 볼 수 있음
>>> from qiime2.plugins import diversity
>>> alpha_result = diversity.pipelines.alpha(table=rarefied_table, metric='observed_features')
>>> alpha_diversity = alpha_result.alpha_diversity
>>> alpha_diversity.view(pd.Series)
L1S105    24
L1S140    19
L1S208    25
L1S257    30
L1S281    29
L1S57     23
L1S76     20
L1S8      17
...
Name: observed_features, dtype: int64

# Artifacts 저장
>>> rarefied_table.save('rare.qza')
'rare.qza'
>>> alpha_diversity.save('obs_features.qza')
'obs_features.qza'

# Group significance 확인
>>> from qiime2 import Metadata
>>> metadata = Metadata.load('sample-metadata.tsv')
>>> group_significance = diversity.actions.alpha_group_significance(alpha_diversity=alpha_diversity, metadata=metadata)

 

Reference

  1. https://docs.qiime2.org/2021.8/interfaces/

 

 

728x90
반응형