【初心者向け】基礎&実践プログラミング

初心者がつまづきやすいところ、最短で実力が身につく方法をお伝えします。

【FSL】fslmathsの使ったROI解析

目的

  • MRIデータをROIを用いて計測

fslmaths

fslmathsを使った(non zeroボクセルの)平均値および標準偏差の計算方法は次のとおり。

binary maskを使う場合

[preparation]として-k <binary mask>を指定

# 平均値
fslmaths -k <index mask> <input image> -M

# 標準偏差
fslmaths -k <index mask> <input image> -S

index maskを使う場合

maskの中には、1以上の離散値を持つ場合もある(例:前頭葉: 1, 側頭葉: 2, 頭頂葉: 3, 後頭葉: 4)。このようなmaskをFSLでは「index mask」と呼ぶ。 [preparation]として-K <index mask>を指定(ラージKであることに注意)。

# 平均値
fslmaths -K <index mask> <input image> -M

# 標準偏差
fslmaths -K <index mask> <input image> -S

使用例

firstというディレクトリにfactor 1.0 ~ 2.0の範囲で0.2刻みでデータ収集し、1つのfactorには5種類の画像がある。

さらに、3種類のindex maskがある(20190616_${map}.nii.gz)。

新たにデータセットを用意する場合、

  • index maskは、「_${map}.nii.gz(map =T1, T2, PD)」の部分だけ揃える
  • 画像データは、「_${i}.nii(i =1, 2, 3, 4, 5))」の部分は揃える

フォルダ構造

first/
├── 1.0
│   ├── 20190616_135659WIPCS103DSyMRIs901a1009_1.nii
│   ├── 20190616_135659WIPCS103DSyMRIs901a1009_2.nii
│   ├── 20190616_135659WIPCS103DSyMRIs901a1009_3.nii
│   ├── 20190616_135659WIPCS103DSyMRIs901a1009_4.nii
│   └── 20190616_135659WIPCS103DSyMRIs901a1009_5.nii
├── 1.2
├── 1.4
...
└──2.0
20190616_T1.nii.gz
20190616_T2.nii.gz
20190616_PD.nii.gz

コード

以上の準備ができたら、以下のコマンドをfirstフォルダのあるディレクトリと同じ場所で実行する。

計測結果は、「temp」フォルダにまとめられ、最終的なまとめ結果は「temp/summary」にまとめられる。

