by N.Ikegami
AtAGlanceは Mac OS X 上で作動するインタラクティブな薬物動態シミュレーションソフトです。 コンパートメント薬物動態モデルに依って薬剤の血漿濃度(Cp)、効果部位濃度(Ce)、効果を算出します。 AtAGlance は麻酔関連薬を経静脈的に投与した場合を想定していますが、その他の同様の薬剤にも使用可能です。
計算方法は STANPUMP (by Steven L. Shafer, M.D.) を見習いました。
STANPUMP は3コンパートメントモデルに依って麻酔薬投与用のポンプを制御するコンピュータープログラムです。
10年以上に渡りパブリックドメインソフトウエアとして公開されており、多くの研究で使用されてきました。
今となっては非常に遅いコンピューター上でも大変実用的な速度で動作してきたのは、微分方程式をその都度数値的に解く
のではなく、解析的手法であらかじめ求めた式を計算に使っているからです。
このアルゴリズムを シミュレーション用に改変/最適化して使うことでユーザーのアクションへの素早いフィードバックが可能に
なっています。薬物動態のパラメーターの意味を実感するのに役立てば幸いです。
動作環境:
インストールは AtAGlance のアイコンをアプリケーションフォルダにドラッグ・アンド・ドロップするだけです。
AtAGlance は2つの種類の書類を扱います: チャート (Chart) と バインダー (Binder) です。ほとんどの操作はチャートのウィンドウ上で行います。

チャートの左下にあるのはエレメント (Elements) のコレクションを表示するビュー (Element Collection View) です。 ここのエレメントをパーツとして組み合わせてモデルを構成します。 その上の表にあるのは作成されたモデルです。右は各モデルの経過をグラフ表示する領域です。
バインダーは、作成したエレメントを再利用するために保存しておくのに便利な書類です。 エレメントを作成・編集・保存し、検索する機能があります。
シミュレーション・モデルを作成するのはとても簡単です:
ファイル・メニューから "新規チャート" を選んでチャートをつくります。 なお、ダブルクリックで起動すると AtAGlance は新しいチャートを自動的に作成します。
エレメント には3つの種類があります: 患者, キネティクス, シーケンスです。 各々はモデルのとある一面を現していますので、モデルをひとつ作成するには各々の種類のエレメントを 最低ひとつづつは作成する必要があります。 チャートにエレメントを加える方法は2つあります:
追加されたエレメントのアイコンがエレメント・コレクション・ビューに現れます。 エレメントを削除するには、選択後に "-" ボタンをクリックしてください。

Patient Editor
患者エレメントには4つの属性があります:
年齢(age)、性別(gender)、身長(height)、体重(weight)です。
Kinetics Editorキネティクスエレメントには4つの属性があります: 薬剤、参照、至適単位、定義です。 薬剤と参照は自由に定義できるテキスト情報です。 至適単位とは薬剤の投与の際に用いるべき適切な単位です。これが不適切だとグラフが小さすぎたり 大きすぎたりするでしょう。 定義とは薬物動態パラメーターを定義するソースです。このなかで必要なパラメーターを一般的な式の形で 定義することができます。式は文法チェックされますが、値の評価は直ぐにはされません。式の値の評価は実際の モデルが構築された際に行われます。 式の型は実数(浮動小数点数)ですが、後述の条件式の値は真偽値です。また便宜上性別は男性=真、女性=偽としています。
エディタの中央には2つのインジケーターがあります。左側の緑の箱は定義されたコンパートメントの数を、右側の星は効果部位濃度
・効果の定義がされているかどうかを表します。下の図の例では、この定義が3コンパートメントからなり効果部位濃度とダイナミクスの
記述を含むものであることが示されています。
定義されるべきパラメーター:
定義式には次の物が項として含まれてよい:
演算子:
Sequence Editor
シーケンスエレメントは薬剤投与アクションのリストです。

