TAKAHASHI GROUP (情報化学研究室)

北海道大学

化学物質の作用やネットワークを検索するためのウェブアプリケーション

SCAN
サーバ設定手順書
日本語訳

SCAN サーバ設定手順書

北海道大学 - 高橋グループ - 情報化学研究室

SCAN サーバ設定手順書
寄稿者
SCAN システム開発者

Micke Nicander Kuwahara
Jun Fujima
この文書の最終更新日
2023年4月17日,14:01
SCAN ウェブアプリケーション[化学物質の作用とネットワークを検索する]
著作権 © 2018 Keisuke Takahashi, Micke Nicander Kuwahara
高橋グループにて (情報化学研究室) 北海道大学********************************************************************SCANはGNU GPL License, Version 3.0の下でライセンスされています；
このファイルは、本ライセンスに準拠する場合を除き、使用することができません。
お客様は、次の場所で本使用許諾書のコピーを入手することができます:
https://www.gnu.org/licenses/gpl-3.0.en.html適用される法律で要求される場合、または書面で合意される場合を除き、ソフトウェアは本ライセンスの下で頒布されるものは、「現状のまま」頒布されます、
また、明示または黙示を問わず、いかなる種類の保証または条件も付けないものとします。
本製品を使用するために必要なライセンスは、「ライセンス」を参照してください。
は、本ライセンスに基づく制限を受けることになります
詳細については、プロジェクトのGitHubをご覧ください。

https://github.com/scan-team/scan-platform-test********************************************************************
高橋グループ北海道大学, 理学部, 化学専攻,

北区北 10 条西 8 丁目第 7 ビル 7-510 号室,
札幌, 060-0810, 日本.
scan-team@sci.hokudai.ac.jp
1

SCAN サーバ設定手順書

目次
寄稿者....................................................................................................................................1
目次......................................................................................................................................................2
序文......................................................................................................................................................3
はじめに..............................................................................................................................................4
SCAN 建築......................................................................................................................................4
ウェブベースのブラウジングインターフェース.....................................................................5
サーバ設定手順書..............................................................................................................................6
前提条件.........................................................................................................................................6
環境を整える.................................................................................................................................7
Auth0 アカウントの設定と構成....................................................................................7
スキャンサーバーの構成...........................................................................................................10
Github から SCAN を取得する.....................................................................................11
SCAN プロジェクト設定ファイルの作成と編集......................................................11
スキャンサーバーの構築とスタートアップ...........................................................................13
データ登録の手順.......................................................................................................................15
サンプルデータの登録.................................................................................................15
概要...............................................................................................................................................15
図解索引............................................................................................................................................16
テーブル索引....................................................................................................................................162

SCAN サーバ設定手順書

序文
クリエイターからひと言。

このマニュアルは、GitHub の https://github.com/scan-team/scan-platformtest にある公開 SCAN サーバを自分でセットアップしたい人のための広範なガイドになろうとしている。対話型化学反応プラットフォーム SCAN は、化学反応
ネットワークを解析するために開発されました。SCAN は、化学反応経路ネット
ワークデータベース、可視化ツール、ネットワーク解析ツールを提供します。特に、SCAN はウェ
ブベースのプラットフォームであり、簡単な操作でインタラクティブな化学反応経路ネットワー
クの可視化とデータサイエンス技術を実行することができます。SCAN は、ユーザーフレンドリーなグラフィックユーザーインターフェースを提供するように設計されており、プログラミングやスキルセットに関する既存の知識をオプションとすることができます。このように、SCAN は化学
反応ネットワークを分析・理解するための代替ツールとして提案される。
SCAN は、基本的に化学反応データに特化したネットワークデータの可視化および分析ツールです。
SCAN は、もともと AFIR データを主な対象として開発されましたが、これは石に刻まれた制限ではありません。SCAN のコードとサーバー設定マニュアルをダウンロードした開発者は、自由にデー
タベースを変更し、好きなデータを使うことができます。
つまり、SCAN のソフトウェア開発チームは、データの選択とアップロードには関与していません
し、データの内容に関しても一切の責任を負いません。私たちの関心は、ツールセットと、選ばれたデータでできることだけにあります。
AFIR データに関する問題は、北海道大学 iCReDD（https://www.icredd.hokudai.ac.jp）チーム（リーダー：前田聡教授）にご連絡ください。

