<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://comp.chem.tohoku.ac.jp/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hirano</id>
	<title>ComplexRI: Manual - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="http://comp.chem.tohoku.ac.jp/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hirano"/>
	<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Hirano"/>
	<updated>2026-09-17T13:01:08Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=FreeFlex_%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&amp;diff=3005</id>
		<title>FreeFlex マニュアル</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=FreeFlex_%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&amp;diff=3005"/>
		<updated>2026-05-28T06:49:09Z</updated>

		<summary type="html">&lt;p&gt;Hirano: Hirano がページ「FreeFlex マニュアル」を「Private:FreeFlex マニュアル」に移動しました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#転送 [[Private:FreeFlex マニュアル]]&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB04:%E8%87%AA%E7%94%B1%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E6%91%82%E5%8B%95%E8%A8%88%E7%AE%97&amp;diff=3003</id>
		<title>チュートリアル04:自由エネルギー摂動計算</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB04:%E8%87%AA%E7%94%B1%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E6%91%82%E5%8B%95%E8%A8%88%E7%AE%97&amp;diff=3003"/>
		<updated>2026-05-27T03:31:23Z</updated>

		<summary type="html">&lt;p&gt;Hirano: /* overlapping distribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;　ここでは、水分子1つがDCM液体に加わった/消えたときの自由エネルギー差として、溶媒和自由エネルギーを求める。実際の計算は摂動前後の状態の間を内挿する点をおいて、overlapping distribution methodを用いている。&lt;br /&gt;
&lt;br /&gt;
== 計算の基礎 ==&lt;br /&gt;
&lt;br /&gt;
=== 状態の内挿 ===&lt;br /&gt;
系A（始状態）とB（終状態）の自由エネルギー差 &amp;lt;math&amp;gt;\Delta F = F_B - F_A&amp;lt;/math&amp;gt; を求める。摂動前後の状態を内挿するパラメータ &amp;amp;lambda; を考え、&amp;amp;lambda;=0 はA状態、&amp;amp;lambda;=1 はB状態とする。それぞれの状態のポテンシャルエネルギーを U&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;, U&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; とすると、パラメータ &amp;amp;lambda; の状態でのポテンシャルエネルギーは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
U( \lambda ) = (1-\lambda) U_A + \lambda U_B&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
となる。 &amp;amp;lambda;=1 から 0 の間を n-1 分割して（等分でなくてよい）、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;1=\lambda_1 &amp;gt; \lambda_2 &amp;gt; \cdots &amp;gt; \lambda_n = 0&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
と中間状態を n-2 個設定して、隣接する2つの中間状態 &amp;amp;lambda;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; と &amp;amp;lambda;&amp;lt;sub&amp;gt;j+1&amp;lt;/sub&amp;gt; 間の自由エネルギー差&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta F_j = F (\lambda_{j+1}) - F(\lambda_j)&amp;lt;/math&amp;gt; を求める。&lt;br /&gt;
状態A (&amp;amp;lambda;=0) からB (&amp;amp;lambda;=1) の差は、それらの隣接した自由エネルギー差の総和をとって求められる。&lt;br /&gt;
すなわち、&amp;lt;math&amp;gt;\Delta F = \sum_{j=1}^{n-1} \Delta F_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
分割数 n は、通常自由エネルギー摂動計算のMPI並列数と一致するようにとられる。また、&amp;amp;lambda;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ..., &amp;amp;lambda;&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; は、&lt;br /&gt;
配列変数 FEP_lambda で指定される。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== overlapping distribution ===&lt;br /&gt;
隣接する2つの状態において、&amp;lt;math&amp;gt;\Delta U = U (\lambda_{j+1}) - U (\lambda_j)&amp;lt;/math&amp;gt; とする。状態 &amp;amp;lambda;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; の熱平衡における &amp;amp;Delta;U の確率分布 &amp;lt;math&amp;gt;p_0 (\Delta U)&amp;lt;/math&amp;gt;、および状態 &amp;amp;lambda;&amp;lt;sub&amp;gt;j+1&amp;lt;/sub&amp;gt; の熱平衡における &amp;amp;Delta;U の確率分布 &amp;lt;math&amp;gt;p_1 (\Delta U)&amp;lt;/math&amp;gt; をMD計算から求める。そのとき、自由エネルギー差 &amp;amp;Delta;F&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; は overlapping distribution method により、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta F_j = \Delta F_j (\Delta U) = k_\mathrm{B} T \ln \frac{p_1 (\Delta U)}{p_0 (\Delta U)} + \Delta U &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
として求められる。この左辺は、&amp;amp;Delta;U の値に依存しない定数となることに注意せよ。&lt;br /&gt;
実際の計算では、&amp;lt;math&amp;gt;\Delta F_j&amp;lt;/math&amp;gt; は &amp;lt;math&amp;gt;\Delta F_j (\Delta U)&amp;lt;/math&amp;gt; の重み付き平均で計算する。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta F_j = \int d(\Delta U) w (\Delta U) \Delta F_j (\Delta U) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ここでの重み関数 &amp;lt;math&amp;gt;w(\Delta U)&amp;lt;/math&amp;gt; は、分布の重なりが大きいところに大きな重みがくるように、以下のようにとる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
w (\Delta U) = \frac{1}{W} \frac{p_0 (\Delta U) p_1 (\Delta U)}{p_0 (\Delta U) + p_1 (\Delta U)},  \qquad&lt;br /&gt;
\left( W = \int d(\Delta U) \frac{p_0 (\Delta U) p_1 (\Delta U)}{p_0 (\Delta U) + p_1 (\Delta U)} \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  相互作用エネルギーのスケーリング（分子間のみ）===&lt;br /&gt;
状態AからBへの中間状態 &amp;amp;lambda; は、AとBで違いがある原子サイトをそれぞれ FEP_list_A, FEP_list_B のリストに挙げておくことで、&lt;br /&gt;
以下のように実装している。&lt;br /&gt;
前者はLennard-Jonesの&amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;およびクーロン力の電荷&amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;に&amp;lt;math&amp;gt;(1-\lambda)&amp;lt;/math&amp;gt;をかけたものを実効的な&amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;および&amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;としてMD計算を行う。後者はそれらに&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;をかけたものを実効的なパラメータとして用いる。&lt;br /&gt;
&lt;br /&gt;
サイト&amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;が FEP_list_A に属するとき、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{aligned}&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{LJ} (r_{ij}; 1-\lambda)&lt;br /&gt;
=4\sqrt{(1-\lambda) \varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]\\&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{Coulomb} (r_{ij}; 1-\lambda)&lt;br /&gt;
=\frac{(1-\lambda) q_iq_j}{r_{ij}}&lt;br /&gt;
\end{aligned}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
サイト&amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;が FEP_list_B に属するとき、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{aligned}&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{LJ} (r_{ij}; \lambda)&lt;br /&gt;
=4\sqrt{\lambda \varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]\\&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{Coulomb} (r_{ij}; \lambda)&lt;br /&gt;
=\frac{\lambda q_iq_j}{r_{ij}}&lt;br /&gt;
\end{aligned}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
したがって中間状態 &amp;amp;lambda; では、FEP_list_A に属するサイトと FEP_list_B に属するサイトの両者ともに中間的な相互作用を及ぼす形で存在している。両端のA (&amp;amp;lambda;=0) と B (&amp;amp;lambda;=1) では、それぞれ一方のみが相互作用を及ぼすことになる。&lt;br /&gt;
&lt;br /&gt;
===  相互作用エネルギーのスケーリング（分子内も含めて）===&lt;br /&gt;
&lt;br /&gt;
FEP は指定したイオンあるいは分子の周りとの相互作用をスケールするものであり、分子内の相互作用はスケールされるべきではない。しかし、FreeFlex での相互作用計算は分子間と分子内を分けずに単にサイト同士の相互作用として計算されている。そのため分子内の相互作用は以下のように計算され、スケールされてしまう。（以下は FEP_list_B に指定された分子の分子内相互作用の例。FEP_list_A に指定された分子の分子内相互作用については &amp;lt;math&amp;gt;\lambda_{i/j} &amp;lt;/math&amp;gt; を &amp;lt;math&amp;gt; 1 - \lambda_{i/j} &amp;lt;/math&amp;gt; に置き換えたものである。）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij})&lt;br /&gt;
=4\sqrt{\lambda_i\lambda_j\varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij})=\frac{\lambda_i\lambda_jq_iq_j}{r_{ij}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ここで &amp;lt;math&amp;gt;\lambda_i = \lambda_j = \lambda&amp;lt;/math&amp;gt; であるが、それぞれの &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; が FEP でスケールされる別々のサイトにかかっていることを明示するためにこのように表記した。&lt;br /&gt;
&lt;br /&gt;
これは本来&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij})&lt;br /&gt;
=4\sqrt{\varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij})=\frac{q_iq_j}{r_{ij}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
として扱われるべきものである。&lt;br /&gt;
&lt;br /&gt;
　そこで、LJ に関してはサイト間の LJ パラメータを決める際に FEP でスケールされる分子の分子内相互作用に関係する場合は &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; に &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; をかけないことで対応している。&lt;br /&gt;
&lt;br /&gt;
　一方でクーロンポテンシャルについてはこれまでのスケールされたポテンシャルに対して補正用のポテンシャルを加えた以下のものを新しいクーロンポテンシャルとしている。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij})=\frac{\lambda_i\lambda_jq_iq_j}{r_{ij}} + \frac{(1 - \lambda_i\lambda_j)q_iq_j}{r_{ij}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これと同様に、電荷と誘起双極子 (CD)、誘起双極子同士 (DD) の相互作用についても以下のように補正している。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{CD} (r_{ij})=\lambda_i\mu_i\mathbf{T}^{(1)}\lambda_jq_j + (1 - \lambda_i\lambda_j)\mu_i\mathbf{T}^{(1)}q_j &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{DD} (r_{ij})=\lambda_i\mu_i\mathbf{T}^{(2)}\lambda_j\mu_j + (1 - \lambda_i\lambda_j)\mu_i\mathbf{T}^{(2)}\mu_j &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ここで、&amp;lt;math&amp;gt;\mathbf{T}^{(1)} = \mathbf{\nabla} \frac{1}{\mathbf{r}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathbf{T}^{(2)} = \mathbf{\nabla} \mathbf{T}^{(1)} &amp;lt;/math&amp;gt; である。&lt;br /&gt;
&lt;br /&gt;
これらのポテンシャルの補正項により誘起双極子の形も変わる。&lt;br /&gt;
&lt;br /&gt;
まず、先の式からすべての静電相互作用のポテンシャルは以下のように表せる。&lt;br /&gt;
&lt;br /&gt;
ただし、表記のしやすさのために FEP で相互作用がスケールされるサイトに指定されなかったサイトについては &amp;lt;math&amp;gt;\lambda_i = 1 &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; \lambda_j = 1 &amp;lt;/math&amp;gt; と考えることにした。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U = \frac{1}{2}\Sigma_{i}\Sigma_{(j \neq i)} U_{ij}^\mathrm{coulomb} +&lt;br /&gt;
\Sigma_{i}\Sigma_{(j \neq i)}U_{ij}&lt;br /&gt;
^\mathrm{CD} -&lt;br /&gt;
\frac{1}{2}\Sigma_{i}\Sigma_{(j \neq i)}  U_{ij}^\mathrm{DD}&lt;br /&gt;
+\Sigma_i\frac{|\mathbf{\mu}_i|^{2}}{2 \alpha_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
すると、誘起双極子を決定する SCF 方程式は以下のようになる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\mathrm{d}U}{\mathrm{d}\mathbf{\mu}_i} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\mu}_i = \lambda_i\alpha_i\Sigma_{(j \neq i)}\biggl(&lt;br /&gt;
-\mathbf{T}^{(1)}\lambda_jq_j&lt;br /&gt;
+ \mathbf{T}^{(2)}\lambda_j\mu_j&lt;br /&gt;
\biggr)&lt;br /&gt;
 + \alpha_i\Sigma_{(j \neq i)}&lt;br /&gt;
\biggl(&lt;br /&gt;
-\mathbf{T}^{(1)}(1 - \lambda_i&lt;br /&gt;
\lambda_j)q_j&lt;br /&gt;
+ \mathbf{T}^{(2)}(1 - \lambda_i&lt;br /&gt;
\lambda_j)\mu_j&lt;br /&gt;
\biggr)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
第１項はスケールされた電場をスケールされた分極率で感じることを意味する。一方で、第２項はスケールされていない電場をスケールされていない分極率で感じたものを足し、スケールされた相互作用を打ち消すことを意味する。&lt;br /&gt;
&lt;br /&gt;
これらの実装は、&amp;lt;math&amp;gt; U^{\mathrm{coulomb}}_{ij}, U^{\mathrm{CD}}_{ij}, U^{\mathrm{DD}}_{ij}, \mathbf{\mu}_i &amp;lt;/math&amp;gt; の第１項をこれまでの実装と同様に計算したうえで、FEP でスケールされる分子の分子内相互作用がある部分についてのみ第２項を計算し、足す形になっている。&lt;br /&gt;
&lt;br /&gt;
特に指定をしなければ、FreeFlex では 1-i(&amp;gt;=5) 以上の分子内相互作用を考える仕様になっているため、第２項に含まれるのは FEP でスケールされる分子内のこれに該当するペアである。&lt;br /&gt;
ただし、ネームリスト &amp;amp;FreeFlex の calcualte_1_4 という変数で 1-4 相互作用を計算する程度を指定することができるようになっており、&lt;br /&gt;
これによって 1-4 相互作用を考える場合には&lt;br /&gt;
&amp;lt;math&amp;gt; U^{\mathrm{coulomb}}_{ij}, U^{\mathrm{CD}}_{ij}, U^{\mathrm{DD}}_{ij}, \mathbf{\mu}_i &amp;lt;/math&amp;gt; の第１項、第２項それぞれに&lt;br /&gt;
1-4 相互作用を考える程度を示すスケールパラメータがかかることになる。（実装済み）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由エネルギー計算の収束は、解析プログラム“tools/FEPSHOW.exe”の結果のoverlapping plotで確認する。&lt;br /&gt;
&lt;br /&gt;
== 計算手続き ==&lt;br /&gt;
この計算は、以下の3つのステップA-C からなる。&lt;br /&gt;
&lt;br /&gt;
=== A.初期設定 ===&lt;br /&gt;
*ネームリスト&amp;amp;FEP をFreeFlex本体の入力ファイルに設定する。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 項目&lt;br /&gt;
! 変数の種類&lt;br /&gt;
! Default&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|FEP_mode&lt;br /&gt;
|LOGICAL&lt;br /&gt;
|.FALSE.&lt;br /&gt;
|自由エネルギー計算をするかどうか&lt;br /&gt;
|-&lt;br /&gt;
|FEP_lambda&lt;br /&gt;
|実数配列&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|両端および中間状態の &amp;amp;lambda; の一式。この個数は、mpi並列数と同じとする。&lt;br /&gt;
&amp;amp;lambda;は 1 から 0 の順に並べること。&lt;br /&gt;
|-&lt;br /&gt;
|FEP_list_A&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|初期状態で存在するサイトのリスト(*)&lt;br /&gt;
|-&lt;br /&gt;
|FEP_list_B&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|終状態で存在するサイトのリスト(*)&lt;br /&gt;
|-&lt;br /&gt;
|FEP_output_file&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|FEP 出力ファイル (&amp;lt;math&amp;gt;j+1&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|FEP0_output_file&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|FEP 出力ファイル (&amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(*) FEP_list_Aに指定したサイトは、初期状態 (&amp;lt;math&amp;gt;\lambda = \lambda_n = 0&amp;lt;/math&amp;gt;) で存在し終状態 (&amp;lt;math&amp;gt;\lambda=\lambda_1=1&amp;lt;/math&amp;gt;)で消滅する。FEP_list_Bに指定したサイトは、初期状態 (λ=0) では存在せず終状態 (λ=1) で存在する。自由エネルギー摂動計算では、どちらのリストで指定したサイトもmsファイル中の&amp;amp;systemのSITE_DATA中に指定しておく必要がある。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*初期状態の .ms ファイルを用意する。([[チュートリアル01：水-DCM 界面のシミュレーション]]  を参照）&lt;br /&gt;
&lt;br /&gt;
=== B.MD計算の実行 ===&lt;br /&gt;
*上の&amp;amp;FEPを含む入力ファイルで、MDを実行する。（[[チュートリアル01：水-DCM 界面のシミュレーション]]  、[[チュートリアル02：並列実行]]  を参照)&lt;br /&gt;
&lt;br /&gt;
=== C.結果の解析 ===&lt;br /&gt;
*MD計算が終わると、作業用ディレクトリ（&amp;amp;FreeFlex内のdirで指定したもの。何も指定しないとカレントディレクトリ ”./”）の下に0000,0001,…,000N という名前のディレクトリができているはずである。N+1 は、前後と内挿を含めて扱った状態の数で、FEP_lamdba で指定された要素の数と同じである。&lt;br /&gt;
*MD計算がディレクトリj内で状態&amp;lt;math&amp;gt;\lambda_j&amp;lt;/math&amp;gt;で走っている時に、状態&amp;lt;math&amp;gt;\lambda_{j-1}&amp;lt;/math&amp;gt;および状態&amp;lt;math&amp;gt;\lambda_{j+1}&amp;lt;/math&amp;gt;に変化させた時のエネルギー差がそれぞれディレクトリj内のFEP0_output_file, FEP_outputに出力されている。すなわち、分布としてoverlapしているのはディレクトリjのFEP_output_file(j→j+1)とディレクトリj+1のFEP0_output_file(j+1→j)であることに注意する。&lt;br /&gt;
&lt;br /&gt;
== 解析プログラムtools/FEPSHOW.exe ==&lt;br /&gt;
　これは上で得られた&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;の生データを解析して、自由エネルギー差を計算し、収束を確かめるための重なりグラフを出力する。これは、独自の入力ファイルを必要とし、ネームリスト&amp;amp;INPUTの各項目を設定する。入力ファイルは、FEPSHOW.exe実行時の “-i” オプションで引き渡す。&lt;br /&gt;
&lt;br /&gt;
　“tools/FEPSHOW.exe” の入力ネームリスト&amp;amp;INPUT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 項目&lt;br /&gt;
! 変数の種類&lt;br /&gt;
! Default&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|input_file&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;FEP_output&amp;quot;&lt;br /&gt;
|FEP出力ファイル名 (&amp;lt;math&amp;gt;j+1&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|input_file0&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;FEP0_output&amp;quot;&lt;br /&gt;
|FEP 出力ファイル名 (&amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|n_bin&lt;br /&gt;
|INTEGER&lt;br /&gt;
|100&lt;br /&gt;
|ヒストグラム作成のビン数。&lt;br /&gt;
|-&lt;br /&gt;
|cutoff_range&lt;br /&gt;
|DOUBLE PRECISION&lt;br /&gt;
|1.0d-17&lt;br /&gt;
|ヒストグラムのプロット範囲（横軸）を -cutoff_range ~ cutoff_range 以内に限る。&lt;br /&gt;
エネルギー差のプロットで、極端に大きな値を無視するため。単位: J.&lt;br /&gt;
|-&lt;br /&gt;
|n_dir&lt;br /&gt;
|INTEGER&lt;br /&gt;
|16&lt;br /&gt;
|自由エネルギーデータのディレクトリ数 (0000, ...,000n_dir).&lt;br /&gt;
|-&lt;br /&gt;
|leap_line&lt;br /&gt;
|INTEGER&lt;br /&gt;
|0&lt;br /&gt;
|自由エネルギー計算時に先頭から読み飛ばす行数。初期の平衡化の分を除くために用いる。&lt;br /&gt;
|-&lt;br /&gt;
|T&lt;br /&gt;
|DOUBLE PRECISION&lt;br /&gt;
|298.15d0&lt;br /&gt;
|温度(K)&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|LOGICAL&lt;br /&gt;
|.FALSE.&lt;br /&gt;
|&amp;amp;Delta; U 依存性のグラフを出力するかどうか&lt;br /&gt;
|-&lt;br /&gt;
|show_mode&lt;br /&gt;
|INTEGER&lt;br /&gt;
|1&lt;br /&gt;
|上でshow=.TRUE.のとき&lt;br /&gt;
1: &amp;lt;math&amp;gt;p_0 (\Delta U), p_1 (\Delta U), w (\Delta U)&amp;lt;/math&amp;gt; と自由エネルギー &amp;lt;math&amp;gt;\Delta F (\Delta U)&amp;lt;/math&amp;gt;を出力&lt;br /&gt;
&lt;br /&gt;
2: &amp;lt;math&amp;gt;p_0 (\Delta U), p_1 (\Delta U), w (\Delta U)&amp;lt;/math&amp;gt; のみ出力&lt;br /&gt;
&lt;br /&gt;
3: 自由エネルギー&amp;lt;math&amp;gt;\Delta F (\Delta U)&amp;lt;/math&amp;gt;のみ出力&lt;br /&gt;
|-&lt;br /&gt;
|output_graph&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;overlapping.dat&amp;quot;&lt;br /&gt;
|重なりグラフのデータの出力先ファイル&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 実行例－ 水の溶媒和自由エネルギー ==&lt;br /&gt;
　sample/tutorial/04 ディレクトリには、ジクロロメタン)(DCM)溶液中の水の自由エネルギーを計算するため、以下の3つのファイルがある。&lt;br /&gt;
&lt;br /&gt;
*input.nml: FreeFlex本体の入力ファイル。&lt;br /&gt;
*w1along.ms: FreeFlex本体のmsファイル。水1分子とDCM598分子の初期配置。&lt;br /&gt;
*nmlfep: tools/FEPSHOW.exeの入力ファイル。&lt;br /&gt;
&lt;br /&gt;
実行例は以下の通りである。&lt;br /&gt;
この際、初期構造は全てのディレクトリに共通のものを用いる必要がある。&lt;br /&gt;
これはFEPを用いた後のrestartファイルや、outputのmsファイルはFEPによりスケーリングを受けた後のパラメータとなっているためである。&lt;br /&gt;
&lt;br /&gt;
(1) 実行ディレクトリに移る。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd FreeFlex/sample/tutorial/04&lt;br /&gt;
&lt;br /&gt;
(2) MD計算を実行する。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; nohup mpiexec -machinefile machinefile -n 8 ../../../FreeFlex.exe input.nml &amp;gt; logfile &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* MPI並列実行のノード数 (-n 8) は、&amp;amp;lambda; で分割した状態数（ネームリスト &amp;amp;FEP 中の FEP_lambda の要素の数）と同じにする。&lt;br /&gt;
&lt;br /&gt;
* logfile は FreeFlex用の標準出力ファイル。&lt;br /&gt;
&lt;br /&gt;
(3) MD計算結果の確認&lt;br /&gt;
&lt;br /&gt;
MD計算実行後に、実行ディレクトリの下にノード番号に対応するディレクトリ (0000, 0001, ..., 0007) が確認される。&lt;br /&gt;
&lt;br /&gt;
この各ディレクトリ内に、以下の2つのファイルが出力されている。&lt;br /&gt;
&lt;br /&gt;
 * FEP0_output --- ネームリスト &amp;amp;FEP 中の FEP0_output_file で指定したファイル。&lt;br /&gt;
 * FEP_output --- FEP_output_file で指定したファイル。&lt;br /&gt;
&lt;br /&gt;
(4) tools/FEPSHOW.exe による解析を実行する。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ../../../tools/FEPSHOW.exe -i nmlfep&lt;br /&gt;
&lt;br /&gt;
標準出力のなかで、隣接する &amp;amp;lambda; 状態間の自由エネルギー差と標準偏差、&lt;br /&gt;
および全体の自由エネルギー差と標準偏差が表示される。&lt;br /&gt;
&lt;br /&gt;
 ********** STEP  1 **********&lt;br /&gt;
  (1)l0= 0.00E+00 -&amp;gt; l1= 1.00E-04&lt;br /&gt;
   delta_G (kcal/mol):    1.26004731950368      +-  0.226145296970347&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  2 **********&lt;br /&gt;
  (2)l0= 1.00E-04 -&amp;gt; l1= 1.00E-03&lt;br /&gt;
   delta_G (kcal/mol):   0.445784144692485      +-  0.113937233985755&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  3 **********&lt;br /&gt;
  (3)l0= 1.00E-03 -&amp;gt; l1= 1.00E-02&lt;br /&gt;
   delta_G (kcal/mol):   0.371481706915616      +-  0.117521396550999&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  4 **********&lt;br /&gt;
  (4)l0= 1.00E-02 -&amp;gt; l1= 1.00E-01&lt;br /&gt;
   delta_G (kcal/mol):  -7.107622766591130E-002 +-  0.127231527920189&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  5 **********&lt;br /&gt;
  (5)l0= 1.00E-01 -&amp;gt; l1= 3.33E-01&lt;br /&gt;
   delta_G (kcal/mol):  -0.755530734850856      +-  0.132509635469720&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  6 **********&lt;br /&gt;
  (6)l0= 3.33E-01 -&amp;gt; l1= 6.66E-01&lt;br /&gt;
   delta_G (kcal/mol):   -1.49635701253196      +-  0.239194458862602&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  7 **********&lt;br /&gt;
  (7)l0= 6.66E-01 -&amp;gt; l1= 1.00E+00&lt;br /&gt;
   delta_G (kcal/mol):   -2.16760102634211      +-  0.136389226627518&lt;br /&gt;
 &lt;br /&gt;
  === Calculated total delta_G (kcal/mol) ===&lt;br /&gt;
   -2.41325183027906      +-  0.433009633561746&lt;br /&gt;
&lt;br /&gt;
入力ファイル (nmlfep) 中で show=.TRUE. を指定したときには、ディレクトリ 0001, ..., 0007 中に&lt;br /&gt;
結果の出力ファイル overlapping.dat (ネームリスト &amp;amp;FEP 中の output_graph で指定したファイル）ができる。&lt;br /&gt;
（ディレクトリ 0000 にはできないので注意。これは状態の隣接ペアの数は、状態数よりも1つ少なくなるため。）&lt;br /&gt;
&lt;br /&gt;
 エネルギー差 &amp;amp;Delta;U 、　状態0での分布 p0(&amp;amp;Delta;U)、　状態1での分布 p1(&amp;amp;Delta;U)、　重み関数 (p0 p1)/(p0+p1)、　自由エネルギー差 &amp;amp;Delta;F(&amp;amp;Delta;U)&lt;br /&gt;
   -9.8464711561E-21    0.0000000000E+00    0.0000000000E+00    0.0000000000E+00    0.0000000000E+00&lt;br /&gt;
    1.6838274198E-22    1.4139927387E-01    8.5537500000E-01    6.3815850960E-01    8.9127007844E-01&lt;br /&gt;
    1.0183236640E-20    1.1618094397E-01    1.3857500000E-01    3.3236640178E-01    1.2830625000E+00&lt;br /&gt;
    2.0198090538E-20    6.8753475289E-02    5.7500000000E-03    2.7906644622E-02    1.1742812522E+00&lt;br /&gt;
    3.0212944436E-20    5.0469368397E-02    3.0000000000E-04    1.5684439995E-03    1.0720740910E+00&lt;br /&gt;
    4.0227798334E-20    3.6535505184E-02    0.0000000000E+00    0.0000000000E+00    0.0000000000E+00&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
また、show=.TRUE. のときには、これらのグラフが画面にポップアップする。表示されるグラフの種類は、show_mode =1, 2, 3 によって変わる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Execution_example2.jpg|center]]&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB04:%E8%87%AA%E7%94%B1%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E6%91%82%E5%8B%95%E8%A8%88%E7%AE%97&amp;diff=3002</id>
		<title>チュートリアル04:自由エネルギー摂動計算</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB04:%E8%87%AA%E7%94%B1%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E6%91%82%E5%8B%95%E8%A8%88%E7%AE%97&amp;diff=3002"/>
		<updated>2026-05-27T03:30:17Z</updated>

		<summary type="html">&lt;p&gt;Hirano: /* overlapping distribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;　ここでは、水分子1つがDCM液体に加わった/消えたときの自由エネルギー差として、溶媒和自由エネルギーを求める。実際の計算は摂動前後の状態の間を内挿する点をおいて、overlapping distribution methodを用いている。&lt;br /&gt;
&lt;br /&gt;
== 計算の基礎 ==&lt;br /&gt;
&lt;br /&gt;
=== 状態の内挿 ===&lt;br /&gt;
系A（始状態）とB（終状態）の自由エネルギー差 &amp;lt;math&amp;gt;\Delta F = F_B - F_A&amp;lt;/math&amp;gt; を求める。摂動前後の状態を内挿するパラメータ &amp;amp;lambda; を考え、&amp;amp;lambda;=0 はA状態、&amp;amp;lambda;=1 はB状態とする。それぞれの状態のポテンシャルエネルギーを U&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;, U&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; とすると、パラメータ &amp;amp;lambda; の状態でのポテンシャルエネルギーは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
U( \lambda ) = (1-\lambda) U_A + \lambda U_B&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
となる。 &amp;amp;lambda;=1 から 0 の間を n-1 分割して（等分でなくてよい）、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;1=\lambda_1 &amp;gt; \lambda_2 &amp;gt; \cdots &amp;gt; \lambda_n = 0&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
と中間状態を n-2 個設定して、隣接する2つの中間状態 &amp;amp;lambda;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; と &amp;amp;lambda;&amp;lt;sub&amp;gt;j+1&amp;lt;/sub&amp;gt; 間の自由エネルギー差&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta F_j = F (\lambda_{j+1}) - F(\lambda_j)&amp;lt;/math&amp;gt; を求める。&lt;br /&gt;
状態A (&amp;amp;lambda;=0) からB (&amp;amp;lambda;=1) の差は、それらの隣接した自由エネルギー差の総和をとって求められる。&lt;br /&gt;
すなわち、&amp;lt;math&amp;gt;\Delta F = \sum_{j=1}^{n-1} \Delta F_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
分割数 n は、通常自由エネルギー摂動計算のMPI並列数と一致するようにとられる。また、&amp;amp;lambda;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ..., &amp;amp;lambda;&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; は、&lt;br /&gt;
配列変数 FEP_lambda で指定される。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== overlapping distribution ===&lt;br /&gt;
隣接する2つの状態において、&amp;lt;math&amp;gt;\Delta U = U (\lambda_{j+1}) - U (\lambda_j)&amp;lt;/math&amp;gt; とする。状態 &amp;amp;lambda;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; の熱平衡における &amp;amp;Delta;U の確率分布 &amp;lt;math&amp;gt;p_0 (\Delta U)&amp;lt;/math&amp;gt;、および状態 &amp;amp;lambda;&amp;lt;sub&amp;gt;j+1&amp;lt;/sub&amp;gt; の熱平衡における &amp;amp;Delta;U の確率分布 &amp;lt;math&amp;gt;p_1 (\Delta U)&amp;lt;/math&amp;gt; をMD計算から求める。そのとき、自由エネルギー差 &amp;amp;Delta;F&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; は overlapping distribution method により、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta F_j = \Delta F_j (\Delta U) = k_\mathrm{B} T \ln \frac{p_1 (\Delta U)}{p_0 (\Delta U)} + \Delta U &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
として求められる。この左辺は、&amp;amp;Delta;U の値に依存しない定数となることに注意せよ。&lt;br /&gt;
実際の計算では、&amp;lt;math&amp;gt;\Delta F_j&amp;lt;/math&amp;gt; は &amp;lt;math&amp;gt;\Delta F_j (\Delta U)&amp;lt;/math&amp;gt; の重み付き平均で計算する。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta F_j = \int \Delta U w (\Delta U) \Delta F_j (\Delta U) &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ここでの重み関数 &amp;lt;math&amp;gt;w(\Delta U)&amp;lt;/math&amp;gt; は、分布の重なりが大きいところに大きな重みがくるように、以下のようにとる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
w (\Delta U) = \frac{1}{W} \frac{p_0 (\Delta U) p_1 (\Delta U)}{p_0 (\Delta U) + p_1 (\Delta U)},  \qquad&lt;br /&gt;
\left( W = \int \Delta U \frac{p_0 (\Delta U) p_1 (\Delta U)}{p_0 (\Delta U) + p_1 (\Delta U)} \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  相互作用エネルギーのスケーリング（分子間のみ）===&lt;br /&gt;
状態AからBへの中間状態 &amp;amp;lambda; は、AとBで違いがある原子サイトをそれぞれ FEP_list_A, FEP_list_B のリストに挙げておくことで、&lt;br /&gt;
以下のように実装している。&lt;br /&gt;
前者はLennard-Jonesの&amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;およびクーロン力の電荷&amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;に&amp;lt;math&amp;gt;(1-\lambda)&amp;lt;/math&amp;gt;をかけたものを実効的な&amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;および&amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;としてMD計算を行う。後者はそれらに&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;をかけたものを実効的なパラメータとして用いる。&lt;br /&gt;
&lt;br /&gt;
サイト&amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;が FEP_list_A に属するとき、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{aligned}&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{LJ} (r_{ij}; 1-\lambda)&lt;br /&gt;
=4\sqrt{(1-\lambda) \varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]\\&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{Coulomb} (r_{ij}; 1-\lambda)&lt;br /&gt;
=\frac{(1-\lambda) q_iq_j}{r_{ij}}&lt;br /&gt;
\end{aligned}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
サイト&amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;が FEP_list_B に属するとき、&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{aligned}&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{LJ} (r_{ij}; \lambda)&lt;br /&gt;
=4\sqrt{\lambda \varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]\\&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij}) &amp;amp;\to U_{ij}^\mathrm{Coulomb} (r_{ij}; \lambda)&lt;br /&gt;
=\frac{\lambda q_iq_j}{r_{ij}}&lt;br /&gt;
\end{aligned}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
したがって中間状態 &amp;amp;lambda; では、FEP_list_A に属するサイトと FEP_list_B に属するサイトの両者ともに中間的な相互作用を及ぼす形で存在している。両端のA (&amp;amp;lambda;=0) と B (&amp;amp;lambda;=1) では、それぞれ一方のみが相互作用を及ぼすことになる。&lt;br /&gt;
&lt;br /&gt;
===  相互作用エネルギーのスケーリング（分子内も含めて）===&lt;br /&gt;
&lt;br /&gt;
FEP は指定したイオンあるいは分子の周りとの相互作用をスケールするものであり、分子内の相互作用はスケールされるべきではない。しかし、FreeFlex での相互作用計算は分子間と分子内を分けずに単にサイト同士の相互作用として計算されている。そのため分子内の相互作用は以下のように計算され、スケールされてしまう。（以下は FEP_list_B に指定された分子の分子内相互作用の例。FEP_list_A に指定された分子の分子内相互作用については &amp;lt;math&amp;gt;\lambda_{i/j} &amp;lt;/math&amp;gt; を &amp;lt;math&amp;gt; 1 - \lambda_{i/j} &amp;lt;/math&amp;gt; に置き換えたものである。）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij})&lt;br /&gt;
=4\sqrt{\lambda_i\lambda_j\varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij})=\frac{\lambda_i\lambda_jq_iq_j}{r_{ij}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ここで &amp;lt;math&amp;gt;\lambda_i = \lambda_j = \lambda&amp;lt;/math&amp;gt; であるが、それぞれの &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; が FEP でスケールされる別々のサイトにかかっていることを明示するためにこのように表記した。&lt;br /&gt;
&lt;br /&gt;
これは本来&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{LJ} (r_{ij})&lt;br /&gt;
=4\sqrt{\varepsilon_{i} \varepsilon_j}\biggl[\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^{12}-\biggl(\frac{\sigma_{ij}}{r_{ij}}\biggr)^6\biggr]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij})=\frac{q_iq_j}{r_{ij}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
として扱われるべきものである。&lt;br /&gt;
&lt;br /&gt;
　そこで、LJ に関してはサイト間の LJ パラメータを決める際に FEP でスケールされる分子の分子内相互作用に関係する場合は &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; に &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; をかけないことで対応している。&lt;br /&gt;
&lt;br /&gt;
　一方でクーロンポテンシャルについてはこれまでのスケールされたポテンシャルに対して補正用のポテンシャルを加えた以下のものを新しいクーロンポテンシャルとしている。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{Coulomb} (r_{ij})=\frac{\lambda_i\lambda_jq_iq_j}{r_{ij}} + \frac{(1 - \lambda_i\lambda_j)q_iq_j}{r_{ij}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これと同様に、電荷と誘起双極子 (CD)、誘起双極子同士 (DD) の相互作用についても以下のように補正している。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{CD} (r_{ij})=\lambda_i\mu_i\mathbf{T}^{(1)}\lambda_jq_j + (1 - \lambda_i\lambda_j)\mu_i\mathbf{T}^{(1)}q_j &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U_{ij}^\mathrm{DD} (r_{ij})=\lambda_i\mu_i\mathbf{T}^{(2)}\lambda_j\mu_j + (1 - \lambda_i\lambda_j)\mu_i\mathbf{T}^{(2)}\mu_j &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ここで、&amp;lt;math&amp;gt;\mathbf{T}^{(1)} = \mathbf{\nabla} \frac{1}{\mathbf{r}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathbf{T}^{(2)} = \mathbf{\nabla} \mathbf{T}^{(1)} &amp;lt;/math&amp;gt; である。&lt;br /&gt;
&lt;br /&gt;
これらのポテンシャルの補正項により誘起双極子の形も変わる。&lt;br /&gt;
&lt;br /&gt;
まず、先の式からすべての静電相互作用のポテンシャルは以下のように表せる。&lt;br /&gt;
&lt;br /&gt;
ただし、表記のしやすさのために FEP で相互作用がスケールされるサイトに指定されなかったサイトについては &amp;lt;math&amp;gt;\lambda_i = 1 &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; \lambda_j = 1 &amp;lt;/math&amp;gt; と考えることにした。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
U = \frac{1}{2}\Sigma_{i}\Sigma_{(j \neq i)} U_{ij}^\mathrm{coulomb} +&lt;br /&gt;
\Sigma_{i}\Sigma_{(j \neq i)}U_{ij}&lt;br /&gt;
^\mathrm{CD} -&lt;br /&gt;
\frac{1}{2}\Sigma_{i}\Sigma_{(j \neq i)}  U_{ij}^\mathrm{DD}&lt;br /&gt;
+\Sigma_i\frac{|\mathbf{\mu}_i|^{2}}{2 \alpha_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
すると、誘起双極子を決定する SCF 方程式は以下のようになる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\mathrm{d}U}{\mathrm{d}\mathbf{\mu}_i} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\mu}_i = \lambda_i\alpha_i\Sigma_{(j \neq i)}\biggl(&lt;br /&gt;
-\mathbf{T}^{(1)}\lambda_jq_j&lt;br /&gt;
+ \mathbf{T}^{(2)}\lambda_j\mu_j&lt;br /&gt;
\biggr)&lt;br /&gt;
 + \alpha_i\Sigma_{(j \neq i)}&lt;br /&gt;
\biggl(&lt;br /&gt;
-\mathbf{T}^{(1)}(1 - \lambda_i&lt;br /&gt;
\lambda_j)q_j&lt;br /&gt;
+ \mathbf{T}^{(2)}(1 - \lambda_i&lt;br /&gt;
\lambda_j)\mu_j&lt;br /&gt;
\biggr)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
第１項はスケールされた電場をスケールされた分極率で感じることを意味する。一方で、第２項はスケールされていない電場をスケールされていない分極率で感じたものを足し、スケールされた相互作用を打ち消すことを意味する。&lt;br /&gt;
&lt;br /&gt;
これらの実装は、&amp;lt;math&amp;gt; U^{\mathrm{coulomb}}_{ij}, U^{\mathrm{CD}}_{ij}, U^{\mathrm{DD}}_{ij}, \mathbf{\mu}_i &amp;lt;/math&amp;gt; の第１項をこれまでの実装と同様に計算したうえで、FEP でスケールされる分子の分子内相互作用がある部分についてのみ第２項を計算し、足す形になっている。&lt;br /&gt;
&lt;br /&gt;
特に指定をしなければ、FreeFlex では 1-i(&amp;gt;=5) 以上の分子内相互作用を考える仕様になっているため、第２項に含まれるのは FEP でスケールされる分子内のこれに該当するペアである。&lt;br /&gt;
ただし、ネームリスト &amp;amp;FreeFlex の calcualte_1_4 という変数で 1-4 相互作用を計算する程度を指定することができるようになっており、&lt;br /&gt;
これによって 1-4 相互作用を考える場合には&lt;br /&gt;
&amp;lt;math&amp;gt; U^{\mathrm{coulomb}}_{ij}, U^{\mathrm{CD}}_{ij}, U^{\mathrm{DD}}_{ij}, \mathbf{\mu}_i &amp;lt;/math&amp;gt; の第１項、第２項それぞれに&lt;br /&gt;
1-4 相互作用を考える程度を示すスケールパラメータがかかることになる。（実装済み）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由エネルギー計算の収束は、解析プログラム“tools/FEPSHOW.exe”の結果のoverlapping plotで確認する。&lt;br /&gt;
&lt;br /&gt;
== 計算手続き ==&lt;br /&gt;
この計算は、以下の3つのステップA-C からなる。&lt;br /&gt;
&lt;br /&gt;
=== A.初期設定 ===&lt;br /&gt;
*ネームリスト&amp;amp;FEP をFreeFlex本体の入力ファイルに設定する。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 項目&lt;br /&gt;
! 変数の種類&lt;br /&gt;
! Default&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|FEP_mode&lt;br /&gt;
|LOGICAL&lt;br /&gt;
|.FALSE.&lt;br /&gt;
|自由エネルギー計算をするかどうか&lt;br /&gt;
|-&lt;br /&gt;
|FEP_lambda&lt;br /&gt;
|実数配列&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|両端および中間状態の &amp;amp;lambda; の一式。この個数は、mpi並列数と同じとする。&lt;br /&gt;
&amp;amp;lambda;は 1 から 0 の順に並べること。&lt;br /&gt;
|-&lt;br /&gt;
|FEP_list_A&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|初期状態で存在するサイトのリスト(*)&lt;br /&gt;
|-&lt;br /&gt;
|FEP_list_B&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|終状態で存在するサイトのリスト(*)&lt;br /&gt;
|-&lt;br /&gt;
|FEP_output_file&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|FEP 出力ファイル (&amp;lt;math&amp;gt;j+1&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|FEP0_output_file&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|FEP 出力ファイル (&amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(*) FEP_list_Aに指定したサイトは、初期状態 (&amp;lt;math&amp;gt;\lambda = \lambda_n = 0&amp;lt;/math&amp;gt;) で存在し終状態 (&amp;lt;math&amp;gt;\lambda=\lambda_1=1&amp;lt;/math&amp;gt;)で消滅する。FEP_list_Bに指定したサイトは、初期状態 (λ=0) では存在せず終状態 (λ=1) で存在する。自由エネルギー摂動計算では、どちらのリストで指定したサイトもmsファイル中の&amp;amp;systemのSITE_DATA中に指定しておく必要がある。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*初期状態の .ms ファイルを用意する。([[チュートリアル01：水-DCM 界面のシミュレーション]]  を参照）&lt;br /&gt;
&lt;br /&gt;
=== B.MD計算の実行 ===&lt;br /&gt;
*上の&amp;amp;FEPを含む入力ファイルで、MDを実行する。（[[チュートリアル01：水-DCM 界面のシミュレーション]]  、[[チュートリアル02：並列実行]]  を参照)&lt;br /&gt;
&lt;br /&gt;
=== C.結果の解析 ===&lt;br /&gt;
*MD計算が終わると、作業用ディレクトリ（&amp;amp;FreeFlex内のdirで指定したもの。何も指定しないとカレントディレクトリ ”./”）の下に0000,0001,…,000N という名前のディレクトリができているはずである。N+1 は、前後と内挿を含めて扱った状態の数で、FEP_lamdba で指定された要素の数と同じである。&lt;br /&gt;
*MD計算がディレクトリj内で状態&amp;lt;math&amp;gt;\lambda_j&amp;lt;/math&amp;gt;で走っている時に、状態&amp;lt;math&amp;gt;\lambda_{j-1}&amp;lt;/math&amp;gt;および状態&amp;lt;math&amp;gt;\lambda_{j+1}&amp;lt;/math&amp;gt;に変化させた時のエネルギー差がそれぞれディレクトリj内のFEP0_output_file, FEP_outputに出力されている。すなわち、分布としてoverlapしているのはディレクトリjのFEP_output_file(j→j+1)とディレクトリj+1のFEP0_output_file(j+1→j)であることに注意する。&lt;br /&gt;
&lt;br /&gt;
== 解析プログラムtools/FEPSHOW.exe ==&lt;br /&gt;
　これは上で得られた&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;の生データを解析して、自由エネルギー差を計算し、収束を確かめるための重なりグラフを出力する。これは、独自の入力ファイルを必要とし、ネームリスト&amp;amp;INPUTの各項目を設定する。入力ファイルは、FEPSHOW.exe実行時の “-i” オプションで引き渡す。&lt;br /&gt;
&lt;br /&gt;
　“tools/FEPSHOW.exe” の入力ネームリスト&amp;amp;INPUT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 項目&lt;br /&gt;
! 変数の種類&lt;br /&gt;
! Default&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|input_file&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;FEP_output&amp;quot;&lt;br /&gt;
|FEP出力ファイル名 (&amp;lt;math&amp;gt;j+1&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|input_file0&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;FEP0_output&amp;quot;&lt;br /&gt;
|FEP 出力ファイル名 (&amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;状態での&amp;lt;math&amp;gt;\Delta U&amp;lt;/math&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|n_bin&lt;br /&gt;
|INTEGER&lt;br /&gt;
|100&lt;br /&gt;
|ヒストグラム作成のビン数。&lt;br /&gt;
|-&lt;br /&gt;
|cutoff_range&lt;br /&gt;
|DOUBLE PRECISION&lt;br /&gt;
|1.0d-17&lt;br /&gt;
|ヒストグラムのプロット範囲（横軸）を -cutoff_range ~ cutoff_range 以内に限る。&lt;br /&gt;
エネルギー差のプロットで、極端に大きな値を無視するため。単位: J.&lt;br /&gt;
|-&lt;br /&gt;
|n_dir&lt;br /&gt;
|INTEGER&lt;br /&gt;
|16&lt;br /&gt;
|自由エネルギーデータのディレクトリ数 (0000, ...,000n_dir).&lt;br /&gt;
|-&lt;br /&gt;
|leap_line&lt;br /&gt;
|INTEGER&lt;br /&gt;
|0&lt;br /&gt;
|自由エネルギー計算時に先頭から読み飛ばす行数。初期の平衡化の分を除くために用いる。&lt;br /&gt;
|-&lt;br /&gt;
|T&lt;br /&gt;
|DOUBLE PRECISION&lt;br /&gt;
|298.15d0&lt;br /&gt;
|温度(K)&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|LOGICAL&lt;br /&gt;
|.FALSE.&lt;br /&gt;
|&amp;amp;Delta; U 依存性のグラフを出力するかどうか&lt;br /&gt;
|-&lt;br /&gt;
|show_mode&lt;br /&gt;
|INTEGER&lt;br /&gt;
|1&lt;br /&gt;
|上でshow=.TRUE.のとき&lt;br /&gt;
1: &amp;lt;math&amp;gt;p_0 (\Delta U), p_1 (\Delta U), w (\Delta U)&amp;lt;/math&amp;gt; と自由エネルギー &amp;lt;math&amp;gt;\Delta F (\Delta U)&amp;lt;/math&amp;gt;を出力&lt;br /&gt;
&lt;br /&gt;
2: &amp;lt;math&amp;gt;p_0 (\Delta U), p_1 (\Delta U), w (\Delta U)&amp;lt;/math&amp;gt; のみ出力&lt;br /&gt;
&lt;br /&gt;
3: 自由エネルギー&amp;lt;math&amp;gt;\Delta F (\Delta U)&amp;lt;/math&amp;gt;のみ出力&lt;br /&gt;
|-&lt;br /&gt;
|output_graph&lt;br /&gt;
|CHARACTER&lt;br /&gt;
|&amp;quot;overlapping.dat&amp;quot;&lt;br /&gt;
|重なりグラフのデータの出力先ファイル&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 実行例－ 水の溶媒和自由エネルギー ==&lt;br /&gt;
　sample/tutorial/04 ディレクトリには、ジクロロメタン)(DCM)溶液中の水の自由エネルギーを計算するため、以下の3つのファイルがある。&lt;br /&gt;
&lt;br /&gt;
*input.nml: FreeFlex本体の入力ファイル。&lt;br /&gt;
*w1along.ms: FreeFlex本体のmsファイル。水1分子とDCM598分子の初期配置。&lt;br /&gt;
*nmlfep: tools/FEPSHOW.exeの入力ファイル。&lt;br /&gt;
&lt;br /&gt;
実行例は以下の通りである。&lt;br /&gt;
この際、初期構造は全てのディレクトリに共通のものを用いる必要がある。&lt;br /&gt;
これはFEPを用いた後のrestartファイルや、outputのmsファイルはFEPによりスケーリングを受けた後のパラメータとなっているためである。&lt;br /&gt;
&lt;br /&gt;
(1) 実行ディレクトリに移る。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd FreeFlex/sample/tutorial/04&lt;br /&gt;
&lt;br /&gt;
(2) MD計算を実行する。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; nohup mpiexec -machinefile machinefile -n 8 ../../../FreeFlex.exe input.nml &amp;gt; logfile &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* MPI並列実行のノード数 (-n 8) は、&amp;amp;lambda; で分割した状態数（ネームリスト &amp;amp;FEP 中の FEP_lambda の要素の数）と同じにする。&lt;br /&gt;
&lt;br /&gt;
* logfile は FreeFlex用の標準出力ファイル。&lt;br /&gt;
&lt;br /&gt;
(3) MD計算結果の確認&lt;br /&gt;
&lt;br /&gt;
MD計算実行後に、実行ディレクトリの下にノード番号に対応するディレクトリ (0000, 0001, ..., 0007) が確認される。&lt;br /&gt;
&lt;br /&gt;
この各ディレクトリ内に、以下の2つのファイルが出力されている。&lt;br /&gt;
&lt;br /&gt;
 * FEP0_output --- ネームリスト &amp;amp;FEP 中の FEP0_output_file で指定したファイル。&lt;br /&gt;
 * FEP_output --- FEP_output_file で指定したファイル。&lt;br /&gt;
&lt;br /&gt;
(4) tools/FEPSHOW.exe による解析を実行する。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ../../../tools/FEPSHOW.exe -i nmlfep&lt;br /&gt;
&lt;br /&gt;
標準出力のなかで、隣接する &amp;amp;lambda; 状態間の自由エネルギー差と標準偏差、&lt;br /&gt;
および全体の自由エネルギー差と標準偏差が表示される。&lt;br /&gt;
&lt;br /&gt;
 ********** STEP  1 **********&lt;br /&gt;
  (1)l0= 0.00E+00 -&amp;gt; l1= 1.00E-04&lt;br /&gt;
   delta_G (kcal/mol):    1.26004731950368      +-  0.226145296970347&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  2 **********&lt;br /&gt;
  (2)l0= 1.00E-04 -&amp;gt; l1= 1.00E-03&lt;br /&gt;
   delta_G (kcal/mol):   0.445784144692485      +-  0.113937233985755&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  3 **********&lt;br /&gt;
  (3)l0= 1.00E-03 -&amp;gt; l1= 1.00E-02&lt;br /&gt;
   delta_G (kcal/mol):   0.371481706915616      +-  0.117521396550999&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  4 **********&lt;br /&gt;
  (4)l0= 1.00E-02 -&amp;gt; l1= 1.00E-01&lt;br /&gt;
   delta_G (kcal/mol):  -7.107622766591130E-002 +-  0.127231527920189&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  5 **********&lt;br /&gt;
  (5)l0= 1.00E-01 -&amp;gt; l1= 3.33E-01&lt;br /&gt;
   delta_G (kcal/mol):  -0.755530734850856      +-  0.132509635469720&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  6 **********&lt;br /&gt;
  (6)l0= 3.33E-01 -&amp;gt; l1= 6.66E-01&lt;br /&gt;
   delta_G (kcal/mol):   -1.49635701253196      +-  0.239194458862602&lt;br /&gt;
 &lt;br /&gt;
 ********** STEP  7 **********&lt;br /&gt;
  (7)l0= 6.66E-01 -&amp;gt; l1= 1.00E+00&lt;br /&gt;
   delta_G (kcal/mol):   -2.16760102634211      +-  0.136389226627518&lt;br /&gt;
 &lt;br /&gt;
  === Calculated total delta_G (kcal/mol) ===&lt;br /&gt;
   -2.41325183027906      +-  0.433009633561746&lt;br /&gt;
&lt;br /&gt;
入力ファイル (nmlfep) 中で show=.TRUE. を指定したときには、ディレクトリ 0001, ..., 0007 中に&lt;br /&gt;
結果の出力ファイル overlapping.dat (ネームリスト &amp;amp;FEP 中の output_graph で指定したファイル）ができる。&lt;br /&gt;
（ディレクトリ 0000 にはできないので注意。これは状態の隣接ペアの数は、状態数よりも1つ少なくなるため。）&lt;br /&gt;
&lt;br /&gt;
 エネルギー差 &amp;amp;Delta;U 、　状態0での分布 p0(&amp;amp;Delta;U)、　状態1での分布 p1(&amp;amp;Delta;U)、　重み関数 (p0 p1)/(p0+p1)、　自由エネルギー差 &amp;amp;Delta;F(&amp;amp;Delta;U)&lt;br /&gt;
   -9.8464711561E-21    0.0000000000E+00    0.0000000000E+00    0.0000000000E+00    0.0000000000E+00&lt;br /&gt;
    1.6838274198E-22    1.4139927387E-01    8.5537500000E-01    6.3815850960E-01    8.9127007844E-01&lt;br /&gt;
    1.0183236640E-20    1.1618094397E-01    1.3857500000E-01    3.3236640178E-01    1.2830625000E+00&lt;br /&gt;
    2.0198090538E-20    6.8753475289E-02    5.7500000000E-03    2.7906644622E-02    1.1742812522E+00&lt;br /&gt;
    3.0212944436E-20    5.0469368397E-02    3.0000000000E-04    1.5684439995E-03    1.0720740910E+00&lt;br /&gt;
    4.0227798334E-20    3.6535505184E-02    0.0000000000E+00    0.0000000000E+00    0.0000000000E+00&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
また、show=.TRUE. のときには、これらのグラフが画面にポップアップする。表示されるグラフの種類は、show_mode =1, 2, 3 によって変わる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Execution_example2.jpg|center]]&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:String&amp;diff=3001</id>
		<title>モジュール:String</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:String&amp;diff=3001"/>
		<updated>2026-05-26T10:58:20Z</updated>

		<summary type="html">&lt;p&gt;Hirano: ページの作成:「--[[    This module is intended to provide access to basic string functions.  Most of the functions provided here can be invoked with named parameters,  unnamed parameter…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[  &lt;br /&gt;
&lt;br /&gt;
This module is intended to provide access to basic string functions.&lt;br /&gt;
&lt;br /&gt;
Most of the functions provided here can be invoked with named parameters, &lt;br /&gt;
unnamed parameters, or a mixture.  If named parameters are used, Mediawiki will &lt;br /&gt;
automatically remove any leading or trailing whitespace from the parameter.  &lt;br /&gt;
Depending on the intended use, it may be advantageous to either preserve or&lt;br /&gt;
remove such whitespace.&lt;br /&gt;
&lt;br /&gt;
Global options&lt;br /&gt;
    ignore_errors: If set to 'true' or 1, any error condition will result in &lt;br /&gt;
        an empty string being returned rather than an error message.  &lt;br /&gt;
        &lt;br /&gt;
    error_category: If an error occurs, specifies the name of a category to &lt;br /&gt;
        include with the error message.  The default category is  &lt;br /&gt;
        [Category:Errors reported by Module String].&lt;br /&gt;
        &lt;br /&gt;
    no_category: If set to 'true' or 1, no category will be added if an error&lt;br /&gt;
        is generated.&lt;br /&gt;
        &lt;br /&gt;
Unit tests for this module are available at Module:String/tests.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local str = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
len&lt;br /&gt;
&lt;br /&gt;
This function returns the length of the target string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|len|target_string|}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|len|s=target_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string whose length to report&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.  &lt;br /&gt;
]]&lt;br /&gt;
function str.len( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, {'s'} );&lt;br /&gt;
    local s = new_args['s'] or '';&lt;br /&gt;
    return mw.ustring.len( s )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
sub&lt;br /&gt;
&lt;br /&gt;
This function returns a substring of the target string at specified indices.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|sub|target_string|start_index|end_index}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to return a subset of&lt;br /&gt;
    i: The fist index of the substring to return, defaults to 1.&lt;br /&gt;
    j: The last index of the string to return, defaults to the last character.&lt;br /&gt;
    &lt;br /&gt;
The first character of the string is assigned an index of 1.  If either i or j&lt;br /&gt;
is a negative value, it is interpreted the same as selecting a character by &lt;br /&gt;
counting from the end of the string.  Hence, a value of -1 is the same as &lt;br /&gt;
selecting the last character of the string.&lt;br /&gt;
&lt;br /&gt;
If the requested indices are out of range for the given string, an error is &lt;br /&gt;
reported.&lt;br /&gt;
]]&lt;br /&gt;
function str.sub( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } );&lt;br /&gt;
    local s = new_args['s'] or '';&lt;br /&gt;
    local i = tonumber( new_args['i'] ) or 1;&lt;br /&gt;
    local j = tonumber( new_args['j'] ) or -1;&lt;br /&gt;
    &lt;br /&gt;
    local len = mw.ustring.len( s );&lt;br /&gt;
&lt;br /&gt;
    -- Convert negatives for range checking&lt;br /&gt;
    if i &amp;lt; 0 then&lt;br /&gt;
        i = len + i + 1;&lt;br /&gt;
    end&lt;br /&gt;
    if j &amp;lt; 0 then&lt;br /&gt;
        j = len + j + 1;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if i &amp;gt; len or j &amp;gt; len or i &amp;lt; 1 or j &amp;lt; 1 then&lt;br /&gt;
        return str._error( 'String subset index out of range' );&lt;br /&gt;
    end&lt;br /&gt;
    if j &amp;lt; i then&lt;br /&gt;
        return str._error( 'String subset indices out of order' );&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return mw.ustring.sub( s, i, j )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
This function implements that features of {{str sub old}} and is kept in order&lt;br /&gt;
to maintain these older templates.&lt;br /&gt;
]]&lt;br /&gt;
function str.sublength( frame )&lt;br /&gt;
    local i = tonumber( frame.args.i ) or 0&lt;br /&gt;
    local len = tonumber( frame.args.len )&lt;br /&gt;
    return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
match&lt;br /&gt;
&lt;br /&gt;
This function returns a substring from the source string that matches a &lt;br /&gt;
specified pattern.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index&lt;br /&gt;
    |match=match_number|plain=plain_flag|nomatch=nomatch_output}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to search&lt;br /&gt;
    pattern: The pattern or string to find within the string&lt;br /&gt;
    start: The index within the source string to start the search.  The first&lt;br /&gt;
        character of the string has index 1.  Defaults to 1.&lt;br /&gt;
    match: In some cases it may be possible to make multiple matches on a single &lt;br /&gt;
        string.  This specifies which match to return, where the first match is &lt;br /&gt;
        match= 1.  If a negative number is specified then a match is returned &lt;br /&gt;
        counting from the last match.  Hence match = -1 is the same as requesting&lt;br /&gt;
        the last match.  Defaults to 1.&lt;br /&gt;
    plain: A flag indicating that the pattern should be understood as plain&lt;br /&gt;
        text.  Defaults to false.&lt;br /&gt;
    nomatch: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from each string.  In some circumstances this is desirable, in &lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
If the match_number or start_index are out of range for the string being queried, then&lt;br /&gt;
this function generates an error.  An error is also generated if no match is found.&lt;br /&gt;
If one adds the parameter ignore_errors=true, then the error will be suppressed and &lt;br /&gt;
an empty string will be returned on any failure.&lt;br /&gt;
&lt;br /&gt;
For information on constructing Lua patterns, a form of [regular expression], see:&lt;br /&gt;
&lt;br /&gt;
* http://www.lua.org/manual/5.1/manual.html#5.4.1&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function str.match( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );&lt;br /&gt;
    local s = new_args['s'] or '';&lt;br /&gt;
    local start = tonumber( new_args['start'] ) or 1;&lt;br /&gt;
    local plain_flag = str._getBoolean( new_args['plain'] or false );&lt;br /&gt;
    local pattern = new_args['pattern'] or '';&lt;br /&gt;
    local match_index = math.floor( tonumber(new_args['match']) or 1 );&lt;br /&gt;
    local nomatch = new_args['nomatch'];&lt;br /&gt;
    &lt;br /&gt;
    if s == '' then&lt;br /&gt;
        return str._error( 'Target string is empty' );&lt;br /&gt;
    end&lt;br /&gt;
    if pattern == '' then&lt;br /&gt;
        return str._error( 'Pattern string is empty' );&lt;br /&gt;
    end&lt;br /&gt;
    if math.abs(start) &amp;lt; 1 or math.abs(start) &amp;gt; mw.ustring.len( s ) then&lt;br /&gt;
        return str._error( 'Requested start is out of range' );&lt;br /&gt;
    end&lt;br /&gt;
    if match_index == 0 then&lt;br /&gt;
        return str._error( 'Match index is out of range' );&lt;br /&gt;
    end&lt;br /&gt;
    if plain_flag then&lt;br /&gt;
        pattern = str._escapePattern( pattern );&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local result&lt;br /&gt;
    if match_index == 1 then&lt;br /&gt;
        -- Find first match is simple case&lt;br /&gt;
        result = mw.ustring.match( s, pattern, start )&lt;br /&gt;
    else&lt;br /&gt;
        if start &amp;gt; 1 then&lt;br /&gt;
            s = mw.ustring.sub( s, start );&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local iterator = mw.ustring.gmatch(s, pattern);&lt;br /&gt;
        if match_index &amp;gt; 0 then&lt;br /&gt;
            -- Forward search&lt;br /&gt;
            for w in iterator do&lt;br /&gt;
                match_index = match_index - 1;&lt;br /&gt;
                if match_index == 0 then&lt;br /&gt;
                    result = w;&lt;br /&gt;
                    break;&lt;br /&gt;
                end&lt;br /&gt;
            end    &lt;br /&gt;
        else&lt;br /&gt;
            -- Reverse search&lt;br /&gt;
            local result_table = {};&lt;br /&gt;
            local count = 1;&lt;br /&gt;
            for w in iterator do&lt;br /&gt;
                result_table[count] = w;&lt;br /&gt;
                count = count + 1;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            result = result_table[ count + match_index ];            &lt;br /&gt;
        end&lt;br /&gt;
    end        &lt;br /&gt;
    &lt;br /&gt;
    if result == nil then&lt;br /&gt;
        if nomatch == nil then&lt;br /&gt;
            return str._error( 'Match not found' );&lt;br /&gt;
        else&lt;br /&gt;
            return nomatch;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return result;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
pos&lt;br /&gt;
&lt;br /&gt;
This function returns a single character from the target string at position pos.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|pos|target_string|index_value}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|pos|target=target_string|pos=index_value}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    target: The string to search&lt;br /&gt;
    pos: The index for the character to return&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.  In some circumstances this is desirable, in &lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
The first character has an index value of 1.&lt;br /&gt;
&lt;br /&gt;
If one requests a negative value, this function will select a character by counting backwards &lt;br /&gt;
from the end of the string.  In other words pos = -1 is the same as asking for the last character.&lt;br /&gt;
&lt;br /&gt;
A requested value of zero, or a value greater than the length of the string returns an error.&lt;br /&gt;
]]&lt;br /&gt;
function str.pos( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, {'target', 'pos'} );&lt;br /&gt;
    local target_str = new_args['target'] or '';&lt;br /&gt;
    local pos = tonumber( new_args['pos'] ) or 0;&lt;br /&gt;
&lt;br /&gt;
    if pos == 0 or math.abs(pos) &amp;gt; mw.ustring.len( target_str ) then&lt;br /&gt;
        return str._error( 'String index out of range' );&lt;br /&gt;
    end    &lt;br /&gt;
    &lt;br /&gt;
    return mw.ustring.sub( target_str, pos, pos );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
str_find&lt;br /&gt;
&lt;br /&gt;
This function duplicates the behavior of {{str_find}}, including all of its quirks.&lt;br /&gt;
This is provided in order to support existing templates, but is NOT RECOMMENDED for &lt;br /&gt;
new code and templates.  New code is recommended to use the &amp;quot;find&amp;quot; function instead.&lt;br /&gt;
&lt;br /&gt;
Returns the first index in &amp;quot;source&amp;quot; that is a match to &amp;quot;target&amp;quot;.  Indexing is 1-based,&lt;br /&gt;
and the function returns -1 if the &amp;quot;target&amp;quot; string is not present in &amp;quot;source&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Important Note: If the &amp;quot;target&amp;quot; string is empty / missing, this function returns a&lt;br /&gt;
value of &amp;quot;1&amp;quot;, which is generally unexpected behavior, and must be accounted for&lt;br /&gt;
separatetly.&lt;br /&gt;
]]&lt;br /&gt;
function str.str_find( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, {'source', 'target'} );&lt;br /&gt;
    local source_str = new_args['source'] or '';&lt;br /&gt;
    local target_str = new_args['target'] or '';&lt;br /&gt;
&lt;br /&gt;
    if target_str == '' then&lt;br /&gt;
        return 1;&lt;br /&gt;
    end    &lt;br /&gt;
    &lt;br /&gt;
    local start = mw.ustring.find( source_str, target_str, 1, true )&lt;br /&gt;
    if start == nil then&lt;br /&gt;
        start = -1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
find&lt;br /&gt;
&lt;br /&gt;
This function allows one to search for a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    target: The string or pattern to find within source&lt;br /&gt;
    start: The index within the source string to start the search, defaults to 1&lt;br /&gt;
    plain: Boolean flag indicating that target should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the parameter.  In some circumstances this is desirable, in &lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
This function returns the first index &amp;gt;= &amp;quot;start&amp;quot; where &amp;quot;target&amp;quot; can be found &lt;br /&gt;
within &amp;quot;source&amp;quot;.  Indices are 1-based.  If &amp;quot;target&amp;quot; is not found, then this &lt;br /&gt;
function returns 0.  If either &amp;quot;source&amp;quot; or &amp;quot;target&amp;quot; are missing / empty, this&lt;br /&gt;
function also returns 0.&lt;br /&gt;
&lt;br /&gt;
This function should be safe for UTF-8 strings.&lt;br /&gt;
]]&lt;br /&gt;
function str.find( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } ); &lt;br /&gt;
    local source_str = new_args['source'] or '';&lt;br /&gt;
    local pattern = new_args['target'] or '';&lt;br /&gt;
    local start_pos = tonumber(new_args['start']) or 1;&lt;br /&gt;
    local plain = new_args['plain'] or true;&lt;br /&gt;
        &lt;br /&gt;
    if source_str == '' or pattern == '' then&lt;br /&gt;
        return 0;&lt;br /&gt;
    end    &lt;br /&gt;
    &lt;br /&gt;
    plain = str._getBoolean( plain );&lt;br /&gt;
&lt;br /&gt;
    local start = mw.ustring.find( source_str, pattern, start_pos, plain )&lt;br /&gt;
    if start == nil then&lt;br /&gt;
        start = 0&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
replace&lt;br /&gt;
&lt;br /&gt;
This function allows one to replace a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|&lt;br /&gt;
   count=replacement_count|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    pattern: The string or pattern to find within source&lt;br /&gt;
    replace: The replacement text&lt;br /&gt;
    count: The number of occurences to replace, defaults to all.&lt;br /&gt;
    plain: Boolean flag indicating that pattern should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true &lt;br /&gt;
]]&lt;br /&gt;
function str.replace( frame )&lt;br /&gt;
    local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } ); &lt;br /&gt;
    local source_str = new_args['source'] or '';&lt;br /&gt;
    local pattern = new_args['pattern'] or '';&lt;br /&gt;
    local replace = new_args['replace'] or '';&lt;br /&gt;
    local count = tonumber( new_args['count'] );&lt;br /&gt;
    local plain = new_args['plain'] or true;&lt;br /&gt;
        &lt;br /&gt;
    if source_str == '' or pattern == '' then&lt;br /&gt;
        return source_str;&lt;br /&gt;
    end    &lt;br /&gt;
    plain = str._getBoolean( plain );&lt;br /&gt;
&lt;br /&gt;
    if plain then&lt;br /&gt;
        pattern = str._escapePattern( pattern );&lt;br /&gt;
        replace = mw.ustring.gsub( replace, &amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot; ); --Only need to escape replacement sequences.&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local result;&lt;br /&gt;
&lt;br /&gt;
    if count ~= nil then&lt;br /&gt;
        result = mw.ustring.gsub( source_str, pattern, replace, count );&lt;br /&gt;
    else&lt;br /&gt;
        result = mw.ustring.gsub( source_str, pattern, replace );&lt;br /&gt;
    end        &lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ &lt;br /&gt;
    simple function to pipe string.rep to templates.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function str.rep( frame )&lt;br /&gt;
    local repetitions = tonumber( frame.args[2] )&lt;br /&gt;
    if not repetitions then &lt;br /&gt;
        return str._error( 'function rep expects a number as second parameter, received &amp;quot;' .. ( frame.args[2] or '' ) .. '&amp;quot;' )&lt;br /&gt;
    end&lt;br /&gt;
    return string.rep( frame.args[1] or '', repetitions )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that populates the argument list given that user may need to use a mix of&lt;br /&gt;
named and unnamed parameters.  This is relevant because named parameters are not&lt;br /&gt;
identical to unnamed parameters due to string trimming, and when dealing with strings&lt;br /&gt;
we sometimes want to either preserve or remove that whitespace depending on the application.&lt;br /&gt;
]]&lt;br /&gt;
function str._getParameters( frame_args, arg_list )&lt;br /&gt;
    local new_args = {};&lt;br /&gt;
    local index = 1;&lt;br /&gt;
    local value;&lt;br /&gt;
    &lt;br /&gt;
    for i,arg in ipairs( arg_list ) do&lt;br /&gt;
        value = frame_args[arg]&lt;br /&gt;
        if value == nil then&lt;br /&gt;
            value = frame_args[index];&lt;br /&gt;
            index = index + 1;&lt;br /&gt;
        end&lt;br /&gt;
        new_args[arg] = value;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return new_args;&lt;br /&gt;
end        &lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function to handle error messages.&lt;br /&gt;
]]&lt;br /&gt;
function str._error( error_str )&lt;br /&gt;
    local frame = mw.getCurrentFrame();&lt;br /&gt;
    local error_category = frame.args.error_category or 'Errors reported by Module String';&lt;br /&gt;
    local ignore_errors = frame.args.ignore_errors or false;&lt;br /&gt;
    local no_category = frame.args.no_category or false;&lt;br /&gt;
    &lt;br /&gt;
    if str._getBoolean(ignore_errors) then&lt;br /&gt;
        return '';&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local error_str = '&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;String Module Error: ' .. error_str .. '&amp;lt;/strong&amp;gt;';&lt;br /&gt;
    if error_category ~= '' and not str._getBoolean( no_category ) then&lt;br /&gt;
        error_str = '[[Category:' .. error_category .. ']]' .. error_str;&lt;br /&gt;
    end        &lt;br /&gt;
    &lt;br /&gt;
    return error_str;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper Function to interpret boolean strings&lt;br /&gt;
]]&lt;br /&gt;
function str._getBoolean( boolean_str )&lt;br /&gt;
    local boolean_value;&lt;br /&gt;
    &lt;br /&gt;
    if type( boolean_str ) == 'string' then&lt;br /&gt;
        boolean_str = boolean_str:lower();&lt;br /&gt;
        if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' &lt;br /&gt;
                or boolean_str == '' then&lt;br /&gt;
            boolean_value = false;&lt;br /&gt;
        else&lt;br /&gt;
            boolean_value = true;&lt;br /&gt;
        end    &lt;br /&gt;
    elseif type( boolean_str ) == 'boolean' then&lt;br /&gt;
        boolean_value = boolean_str;&lt;br /&gt;
    else&lt;br /&gt;
        error( 'No boolean value found' );&lt;br /&gt;
    end    &lt;br /&gt;
    return boolean_value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that escapes all pattern characters so that they will be treated &lt;br /&gt;
as plain text.&lt;br /&gt;
]]&lt;br /&gt;
function str._escapePattern( pattern_str )&lt;br /&gt;
    return mw.ustring.gsub( pattern_str, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return str&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Switch.nb&amp;diff=3000</id>
		<title>ファイル:Switch.nb</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Switch.nb&amp;diff=3000"/>
		<updated>2026-05-26T10:41:06Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Exchange_ratio.nb&amp;diff=2999</id>
		<title>ファイル:Exchange ratio.nb</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Exchange_ratio.nb&amp;diff=2999"/>
		<updated>2026-05-26T10:41:06Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Fep_input_file_format.jpg&amp;diff=2998</id>
		<title>ファイル:Fep input file format.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Fep_input_file_format.jpg&amp;diff=2998"/>
		<updated>2026-05-26T10:36:29Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Execution_example2.jpg&amp;diff=2997</id>
		<title>ファイル:Execution example2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Execution_example2.jpg&amp;diff=2997"/>
		<updated>2026-05-26T10:36:28Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Execution_example1.jpg&amp;diff=2996</id>
		<title>ファイル:Execution example1.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Execution_example1.jpg&amp;diff=2996"/>
		<updated>2026-05-26T10:36:27Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Error_block5.JPG&amp;diff=2995</id>
		<title>ファイル:Error block5.JPG</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Error_block5.JPG&amp;diff=2995"/>
		<updated>2026-05-26T10:36:27Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Error_block1.JPG&amp;diff=2994</id>
		<title>ファイル:Error block1.JPG</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Error_block1.JPG&amp;diff=2994"/>
		<updated>2026-05-26T10:36:26Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Error.JPG&amp;diff=2993</id>
		<title>ファイル:Error.JPG</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Error.JPG&amp;diff=2993"/>
		<updated>2026-05-26T10:36:26Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Contour4plt.jpg&amp;diff=2992</id>
		<title>ファイル:Contour4plt.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Contour4plt.jpg&amp;diff=2992"/>
		<updated>2026-05-26T10:36:25Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Constant_voltage-2.jpg&amp;diff=2991</id>
		<title>ファイル:Constant voltage-2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Constant_voltage-2.jpg&amp;diff=2991"/>
		<updated>2026-05-26T10:36:24Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Constant_voltage-1.jpg&amp;diff=2990</id>
		<title>ファイル:Constant voltage-1.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Constant_voltage-1.jpg&amp;diff=2990"/>
		<updated>2026-05-26T10:36:24Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Comfile_ver2.jpg&amp;diff=2989</id>
		<title>ファイル:Comfile ver2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Comfile_ver2.jpg&amp;diff=2989"/>
		<updated>2026-05-26T10:36:23Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Comfile.jpg&amp;diff=2988</id>
		<title>ファイル:Comfile.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Comfile.jpg&amp;diff=2988"/>
		<updated>2026-05-26T10:36:22Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-waterCRK.jpg&amp;diff=2987</id>
		<title>ファイル:Calnos-waterCRK.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-waterCRK.jpg&amp;diff=2987"/>
		<updated>2026-05-26T10:36:22Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-water.jpg&amp;diff=2986</id>
		<title>ファイル:Calnos-water.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-water.jpg&amp;diff=2986"/>
		<updated>2026-05-26T10:36:21Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-NH3.jpg&amp;diff=2985</id>
		<title>ファイル:Calnos-NH3.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-NH3.jpg&amp;diff=2985"/>
		<updated>2026-05-26T10:36:21Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure6.jpg&amp;diff=2984</id>
		<title>ファイル:Calnos-figure6.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure6.jpg&amp;diff=2984"/>
		<updated>2026-05-26T10:36:20Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure5.jpg&amp;diff=2983</id>
		<title>ファイル:Calnos-figure5.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure5.jpg&amp;diff=2983"/>
		<updated>2026-05-26T10:36:19Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure4.jpg&amp;diff=2982</id>
		<title>ファイル:Calnos-figure4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure4.jpg&amp;diff=2982"/>
		<updated>2026-05-26T10:36:19Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure3.jpg&amp;diff=2981</id>
		<title>ファイル:Calnos-figure3.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure3.jpg&amp;diff=2981"/>
		<updated>2026-05-26T10:36:18Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure2.jpg&amp;diff=2980</id>
		<title>ファイル:Calnos-figure2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure2.jpg&amp;diff=2980"/>
		<updated>2026-05-26T10:36:17Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure1.jpg&amp;diff=2979</id>
		<title>ファイル:Calnos-figure1.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-figure1.jpg&amp;diff=2979"/>
		<updated>2026-05-26T10:36:17Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-CO2.jpg&amp;diff=2978</id>
		<title>ファイル:Calnos-CO2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-CO2.jpg&amp;diff=2978"/>
		<updated>2026-05-26T10:36:16Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-CH3OH.jpg&amp;diff=2977</id>
		<title>ファイル:Calnos-CH3OH.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-CH3OH.jpg&amp;diff=2977"/>
		<updated>2026-05-26T10:36:16Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-CH3Cl.jpg&amp;diff=2976</id>
		<title>ファイル:Calnos-CH3Cl.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Calnos-CH3Cl.jpg&amp;diff=2976"/>
		<updated>2026-05-26T10:36:15Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:All.JPG&amp;diff=2975</id>
		<title>ファイル:All.JPG</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:All.JPG&amp;diff=2975"/>
		<updated>2026-05-26T10:36:15Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20210624073222!phpn7M35j.jpg&amp;diff=2974</id>
		<title>ファイル:20210624073222!phpn7M35j.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20210624073222!phpn7M35j.jpg&amp;diff=2974"/>
		<updated>2026-05-26T10:36:14Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20210624073048!phpoyUi4H.jpg&amp;diff=2973</id>
		<title>ファイル:20210624073048!phpoyUi4H.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20210624073048!phpoyUi4H.jpg&amp;diff=2973"/>
		<updated>2026-05-26T10:36:14Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160302055302!phpFsRjFY.jpg&amp;diff=2972</id>
		<title>ファイル:20160302055302!phpFsRjFY.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160302055302!phpFsRjFY.jpg&amp;diff=2972"/>
		<updated>2026-05-26T10:36:13Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160302054910!phpSuoqeW.jpg&amp;diff=2971</id>
		<title>ファイル:20160302054910!phpSuoqeW.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160302054910!phpSuoqeW.jpg&amp;diff=2971"/>
		<updated>2026-05-26T10:36:12Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160229043318!phpiCuUaD.jpg&amp;diff=2970</id>
		<title>ファイル:20160229043318!phpiCuUaD.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160229043318!phpiCuUaD.jpg&amp;diff=2970"/>
		<updated>2026-05-26T10:36:12Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160229043228!phphQZWGz.jpg&amp;diff=2969</id>
		<title>ファイル:20160229043228!phphQZWGz.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160229043228!phphQZWGz.jpg&amp;diff=2969"/>
		<updated>2026-05-26T10:36:11Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225063312!localcopy_e5ed3d041f9a-1.jpg&amp;diff=2968</id>
		<title>ファイル:20160225063312!localcopy e5ed3d041f9a-1.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225063312!localcopy_e5ed3d041f9a-1.jpg&amp;diff=2968"/>
		<updated>2026-05-26T10:36:11Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225063155!php7lKQ5G.jpg&amp;diff=2967</id>
		<title>ファイル:20160225063155!php7lKQ5G.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225063155!php7lKQ5G.jpg&amp;diff=2967"/>
		<updated>2026-05-26T10:36:10Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225052539!phpP9RXgk.jpg&amp;diff=2966</id>
		<title>ファイル:20160225052539!phpP9RXgk.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225052539!phpP9RXgk.jpg&amp;diff=2966"/>
		<updated>2026-05-26T10:36:10Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225052335!phpZ56Csq.jpg&amp;diff=2965</id>
		<title>ファイル:20160225052335!phpZ56Csq.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:20160225052335!phpZ56Csq.jpg&amp;diff=2965"/>
		<updated>2026-05-26T10:36:09Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-18fkfbv6gdig.8wt8oz.2.jpg&amp;diff=2964</id>
		<title>ファイル:120px-18fkfbv6gdig.8wt8oz.2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-18fkfbv6gdig.8wt8oz.2.jpg&amp;diff=2964"/>
		<updated>2026-05-26T10:36:08Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-18fkf7kg6miw.hfsvzq.2.jpg&amp;diff=2963</id>
		<title>ファイル:120px-18fkf7kg6miw.hfsvzq.2.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-18fkf7kg6miw.hfsvzq.2.jpg&amp;diff=2963"/>
		<updated>2026-05-26T10:36:08Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13uiq1c57j08.c58bxl.4.jpg&amp;diff=2962</id>
		<title>ファイル:120px-13uiq1c57j08.c58bxl.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13uiq1c57j08.c58bxl.4.jpg&amp;diff=2962"/>
		<updated>2026-05-26T10:36:07Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13uipqozeta0.bnfm8o.4.jpg&amp;diff=2961</id>
		<title>ファイル:120px-13uipqozeta0.bnfm8o.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13uipqozeta0.bnfm8o.4.jpg&amp;diff=2961"/>
		<updated>2026-05-26T10:36:06Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13ucff8r3zkg.g46c55.4.jpg&amp;diff=2960</id>
		<title>ファイル:120px-13ucff8r3zkg.g46c55.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13ucff8r3zkg.g46c55.4.jpg&amp;diff=2960"/>
		<updated>2026-05-26T10:36:06Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13ucfcz5sa9k.3fca20.4.jpg&amp;diff=2959</id>
		<title>ファイル:120px-13ucfcz5sa9k.3fca20.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13ucfcz5sa9k.3fca20.4.jpg&amp;diff=2959"/>
		<updated>2026-05-26T10:36:05Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13u0fl36hld0.i7x9ea.4.jpg&amp;diff=2958</id>
		<title>ファイル:120px-13u0fl36hld0.i7x9ea.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13u0fl36hld0.i7x9ea.4.jpg&amp;diff=2958"/>
		<updated>2026-05-26T10:36:04Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13u0fhkalx28.ugg86d.4.jpg&amp;diff=2957</id>
		<title>ファイル:120px-13u0fhkalx28.ugg86d.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13u0fhkalx28.ugg86d.4.jpg&amp;diff=2957"/>
		<updated>2026-05-26T10:36:04Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13u0aex4nfx4.n41s04.4.jpg&amp;diff=2956</id>
		<title>ファイル:120px-13u0aex4nfx4.n41s04.4.jpg</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:120px-13u0aex4nfx4.n41s04.4.jpg&amp;diff=2956"/>
		<updated>2026-05-26T10:36:03Z</updated>

		<summary type="html">&lt;p&gt;Hirano: MsUpload によるアップロード&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload によるアップロード&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
</feed>