左下角のボタンでアクションを追加/挿入/削除できます。アクションは以下のものから構成されます:
エレメント・コレクション・ビューの上にある "歯車" ボタンは "モデル作成" ボタンです。
ビューにおいて、モデル作成に十分なのエレメントが選択されるとクリックできるようになります。
これをクリックすると、AtAGlance は選択されているエレメントの全ての組み合わせを作成しようと試みます。 その妥当性は問われません。例えば2つの患者と1つのキネティクス、3つのシーケンスを選んでいれば 2×1×3=6つのモデルが作成されます。 作成されたモデルは上の表に現れます。初期状態では "Untitled" と名付けられています。 モデルを削除するには、選択後に "-" ボタンをクリックします。
表に現れたモデル名にはチェックボックスがついています。最初はオフの状態です。
経過のグラフを描かせるにはここをマークします。
マークされたモデルのグラフは右のビューのなかに積み上げられるように表示されます。
モデルの表の上にある "カーテン" ボタンは、選択されたモデルの薬物動態パラメーターの詳細の表示/非表示を切り替えます。
この中の "効果部位" タブには "Tpeak を ke0 に優先して用いる" チェックボックスがあります。 これをチェックすると、TpeakとKe0(K41)がともに定義されている場合にTpeakを優先するようになります。 (その場合K41はTPeakから算出されます)
チャートには、積み上げられたすべての経過グラフに共有される水平方向のスケーラーがひとつあります。これは時間軸のスケーラーです。 他に、各々のグラフには2つの垂直方向のスケーラーがあります。これは濃度軸と効果軸のスケーラーです。
"環境設定"メニューをお試しください。

AtAGlance はデーターを別々のレイヤーに描画しています。初期状態では全てのレイヤーを表示します。
右上角の3並びのボタンをクリックすることで各々のレイヤーの表示/非表示を切り替えられます。

何個か数字を伴う、グラフに縦に引かれた線はカーソルです。数字はその時刻における血漿/効果部位/効果です。
クリック、ドラッグすることでカーソルを移動させることができます。

エレメント・コレクション・ビューとモデル表の上には各々 "虫めがね" のボタンがあります。
これは、それぞれのビューの "フィルタリングあり/なし" の切り替えボタンです。
"フィルタリングあり" ではそれぞれのビューの内容が相手のビューの選択によってフィルタリングされます。
例えば、もし エレメント・コレクション・ビューの上の "虫めがね" がオンになっていれば、
エレメント・コレクション・ビューに表示されるエレメントはモデル表で選択されているモデルを構成している
エレメントにしぼられる、ということになります。モデル表をクリックして選択をかえるにつれて
エレメント・コレクション・ビューに表示されるエレメントもかわります。
この機能は複数のモデルを比較検討する際に役立つでしょう。
I(t) を時間 t における中心コンパートメントに投与される薬剤の投与速度、UDF(t) を "unit disposition function"
もしくは 線形システム における "インパルス応答" とすると、血漿濃度は以下のようになる:
仮に I(t) が概して定数であり, 初期値が R0 で時間 t1 に R1 になるとする:
とすれば Cp (t > t1):

これは
一連の投与速度変更のシーケンスが与えられれば、それを変更ステップ毎に計算していくことで Cp(t) が得られる
ということ。
1番目の項を Cp0(t) 、2番目を Cp1(t) とすると、

以下のように書ける:

コンパートメントモデルでの UDF(t) は指数関数の合計でフィッティングできることが知られている。

ただし、

t = t1 (つまり delta-t がゼロ)の時、

したがって Cp0 はこのようになる:
また Cp1 はこのようにも書ける:

最終的に、 Cp(t) はこうなる:

もし Cp0(t1) がわかっていれば、 Cp(t) の算出は簡単(単純な四則演算と指数関数のみ)である。
同じような議論はこの分割がもっと多くてもなりたつ。
もし速度変更点が n回 あるなら、 Cp(t) はこう書ける:

AtAGlance は分節点における Cp(t) を計算しキャッシュしておいて、任意の Cp(t) の素早い計算に使っている。
Copyright (c) 2008 N.Ikegami (choccow AT mac DOT com)
AtAGlance is licenced under MIT license.
AtAGlance は次のライブラリ/フレームワークを使用させていただいています。 作者の皆様方、ありがとうございました。
Copyright (c) 2002-2006 K.Kosako (sndgk393 AT ybb DOT ne DOT jp)
Onigruma is licenced under original license, see below. All rights reserved.
Copyright (c) 2003 Isao Sonobe (sonoisa AT muse DOT ocn DOT ne DOT jp)
OgreKit is licenced under original license, see below. All rights reserved.
Copyright (c) 2004-2006 by Rainer Brockerhoff http://www.brockerhoff.net/
RBSplitView is licensed under the MIT License.
Both follow the BSD license in the case of the one except for it. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.