LoginSignup
1
2

More than 5 years have passed since last update.

HSI(Hopkins-Skellam index)算出のためのImageJマクロ

Last updated at Posted at 2018-05-10

概要

組織中の細胞の分布パターンを画像解析から評価するため、Fiji(ImageJ)で使えるマクロを作成した。
評価基準にはHSI(Hopkins-Skellam index)という指数を用いている。

HSI(Hopkins-Skellam index)とは

HSIとは植物集団における個体の分布パターンを分類するためHopkinsとSkellamにより考案された指標である。ある領域内の点群についてこれを求めると、分布がランダムであればHSIは1に近く、凝集・集合が起こっている状態では1より大きく、regularに分布していれば1より小さくなる(Hopkins & Skellam, 1954)。

使用法

画像の前準備

1)Fiji(またはImageJ)で画像を開く

2)カラー画像の場合は8bit画像に直す
 Image > Type > 8-bit

3)着目したい粒子のみが選択されるよう、Thresholdを設定する
 Image > Adjust > Threshold →(設定)→ Apply

  image.png
    ⬇︎
  image.png

粒子群の位置測定

4)測定内容の設定:
 Analyze > Set Measurements...
 → Center of massにチェック☑︎ → OK
  image.png

5)粒子の重心座標を測定:
 Analyze > Analyze Particles...
 ・着目する粒子群以外に小さな塵などが認識されている場合は、
  "Size"の下限を引き上げることで解析対象から除外できる。
 ・Display Resultsにチェック☑︎を入れておくと、測定終了後に
  結果がResultウィンドウで表示される。
  image.png

HSIの算出 - マクロの実行

6)以下のマクロを実行する。
 マクロウィンドウはPlugins > New > Macroなどから開ける。

obtainHSI.ijm
macro "obtainHSI"
{
    getDimensions(width, height, channels, slices, frames);

    r1sum=0;
    r2sum=0;
    for(k=0;k<1000;k++)
    {
        for(j=1;j<nResults();j++)
        {
            r1sum=r1sum+getNearestDistanceSquare(random()*width,random()*height);
            r2sum=r2sum+getNearestDistanceSquare(getResult("XM",j),getResult("YM",j));
        }   
    }
    showMessage(r1sum/r2sum);

    function getNearestDistanceSquare(x,y)
    {
        nearestDistanceSquare=width*width+height*height;
        for(i=1;i<nResults();i++)
        {
            DistanceSquare=(getResult("XM",i)-x)*(getResult("XM",i)-x)+(getResult("YM",i)-y)*(getResult("YM",i)-y);
            if(DistanceSquare<nearestDistanceSquare&&0<DistanceSquare)
            {
                nearestDistanceSquare=DistanceSquare;
            }
        }
    return nearestDistanceSquare    
    }
}

7)算出されたHSIがMessageウィンドウに表示される
  image.png


1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2