mkdir -p temp temp/summary
for img in $(seq 1 5);do
    echo "Calc image$img ..."
    for i in $(ls first);do
        for map in T1 T2 PD;do
            echo ${map}_img${img}_${i} > temp/${map}_img${img}_${i}.txt
            fslstats -K *_${map}.nii.gz first/$i/*_${img}.nii -M >> temp/${map}_img${img}_${i}.txt
        done
    done
    # summary
    paste temp/T1_img${img}_*.txt > temp/summary/T1_img${img}.txt
    paste temp/T2_img${img}_*.txt > temp/summary/T2_img${img}.txt
    paste temp/PD_img${img}_*.txt > temp/summary/PD_img${img}.txt
done

結果

「temp/summary」フォルダの中身を確認すると次のようなファイルが生成されている。

これらの結果は、各index maskおよび各factorにおける5種類の画像ごとに計測結果をまとめたものである。

$ ls temp/summary/
PD_img1.txt  PD_img4.txt  T1_img2.txt  T1_img5.txt  T2_img3.txt
PD_img2.txt  PD_img5.txt  T1_img3.txt  T2_img1.txt  T2_img4.txt
PD_img3.txt  T1_img1.txt  T1_img4.txt  T2_img2.txt  T2_img5.txt

「PD_img1.txt」の中身は次の通り。

PD_1_1.0 PD_1_1.2    PD_1_1.4    PD_1_1.6    PD_1_1.8    PD_1_10 PD_1_2.0    PD_1_2.2    PD_1_2.4    PD_1_2.6    PD_1_2.8    PD_1_3.0    PD_1_3.5    PD_1_4.0    PD_1_4.5    PD_1_5.0    PD_1_5.5    PD_1_6.0    PD_1_6.5    PD_1_7.0    PD_1_7.5    PD_1_8.0    PD_1_8.5    PD_1_9.0    PD_1_9.5
56.071172   53.571421   57.104340   65.576766   56.634142   164.695774  59.164714   66.530548   64.210779   72.075169   88.882530   68.767341   78.006755   82.362270   102.866073  95.148962   157.649307  135.169850      136.416867  209.898826  143.974304  206.080797  144.660493  152.182925 
59.219002   59.634794   67.469257   57.990326   68.822425   135.478640  61.384532   70.464787   71.207407   73.836757   85.293909   69.715787   85.544729   98.812038   120.032300  113.378021  137.899509  162.424688      186.341014  182.449928  168.822476  226.915020  168.971066  156.942100 
65.593938   73.217330   78.069650   72.319718   72.329499   229.141061  72.960663   85.006750   71.576984   86.298830   101.787668  68.924592   111.201372  124.327963  136.776286  160.195031  187.189908  202.490824      222.796888  278.856697  198.264230  250.119406  227.780093  328.350670 
60.599368   73.082315   75.607594   78.199978   77.303263   264.188672  82.484480   87.064013   90.335936   86.806134   99.869636   91.716010   100.842814  124.390488  152.835757  158.187163  190.057344  231.426025      255.339445  233.320259  210.198541  268.658566  277.634037  304.397152 
62.596507   73.224809   73.435417   74.447392   82.949692   200.789283  95.077401   76.603784   91.650407   86.794202   97.143067   96.004177   91.693638   114.771571  147.396567  128.985783  156.368281  180.671239      219.410221  212.203824  191.402947  209.449536  208.555533  208.911982 
70.904297   74.822798   82.031894   81.959065   81.159454   204.884733  84.416149   84.009042   105.231751  102.618848  109.251246  87.436376   87.707241   103.725383  124.369558  148.823854  178.081095  170.385173      216.685645  324.138544  221.210790  270.552265  221.176516  209.839571 
73.786061   76.172245   78.538106   88.747996   75.945391   210.691364  96.988982   93.988295   92.378013   94.479654   102.801537  105.931549  100.643631  119.402497  133.575660  158.669452  168.026760  208.149685      216.036306  200.196084  221.846031  254.239667  222.523944  208.206735 
87.495523   88.813652   87.880272   85.964579   98.281155   349.093039  98.692713   94.235417   101.215252  112.179749  109.359223  92.050666   103.862347  126.171527  137.595066  170.217829  185.742386  242.152668      271.305374  222.041778  273.485643  306.670516  315.758490  264.002075 
98.739737   100.720432  97.328787   99.053358   97.533872   316.762011  103.369259  113.277178  99.181052   109.115135  118.181639  109.618875  118.613545  125.297607  148.418087  162.936641  185.542536  241.243367      219.280341  239.735891  205.617819  270.702777  229.903270  235.547812 
103.277802  106.846910  104.091932  106.542414  102.750478  207.280336  102.150977  113.678573  109.015869  102.060726  112.479080  106.674224  115.947559  116.607501  144.210974  143.748899  149.864118  209.414898      207.632018  212.082947  221.947801  243.473957  262.798043  187.095868 
126.149411  128.146098  123.403289  129.219018  120.576404  307.939330  127.342593  130.534624  136.748147  135.015205  130.025685  127.302044  129.562001  181.892504  175.129838  214.058127  226.497845  261.011736      293.147569  369.290946  318.991315  334.730611  391.036790  375.232291 
142.132261  136.881755  140.397574  139.790297  137.662219  372.306719  144.546539  141.836003  157.273254  146.306116  172.242885  156.343952  157.901801  186.644997  198.501073  221.079046  239.737134  273.049238      337.570792  359.821785  327.865160  385.884041  403.470958  392.444883 
153.414811  149.560298  153.284503  153.066674  161.247593  389.665428  167.865698  162.732419  163.929323  170.265862  175.904991  159.839045  172.798252  191.501041  201.477961  243.534578  247.816996  296.709427      355.380479  385.017319  365.828550  409.998897  380.333908  410.494708 
123.627007  125.429929  125.827541  128.563233  124.580074  305.157273  133.259714  136.405932  140.542948  138.670648  136.025625  134.278958  149.233630  156.115582  180.495762  207.980796  201.333914  247.976671      304.193507  306.642640  293.506436  327.611026  335.249888  354.644789 

これをエクセルに貼り付けると、次のようになる。行はindex maskのindexに対応し、列は各factorに対応する。factorのネーミングの仕方が悪く「PD_1_10」が6列目に出てきてしまっていることに注意。

PD_1_1.0 PD_1_1.2 PD_1_1.4 PD_1_1.6 PD_1_1.8 PD_1_10 PD_1_2.0 PD_1_2.2 PD_1_2.4 PD_1_2.6 PD_1_2.8 PD_1_3.0 PD_1_3.5 PD_1_4.0 PD_1_4.5 PD_1_5.0 PD_1_5.5 PD_1_6.0 PD_1_6.5 PD_1_7.0 PD_1_7.5 PD_1_8.0 PD_1_8.5 PD_1_9.0 PD_1_9.5
56.07117 53.57142 57.10434 65.57677 56.63414 164.6958 59.16471 66.53055 64.21078 72.07517 88.88253 68.76734 78.00676 82.36227 102.8661 95.14896 157.6493 135.1699 102.8661 136.4169 209.8988 143.9743 206.0808 144.6605 152.1829
59.219 59.63479 67.46926 57.99033 68.82243 135.4786 61.38453 70.46479 71.20741 73.83676 85.29391 69.71579 85.54473 98.81204 120.0323 113.378 137.8995 162.4247 120.0323 186.341 182.4499 168.8225 226.915 168.9711 156.9421
65.59394 73.21733 78.06965 72.31972 72.3295 229.1411 72.96066 85.00675 71.57698 86.29883 101.7877 68.92459 111.2014 124.328 136.7763 160.195 187.1899 202.4908 136.7763 222.7969 278.8567 198.2642 250.1194 227.7801 328.3507
60.59937 73.08232 75.60759 78.19998 77.30326 264.1887 82.48448 87.06401 90.33594 86.80613 99.86964 91.71601 100.8428 124.3905 152.8358 158.1872 190.0573 231.426 152.8358 255.3394 233.3203 210.1985 268.6586 277.634 304.3972
62.59651 73.22481 73.43542 74.44739 82.94969 200.7893 95.0774 76.60378 91.65041 86.7942 97.14307 96.00418 91.69364 114.7716 147.3966 128.9858 156.3683 180.6712 147.3966 219.4102 212.2038 191.4029 209.4495 208.5555 208.912
70.9043 74.8228 82.03189 81.95907 81.15945 204.8847 84.41615 84.00904 105.2318 102.6188 109.2512 87.43638 87.70724 103.7254 124.3696 148.8239 178.0811 170.3852 124.3696 216.6856 324.1385 221.2108 270.5523 221.1765 209.8396
73.78606 76.17225 78.53811 88.748 75.94539 210.6914 96.98898 93.9883 92.37801 94.47965 102.8015 105.9315 100.6436 119.4025 133.5757 158.6695 168.0268 208.1497 133.5757 216.0363 200.1961 221.846 254.2397 222.5239 208.2067
87.49552 88.81365 87.88027 85.96458 98.28116 349.093 98.69271 94.23542 101.2153 112.1797 109.3592 92.05067 103.8623 126.1715 137.5951 170.2178 185.7424 242.1527 137.5951 271.3054 222.0418 273.4856 306.6705 315.7585 264.0021
98.73974 100.7204 97.32879 99.05336 97.53387 316.762 103.3693 113.2772 99.18105 109.1151 118.1816 109.6189 118.6135 125.2976 148.4181 162.9366 185.5425 241.2434 148.4181 219.2803 239.7359 205.6178 270.7028 229.9033 235.5478
103.2778 106.8469 104.0919 106.5424 102.7505 207.2803 102.151 113.6786 109.0159 102.0607 112.4791 106.6742 115.9476 116.6075 144.211 143.7489 149.8641 209.4149 144.211 207.632 212.0829 221.9478 243.474 262.798 187.0959
126.1494 128.1461 123.4033 129.219 120.5764 307.9393 127.3426 130.5346 136.7481 135.0152 130.0257 127.302 129.562 181.8925 175.1298 214.0581 226.4978 261.0117 175.1298 293.1476 369.2909 318.9913 334.7306 391.0368 375.2323
142.1323 136.8818 140.3976 139.7903 137.6622 372.3067 144.5465 141.836 157.2733 146.3061 172.2429 156.344 157.9018 186.645 198.5011 221.079 239.7371 273.0492 198.5011 337.5708 359.8218 327.8652 385.884 403.471 392.4449
153.4148 149.5603 153.2845 153.0667 161.2476 389.6654 167.8657 162.7324 163.9293 170.2659 175.905 159.839 172.7983 191.501 201.478 243.5346 247.817 296.7094 201.478 355.3805 385.0173 365.8286 409.9989 380.3339 410.4947
123.627 125.4299 125.8275 128.5632 124.5801 305.1573 133.2597 136.4059 140.5429 138.6706 136.0256 134.279 149.2336 156.1156 180.4958 207.9808 201.3339 247.9767 180.4958 304.1935 306.6426 293.5064 327.611 335.2499 354.6448



頑張れ!喝!!の代わりにB!ブックマークを押していただけるとただただうれしいです(^^)! ↓