細菌の起源予測をするFEAST をQIIME2 にインストールする

# 細菌の起源予測をするFEASTについて

FEAST (Fast expectation-maximization for microbial source tracking)は、マイクロバイオームデータから起源を予測するツール。

論文はこちら。
[Fast expectation-maximization for microbial source tracking (FEAST)](https://www.nature.com/articles/s41592-019-0431-x)

単離源予測だと、Rob Knight らが2013年に公開した[SourceTracker](https://www.nature.com/articles/nmeth.1650)というベイズ統計を用いたツールが有名。

FEASTはRで実行するツールだが、QIIME2プラグインとしても追加可能で、本記事ではプラグイン導入の方法と実行例を示す。

## インストール方法

### 依存関係のインストール

```bash
# QIIME2 の起動
$ source activate qiime2-{your version}

# R関連のパッケージをconda経由でインストール
$ conda install -c bioconda -c conda-forge -c r bioconductor-phyloseq r-devtools r-magrittr r-dplyr r-vgam r-tidyr r-vegan r-reshape2 r-rcpp r-rcpparmadillo r-gridextra r-ggplot2 r-ggthemes
```

### メインスクリプトのインストール

まずは本家が出しているFEASTのスクリプトをRにてインストールする。

```R
> devtools::install_github("cozygene/FEAST")
```

### q2-FEAST の導入

FEAST論文著者のgithubからフォークされた[FEAST_beta](https://github.com/cameronmartino/FEAST/tree/FEAST_beta)にQIIME2プラグインのためのスクリプトが格納されている。
そのため、[FEAST_beta](https://github.com/cameronmartino/FEAST/tree/FEAST_beta)のgitリポジトリを自身のリポジトリとしてフォークしてからクローンする。

[GitHubでリモートリポジトリをフォーク（Fork）する方法](https://denno-sekai.com/github-fork/)

```bash
# クローンする
$ git clone https://github.com/{your git account}/FEAST/tree/FEAST_beta

$ cd FEAST/

# ブランチの確認
$ git branch -a

# ブランチの切り替え
$ git switch FEAST_beta
```

Rでのインストール。

```R
> devtools::install()
```

pipでのインストール。

```bash
$ pip install -e .[dev]
```

QIIME2の更新とコマンド確認。

```bash
# プラグイン追加後にQIIME2を更新
$ qiime dev refresh-cache
$ make test

# qiime コマンドを実行
$ qiime feast

Usage: qiime feast [OPTIONS] COMMAND [ARGS]...

  Description: This is a QIIME 2 plugin supporting microbial source-tracking
  through FEAST.

  Plugin website: https://github.com/cozygene/FEAST

  Getting user support: Please post to the QIIME 2 forum for help with this
  plugin: https://forum.qiime2.org

Options:
  --version    Show the version and exit.
  --citations  Show citations and exit.
  --help       Show this message and exit.

Commands:
  barplot     Visualize source-contributions with an interactive bar　plot
  microbialtracking     microbial source-tracking
```

## 入力データの説明
FEASTでは、2つのデータを入力として用いる。


- 系統組成のカウントテーブル
- ソースとシンクが記載されたメタデータ

### 系統組成のカウントテーブル
今回はqzaファイルになっている`FEAST/q2_feast/tutorials/data/backhed/table-multi.qza`を使用。

||ERR525698	|ERR525693	|ERR525688	|ERR525699|
|-|-|-|-|-|
|taxa_1	|0	|5	|0	|20|
|taxa_2	|15	|5	|0	|0|
|taxa_3	|0	|13	|200	|0|
|taxa_4	|4	|5	|0	|0|

### ソースとシンクが記載されたメタデータ
今回は、`FEAST/q2_feast/tutorials/data/backhed/metadata-multi.tsv`を使用。
`Env`にはサンプルがどの環境から取得されたかを記載する。
`SourceSink`には、どのサンプルをソースとしてどのサンプルをシンクにするかを明記する。
`host_subject_id`は、特定のソースとシンクごとに起源予測をしたい場合に用いる。同一番号内のソースとシンクが比較される。
これは解析に必須項目ではない。

|#SampleID	|Env	|SourceSink	|host_subject_id|
|-|-|-|-|
|#q2:types	|categorical	|categorical	|numeric|
|ERR525698	|Env_1	|Sink	|1|
|ERR525693	|Env_2	|Source	|1|
|ERR525688	|Env_3	|Source	|1|
|ERR525699	|Env_4	|Source	|1|
|ERR525910	|Env_1	|Sink	|2|
|ERR525909	|Env_2	|Source	|2|
|ERR525908	|Env_3	|Source	|2|
|ERR525911	|Env_4	|Source	|2|

## テスト

以下のコマンドで入力ファイルや各種オプションを実行する。

```bash
$ qiime feast microbialtracking \
  --i-table ./table-multi.qza \
  --m-metadata-file ./metadata-multi.tsv \
  --p-environment-column Env \
  --p-source-sink-column SourceSink \
  --p-source-ids Source \
  --p-sink-ids Sink \
  --p-shared-id-column host_subject_id \
  --p-em-iterations 1000 \
  --p-different-sources \
  --o-proportions ./mixing-proportions.qza 
```

`--p-environment-column` : サンプルの取得された環境名
`--p-source-sink-column` : ソースとシンクが記載された列名
`--p-sink-ids` `--p-source-ids` : ソースとシンクの要素名
`--p-em-iterations` : Expectation–maximization algorithmの試行回数
`--o-proportions` : 計算結果を格納するファイル名

`mixing-proportions.qza`には、ソースのサンプル数 * シンクのサンプル数の行列データが格納される。
各シンクに対してソースの寄与率（0~1まで）が相対値として記載される。



可視化したいときは、おなじみのQIIME2 の棒グラフを、`qiime feast barplot`でq2-FEASTから実行できる。

```bash
$ qiime feast barplot \
  --i-mixing-proportions ./mixing-proportions.qza\
  --m-metadata-file ./metadata-multi.tsv \
  --o-visualization ./barplot.qzv
```

![スクリーンショット 2022-04-11 9.28.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222325/8893cd65-0d61-f0e5-2912-a5f398761f46.png)


## 参考
[Fast expectation-maximization for microbial source tracking (FEAST)](https://www.nature.com/articles/s41592-019-0431-x)

[sourcetracker2 plugin?](https://forum.qiime2.org/t/sourcetracker2-plugin/19688/5)

[FEAST QIIME 2 Plugin](https://github.com/cameronmartino/FEAST/blob/FEAST_beta/q2_feast/README.md)