#author("2024-08-14T14:44:11+00:00","default:sysosa","sysosa") #author("2024-08-15T05:39:07+00:00","default:sysosa","sysosa") 本家様 [[https://tools.cryosparc.com/intro.html>+https://tools.cryosparc.com/intro.html]] cryosparc-toolsを利用するとcryoSPARCのGUI(ブラウザ)操作ではなく、Jupyter Notebook(Jupyter Lab)を使って処理を進められます 出来ること. #code(nonumber){{ 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 とある. ***構築 [#lacaafe9] cryoSPARCサービスを提供している計算機、あるいはネットワーク的に接続可能な計算機で構築します。(macOS/windows[WSL]でも可能かも) ここではリモートの計算機を想定します. まずはpython環境の構築です。いつものようにpyenv/anacondaで下地を作ります #code(nonumber){{ [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」を入れる #code(nonumber){{ [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のパッケージもインストールします 確認 #code(nonumber){{ (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 ~]$ exit }} JupyterLab/notbookは使えそうです. っでcryoSPARCに繋げてみます。cryoSPARCはこの「rockylinux9」計算機とは違う計算機「cryosparc」で動いていて、39000ポートをベースに使ってます. っでアクセスしてみます ***使ってみる [#n63fe1be] #code(nonumber){{ [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 ~]$ }} &size(10){environment-modulesで定義して「module load ...」でもいいのだが今回、ユーザのローカルにconda環境を作ったのでsource から始めてます}; リモートにあるcryoSPARCサービスに接続してみます #code(nonumber){{ (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>+https://tools.cryosparc.com/intro.html]]らのドキュメントを参照してください jupyter labで操作したいなら cryosparc-tools-example実行環境に移って「jupyter lab --ip=0.0.0.0 --port=8080」と実行します #code(nonumber){{ [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をコピーして開いたブラウザにペーストして開きます &ref(2024y08m14d_233321685.png,nolink,80%); ここで、「Notebook」の「Python3(ipykernel)」をクリックします。 すると「Untitled.ipynb」のタブが開き入力欄が表示されます。この入力欄にpythonコードを入力していきます。 まずはcryoSPARCとの接続を確立させたいので、前段同様に「from cryosparc.tools import CryoSPARC」と入力して、シフトを押しながらリターンキーを押下します &ref(2024y08m14d_233650715.png,nolink,80%); その後に接続文字列を入れて行きます。単純ですがこんな感じに使います。 &ref(2024y08m14d_233911516.png,nolink,80%); 使い終わったら「jupyter lab」を発行したターミナルで「Ctrl-C」とかで止めます。 #code(nonumber){{ : Shut down this Jupyter server (y/[n])? y }} と聞かれますが「y」と入力すれば「jupyter lab」は停止します。 ***メモ [#ud5a46ae] pythonプログラミングができて、データセットの取り回しができればグラフ化は容易なのかなと思う. ただ、、ハードルが高いかなぁ.