本家様 https://docs.smartscope.org/
SmartScope is a framework for automated cryo-electron microscopy (Cryo-EM). The main purpose is to automate specimen screening, document the process,
and provide a portal for visualization and interaction with the microscope. The software bundles a database, the main imaging workflow and a web user-inteface for easy access.
To run Smartscope, simply fill the form about which grids to be screened, press start and wait for live results to come in.
DeepL様翻訳
SmartScopeは自動クライオ電子顕微鏡(Cryo-EM)用のフレームワークです。主な目的は、試料スクリーニングを自動化し、そのプロセスを文書化することです、
可視化と顕微鏡とのインタラクションのためのポータルを提供することである。このソフトウェアには、データベース、主なイメージングワークフロー、そして簡単にアクセスできるウェブユーザーインターフェイスがバンドルされています。
Smartscopeを実行するには、どのグリッドをスクリーニングするかフォームに記入し、スタートを押し、ライブ結果が来るのを待つだけです。
一瞬 Appion/Leginon ?って思ってしまった
Requirements
dockerで動かすのが楽みたい.
っで作ってみる
dockerを準備します. rootlessではなくrootで動かすdockerにしてます.
そして
[root@rockylinux9 ~]# mkdir /apps/SmartScope -p
[root@rockylinux9 ~]# cd /apps/SmartScope/
[root@rockylinux9 SmartScope]# wget https://raw.githubusercontent.com/NIEHS/SmartScope/stable/Docker/SmartScope/smartscope.sh
[root@rockylinux9 SmartScope]# ls -lh smartscope.sh
-rw-r--r--. 1 root root 5.5K Mar 28 05:09 smartscope.sh
[root@rockylinux9 SmartScope]# chmod +x ./smartscope.sh
[root@rockylinux9 SmartScope]# ./smartscope.sh
Usage: smartscope.sh subcommand [command]
Subcommand DESCRIPTION
========== ===========
start Start SmartScope
stop Stop smartscope
restart Restart smartscope
setup Setup the smartscope directories
update version Update smartscope to the specified version. Choices: ['latest','stable'] (default: latest)
run command Run a smartscope command in the smartscope container
exec command Run any shell command in the smartscope container
python Runs an interactive ipython shell inside the smartscope container
[root@rockylinux9 SmartScope]#
手順に従って
[root@rockylinux9 SmartScope]# ./smartscope.sh setup stable
:
:
[root@rockylinux9 SmartScope]# ls -lh
total 24K
drwxr-xr-x. 2 root root 6 Mar 28 05:12 backups
drwxr-xr-x. 2 root root 6 Mar 28 05:12 data
-rw-r--r--. 1 root root 219 Mar 28 05:12 database.conf
drwxr-xr-x. 2 root root 6 Mar 28 05:12 db
-rw-r--r--. 1 root root 1.7K Mar 28 05:12 docker-compose.yml
drwxr-xr-x. 2 root root 6 Mar 28 05:12 logs
drwxr-xr-x. 5 root root 70 Mar 28 05:12 shared
-rw-r--r--. 1 root root 905 Mar 28 05:12 smartscope.conf
-rwxr-xr-x. 1 root root 5.5K Mar 28 05:09 smartscope.sh
-rw-r--r--. 1 root root 801 Mar 28 05:12 smartscope.yml
[root@rockylinux9 SmartScope]#
電顕に合わせて「smartscope.yml」を修正する.
dockerでの「volume」定義は「実フォルダ」:「docker内でのフォルダ」になる。ここではドキュメントに書かれているように
「ADD YOUR MAIN DATA LOCATION」となるdocker内フォルダ「/mnt/data」には実フォルダ「/mnt/nas/smartscope/」を当てて
「ADD YOUR MICROSCOPES」のdocker内フォルダ「/mnt/myscope1/」に、実フォルダ「/mnt/serialemComputer/smartscope/」をあてる
version: "3"
services:
smartscope:
# image: ghcr.io/niehs/smartscope:0.8-rc.2 #Change version here
user: ${UID}:${GID} #This corresponds to the user running the smarscope.sh script
volumes:
######## ADD YOUR MAIN DATA LOCATION ##########
- /mnt/nas/smartscope/:/mnt/data/
# Example:
# - /nfs/data/:/mnt/data/
######## ADD YOUR MICROSCOPES #########
# The synthax from the microscope volumes is as follows:
# - /path/to/where/serialem/will/write/files/:/mnt/your_scope_name_here/
- /mnt/serialemComputer/smartscope/:/mnt/myscope1/
# Example:
# - /mnt/gatan_Raid_X/smartscope/:/mnt/arctica/
nginx:
ports:
#### BROADCASTED PORT ####
# Default port is 48000 but this can be changed by any port of your choosing.
# Note: You need sudo permissions to use port 80
- 48000:80
っで実フォルダを用意しておきます
[root@rockylinux9 SmartScope]# mkdir /mnt/nas/smartscope/ -p
[root@rockylinux9 SmartScope]# mkdir /mnt/serialemComputer/smartscope/ -p
っで起動させてみる
[root@rockylinux9 SmartScope]# ./smartscope.sh start
Checking for updates to version latest
Error: No such object: ghcr.io/niehs/smartscope:latest
Online sha: 50338c9ec3e991710bc34fdacc38dde0c4341cd57c9e91c2cbdfa91087d94996
Local sha:
A new release is available. Run 'smartscope.sh update latest' to update to the latest version.
Checking for updates to version stable
Error: No such object: ghcr.io/niehs/smartscope:stable
Online sha: bc20216eab2e61ead56533c63783dc3d18597d08bbd692f14428404824aba3ec
Local sha:
A new beta version is available. Run 'smartscope.sh update stable' to update to the new beta version.
./smartscope.sh: line 43: UID: readonly variable
Starting smartscope
:
[root@rockylinux9 SmartScope]#
[root@rockylinux9 SmartScope]# lsof -i -P
:
docker-pr 4892 root 7u IPv4 44806 0t0 TCP *:48000 (LISTEN)
docker-pr 4898 root 7u IPv6 44807 0t0 TCP *:48000 (LISTEN)
[root@rockylinux9 SmartScope]#
っで接続
そのままでは実行したノードでないとログインできないので、調整します
[root@rockylinux9 SmartScope]# vi smartscope.conf
ALLOWED_HOSTS=localhost
↓
ALLOWED_HOSTS=*
[root@rockylinux9 SmartScope]#
その上で
[root@rockylinux9 SmartScope]# ./smartscope.sh restart
で実行ノード以外からもアクセス可能になります.
初期アカウントは adminでパスワードは smartscope なそうな. っでそれで入ってみます.
そうするとこんな感じ. 電顕とかカメラの詳細を登録して、あとSerialEMとpythonで接続するそうな. これ以上は現場でやってみないと分からないかなぁ.