LS-BSR piplineとは
Jason W らが作成した細菌のゲノム間の遺伝子を比較しBLASTスコア比を返してくれるツール.
Large scale Blast Score Ratioを略してLS-BSR.
今回の解析に必要なデータセット
LS-BSR のディレクトリに格納されているtest_data/genomes
を用いる.
データセットとして,
E2348_69_all.fasta
H10407_all.fasta
O157_H7_sakai_all.fasta
SSON_046_all.fasta
の4株が用いられている.
2. インストール
依存関係について
LS-BSR は様々なツールに依存していて正直しんどい.
依存ツール
Python >2.7 and <=3.5
BioPython
Prodigal - Required for de novo gene prediction only
VSEARCH - Optional
USEARCH - Optional
CD-HIT - Optional
Blast+ - Optional
Blat - Optional
Diamond - Optional
一気に入れたい場合はconda とかで.
conda create -n ls_bsr python=3.5
conda activate ls_bsr
conda install blast vsearch cd-hit prodigal ucsc-blat diamond biopython
git clone https://github.com/jasonsahl/LS-BSR.git
python setup.py install
# テストしよう
python tests/test_all_functions.py
3. 実行コマンド
LS-BSR の実行には4つ方法がある.
tblastn, blastn, usearch, diamond を用いた方法である.
# De novo 遺伝子予測方法
# -p が用いるプロセッサ数, -d がfasta(塩基)が入ったファイル, -c でusearch を指定している
ls_bsr.py -p ${n_cores} -d test_data/genomes -c usearch
# tblastn によるスクリーニング方法
ls_bsr.py -d test_data/genomes -g test_data/genes/ecoli_markers.fasta
# blastn による遺伝子スクリーニング方法
ls_bsr.py -d test_data/genomes -g test_data/genes/ecoli_markers.fasta -b blastn
# Diamond によるアノテーションに対しての遺伝子検索方法
ls_bsr.py -d test_data/genomes -g test_data/genes/genes.pep -b diamond
4. 出力ファイルについて
今回は,De novo 遺伝子予測方法で実行した.
2019120134338_bsr_matrix.txt
2019120134338_consensus.pep
2019120134338_duplicate_ids.txt
2019120134338_run_parameters.txt
2019120134338_consensus.fasta
2019120134338_dup_matrix.txt
2019120134338_names.txt
というように,日付が先頭についたファイルが出力される.
-x
をつければ,出力ファイルの_より前の部分の名前を変更できる.
5. 可視化について
出力ファイルの可視化について,様々な方法を使うことができる.
R,MeVでヒートマップを書くとか,iTOLで系統樹と一緒に表示させるとか.
以下にRでヒートマップを書いたが,そもそもこのデータは行数が多すぎてヒートマップに適していないので,80行だけランダムサンプリングして描画している.
入力側(xy軸)を数個の遺伝子とかにして,データベース側(x軸)に当てるとかいう状況だとヒートマップがいいと思う.
#heatmap の描画ライブラリを読み込む
library(pheatmap)
#データを読み込む&前処理
lsbsr<-read.table("2019120134338_bsr_matrix.txt")
lsbsr<-as.matrix(lsbsr)
# ランダムサンプリングで80行持ってくる
lsbsr80<-lsbsr[sample(nrow(lsbsr), 80), ]
#PDF に出力する
pdf("heatmap.pdf",width=10,height=15,pointsize = 8)
# heatmap 作成
pheatmap(lsbsr80)
# 描画終了
dev.off()
参考HP
LS-BSR(Large Scale Blast Score Ratio)