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

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

【FSL】ROI(VOI)を用いた画像計測

f:id:AIProgrammer:20200617203900p:plain

目的

  • 関心領域ROI(VOI)内の画像の定量値を計測

計測コマンド

FSLのfslstatsを使う。
各オプションは、以下の通り。

  • -K: 関心領域ROI
  • -M: ROI内の平均値の算出
fslstats -K <ROI> <input> -M

複数人被験者がいる場合

複数人の被験者がいる場合、以下のようなフォルダ構造にならって各被験者ごとにファイルを用意し、後述するソースコードを実行することで、すべての被験者の計測結果をresult_mapstats.csvにまとめてくれる。

フォルダ構造

data
├── sub001
│   ├── basalganglia_roi_in_qsm.nii.gz
│   └── qsm_map.nii.gz
├── sub002
│   ├── basalganglia_roi_in_qsm.nii.gz
│   └── qsm_map.nii.gz
└── sub003
    ├── basalganglia_roi_in_qsm.nii.gz
    └── qsm_map.nii.gz

ソースコード

すべての被験者のデータが入っている「data」フォルダと同じ階層で以下のコマンドを実行。

# define name
foldername="data"
map="std_qsm_map"
roi="basalganglia_roi_in_qsm"

# make ROI name file
for roiname in \
"Region" \
"Left-Thalamus-Proper" \
"Left-Caudate" \
"Left-Putamen" \
"Left-Pallidum" \
"Brain-Stem/4th/Ventricle" \
"Left-Hippocampus" \
"Left-Amygdala" \
"Left-Accumbens-area" \
"Right-Thalamus-Proper" \
"Right-Caudate" \
"Right-Putamen" \
"Right-Pallidum" \
"Right-Hippocampus" \
"Right-Amygdala" \
"Right-Accumbens-area"
do
echo $roiname >> tmp1
done

# segment basal ganglia and calc volume
cd $foldername
for k in *;do
echo "processing $k"
echo $k > ../tmp2  # make ID name file
# measure mean value from QSM map using basal ganglia ROI
fslstats -K $k/$roi $k/$map -M \
|grep -v missing >> ../tmp2
## save ID and volume ,and accumulate them in result_vol.csv 
cat ../tmp2 > ../tmp3
paste ../tmp1 ../tmp3 > ../result_mapstats.csv
cat ../result_mapstats.csv > ../tmp1
# cd ..
done
cd ..

# remove temporaly files
rm tmp*



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