2023 年 4 月 17 日
SCAN ソフトウェアプロジェクトリーダー
高橋グループディレクター - 情報化学研究所

Professor Keisuke Takahashi
SCAN ソフトウェアシステムリードデベロッパー

Micke Nicander Kuwahara

3

SCAN サーバ設定手順書

章

1
はじめに
SCAN とは何か、研究者・化学者として何ができるかを知ってください 。

化

学反応を理解することは、反応物から生成物がどのように作られるかという根本的な謎に答えることになります。第一原理計算では、化学反応は膨大な数の中間体を含む
ため、複雑な問題であることが明らかにされます。言い換えれば、化学反応は多数の分子間相互作用からなる複雑なネットワークの一形態として扱うことができる。分子間相互作用の詳細を実験で捉えることは難しいが、このような複雑な反応マップを理解するためには、第一原理計算が大きな役割を果たす。特に化学反応の自動探索ツールとしては、Berny アル
ゴリズムを用いた凍結ストリング法、シングルエンド/ダブルエンド成長ストリング法、人工力による反応（AFIR）、反応機構生成ツール（RMG）、kinbot などが数多く開発されている。しかし、このような複雑な反応ネットワークをどのように理解し、どのように知識を抽出するのかという問題があり、ネットワークから知識を抽出するためのツールが必要となっている。
化学反応ネットワークから知識を抽出するためには、複数のステップとプロセスが必要です。特に、化学反応データベースの整理、統計解析、ネットワークの可視化、グラフ理論が関与している。ネットワークの可視化ツールとしては、Cytoscape や Gephi などがあり、ネットワークの可視化とグラフ理論による解析が可能です。さらに、中心性解析などのグラフ理論が中間体の決定に有効であることが実証されている。しかし、これらのプロセスは互いに強く結びついているため、各プロセスの個別展開では知識の抽出が制限される可能性があることを意味しています。また、
ネットワークデータの可視化や解析には、特殊なスキルや高度なプログラミングスキルが必要とされることが多く、それが解析の障壁となることもある。そのため、これらのプロセスを同時に利用できる、集中的かつインタラクティブで使い勝手の良いプラットフォームを構築することが重要である。ここでは、Searching Chemical Action and Network (SCAN)を紹介し、インタラク
ティブな化学反応ネットワークのためのプラットフォームを設計し、AFIR 法によって化学反応ネ
ットワークを生成することを提案します。SCAN プラットフォームは、
https://scan.sci.hokudai.ac.jp/、第一原理計算で生成された化学反応ネットワークデータを探
索、視覚化、分析することができます。このように、SCAN は複雑な化学反応ネットワークを検索し、理解することができます。

SCAN 建築SCAN のコンセプトは、第一原理計算で生成された化学反応ネットワークを保存・共有し、インタラ
クティブなネットワークの可視化とネットワーク解析を提供することです。データの柔軟な再利用を実現するために、データレイク、データウェアハウス、データマートからなるレイヤードア
ーキテクチャを採用しています。ここでは、プロトタイプの化学反応ネットワークデータとして、
4

SCAN サーバ設定手順書
過去に公開された AFIR 法で生成した化学反応ネットワークデータを使用する。AFIR で生成された
化学反応ネットワークデータには、生データに分類される多数のログファイルが含まれています。
これらの生データは、何も手を加えず、そのままの形で保存される。このデータ保存単位をデー
タレイクと定義する。データレイクから提供された生データは、ネットワークの可視化やネット
ワーク分析のために前処理され、データウェアハウスに保存されます。最後に、データウェアハ
ウスにはデータマートがアクセスし、データの可視化、データ分析、データ共有のためのアプリ
ケーション・プログラミング・インターフェースなどのアプリケーションサービスを提供する。

