「cryoSPARC tips」の版間の差分
(→コマンドラインインターフェイス) |
|||
行67: | 行67: | ||
このようにしてmake_jobしてenqueue_jobすると、ちょうどGUIで J20のparticles_selectedをドラッグしてab initioのparticlesへドロップして実行したのと同じことになる。 | このようにして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 | ||
+ | |||
+ | <b>1. まず既存のデータベースのバックアップをする。</b> | ||
+ | <pre> | ||
+ | > cryosparcm backup | ||
+ | </pre> | ||
+ | |||
+ | <b>2. cryoSPARCのマスタープロセスを停止する。</b> | ||
+ | <pre> | ||
+ | > cryosparcm stop | ||
+ | </pre> | ||
+ | |||
+ | <b>3. データベースディレクトリを所望の場所に移動する。</b> | ||
+ | |||
+ | まずは現在のデータベースディレクトリの場所を確認する。データベースディレクトリのパスは、cryoSPARCをインストールしたディレクトリの cryosparc2_master/config.sh 内に記述してある。 | ||
+ | |||
+ | 筆者の環境では、 | ||
+ | <pre> | ||
+ | export CRYOSPARC_DB_PATH="/home/csparc/softwares/cryosparc/cryosparc2_database" | ||
+ | </pre> | ||
+ | であった。 | ||
+ | |||
+ | これを所望の場所へコピーする。筆者の場合、/net/fs10/work02/csparc/cryosparc2_database へコピーしたいので、 | ||
+ | <pre> | ||
+ | > cp -r /home/csparc/softwares/cryosparc/cryosparc2_database /net/fs10/work02/csparc | ||
+ | </pre> | ||
+ | を実行した。 | ||
+ | |||
+ | <b>4. cryoSPARCのコンフィグファイルでデータベースディレクトリのパスを書き換える。</b> | ||
+ | |||
+ | 先のステップで確認したconfig.shの、CRYOSPARC_DB_PATHを、新しいパスへ書き換えればよい。 |
2020年9月14日 (月) 08:46時点における版
目次
メタデータファイル(.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ジョブ)
各小パネルの上部にparticles_selectedとかtemplates_selectedとか書いてあるが、これが結果の「グループ」名である。
ab initioジョブにはparticles_selectedグループを渡したい。ジョブID J20のparticles_selectedは "J20.particles_selected" のようにして指定することができる。
一方 ab initioジョブでは、GUIであれば以下のような入力項目がある。
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を、新しいパスへ書き換えればよい。