「cryoSPARC tips」の版間の差分

提供: Eospedia
移動: 案内検索
(データベースの移動)
(データベースの移動)
行148: 行148:
 
CRYOSPARC_DB_PATHが移動後のパスに切り替わっているので大丈夫そう。
 
CRYOSPARC_DB_PATHが移動後のパスに切り替わっているので大丈夫そう。
  
ブラウザからウェブUIにアクセスして、移動前と同じ内容になっているか確認しましょう。
+
あとはブラウザからウェブUIにアクセスして、移動前と同じ内容になっているか確認するとよい。
 +
 
 +
ここでは既存のcryoSPARCのDBパスを変更する手順について書いたが、新規インストールする場合にはインストール時のオプションで対応できる気がするので、調べるのが良いと思う。

2020年9月14日 (月) 09:02時点における版

メタデータファイル(.cs, .csg)の編集

https://cryosparc.com/docs/tutorials/data-management#faq-cs-csg

コマンドラインインターフェイス

リファレンスガイド

https://guide.cryosparc.com/setup-configuration-and-management/management-and-monitoring/cli

参考になるスクリプト

cryosparc/cryosparc2_worker/cryosparc2_compute/jobs/workflows/buildrun_bench.py に、T20Sデータセットの自動処理が記述してある。

コマンドラインの使い方

基本的には以下の流れでジョブを作成してキューへ投下すれば良いようである。

1. make_jobでジョブを作成

$ cryosparcm cli "make_job(...)"

これを実行するとcryoSPARCのGUIの方でジョブパネルが出現し、ステータスがbuildingになる。

make_jobの中に何を書くかは、上記のリファレンスガイドやT20Sベンチマークスクリプトを眺めたり、cryosparc/cryosparc2master/cryosparc2_compute/jobs/ 内の各ジョブディレクトリの build.py を読むとなんとなく把握できる感がある。

user_idを渡す必要があるが、それは以下で確認できる。

$ cryosparcm cli "GetUser('<ユーザー登録に使用したメールアドレス>')['_id']"

2. enqueue_jobでスケジューラにジョブを投下

$ cryosparcm cli "enqueue_job('<プロジェクトID>', '<ジョブID>', '<レーン名>'"

プロジェクトIDはP1とかP2など。ジョブIDは手順1にて作成したジョブのID (J100とか)。レーン名は default としておけばスケジューラがよろしくやってくれる。

上記コマンドにより、GUIでQueueボタンを押したときと同様の処理が行われる。

使用可能なレーン名は、以下で確認できる。

$ cryosparcm cli "get_scheduler_lanes()"

[{u'title': u'Lane default (node)', u'type': u'node', u'name': u'default', u'desc': u''}]

'name'キーに対応する値が、指定できるレーン名、のようである。

input_group_connects について

例えば、ab initioジョブを作成したいとして、その入力画像はJ20のものであるとする。

J20のジョブパネルを開いて'Overview'を表示すると、右側のカラムに以下のような表示がある。(この例では、Select 2D classジョブ)

スクリーンショット 2020-09-11 194140.png

各小パネルの上部にparticles_selectedとかtemplates_selectedとか書いてあるが、これが結果の「グループ」名である。

ab initioジョブにはparticles_selectedグループを渡したい。ジョブID J20のparticles_selectedは "J20.particles_selected" のようにして指定することができる。

一方 ab initioジョブでは、GUIであれば以下のような入力項目がある。

スクリーンショット 2020-09-11 194742.png

particlesグループ が入力として必要であることがわかる。

この例で、ab initioをコマンドラインから叩くときのinput_groups_connectsに何を渡せばよいかというと、以下のようなPythonのディクショナリを渡せばよい。

{'particles': 'J20.particles_selected'}

このようにしてmake_jobしてenqueue_jobすると、ちょうどGUIで J20のparticles_selectedをドラッグしてab initioのparticlesへドロップして実行したのと同じことになる。

データベースの移動

データベースがdocker内のホームディレクトリに作られてしまっていたので、ネットワークドライブの中に移動させ、どのホスト、コンテナからもマウントして利用できるようにしたい。

参考: https://discuss.cryosparc.com/t/how-to-change-database-directory-in-cryosparc-v2/2068/5

1. まず既存のデータベースのバックアップをする。

> cryosparcm backup

2. cryoSPARCのマスタープロセスを停止する。

> cryosparcm stop

3. データベースディレクトリを所望の場所に移動する。

まずは現在のデータベースディレクトリの場所を確認する。データベースディレクトリのパスは、cryoSPARCをインストールしたディレクトリの cryosparc2_master/config.sh 内に記述してある。

筆者の環境では、

export CRYOSPARC_DB_PATH="/home/csparc/softwares/cryosparc/cryosparc2_database"

であった。

これを所望の場所へコピーする。筆者の場合、/net/fs10/work02/csparc/cryosparc2_database へコピーしたいので、

> cp -r /home/csparc/softwares/cryosparc/cryosparc2_database /net/fs10/work02/csparc

を実行した。

4. cryoSPARCのコンフィグファイルでデータベースディレクトリのパスを書き換える。

先のステップで確認したconfig.shの、CRYOSPARC_DB_PATHを、新しいパスへ書き換えればよい。

5. cryoSPARCのマスタープロセスを起動し、移動前と同じ挙動になるかチェックする。

まずはマスタープロセスの起動。

> cryosparcm start

データベースが切り替わっているかチェック。

> cryosparcm status

----------------------------------------------------------------------------
CryoSPARC System master node installed at
/home/csparc/softwares/cryosparc/cryosparc2_master
Current cryoSPARC version: v2.15.0
----------------------------------------------------------------------------

cryosparcm process status:

app                              STOPPED   Not started
app_dev                          STOPPED   Not started
command_core                     RUNNING   pid 17017, uptime 0:04:18
command_proxy                    RUNNING   pid 17058, uptime 0:04:15
command_rtp                      STOPPED   Not started
command_vis                      RUNNING   pid 17052, uptime 0:04:16
database                         RUNNING   pid 16941, uptime 0:04:23
watchdog_dev                     STOPPED   Not started
webapp                           RUNNING   pid 17061, uptime 0:04:13
webapp_dev                       STOPPED   Not started

----------------------------------------------------------------------------

global config variables:

export CRYOSPARC_LICENSE_ID="*****"
export CRYOSPARC_MASTER_HOSTNAME="csparc-standalone-cs06"
export CRYOSPARC_DB_PATH="/net/fs10/work02/csparc/cryosparc2_database"
export CRYOSPARC_BASE_PORT=39000
export CRYOSPARC_DEVELOP=false
export CRYOSPARC_INSECURE=false
export CRYOSPARC_CLICK_WRAP=true

CRYOSPARC_DB_PATHが移動後のパスに切り替わっているので大丈夫そう。

あとはブラウザからウェブUIにアクセスして、移動前と同じ内容になっているか確認するとよい。

ここでは既存のcryoSPARCのDBパスを変更する手順について書いたが、新規インストールする場合にはインストール時のオプションで対応できる気がするので、調べるのが良いと思う。