ウェブベースのブラウジングインターフェース
ウェブアプリケーションは、3 層構造のアーキテクチャを基盤として構築されています。Web アプ
リケーションはデータマートに直結しており、ユーザーはプログラミングやデータ前処理の経験がなくても、Web グラフィックユーザーインターフェースに直接アクセスして、ネットワークの可視化、ネットワーク分析、データダウンロードを行うことができます。特に、化学反応解析に必要な知識やスキルを持たない研究者にも、化学反応解析へのアクセスを拡大することができる点が魅力的です。

5

SCAN サーバ設定手順書

章

2
サーバ設定手順書
SCAN のオンラインを訪問し、それがあなたの探しているものであるかもしれないと感じたが、あなた自身のサーバーを持ちたいと思うようになりました。ここでは、あなた自身の SCAN サーバーのダウンロードとインストールをお手伝いします。

この章では、ローカルとパブリックの両方で使用するための独自の SCAN サーバー
環境のインストールとセットアップについて知っておく必要があるすべてのことを説明しようとします。やるべきことは非常に多く、大変な作業になるかもしれません。しかし、このマニュアルがあれば大丈夫でしょう。では、さっそ
く始めましょう。

前提条件
SCAN の方向性を検討し始める前に、まずあなたのシステムがこのための準備ができていることを確認する必要があります。この文書では、SCAN サーバーを導入する前に、以下の準備が必要であることを説明しています。
1. Ubuntu または Linux の OS を搭載したパソコンで、以下のシステムがインストールされ、動作していること：a) Docker と Docker-Compose について•

Docker について説明するのはこのドキュメントの範囲ではないので、それはすべて
あなたの責任になりますが、Docker をまだ持っていない場合に始めるためのリンク
はこちらです。
•

https://www.docker.comb) Python3•

Python についても、この文書で説明する範囲ではありませんが、Python について必要なことをオンラインで調べることができる場所を知っていると思います。

2. [公開サーバーのみ、ローカル版では必要ありません]：
a) SCAN アプリのドメイン名を取得し、DNS に登録する。
b) 適切な SSL 証明書を取得する
c) Google Analytics ID の登録（オプションで、方法は本書の範囲外です。）
6

SCAN サーバ設定手順書

環境を整える
コンピュータに必要な基盤が整っていることを確認したら、次は SCAN が動作するために必要なす
べての必需品やパーツをインストールし、設定する番です。

Auth0 アカウントの設定と構成
このセクションでは、SCAN ウェブプラットフォームのユーザーアカウントを作成および管理するために必要な auth0 認証サーバーのアカウントを作成する方法について説明します。
1) ブラウザで https://auth0.com にアクセスします。

Figure 1: ユーザーアカウント管理者となる Auth0 サイトのフロントページ

2) 「Sign Up」ボタンをクリックすると、Figure 1 のように右上のセクションにあるユー
ザー登録ページに移動します。
3) メールアドレスを入力し、「続ける」をクリックすると、アカウント作成画面に進みます。
パスワードを入力し、Continue をクリックします。この様子は、以下の Figure 2 で確認することができます。

Figure 2: Auth0 で User Manager の基本アカウントを作成する場合は無料です。
7

SCAN サーバ設定手順書
4) アカウントタイプ」「会社名」「会社規模」を選択し、「次へ」をクリックします。テナ
ントドメイン」と「地域」を確認し、「アカウントの作成」をクリックすると、Figure 3のようなアカウントが作成されます。

Figure 3: ドメイン名は、ここまでのプロセスで事前に取得しておく必要があります。

5) サインアップが完了すると、Figure 4 のようにダッシュボードページが表示されます。

Figure 4: Auth0 ダッシュボードで、SCAN サーバーのログインシステムを設定できるようになりました。

6) その画面の左上にある「アプリケーション」をクリックし、続いてその真下にある「アプリケーション」をクリックします。その後、メインエリアの新しい表示で、設定画面に移動するために、"Default App "をクリックします。今説明したことは、下の Figure 5 で見ることができます。

