「ComplexRI」の版間の差分

提供: ComplexRI: Manual
ナビゲーションに移動 検索に移動
98行目: 98行目:
: じつはこれはチュートリアル01と同じ結果になっている。
: じつはこれはチュートリアル01と同じ結果になっている。
図1-1と見比べてみてほしい。
図1-1と見比べてみてほしい。
: 同じ実験結果を入力したことを意味している。この意味をチュートリアル01と02で使用した入力ファイルと今回使用した入力ファイルを比較して説明する。
: これは同じ実験結果を入力したことを意味している。しかし、チュートリアル01と02で使用した入力ファイルと今回使用した入力ファイルを比較すると、以下のように一見同じには見えない。これが同じであることを説明する。(一部分のみ示す。)
: 二つのファイルは以下のようになっている。(一部分のみ示す。)
<span style="font-size: 170%; color:green;">画像</span>
<span style="font-size: 170%; color:green;">画像</span>
: 異なる点は2つある。
: 異なる点は2つある。
: 1つは行が3行になっていることである。これは波数、反射率、吸光度の順に並んでいる。ここで新しく出てきた吸光度というのは反射率と等価な情報を表している。なぜなら、○○という関係式が成り立っており、これによって吸光度を反射率に変換することができるからだ。
: 1つは行が3行になっていることである。これは波数、反射率、吸光度の順に並んでいる。ここで新しく出てきた吸光度というのは反射率と等価な情報を表している。なぜなら、○○という関係式が成り立っており、これによって吸光度を反射率に変換することができるからだ。
: もう1つは波数と反射率の並びが昇順から降順になっていることだ。ここで、吸光度はこの様に並び替えた後で反射率から計算したので波数に対応している。
: もう1つは波数と反射率の並びが昇順から降順になっていることだ。ここで、吸光度はこの様に並び替えた後で反射率から計算したので波数に対応している。
: このように形は異なるが等価な実験結果を用いていることがわかったと思う。
: このように形は異なるが等価な実験結果を与えた。だから結果が同じだったのだ。
: ③,⑤,⑥の入力はこのファイルの形の違いを与えたことになっている。
: ③,⑤,⑥の入力はこのファイルの形の違いをアプリ側に考慮させるために入力した。
: ③は吸光度を実験結果が吸光度で与えられ、それを使うときにabsorptanceに設定してほしい。すると、解析時に反射率に変換して解析する。
: ⑤では読み込む列の番号を与えたことになっている。今回は入力として1行目の波数と3行目の吸光度を使うのでこのように設定した。
: 吸光度を使うときは、忘れずに③をabsorptanceに設定してほしい。すると、解析時に反射率に変換して解析する。
: この設定はデフォルトではreflectanceになっているのでこれまでは変更する必要がなかった。
: この設定はデフォルトではreflectanceになっているのでこれまでは変更する必要がなかった。
: ⑤は読み込む列の番号を与えることになっている。今回は入力として1行目の
: 最後に⑥はデータの波数のの並び方昇順か降順かを入力している。今回は降順なのでこのように設定した。デフォルトは昇順なので今までは設定する必要がなかった。
: なぜなら、最小二乗誤差に比例した量になっているからだ。
 
