本記事では、Symportalをdockerで動かす方法を記載する。
Symportalは褐虫藻メタバ―コディングから出力されたfastqファイルより褐虫藻をジェノタイピングするソフトだが、最近の解析環境のアップデート(特にMac OSや各種関係ソフト)に伴い、Symportalのymlファイルではうまく動かないことが多く、エラーが頻出している。
そこで、Symporatlが作動する環境を構築、docker hubにアップロードした。
正規にSymportalをインストールする場合は過去記事またはSymportal公式ホームページを参照。
Symportal
symportalはBenjamin C.C Humeが開発した、褐虫藻メタバーコーディングで得られたリードをジェノタイピングするソフトである。パイプラインとして作られており、rawデータをそのままインプットすることができる。以下参照論文。
Dockerのインストール
Linuxの場合は以下でインストールできます。
Macについては以下を参照
Symportalのインストール v0.3.24
※事前にdockerをインストールしてください。
以下を順にターミナルで実行する。
#docker imageをダウンロードする
docker pull gibukod/symportal:1.0
#コンテナを作成
docker run -itd -v /path/to/rawdata:/mnt --name symportal gibukod/symportal:1.0 /bin/bash
path/to/rawdata
を褐虫藻メタバのfastqファイルが格納されたディレクトリのパスに変更してください。
実行前の準備
まず、作成したコンテナに入る
#作成したコンテナに入る
docker exec -it symportal /bin/bash
データベース作成のため、以下のコードを実行。(コンテナに初めて入るときに実行すれば、あとはしなくても大丈夫)
#SQLiteデータベースの作成
python3 /usr/local/src/SymPortal_framework-0.3.24/manage.py migrate
#参照配列の設定
python3 /usr/local/src/SymPortal_framework-0.3.24/populate_db_ref_seqs.py
以下を実行してsymportalをテストラン
#symportalのインストールされているディレクトリへ移動
cd /usr/local/src/SymPortal_framework-0.3.24/
#テストラン
python3 -m tests.tests
インストールがうまくいっていると、実行後、以下のように表示される
ANALYSIS COMPLETE: DataAnalysis:
name: testing
ANALYSIS COMPLETE: DataAnalysis:
name: testing
UID: 1
DataSet analysis_complete_time_stamp: 20240801T044230
Cleaning up after previous data analysis test: 1
Deleting /usr/local/src/SymPortal_framework-0.3.24/outputs/analyses/1
Cleaning up after previous data loading test: 1
Deleting /usr/local/src/SymPortal_framework-0.3.24/outputs/loaded_data_sets/1
Symportalの実行
詳しい情報は以下のgithubに記載されている
https://github.com/didillysquat/SymPortal_framework/wiki
#データの読み込み
/usr/local/src/SymPortal_framework-0.3.24/main.py --load /mnt --name first_loading
#読み込んだデータの確認
/usr/local/src/SymPortal_framework-0.3.24/main.py --display_data_sets
#分析の実行 --analyseの数字は読み込んだデータの確認でチェックする
/usr/local/src/SymPortal_framework-0.3.24/main.py --analyse 2 --name first_analysis --num_proc 3
#実行された分析の確認
/usr/local/src/SymPortal_framework-0.3.24/main.py --display_analyses
#実行結果の出力 --print_output_seqsの数字は実行された分析の確認でチェックする
/usr/local/src/SymPortal_framework-0.3.24/main.py --print_output_seqs 2
/usr/local/src/SymPortal_framework-0.3.24/outputs/analyses
に実行結果が出力される。
実行結果をコンテナから持ち出す
コンテナを作成するときにマウントしているため、/mnt
に実行結果をコピーする。
#実行結果をコピー
cp -r /usr/local/src/SymPortal_framework-0.3.24/outputs/analyses /mnt
外でもデータを編集できるよう、許可を与える。(コンテナ内で作成されたファイルはコンテナ外で操作ができないことがある)
#pythonを起動
python
#ライブラリをインポート
import os
# ディレクトリのパスを指定
directory_path = "/mnt/analyses"
# ディレクトリ内のすべてのファイルとフォルダに対して権限を設定
for root, dirs, files in os.walk(directory_path):
for d in dirs:
os.chmod(os.path.join(root, d), 0o777)
for f in files:
os.chmod(os.path.join(root, f), 0o777)
#pythonを終了
exit()
#analysesに許可を与える
chmod +777 /mnt/analyses
以下でコンテナからでる
exit
褐虫藻メタバのfastqファイルが格納されたディレクトリにanalyses
ファイルが出力されている。