本家様 https://tools.cryosparc.com/intro.html
cryosparc-toolsを利用するとcryoSPARCのGUI(ブラウザ)操作ではなく、Jupyter Notebook(Jupyter Lab)を使って処理を進められます
出来ること.
Programmatically read and write exposure, particle and volume data
(露光、パーティクル、体積データのプログラムによる読み取りと書き込み)
Access project, workspace and job data
(プロジェクト、ワークスペース、ジョブデータへのアクセス)
Build and run jobs to orchestrate custom cryo-EM workflows
(カスタムクライオ電子顕微鏡ワークフローをオーケストレーションするためのジョブの構築と実行)
Extend CryoSPARC functionality with third-party software packages
(サードパーティのソフトウェアパッケージでCryoSPARCの機能を拡張する)具体的にはサイトに書かれている「Examples」で想像できるかと.
1. Re-center Particles
2. Pick particles with crYOLO
3. 3D Flex: Custom Latent Trajectory
4. 3D Flex: Custom Mesh Rigidity
5. Generate High-Res 2D Classes
6. Import from EPU XML File
7. Custom Workflow
8. Delete Rejected Exposures
9. Revert downsampled, symmetry expanded particles
10. Connect a volume series to Class3D
とある.
cryoSPARCサービスを提供している計算機、あるいはネットワーク的に接続可能な計算機で構築します。(macOS/windows[WSL]でも可能かも)
ここではリモートの計算機を想定します.
まずはpython環境の構築です。いつものようにpyenv/anacondaで下地を作ります
[root@rockylinux9 ~]# git clone https://github.com/yyuu/pyenv.git /apps/pyenv
[root@rockylinux9 ~]# export PYENV_ROOT=/apps/pyenv
[root@rockylinux9 ~]# export PATH=$PYENV_ROOT/bin:$PATH
[root@rockylinux9 ~]# pyenv install anaconda3-2024.06-1
[root@rockylinux9 ~]# pyenv global anaconda3-2024.06-1その後に一般ユーザとかで.
環境名はなんでもいいですが、「cryosparc-tools-example」とかで、jupyterlabとnotebookも加えて、activate の後に「cryosparc-tools」を入れる
[illya@rockylinux9 ~]$ source /apps/pyenv/versions/anaconda3-2024.06-1/etc/profile.d/conda.sh
[illya@rockylinux9 ~]$ conda create -n cryosparc-tools-example python=3 "numpy<1.20" matplotlib pandas jupyterlab notebook -c conda-forge
[illya@rockylinux9 ~]$ conda activate cryosparc-tools-example
(cryosparc-tools-example) [illya@rockylinux9 ~]$ pip install cryosparc-toolsこれで準備完了。もし「Examples」にあるようなcrYOLOとの連携も行うのならcrYOLOのパッケージもインストールします
確認
(cryosparc-tools-example) [illya@rockylinux9 ~]$ jupyter --version
Selected Jupyter core packages...
IPython : 8.18.1
ipykernel : 6.29.5
ipywidgets : not installed
jupyter_client : 8.6.2
jupyter_core : 5.7.2
jupyter_server : 2.14.2
jupyterlab : 4.2.4
nbclient : 0.10.0
nbconvert : 7.16.4
nbformat : 5.10.4
notebook : 7.2.1
qtconsole : not installed
traitlets : 5.14.3
(cryosparc-tools-example) [illya@rockylinux9 ~]$ conda deactivate
[illya@rockylinux9 ~]$ exitJupyterLab/notbookは使えそうです.
っでcryoSPARCに繋げてみます。cryoSPARCはこの「rockylinux9」計算機とは違う計算機「cryosparc」で動いていて、39000ポートをベースに使ってます.
っでアクセスしてみます
[illya@rockylinux9 ~]$ source /apps/pyenv/versions/anaconda3-2024.06-1/etc/profile.d/conda.sh
[illya@rockylinux9 ~]$ conda env list
# conda environments:
#
base /apps/pyenv/versions/anaconda3-2024.06-1
cryosparc-tools-example /home/illya/.conda/envs/cryosparc-tools-example
[illya@rockylinux9 ~]$ conda activate cryosparc-tools-example
(cryosparc-tools-example) [illya@rockylinux9 ~]$environment-modulesで定義して「module load ...」でもいいのだが今回、ユーザのローカルにconda環境を作ったのでsource から始めてます
リモートにあるcryoSPARCサービスに接続してみます
(cryosparc-tools-example) [illya@rockylinux9 ~]$ python
Python 3.9.19 | packaged by conda-forge | (main, Mar 20 2024, 12:50:21)
[GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> from cryosparc.tools import CryoSPARC
>>>
>>> cs = CryoSPARC(
license="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
host="cryosparc.sybyl.local",
base_port=39000,
email="saber@fgo.jp",
password="saber"
)
>>>
>>> cs.test_connection()
Connection succeeded to CryoSPARC command_core at http://cryosparc.sybyl.local:39002
Connection succeeded to CryoSPARC command_vis at http://cryosparc.sybyl.local:39003
Connection succeeded to CryoSPARC command_rtp at http://cryosparc.sybyl.local:39005
True
>>>接続は成功しているみたい.
あとは、、https://tools.cryosparc.com/intro.html
らのドキュメントを参照してください
jupyter labで操作したいなら cryosparc-tools-example実行環境に移って「jupyter lab --ip=0.0.0.0 --port=8080」と実行します
[illya@rockylinux9 ~]$ source /apps/pyenv/versions/anaconda3-2024.06-1/etc/profile.d/conda.sh
[illya@rockylinux9 ~]$ conda activate cryosparc-tools-example
(cryosparc-tools-example) [illya@rockylinux9 ~]$ jupyter lab --ip=0.0.0.0 --port=8080
:
http://rockylinux9:8080/lab?token=37d63580473e62b74a700665985ea7b56d430f16deb90780
http://127.0.0.1:8080/lab?token=37d63580473e62b74a700665985ea7b56d430f16deb90780
:とアクセス先が表示されます。このURLをコピーして開いたブラウザにペーストして開きます

ここで、「Notebook」の「Python3(ipykernel)」をクリックします。
すると「Untitled.ipynb」のタブが開き入力欄が表示されます。この入力欄にpythonコードを入力していきます。
まずはcryoSPARCとの接続を確立させたいので、前段同様に「from cryosparc.tools import CryoSPARC」と入力して、シフトを押しながらリターンキーを押下します

その後に接続文字列を入れて行きます。単純ですがこんな感じに使います。

使い終わったら「jupyter lab」を発行したターミナルで「Ctrl-C」とかで止めます。
:
Shut down this Jupyter server (y/[n])? yと聞かれますが「y」と入力すれば「jupyter lab」は停止します。
pythonプログラミングができて、データセットの取り回しができればグラフ化は容易なのかなと思う.
ただ、、ハードルが高いかなぁ.