Using QIIME2 on Linux&Mac
概要
相関(cooccurrence/corellation)に基づく計算(SparCC etc... )と共分散(Covariance)に基づくもの(SpiecEasi etc...)がある
相関に基づく
相関に基づく計算では、超複雑なネットワークとなるため、簡素化(Rarefy)することにより、関係把握が容易になる
SpiecEasi(Kurtz et al 2019)
"0"が過多なデータ(zero-infrated data)に適した方法がある
MAGMA (Cougoul et al 2019)
- SCNIC package
:Sparse Cooccurrence Network Investigation for Compositional Data [相関(correlation/Cooccurrence)に基づく])(Shaffer et al. 2020)
*Single-Cell rEgulatory Network Inference and Clusteringとは別物Qiime2用の共起ネットワーク分析ツールのモジュール、q2-SCNICで使用可能
仮定条件
①ASV(OTU)多様性が高い ②真の相関ネットワークは疎である
対数変換したASV間の分散を用いて真のASV分散を概算
サンプル毎のリード数を、サブサンプリングにより正規化(希薄化)
SparCC(Friedman and Alm 2015)でCompositional data(組成データ)の相関係数を計算
ref. : SCNIC解説(日本語)
Compositional dataの解説(日本語): (Ohta and Arai 2006)
ノード
- vertex.color ノードの色
- vertex.frame.color ノードの縁の色
- vertex.shape “none”, “circle”, “square”, “csquare”, “rectangle”, “crectangle”, “vrectangle”, “pie”, “raster”, “sphere”の中から1つ
- vertex.size ノードの大きさ (デフォルトは15)
- vertex.size2 ノードの2つ目の大きさ (ノードが長方形の時のもう一方の辺の長さなど)
- vertex.label ノードにラベルをつけるために用いられる文字列ベクトル
- vertex.label.family ラベルのフォント名 (“Times”, “Helvetica” など)
- vertex.label.font フォント: 1 プレーン, 2 ボールド, 3, イタリック, 4 ボールドイタリック, 5 シンボル
- vertex.label.cex フォントのサイズ (倍率)
- vertex.label.dist ラベルと頂点の距離
- vertex.label.degree 頂点に対するラベルの位置:0だと右側、“pi”だと左側、“pi/2”だと下、“-pi/2”だと上
エッジ
- edge.color エッジの色
- edge.width エッジの太さ (デフォルトは1)
- edge.arrow.size 矢印のサイズ (デフォルトは1)
- edge.arrow.width 矢印の太さ (デフォルトは1)
- edge.lty 線の種類:0 か “blank”, 1か“solid”, 2か“dashed”, 3か“dotted”, 4か“dotdash”, 5か“longdash”, 6か“twodash”
- edge.label エッジにラベルをつけるために用いられる文字列ベクトル
- edge.label.family ラベルのフォント名 (ノードに同じ)
- edge.label.font ノードに同じ
- edge.label.cex エッジのラベルののフォントサイズ
- edge.curved エッジの曲がり具合を0-1で表わす(FALSEだと0, TRUEだと0.5に設定される)
- arrow.mode エッジに矢印があるかどうかを特定するベクトル(0だと矢印なし、1だと後ろ向き、2だと前向き、3だと両方向)
その他
- margin プロット周囲にある空スペースのマージンで長さ4のベクトル
- frame もしTRUEなら、プロットは枠付きになる
- main 設定するとプロットにタイトルが付く
- sub 設定するとプロットにサブタイトルが付く
CONDA installation
ref.: https://github.com/shafferm/SCNIC
condaコマンドの使い方
ref.: https://qiita.com/yasushi-jp/items/7ce0975db7a7e9ac7991
condaの全てのパッケージをupdateしておく
% conda update --all
仮想環境一覧を表示
% conda info -e
q2-SCNICのインストール
q2-SCNICには2つある?
shafferm/ : 古い?
ref.: https://github.com/shafferm/q2-SCNIC/blob/master/community_tutorial.md
lozuponelab/q2-SCNIC(shafferm/q2-SCNICの分家)
ref.: https://github.com/lozuponelab/q2-SCNIC
SCNICをinstall
fastsparとparallelをインストールしておくとよい?
% conda install -c bioconda -c conda-forge fastspar #(長い...)
新しくSCNIC環境の構築
% conda create -n SCNIC phyton=3 scnic
←エラー PackagesNotFoundError: not available from current channels: -scnic
% pip install scnic # → OK
プラグイン, q2-SCNIC,をインストール
% pip install git+https://github.com/lozuponelab/q2-SCNIC.git
% qiime dev refresh-cache #Qiime2のリフレッシュ
確認
% qiime SCNIC --help
QIIME2 on R
QIIME2とRの関係は以下のHPがわかりやすい
https://qiita.com/xvtyzn/items/6a008b61d852dcbaed57
RにQIIME2パッケージをインストールする(GitHub)
https://github.com/jbisanz/qiime2R/blob/master/README.md
xfun package(Encoder?)が必要なら予めインストールしておく
igraph packageはgfortranと依存関係がある。OS依存のインストーラーをDLし、予めインストールしておく
R% if (!requireNamespace("devtools", quietly = TRUE)){install.packages("devtools")}
R% devtools::install_github("jbisanz/qiime2R")
QIIME2 on Linux
.qzaファイル
.qzaファイルを可視化するには、.qza → .biom → .tsvへと変換する
.qza → .biom
% qiime tools export
--input-path [FILE.qza]
--output-path [DIR]
.biom → .tsv
% biom convert
-i [FILE.biom]
-o [FILE.txv]
--to-tsv
-----Yet tested ----- プライマーの除去
% qiime cutadapt trim-paired
--i-demultiplexed-sequences [.qza]
--p-front-f XXXXXXXXXXXXX
--p-front-r XXXXXXXXXXXXX
--o-trimed-sequences [.qza]
----------//
Identifier-based filtering
ref. https://docs.qiime2.org/2020.2/tutorials/filtering/
☞ table.qzaから、特定のsample (Library)、もしくはfeature (ASV)を操作(除去・結合)する
filter-samples ... 抽出する"sample"の.tsvに基づく
filter-features ... 抽出する"feature"の.tsvに基づく
% qiime feature-table filter-features
--m-metadata-file asv-select.tsv
--i-table table.qza
--o-filtered-table table_filtered.qza
asv-select.tsv ... 1行目に列名を含むASV名のリスト(列名は何でも良い)
例)feature id (feature-id, featureid, id, etc...)
84b789f3932b5283990866d38bfcb05e566c703dfd460566e7a44428e009da52961091ff42243d719d2c30494079ffcc...q2-SCNICの使い方
ネットワーク表示ソフトが必要: Cytoscape, Gephi, igraph (in R) etc...
Cytoscapeは公式HPからインストーラーをDLする(URL: www.cytoscape.org)
Gephi 0.9.2 on Linux [unconpatible on java 8 vs 11], Mac
データ:.qza形式のtable
相関係数の計算
全ASVのペアワイズ 相関係数を計算(SparCC法)
% qiime SCNIC calculate-correlations
--i-table [FILE.qza]
--p-method sparcc
--o-correlation-table [FILE:correls.qza]
相関があるASV間のネットワーク(モジュール)のクラスタリング
% qiime SCNIC make-modules-on-correlations
--i-correlation-table correls.qza
--i-feature-table table.qza
--p-min-r .35
--o-collapsed-table collapsed.qza \
--o-correlation-network net.modules.qza \
--o-module-membership membership.qza
ネットワークの可視化
% mkdir [DIR:Extr]
% qiime tools extract
--input-path net.modules.qza
--output-path [DIR:Extr]
Gephiで可視化する(ver 0.9.2)
☞ [DIR:Extr]内に作成された[network.gml]を開く
Additional software
Visualization
Gephi-0.9.2
ref. (英語) : https://gephi.org
ref.(日本語): http://oss.infoscience.co.jp/gephi/gephi.org/index.html
クイックスタート ☞ http://oss.infoscience.co.jp/gephi/gephi.org/users/quick-start.1.html
ユーザー向け ☞ http://oss.infoscience.co.jp/gephi/gephi.org/users/index.html
Windows, Mac, Linuxで使用できるJava JREソフト
スタート方法
% ./bin/gephi
☞ java8が正式サポート → java 11もサポートされた(2021.12)
☞ javaの切り替え
% sudo update-alternatives --config java
% sudo update-alternatives --auto java
使い方リンク☞
https://kateto.net/wp-content/uploads/2016/04/Gephi%20Handout%20Sunbelt%202016.pdf
Phyloseq
ref. 疫学とR(phyloseqのデータ作成)
ref. GitHub
ref. Phyloseq tutorial (Vaulot's GitHub)
ref. Rで学ぶデータサイエンス8(ネットワーク解析)