見出し画像

bvecを簡単に視覚化する

dcm2niixを使ってdMRIのDICOMをNIfTIファイルに変換すると、〇〇.bvecというMPGの軸方向を記載したファイルを作ってくれます。Matlabのファイルエクスチェンジにあるarrow3を使うとbvecファイルを簡単に視覚化することができます。


準備

まず、以下のmatlab Fileexchangeページからarrow3というツールをダウンロードします。
https://www.mathworks.com/matlabcentral/fileexchange/14056-arrow3
適当なところに置いたら、matlabを立ち上げて環境設定⇨パスの設定からパスに追加します。(慣れていないと見つけにくいかもしれませんので以下詳細です。「パスの設定」は画面の大きさによっては隠れているので、「環境」の下の三角ボタンを押して表示させます。出てきた画面で左上の「フォルダを追加...」を押して、arrow3のフォルダを選んで「開く」を押し、「保存」を押して保存します。)
これで準備完了です。

パスの設定

方法

次にbvecファイルをmatlab上にインポートします。(以下は一例なので適宜ご自分のファイルのパスと置き換えてください)

A = importdata('/Users/lop_eared/share/tract/bvecs');
size(A)

この結果が、例えば

ans =

     3   199

の場合、bvecは3行x 199列のファイルであることがわかります。
arrow3の座標は矢印の始点、終点の行列を指定します。いずれもn行3列である必要があります。なのでこの行列Aを転置します。

B = transpose(A);

始点は原点にしたいのでzeros(199,3)とします。

arrow3(zeros(199,3),B,'x',3,2,[],0.95)
light('position',[-10 -10 -10],'style','local')
light('position',[60,60,60]), lighting gouraud

以上です。
始点、終点の後にある「'x',3,2,[],0.95」の部分は矢印の形や色を決めています。help arrow3でヘルプを見るとそれぞれの値について説明があります。また、arrow3のフォルダの中に入っているarrow3_examples.htmlをダブルクリックするとサンプルが載っていますので、お好みで調整してください。
light・・・の2行は3Dに見えるようライティングの調整をしています。

b0について

b0ボリュームについてはbvecは(0,0,0)になります。これは0ベクトルになるので、このままにしておくと警告が出ます。
これを削るには最初に必要な列だけ抜き出せばOKです。例えば66ボリュームのうち、1ボリューム目と34ボリューム目がb0だったら、
A = importdata('DWI.bvec');
B = A(:,[2:33 35:66]);
とするとb0でないボリュームのbvecだけを抜き出せます。
ただしb0を削らずにそのままやっても、図は表示可能です。


この記事が気に入ったらサポートをしてみませんか?