1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BIG-SCAPEをGoogle Colaboratoryで実行する

Last updated at Posted at 2022-06-08

BIG-SCAPEはオランダのグループが開発した二次代謝産物生合成遺伝子クラスター比較ツールである。
事前に二次代謝産物生合成遺伝子クラスター予測ツールantiSMASHを利用して解析されたデータ群を解析し、比較結果を見やすく出力してくれる。
Google Colaboratoryでも動作さえることができるため、方法を記録する。

製作者のホームページ
https://bigscape-corason.secondarymetabolites.org/

引用文献
https://www.nature.com/articles/s41589-019-0400-9

2023年5月10日にCondaを利用しない方法へと変更しました。
condaを利用するよりも早く実行することができます。

2023年10月17日、Pfamデータベースのダウンロード元が変更されたことに気づきました。
ダウンロード先を変更しました。

2025年1月27日追記
著者らによりupdateが入り、仕様が少し変更されました。

  • pyhmmerが必要になったようです
  • hmmデータベースのpathの入力が必要になった
  • 機能が分割され、最初に「cluster, query, benchmark」の指定が必要になった
  • 従来の機能を利用するならclusterを指定すれば良い
  • 現時点でリリースされている最新版はbeta版であるため、今後改善が入ると予想される。古いversionを使いたい場合は最後の「BiG-SCAPEの古いバージョンを利用した場合」を参照する。
  • 現状、最新版はまだbeta版であることもあり、旧バージョンよりも大幅に時間がかかるようである。改善するまで利用しない方が良いかもしれない。

インストールの過程で必要なモジュールのインストール

最初のセル
以下、スクリプトを上から順にセルにコピーペーストして実行すると良い。

import os
import shutil
import subprocess
from subprocess import Popen

biopythonのインストール

biopythonとpyhmmerのインストールが必要である。

2025年1月26日追記
pyhmmerの追加、biopythonのversion指定を外した。version指定をしなくても動作するようになった。

!pip install biopython
!pip install pyhmmer

BIG-SCAPEと付随する必要なツールのインストール

sudo pat-getを利用したインストールが簡便である。Condaでもインストール可能である。ただし、こちらの方は時間がかかる。condaを利用したinstallは参考のために本ページの最後に記載する。

!sudo apt-get install hmmer2 hmmer diamond-aligner fasttree  ncbi-blast+

BiG-SCAPEのダウンロード

まず、BiG-SCAPEのプログラムをダウンロードする。
!git clone https://github.com/medema-group/BiG-SCAPE.git

これにより、BiG-SCAPEフォルダが作られるはずである。
左側のフォルダボタンを押すことで確認する。

Pfamデータベースのダウンロード

BiG-SCAPEフォルダにPfamデータベースをダウンロードし、フォーマットする必要がある。
そのため、以下の操作を行う。

#ルートに作られるBiG-SCAPEフォルダの中にPfamデータベースを格納する必要があるため、フォルダを移動する
%cd BiG-SCAPE