8

SCAN サーバ設定手順書

Figure 5: クリックすると、Default App の設定画面が表示されます。

7) 設定」タブの下に、Figure 6 のようにスクロールしていくと、記入する箇所があります。

Figure 6: このビューを下にスクロールすると、変更または追加する必要があるパーツにたどり着きます。

8) "Application Login URI "フィールドに SCAN サーバーの URL を入力します (設定ページをさらに下にスクロールすると見つかります)。Figure 7 に、問題のフィールドが表示されています。

Figure 7: このステップの前に、url を正しく登録したことを確認してください。

9SCAN サーバ設定手順書
9) 次に「許可されたコールバック URL」までスクロールダウンし、そのフィールドに Figure8 に示すように「サーバー URL/api/auth/callback」を入力します。

Figure 8: 先ほどと同じ url を入力しますが、パスを追加してください 。

10) 10) 上記セクションの下に、「許可されたログアウト URL」があります。このフィールドに、Figure 9 に示すように、サーバーの URL を追加します。

Figure 9: パスを追加することなく、これまでと同じ URL を記入するだ
けです。

11) 作業が終わったら、Figure 10 にあるように、下にスクロールして、画面下部の「変更を保存」をクリックします。

Figure 10: 設定を保存したら、準備完了です。

スキャンサーバーの構成
このセクションでは、SCAN コードをサーバーにダウンロードし、実行するために必要な設定と構成について説明します。このドキュメントの範囲では、これらの部分についてこれ以上詳しく説明することはありませんので、あなたが使用している OS (Linux や Ubuntu) や GitHub 全般に精通していることを前提とします。もし、これらの部分を十分に使いこなせていないのであれば、ネットでチュートリアルを見つけて勉強することをお勧めします。
10

SCAN サーバ設定手順書

Github から SCAN を取得する
1) SCAN をインストールする Linux サーバーの管理者としてログインし、ファイルシステム上の SCAN がインストールされる場所に移動してください。
2) SCAN の GitHub ページ（https://github.com/scan-team/scan-platform-test）に素早くアクセスしてください。これは、私たちがクローンして作業するプロジェクトです。また、
ReadMe をざっと見て、すべてがこのドキュメントと同等に見えることを確認する。
(ReadMe は変更があった場合、最初に更新されるので、もし違うことが記載されていれば、そちらが優先されます)。
3) GitHub から SCAN のリポジトリをサーバーにクローンします。
$ git clone https://github.com/scan-team/scan-platform-test.git my-scan$ git submodule update --init --recursive

4) SCAN プロジェクトが GitHub からあなたのサーバーにダウンロードし終わったら、プロ
ジェクトのルートに移動してください。

SCAN プロジェクト設定ファイルの作成と編集
5) ルートにある .env.sample ファイルのコピーを作成し、そのコピーに .env という名前を付ける。
$ cd my-scan/$ cp .env.sample .env

6) 6) .env ファイルを開いて編集し（お好みのコード/テキストエディタを使用）、Figure
11 に示すように、以下の Table 1 に説明と例を示すように、必要な変更を加えます。
項目名
API_ALLOWED_HOSTS
AUTH0_SECRETAUTH0_BASE_URL
AUTH0_ISSUER_BASE_URL
AUTH0_CLIENT_ID
AUTH0_CLIENT_SECRET
NEXT_PUBLIC_SCAN_API_PROXY_ROOTFASTAPI_SIMPLE_SECURITY_SECRE
T
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID

説明
サーバーの URL を指定する
ランダム文字列
サーバー URL
AUTH0 アプリの設定：
DomainAUTH0 アプリの設定：
ClientID
AUTH0 アプリの設定：
ClientSecret
サーバー URL に api/proxyを追加
API アクセスキー(管理用)、
ランダム文字列
Google Analytics のデータ収集のための ID

