画像情報をまとめて見る
ディレクトリ内に複数の被験者フォルダがある時、それぞれの画像のインフォメーション(ex.ボリューム数、解像度など)を被験者番号順にまとめて見たい
例えばFSLのコマンドのfslhdを使ってDWI画像のボリューム数を見る場合、通常は
fslhd DWI.nii
とすると
filename DWI.nii
・・・
dim0 4
dim1 256
dim2 256
dim3 74
dim4 54
・・・
dim4が四次元方向のボリューム数になります。
でも複数の被験者(C1, C2, C3・・・)の画像を一人ずつ調べるのは面倒・・・という時に、
cd image_folder
sublist=$(ls | sort -V)
for sub in $sublist; do echo $sub; fslhd $sub/DWI/DWI.nii | grep ^dim4; done
こうすると、
C1
dim4 65
C2
dim4 21
C3
dim4 129
C4
dim4 102
・・・
必要な情報だけまとめて吐き出してくれます。
ちなみに
$sub/DWI/DWI.nii
この部分は各被験者フォルダにどのように画像が入っているかによって変更します。この例の場合には被験者の下にDWIフォルダがあり、その中にDWI.niiが入っている状態です。
改行なしで出力したい場合は
sublist=$(ls | sort -V)
for sub in $sublist; do echo -en "$sub\t"; fslhd $sub/DWI/DWI.nii | grep ^dim4; done
echo -en "$sub\t"
だと改行せずタブをいれてくれるので
C1 dim4 65
C2 dim4 21
C3 dim4 129
C4 dim4 102
・・・
となります。
MRtrix3のmrinfoは(mif形式の画像に限りますが)b値ごとの枚数を教えてくれる便利なコマンドです。
mrinfo -shell_sizes -shell_bvalues DWI.mif
0 1000
6 48
上段がb値、下段がそれぞれのボリューム数になります。
この場合だとb0が6枚、b1000が48枚あるということです。
これも上記と同様にして
sublist=$(ls | sort -V)
for sub in $sublist; do echo $sub; mrinfo -shell_sizes -shell_bvalues $sub/DWI/DWI.mif; done
C1
0 1000
1 64
C2
0 1000
1 20
C3
0 600 1200
1 64 64
・・・
簡単に必要な情報だけを集められます。
この記事が気に入ったらサポートをしてみませんか?