#Pfamデータベースをダウンロードする。
#以下は過去のデータベースからダウンロードする際のコマンドです。
#cmd = 'wget ftp://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam32.0/Pfam-A.hmm.gz && gunzip Pfam-A.hmm.gz'
cmd = 'wget ftp://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.gz && gunzip Pfam-A.hmm.gz'
test = subprocess.Popen(cmd, shell=True, text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
outs, errs = test.communicate()

#Pfamデータベースをセットアップする
cmd = 'hmmpress Pfam-A.hmm'
test = subprocess.Popen(cmd, shell=True, text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
outs, errs = test.communicate()

#完了後もとのフォルダに戻る。
%cd ../

BiG-SCAPEの動作確認

BiG-SCAPEのhlepを呼び出すことで、正常に動作するか確認する。
特にエラーが出なければ良い。

#@title BiG-SCAPE 動作確認
cmd = "python BiG-SCAPE/bigscape.py --help"
test = subprocess.Popen(cmd, shell=True, text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
#test.wait()
outs, errs = test.communicate()
print(outs)
print(errs)

clusterの機能に関してもhelpを確認しておくといい。

#@title BiG-SCAPE 動作確認
cmd = "python BiG-SCAPE/bigscape.py cluster -h"
test = subprocess.Popen(cmd, shell=True, text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
#test.wait()
outs, errs = test.communicate()
print(outs)
print(errs)

Google Driveへのアクセス

antiSMASHの解析データを必要とするため、アップロードによる解析はやや煩雑である。 自身のgoogle driveの特定のフォルダにantiSMASHの結果のデータを全て格納し、そこにアクセスして解析すると簡便で良い。 ただし、容量が必要なので、無料のアカウントでは容量が足りなくなる可能性もある。 folder_nameを目的のフォルダ名にする。
from google.colab import files
from google.colab import drive
drive.mount('/content/drive')
DRIVE = "MyDrive/folder_name/" #@param {type:"string"}

BiG-SCAPEの実行

-iの後にインプットファイルの名前が、-oの後に出力ファイルの保存先を指定している。 この設定では解析ファイルが格納されているフォルダに新たに「BS_results」というフォルダを作成して結果を格納する。

2025年1月27日追記
clusterオプションの指定が必要になったため、clusterオプションを追加した。
pfamデータベースのパスの指定が必要になったため「-p BiG-SCAPE/Pfam-A.hmm」を追加した。

#BiG-SCAPEへの実行
cmd = "python BiG-SCAPE/bigscape.py cluster -p BiG-SCAPE/Pfam-A.hmm -i " + DRIVE + " -o" + DRIVE + "BS_results"
test = subprocess.Popen(cmd, shell=True, text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
#test.wait()
outs, errs = test.communicate()
print(outs)
print(errs)

出力されたネットワークをcytoscapeで描画する

BiGSCAPEで出力されたファイル、index.htmlを開くとある程度ネットワーク画像を描画してくれる。しかし、より綺麗な図を目指すのであればcytoscapeを利用した方が良い。

cytoscape
https://cytoscape.org/

まず、cytoscapeをインストールし起動する。
次に、「File > import > Net work from file」
を実行する。
BiGSCAPEの結果、出力フォルダにはnetwork_filesというフォルダが存在する。
このフォルダの中に化合物ファミリーごとのフォルダ (NRPS, PKS, etc) が存在する。
これらのなかに、「.network」という拡張しのファイルが存在するため、これらを開く。
以下のような画面が出てきます。

スクリーンショット 2023-05-20 13.15.04.png

Clustername 1をクリックし、「Source node」に指定する。
Clustername 2をクリックし、「Target node」に指定する。
Raw distanceをクリックし、「Edge attribute」 に指定する。

importが済んだら、「File > Import > Table from File」を実行する。
同じフォルダにある、対応した名前のtsvファイルを開く。
Family numberが入力される。

BiG-SCAPEの古いバージョンを利用した場合

ベータ版である、最新場ではなく、古いv1.9を利用することも可能である。
以下の方法で一つ古いversionをダウンロードすることができる。

!git clone https://github.com/medema-group/BiG-SCAPE.git -b v1.1.9 --depth 1 

他の操作はほとんど同じになる。以下のコマンドでこちらは実行可能である。

#BiG-SCAPEへの実行
cmd = "python BiG-SCAPE/bigscape.py -i " + DRIVE + " -o" + DRIVE + "BS_results"
test = subprocess.Popen(cmd, shell=True, text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
#test.wait()
outs, errs = test.communicate()
print(outs)
print(errs)

condaを利用した必要なプログラムのインストール (参考)

以下の方法でcondaを利用して必要なプログラムをインストールすることが可能である。
しかし、こちらの方法は使わない方が良い。原因は不明だが、うまく動作しない場合がある。

%%bash

#MINICONDA_INSTALLER_SCRIPT=Miniconda3-4.5.4-Linux-x86_64.sh
#Miniconda3-4.7.12.1-Linux-x86_64.sh
MINICONDA_INSTALLER_SCRIPT=Miniconda3-4.7.12.1-Linux-x86_64.sh
MINICONDA_PREFIX=/usr/local
wget https://repo.continuum.io/miniconda/$MINICONDA_INSTALLER_SCRIPT
chmod +x $MINICONDA_INSTALLER_SCRIPT
./$MINICONDA_INSTALLER_SCRIPT -b -f -p $MINICONDA_PREFIX

conda update --all

#install hmmer by conda
conda install -y -c bioconda hmmer
conda install -y -c bioconda/label/cf201901 hmmer

conda install -y -c numpy scipy scikit-learn

conda install -y -c anaconda networkx

conda install -y -c bioconda fasttree
conda install -y -c bioconda/label/cf201901 fasttree
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?