例
https://yourhostname:8001/
Oi2Aich1theace6jaiyoekae3ahuizuoz
https://yourhostname/https://xxxx.auth0.com

https://yourhostname/api/proxycaaph5eicahneewuiKei3peeV
e8shi3I
G-X3ZZ5HVYYZTable 1: これらは、正しく設定する必要がある環境変数です。
11

SCAN サーバ設定手順書

Figure 11: プロジェクトのルートフォルダにある.env ファイルを正しく設定することは、重要な部分です。

7) scan-reverse-proxy/conf.d/directory から nginx.conf.example のコピーを作成し、nginx.confと命名する。
$ cp nginx.conf.example nginx.conf

8) nginx.conf ファイルを開いて編集し（お好みのコード/テキストエディタを使用）、Figure
12 に示すように、また以下の Table 2 に説明と例を示すように、必要な変更を加えます。
項目名
ssl_certificate

説明
SSL 証明書ファイル名1/etc/ssl/certs/cert.pem

例

ssl_certificate_key

SSL 秘密鍵ファイル名/etc/ssl/certs/server.pem

Table 2: SSL 証明書キーの登録が必要です

Figure 12: お使いのコンピュータの SSL キーの場所を指すように名前を変更します 。

9) SCAN ルートフォルダから docker-compose.yml.example のコピーを作成し、docker1パスの部分 /etc/ssl/certs を変更する必要はありません (これらは以下の docker-compose.yml で正しくポイン
トされます)。

12

SCAN サーバ設定手順書
compose.yml と命名します。
$ cp docker-compose.yml.example docker-compose.yml

10) docker-compose.yml ファイルを開いて編集し（お好みのコード/テキストエディタを使用）、Figure 13 に示すように、以下の Table 3 に説明と例を示すように、必要な変更を加えます。
項目名nginx: volumes: -説明
ローカルの ssl のパスを、nginx
が使用する仮想パスにリポイン
ティングします。

例
YourSSLPath: /etc/ssl/certs

Table 3: SSL 証明書の正しいローカルロケーションを見つけることを確認します。

Figure 13: お客様のローカルにある SSL 証明書の場所

スキャンサーバーの構築とスタートアップ
ここまでで、Docker のビルドプロセスを実行し、SCAN サーバーの初回実行を確認する部分まで来ました。
1) プロジェクトのルートフォルダにいることを確認し、ビルドスクリプトを実行します。
$ ./build.sh2) これで、docker のビルドプロセスが開始され、おそらく何分もかかるかもしれません。その間、ターミナルには赤色を含む様々な色でプロセスに関する情報が書き込まれますが、
すべてうまくいくはずです。最後には成功した旨のメッセージが表示されるはずです。
3) もし何か失敗したら、ここまでの部分がすべて正しく行われているかどうか、再確認してください。エラーメッセージを読み、GitHub の ReadMe ファイルと比較して、すべてが問題ないように見えるかどうかを確認します。このドキュメントが十分でない場合は、エラー
メッセージをググってみてください。可能な限りの間違いを修正した後、上記のビルドコ
マンドをもう一度実行します。
13

SCAN サーバ設定手順書
4) Docker のビルドプロセスが正常に終了したら、今度はスタートスクリプトで SCAN サー
バーを起動します。
$ ./start.sh5) このプロセスも時間がかかり、ターミナルに多くのメッセージが出力されますが、すべてがうまくいけば、最終的には、以下の Figure 14 のように、すべての docker コンテナの起動と実行が緑の「Done」と共に表示されます。

Figure 14: これは、システムがすべて正常に稼働していることを示す、あなたが望む表示です。

6) 6) 次に、ブラウザでウェブサイトを開きます。localhost で動作している場合はそれを使用し、そうでない場合は設定時に割り当てた ip または URL を使用します。(リモートでサーバーにアクセスしている場合、または何らかの理由で localhost を使用できない場合
は、.env と Auth0.com のすべてのリンクを、要求された IP 設定に合わせて更新する必要があります)
7) Figure 15 のように、ブラウザに Web サイトのスタートページが表示されます。ただし、利用可能な地図はゼロです。次のステップで追加する必要があります。

