cryoSPARC tips

提供: Eospedia
2020年9月11日 (金) 10:53時点におけるKttn (トーク | 投稿記録)による版

移動: 案内検索

メタデータファイル(.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へドロップして実行したのと同じことになる。