1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Symportalをdockerで動かす

Last updated at Posted at 2024-08-01

本記事では、Symportalをdockerで動かす方法を記載する。

Symportalは褐虫藻メタバ―コディングから出力されたfastqファイルより褐虫藻をジェノタイピングするソフトだが、最近の解析環境のアップデート(特にMac OSや各種関係ソフト)に伴い、Symportalのymlファイルではうまく動かないことが多く、エラーが頻出している。

そこで、Symporatlが作動する環境を構築、docker hubにアップロードした。

正規にSymportalをインストールする場合は過去記事またはSymportal公式ホームページを参照。

SymPortalのインストールと使い方(過去記事)

SymPortal公式ホームページ

Symportal

symportalはBenjamin C.C Humeが開発した、褐虫藻メタバーコーディングで得られたリードをジェノタイピングするソフトである。パイプラインとして作られており、rawデータをそのままインプットすることができる。以下参照論文。

SymPortal: A novel analytical framework and platform for coral algal symbiont next-generation sequencing ITS2 profiling

Dockerのインストール

Linuxの場合は以下でインストールできます。

LINUXにDockerをインストールする


Macについては以下を参照

Docker Desktop の Mac へのインストール

Symportalのインストール v0.3.24

※事前にdockerをインストールしてください。

以下を順にターミナルで実行する。

docker.sh
#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

symportalの実行
#データの読み込み
/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ファイルが出力されている。

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?