Figure 15: SCAN サイトのスタートページ

8) 「利用規約」リンクと「お問い合わせ」リンクは、あなたのセットアップにとって間違った情報を含んでいる可能性が高いので、オンラインで展開する前に、これらのファイルを探し、あなたの好みに合わせて編集してください。
9) 9) 後でサーバーを停止したい場合は、stop スクリプトを実行し、サーバーが終了するのを待ちます。
$ ./stop.sh

14

SCAN サーバ設定手順書

データ登録の手順
ここでは、サンプルデータを登録する手順を説明します。自作データや GRRM（AFIR）データの実
行など、DB に手を加える場合は、サンプルデータが正常に動作することを確認した上で行うようにしてください。

サンプルデータの登録
デモのサンプルデータをデータベースに読み込むことができます。尿素合成の反応経路ネットワ
ークは、以下の 2 つが登録されています。
••

Wöhler’s urea
合成1) 以下の URL からサンプルデータをダウンロードし、"export.sql "という名前を付けてSCAN サーバにアップロードします。
https://drive.google.com/file/d/1VjsEwVdje4G1Ob1fEesMRXmRQRBaajr1/view?usp=sharing[リンクが機能していない場合は、SCAN GitHub にアクセスし、適切なリンクを探してください］
2) サンプルデータをデータベースに登録する。(export.sql のパスや場所が、お使いのパソ
コンに合っていることを確認してください)$ scan-mariadb/import.sh ../export.sql

3) 3) 少し時間がかかるかもしれませんが、すべてが完了すると、端末に 100％のデータ転送に到達し、すべてが正常に完了したことが表示されます。
4) 4) さて、ウェブサイトを再起動すると、きっと上の Figure 15 のようになり、2 つの地図が利用できるようになっているはずです。

概要
このサーバーセットアップマニュアルで、SCAN Web アプリサーバーのセットアップとメンテナン
ス方法について知る必要があるすべてのことをお伝えできたとしたら幸いです。
このたびはおめでとうございます！これからのご活躍をお祈りいたします。お楽しみに！

15

SCAN サーバ設定手順書

図解索引
Figure 1: ユーザーアカウント管理者となる Auth0 サイトのフロントページ...........................7
Figure 2: Auth0 で User Manager の基本アカウントを作成する場合は無料です。....................7
Figure 3: ドメイン名は、ここまでのプロセスで事前に取得しておく必要があります。.......8
Figure 4: Auth0 ダッシュボードで、SCAN サーバーのログインシステムを設定できるようになりました。..................................................................................................................................8
Figure 5: クリックすると、Default App の設定画面が表示されます。......................................9
Figure 6: このビューを下にスクロールすると、変更または追加する必要があるパーツにたどり着きます。..................................................................................................................................9
Figure 7: このステップの前に、url を正しく登録したことを確認してください。.................9
Figure 8: 先ほどと同じ url を入力しますが、パスを追加してください。...............................10
Figure 9: パスを追加することなく、これまでと同じ URL を記入するだけです。...............10
Figure 10: 設定を保存したら、準備完了です。...........................................................................10
Figure 11: プロジェクトのルートフォルダにある.env ファイルを正しく設定することは、重要な部分です。............................................................................................................................12
Figure 12: お使いのコンピュータの SSL キーの場所を指すように名前を変更します。......12
Figure 13: お客様のローカルにある SSL 証明書の場所..............................................................13
Figure 14: これは、システムがすべて正常に稼働していることを示す、あなたが望む表示です。................................................................................................................................................14
Figure 15: SCAN サイトのスタートページ...................................................................................14

テーブル索引Table 1: これらは、正しく設定する必要がある環境変数です。..............................................11
Table 2: SSL 証明書キーの登録が必要です...................................................................................12
Table 3: SSL 証明書の正しいローカルロケーションを見つけることを確認します。...........13

16

応援ありがとうございます