: 数字については<div><span id="チュートリアル02"  style="font-size: 150%; color:Aqua;>チュートリアル02:解析に関する条件を指定しよう。 </div>
: 次のチュートリアルからはファイルに合わせた追加設定について説明していく。
<div><span id="チュートリアル01"  style="font-size: 150%; color:Aqua;>チュートリアル01:ファイルを入れて解析してみよう。</span>➡[[#チュートリアル01の解説|チュートリアル01の解説へ]]</div>
: それでは入力および出力の説明をしていこう。
<span style="font-size: 130%; color:aqua;>入力</span>
: まず入力の説明からしていこう。最初に説明したように入力は
: <u>[[#input1|1⃣実験の条件]]</u>、<u>[[#input2|2⃣実験の結果]]</u>、<u>[[#input3|3⃣ファイルの形式に関する入力]]</u>、<u>[[#input4|4⃣解析の仕方に関する入力]]</u>
: の四種類がある。
: 少し順番が前後するが一つずつ説明していこう。
<span id="input2" style="font-size: 130%; >2⃣実験の結果</span>
: 今回は入力欄の<span style="font-size: 100%; color:red;>②FILE</span>のみ入力したのであった。これが入力の<span style="font-size: 100%; color:red;>2⃣</span>である。
: まずその形式について説明しよう。ファイルは以下のようになっているはずである。
<div id = image1-2 style="font-size: 120%;">[図1-2]</div>
<span style="font-size: 170%; color:green;">画像</span>
: 一列目には波数、二列目に一列目の波数の光が入射した時の反射率が(%)単位が並んだ構成になっている。
: この様に解析に必要な実験結果は波数とそれに対応する反射率の二種類だけである。
<span id="input3" style="font-size: 130%; >3⃣ファイルの形式に関する入力</span>
: 次に入力の<span style="font-size: 100%; color:red;>3⃣</span>ファイル形式に関する入力について説明しよう。
: これは入力欄でいうと、<span style="font-size: 100%; color:red;>③、⑤、⑥</span>の3つに相当する。
: これらの入力をすることはファイル構成になっていることをアプリケーションに認識させるのが
: 入力ファイルと照らし合わせながら一つずつ説明していこう。
: まず<span style="font-size: 100%; color:red;>③Reflectance or Absorptance?</span>である。
: ここでは実験結果が反射率で与えられたのか、吸光度で与えられたのかを入力する。デフォルトは反射率で与えられたという回答になっている。今回のファイル形式は反射率で与えられているのでこの回答を変更する必要はなかったのである。
: まず<span style="font-size: 100%; color:red;>⑤the Lines Wavenumber and Intensity Ratio of Reflected Light are written on</span>である。
: ここではファイルの波数および反射率がその列並んでいるのかを入力する。デフォルトは波数は一行目、反射率は二行目に並んでいるという回答になっている。これは今回のファイル形式に一致しているのでこの回答も変更する必要はなかった。
: まず<span style="font-size: 100%; color:red;>⑥In what order are they arranged?</span>である。
: ここではファイルの波数が昇順、降順のどちらで並んでいるのかを入力する。デフォルトは昇順という回答になっている。これも今回のファイル形式に一致しているのでこの回答も変更する必要はなかった。
<span id="input4" style="font-size: 130%; >4⃣解析の仕方に関する入力</span>
: 続いて、入力の<span style="font-size: 100%; color:red;>4⃣</span>解析の仕方に関する入力について説明しよう。
: これは入力欄でいうと、<span style="font-size: 100%; color:red;>④、⑩</span>の二つに相当する。
: まず<span style="font-size: 100%; color:red;>④wavenumber range for the analysis</span>である。
: ここでは複素屈折率の分散を解析したい波数領域を指定してほしい。今回はデフォルト値の波数領域について解析した。
: 次に<span style="font-size: 100%; color:red;>⑩LSR repeats until the residual is less than the one set here</span>である。
: これは解析の程度をしてすることになる。簡単にいうと、内部では最小二乗法を用いており、最小二乗誤差(正確には標準偏差を用いている。)がいくつになったら計算を終了するかを指定することになる。この設定値をあまりに小さくしすぎると、いくらフィッティングをしても最小二乗誤差がその値未満になることがなく、解析が終了しないことがあるのでその点はご了承いただきたく思う。詳しいフィッティング方法を知りたいという方は、<u>[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明01|説明01]]</u>フィッティング方法を参照してほしい。
<span id="input1" style="font-size: 130%; >1⃣実験条件</span>
: 最後に実験条件について説明しよう。
: これは入力欄でいうと、<span style="font-size: 100%; color:red;>⑦、⑧、⑨</span>の三つに相当する。
: まず、<span style="font-size: 100%; color:red;>⑦What is the Substrate used in experiment?</span>である。
: ここでは実験で使用した基質を指定してほしい。これは一般的な三つを選択肢として与えるとともに、それ以外の場合はotherから設定できるようにしたので必要に応じて使用してほしい。
: 次に<span style="font-size: 100%; color:red;>⑧incidence angle </span>である。
: ここでは入射角を指定してほしい。
: 最後に<span style="font-size: 100%; color:red;>⑨we caluculate the deviation from this value</span>である。
: ここでは複素屈折率の分散のバックグラウンドを指定してほしい。詳しくは、<u>[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明02|説明02]]</u>屈折率のバックグラウンドを参照してほしい。簡単に言うと<u>[[#image1-1|[図1-1]]]</u>の複素屈折率の実部のグラフの端の方の水平になっている部分の高さがどれくらいになるかを指定することになっている。
<span style="font-size: 130%; color:aqua;>出力</span>
: 次に出力の解説をしよう。<u>[[#image1-1|[図1-1]]]</u>には数値と表とグラフが出力されていることがわかる。一つずつ説明していこう。
<span style="font-size: 130%; >(1)数値</span>
: これはフィッティング後の最小二乗誤差(正確には標準偏差を用いている。)がいくつになったかを示している。これは入力の⑩で与えた値より小さくなっているはずである。今回はデフォルト値が0.02であったので確かにそれより小さくなっていることがわかる。
<span style="font-size: 130%; >(2)表</span>
: これはフィッティング関数のパラメータを示している。行ごとに一組のパラメータを示している。
: フィッティング関数はローレンツ関数を用いている。詳しくは<u>[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明01|説明01]]</u>フィッティング方法を参照してほしい。
<span id="input1" style="font-size: 130%; >(3)グラフ</span>
: これは反射率を波数に対してプロットしたものである。波数領域はちょうど入力④で指定したものになっている。experimentという名前が付いた方のグラフは単にインプットの反射率ををプロットしたものである。calculationという名前がついている方は(2)のように求まったフィッティング関数のパラメータを基に波数から反射率を計算してプロットしたものである。詳しいフィッティング関数の形が知りたい場合は<u>[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明01|説明01]]</u>フィッティング方法を参照してほしい。differenceという名前がついているものはexperimentとcalculationの各点での差をプロットしている。これが0に水平な直線に近いほど適切なフィッティング関数が見つかったことを意味している。
<div><span id="チュートリアル02" style="font-size: 150%; color:Aqua;>チュートリアル02:複素屈折率の分散を解析してみよう。</span>➡[[#チュートリアル02の解説|チュートリアル02の解説へ]]</div>
<div id="チュートリアル02の解説" style="font-size: 150%; color:Aqua;>チュートリアル02の解説</div>
<div id="チュートリアル03" style="font-size: 100%; color:Aqua;>チュートリアル03:水-DCM 界面のシミュレーション</div>
:➡[[#チュートリアル03の解説|チュートリアル03の解説へ]]
<div id="チュートリアル03の解説" style="font-size: 120%; color:red;>チュートリアル03の解説</div>
<div id="チュートリアル04" style="font-size: 100%; color:Aqua;>チュートリアル04:水-DCM 界面のシミュレーション</div>
<div id="チュートリアル04" style="font-size: 100%; color:Aqua;>チュートリアル04:水-DCM 界面のシミュレーション</div>
:➡[[#チュートリアル04の解説|チュートリアル04の解説へ]]
:➡[[#チュートリアル04の解説|チュートリアル04の解説へ]]

2021年11月14日 (日) 07:27時点における版


概要例

 本FreeFlexは、主に液体および界面系のさまざまな自由エネルギー計算に柔軟に対応できるMDプログラムとして開発された。液体界面でのwater finger座標によって初めてwater finger形成・切断の自由エネルギー障壁が明らかにされたように、既存の方法を超えた新たな座標が求められる場合も多い。FreeFlexは、一般化座標の設定が容易で汎用性が高く、それに対する拘束条件やバイアス・ポテンシャルを課したり、その座標上の自由エネルギー計算を実行しやすいように設計された。

 現在のFreeFlexは、自由エネルギー計算手法として、

  • 自由エネルギー摂動法 (overlapping distribution法)
  • アンブレラサンプリング法
  • レプリカ交換アンブレラサンプリング法

の3通りをサポートしている。分子モデルは、点電荷および点双極子の分極モデルをサポートする。MD計算のチューニングについても多くの工夫がなされている。


 FreeFlexは、吉川信明君が自らの研究のために作成していたMDプログラムを母体として、2014年度より汎用化を目指した開発が始められた。吉川君、王聆鉴君および森田が開発に加わり、液液界面に関わる吉川、聆鉴君それぞれの研究に必要なMDプログラムを包括する形で開発された。2015年より杉林君、2016年より田原君、2017年より平野君、内藤君、小泉さん、2018年より伊藤君が開発チームに加わって、液液界面での電子移動反応やfaciliated ion transfer、グランドカノニカルMDの研究へと進んでいる。また信田君によってparticle mesh Ewald法やOpenMP並列化が実装され、従来より格段に高速化した。

チュートリアル 例

チュートリアル01:水-DCM 界面のシミュレーション
FreeFlex の基本的な使用方法のチュートリアルとして、コンパイル、系の作成、MD の実行といった一連の流れを説明する。
また、計算結果を確認するために show_energy.exe を用いてエネルギーの時間変化をグラフとして表示する。


概要

本ComplexRIは全反射実験から得られた反射率あるいは吸光度のデータをもとにして媒質の複素屈折率の分散を出力するWebアプリケーションである。 1⃣実験の結果、 2⃣ファイル形式に関する入力、 3⃣実験の条件、 4⃣解析に関する条件 という四つの情報を入力として与えると、解析が行える。

チュートリアル

目次
チュートリアル01:ファイルを入れて解析してみよう
チュートリアル02:解析に関する条件を指定しよう
チュートリアル03:ファイルの形式を変えてみよう
チュートリアル04:example
チュートリアル01:ファイルを入れて解析してみようチュートリアル01の解説へ
ここでは1⃣実験の結果を入力として与えて解析結果を出力させてみよう。
実験結果のファイルはComplexRIのMANUALページFile Listからダウンロードできる。

画像

今回はDownload the File01のボタンを押してダウンロードしてこれを使用してほしい。

画像

ダウンロードが出来たらLSRページに行きファイルを入れてみよう。

画像

入力は①から⑩の10個だ。今回は②Fileにダウンロードしたファイルを与えるだけでよい。
それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル01の解説
解析結果は以下の画像のようなったはずである。
[図1-1]

画像 caption

ここまでComplexRIの基本的な流れを体験してもらった。
ここで入れたファイルについて簡単に説明する。
この様になっているはずである。

画像

一列目には波数、二列目に一列目の波数の光が入射した時の反射率が(%)単位が並んだ構成になっている。
この様に解析に必要な実験結果は波数とそれに対応する反射率の二種類だけであり、これだけの実験結果から解析が行えるということである。
結果については次のチュートリアルで説明する。
チュートリアル02:解析に関する条件を指定しようチュートリアル02の解説へ
ここでは4⃣解析に関する条件を入力として与えてみよう。
まず、先程と同様にLSRページに行き②Fileにファイルを与える。これは前回と同じものを使用してほしい。
先程はこれで実行していたが、以下のように④と⑩に追加の設定をしてみよう。

captioncaption

それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル02の解説
解析結果は以下のようなったはずである。
[図1-2]

画像 caption

④と⑩の入力の意味を説明する前に、結果の見方について簡単に説明する。
(1)数字、(2)表、(3)グラフが並んでいる。
(2)表の数値はフィッティング関数のパラメータである。このフィッティング関数を足し合わせることで、左側の(3)グラフを描いている。また、このグラフの各点の値から反射率を計算してプロットしたのが右側の(3)グラフcalculateである。実際の回帰ではこの表の数値をいろいろ試して、右側の(3)グラフcalculateexperimentと比較するということを行っている。ここで、experimentは入力ファイルとして与えられた反射率の値である。(1)数字は解析が終了した時点で、この比較の差がどれくらい小さくなったかを示している。具体的なフィッティング関数の形や方法については内部処理の説明など説明01:フィッティング方法を参考にしてほしい。
これを踏まえて、④と⑩の入力の意味を説明していこう。
説明は今回の結果をチュートリアル01の時と比較しながら行っていく。
図の比較は以下のようになる。

captioncaption

④の入力をしたことは、グラフの横軸の幅を設定することなっている。確かに、[入力4の図]と同じ範囲になっている。デフォルトの値で行われたチュートリアル01の時と比べると変化がわかりやすいと思う。
このグラフの幅の設定は、言い換えると、解析する波数の範囲設定したことになっている。これは直前に説明した解析の原理から考えればわかる。(3)グラフcalculateexperimentを比較するのであった。このときグラフの横幅を変えれば、比べる範囲つまり解析の範囲を変えることに相当するということだ。
次に⑩について説明する。今回は[入力10の図]のように0.01した。解析は(1)数字がこの値より小さくなったら終了するようになっている。つまり解析の正確さもしくは厳しさを設定することになっている。
チュートリアル03:ファイルの形式を変えてみようチュートリアル03の解説へ
ここでは4⃣ファイル形式に関する条件を入力として与えてみよう。
チュートリアル01の時と同様にMANUALページFile Listからファイルをダウンロードしてほしい。
今回はFile02を使う。

画像

ダウンロード出来たら、LSRページに行き②Fileにファイルを与える。
今回は③,⑤,⑥の入力を以下のように変更してみよう。

画像

それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル03の解説
解析結果は以下のようなったはずである。

画像

じつはこれはチュートリアル01と同じ結果になっている。

図1-1と見比べてみてほしい。

これは同じ実験結果を入力したことを意味している。しかし、チュートリアル01と02で使用した入力ファイルと今回使用した入力ファイルを比較すると、以下のように一見同じには見えない。これが同じであることを説明する。(一部分のみ示す。)

画像

異なる点は2つある。
1つは行が3行になっていることである。これは波数、反射率、吸光度の順に並んでいる。ここで新しく出てきた吸光度というのは反射率と等価な情報を表している。なぜなら、○○という関係式が成り立っており、これによって吸光度を反射率に変換することができるからだ。
もう1つは波数と反射率の並びが昇順から降順になっていることだ。ここで、吸光度はこの様に並び替えた後で反射率から計算したので波数に対応している。
このように形は異なるが等価な実験結果を与えた。だから結果が同じだったのだ。
③,⑤,⑥の入力はこのファイルの形の違いをアプリ側に考慮させるために入力した。
⑤では読み込む列の番号を与えたことになっている。今回は入力として1行目の波数と3行目の吸光度を使うのでこのように設定した。
吸光度を使うときは、忘れずに③をabsorptanceに設定してほしい。すると、解析時に反射率に変換して解析する。
この設定はデフォルトではreflectanceになっているのでこれまでは変更する必要がなかった。
最後に⑥はデータの波数のの並び方昇順か降順かを入力している。今回は降順なのでこのように設定した。デフォルトは昇順なので今までは設定する必要がなかった。
チュートリアル04:水-DCM 界面のシミュレーション
チュートリアル04の解説へ
チュートリアル04の解説


google

チュートリアルtopへ

内部処理の説明など

目次
説明01:フィッティング方法
説明02:屈折率のバックグラウンド
説明03
説明04
説明01
説明02
説明03
説明04
内部処理の説明などtopへ
ComplexRIページtopへ]

ComplexRI