Skip to content

About

Igor Pro macro for cyclic voltammetry analysis of BioLogic EC-Lab data, featuring cycle-wise plots, statistics, and oxidation/reduction onset potential estimation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CV Analyzer for Igor Pro

BioLogic EC-Lab の通常 CV データ(.mpt)を読み込み、サイクルごとの電流–電位曲線と集計表を作る Igor Pro マクロです。選択した 2 範囲への直線フィットと、その交点電位の保存にも対応しています。

バージョン:0.1.2 / 対象:Igor Pro 8 以降

導入と起動

macOS:エイリアスを作成する

リポジトリのディレクトリで、次を実行します。

./scripts/install_igor_alias.sh

導入スクリプト は、CVAnalyzer.ipf のバージョンコメントから名前を付けた Finder エイリアス(現在は CVAnalyzer_v_0_1_2.ipf)を、次の Igor Procedures フォルダに作成します。

~/Documents/WaveMetrics/Igor Pro 8 User Files/Igor Procedures

保存先フォルダは事前に存在する必要があります。異なる場所を使う場合は、CVA_IGOR_PROCEDURES_DIR 環境変数で指定してください。同名の項目があれば置き換え、CVAnalyzer_v_<メジャー>_<マイナー>_<パッチ>.ipf 形式の旧バージョンも削除します。新しい Finder エイリアスの作成に失敗した場合は既存の項目を残します。作成後は Igor Pro を再起動し、Macros → CV Analyzer から起動します。

プロシージャを直接開く

  1. Igor Pro の File → Open File → Procedure から CVAnalyzer.ipf を開きます。
  2. Compile を実行します。
  3. Macros → CV Analyzer を選んでパネルを開きます。

通常 CV を読み込む

  1. パネルの測定方法で 通常 CV:酸化開始 または 通常 CV:還元開始 を選びます。
  2. MPT ファイルを選択して解析 を押し、ファイルを選びます。
  3. サイクル別の CV グラフと集計表が開きます。結果を残すには Igor の実験ファイルを保存してください。

酸化開始・還元開始の選択は記録用で、通常 CV の計算は共通です。開始方向は自動判定しません。酸化側 stepwise・還元側 stepwise は未実装です。選択して読み込みを実行すると、説明を表示して中止します。

入力形式と確認範囲

EC-Lab ASCII の Cyclic Voltammetry ファイルを対象に、次の列を読み込みます。

必須列 用途
time/s 時間幅と電荷量の計算
Ewe/V 測定電位
<I>/mA 測定電流
cycle number サイクルの区分

必須列の欠落、数値不正、時間やサイクル番号の逆行、2 行未満の測定データ、形式違いを検出した場合は読み込みを中止します。エラー列の内容や測定器の過負荷の有無は確認していません。

添付試料を独立にテキストとして確認した際は、測定データ 10,813 行、サイクル 1–3 でした。最大電位は約 3.60 V で、添付画像の例とは電位範囲が異なります。

集計値の意味

データは EC-Lab の cycle number ごとに区分します。部分サイクルも、ファイルの番号どおり集計します。

集計項目 定義・単位
電位範囲 サイクル内の測定電位の最小・最大(V)
電流極値とその電位 生データの電流の最大・最小(mA)と、それぞれの測定電位(V)。同じ極値が複数ある場合は最初の点
点数・時間幅 測定点数と、最後の点と最初の点の時刻差(s)
正電荷・負電荷 電流を時間に対して正負別に台形積分した値(mAh)。負電荷は負の値

電荷量の計算では、電流の符号が変わる区間を線形補間で分割します。サイクル番号が変わる点の間の区間は積分に含めません。電流の符号と走査方向は同義ではありません。

測定電位と電流はそのまま使用します。電位基準の変換、電極面積・質量による正規化、平滑化、ベースライン補正、サイクル完結判定は行いません。電流極値は、ベースライン補正したピークではありません。

2 接線の交点を求める

操作手順

  1. 通常 CV を読み込んだ後、パネルの 2接線フィッティングを開く を押し、対象の CV グラフを選びます。
  2. フィット画面のセレクトボックスで、対象の サイクル と 酸化側/還元側 を選びます。
  3. 実測曲線上のカーソル A–B と C–D で、それぞれ 1 つの走査枝に収まる 2 つの範囲を指定します。2 つの範囲は同じ枝でも異なる枝でも選べます。
  4. 計算・保存 を押します。2 本の直線と交点が表示され、選択したサイクル・側の交点電位が表に保存されます。

各範囲は両端を含む 3 点以上で指定します。範囲は電位の大小ではなく、測定点の順序に基づきます。各範囲に電流を電位の一次式として最小二乗フィットし、2 本の直線の交点を計算します。結果は選択範囲に依存します。 酸化・還元はユーザーが選ぶラベルで、自動判別はしません。電位基準の変換も行いません。

計算の制約と外挿

  • A–B または C–D の範囲内で電位の増減方向が変わると、計算を拒否します。2 範囲の間に折り返しがあっても、各範囲がそれぞれ 1 つの枝に収まれば計算できます。測定ノイズによる微小な反転も拒否する保守的な判定です。途中の同電位点は許容しますが、全点が同電位では計算できません。
  • 非有限値、点数不足、電位幅不足、傾きが等しいか近すぎる 2 直線など、交点を計算できない条件では保存しません。
  • 交点がいずれかの選択範囲の電位幅の外にある場合は、表の値に ***(外挿)**を付けます。実測したサイクル全体の電位範囲外に交点が出る場合もあります。
  • 計算時と保存結果の復元時には、交点とフィット線を含むように軸範囲を更新します。

保存済み結果と現在のカーソル位置

画面内の表には、同じ測定ファイルの全サイクルを行として並べ、酸化・還元の最後に保存した交点電位を別々の列に保持します。表は保存済み結果であり、現在のカーソル範囲の結果ではありません。 同じサイクル・同じ側で再計算すると、そのセルを更新します。

各サイクル・各側のカーソル位置は独立して保持し、切り替えて戻ると復元します。カーソルを移動した後は、直近の計算結果をグラフ上で無効にします。以前の保存結果とカーソル位置が一致しない場合は、切り替えて戻っても古いフィット線を現在の結果として表示しません。表の保存値は残ります。

元サイクルの電位・電流や元行番号を変更した場合も、古いフィット線は復元しません。サイクルを選び直し、明示的に再計算してください。この場合も表には最後に保存した値が残ります。カーソル位置と保存結果を含む状態を残すには、Igor の実験ファイルを保存します。

同じ測定データに対するフィット画面は 1 つです。再度開くと、既存の画面を前面に表示します。

出力データと出典の記録

データフォルダ

読み込んだ波形は、ファイルごとに root:CVAnalyzer:<ファイル名を基にした名前> に保存します。フォルダ名は拡張子を除いたファイル名を基にし、先頭が数字なら A を付けます。Igor の名前に使えない文字は変換します。同名のフォルダがある場合は、上書きせず別名を付けます。

元ファイルと行番号

  • サイクル別の電位・電流 wave の Note:元ファイル名、EC-Lab のサイクル番号、元 MPT 内の開始行・終了行。
  • 全サイクルを含む元データ・集計 wave の Note:各サイクルの元行範囲。
  • source_line wave:各測定点の元ファイル行。

行番号はヘッダーを含む 1 始まりで、開始行・終了行の両端を含みます。

フィット結果

CVA_ox_*・CVA_red_* wave に、各サイクルの酸化側・還元側の保存結果を保持します。Note には次の情報を記録します。

  • 元ファイルのフルパス、サイクル番号、選択した側
  • カーソル A–D の点番号(0 始まり)、電位、電流、元ファイル行
  • 各直線の傾き・切片、交点の電位・電流、外挿の有無

対応する CVA_ox_*_data・CVA_red_*_data wave は、計算時の対象サイクル全点の電位・電流・元行番号を保持します。

グラフの表示仕様

項目 設定
プロット領域 横 8 cm × 縦 6 cm の絶対サイズ、表示倍率 2 倍
文字 基本 12 pt、軸ラベル 14 pt、変数記号は斜体
軸ラベル Cell Voltage V / V、Current I / mA
余白 左 56、下 39、右 14、上 14 pt
軸範囲 Igor の自動スケール範囲の両端に、その幅の 15% を追加
線色 参考マクロ InoColors と同じ先頭 10 色。11 サイクル目から繰り返し
CV グラフの凡例 右下、背景透明・枠なし。ファイル内のサイクル番号を 1st、2nd、3rd … と表示
フィットグラフ 対象サイクルを右下の注記に表示し、CV グラフと同じ線色を使用

色設定はこのマクロ内に含まれるため、参考マクロの読み込みは不要です。電位の参照電極は、入力ファイルの測定条件で確認してください。

パネルと集計表を左、CV グラフを右に配置します。フィット画面は選択した CV グラフの真下に開きます。画面が小さい場合や複数ファイルを続けて開いた場合は、画面外への配置や既存ウィンドウとの重なりが生じることがあります。

Igor Pro での検証手順

回帰確認用のプロシージャは tests/CVAnalyzerTests.ipf にあります。

  1. 使い捨ての Igor 実験を用意します。
  2. CVAnalyzer.ipf と tests/CVAnalyzerTests.ipf を読み込み、コンパイルします。
  3. CVAT_Run() を実行します。

合成データを使い、正方向・逆方向の直線と既知の交点、点数・電位幅不足、非有限値、微小反転、異なる走査枝を使うフィットと範囲内の折り返し、カーソルの保存・復元、酸化・還元の結果保持、元データ・元行番号変更後の無効化、実測範囲外の交点の表示を検査する手順です。数値行の検証、正負の電荷とゼロ交差、計算時と復元時の描画 wave・出典の一致、壊れた保存値・snapshot・カーソル表の拒否、失敗した切り替えでの状態保持、画面作成後のデータフォルダ復元と既存画面の前面表示も確認します。失敗時は原因を表示して停止するため、確認用フォルダが残る場合があります。

ライセンス

MIT License

About

Igor Pro macro for cyclic voltammetry analysis of BioLogic EC-Lab data, featuring cycle-wise plots, statistics, and oxidation/reduction onset potential estimation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages