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

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

【FSL】FDT pipelineを用いた標準空間(MNI空間)への位置合わせ

目的 FDT pipelineを用いて、個人のDiffusion画像と標準空間(MNI空間)の構造画像の位置合わせ 必要なファイル 必要なファイルは次の通り。 BEDPOSTXの使い方はこちら。 . ├── DTI.bedpostX # BEDPOSTXの出力フォルダ ├── T1.nii.gz # BET前のBrain 3D-T1WI…

【主成分分析】FLICAを用いたマルチモーダル主成分分析

目的 FLICAを用いた画像のマルチモーダル主成分分析(ICA) リポジトリ FLICAに必要なスクリプトを次のコマンドで取得。今のところプライベートリポジトリにしています。ご興味のある方はコメントしてください。 git clone https://github.com/Hexans/FLICA_…

【SPM】LinuxのターミナルからSPMを操作

目的 LinuxのターミナルからSPMを操作 リポジトリ 例は、GitHubのリポジトリに保存してある。 github.com 1_Applywarp_MNI2Subj 目的 被験者のDWI空間からMNI空間への変換行列を用いて、MNI空間上にあるROIをDWI空間へ移動させる 必要なファイル 必要なファ…

【Python】箱ひげ図の作り方

目的 Pythonを使って箱ひげ図(BoxPlot)を作成 1つの図に3群の結果をプロット データ準備 行に各被験者、列にIDと各被験者のlabel、さらに各定量値が来るようにデータをまとめる。以下のデータは、その一部である。 この例では、以下のデータを「dataset.cs…

【脳画像解析】拡散MRIを用いたDTI / Tractographyの基本

目的 MRtrix3のインストール 拡散テンソルイメージング(DTI)解析 準備するデータ 前処理 DTI定量値の計算 FA MD AD RD Colur-encoded FA DTI定量値の計測 トラクトグラフィー(Tractography) 準備するデータ Seed imageの作成方法 MRIcron ITK-SNAP Tract…

【脳画像解析】DWI maskの作り方

目的 DWIからDWIのmaskを生成 コマンドは、MRtrix3のdwi2maskを用いる dwi2maskの使い方 dwi2maskに必要なのは、DWIとその軸情報。NIFTIからMIFに変換する際にb-vectorやb-valueといった軸情報を織り込んでいれば-fslgrad <bvecs> <bvals>の指定は必要ない。 $ dwi2mask -f</bvals></bvecs>…

【初心者MRI画像解析】DTIFITを用いたDTI解析

FSL

目的 拡散MRIをDTIFITを用いてDTI解析 DTIFITの基本的な使い方 必要なデータは以下。 DWI images b-vectors file b-values file DTIFITを実行するには次のコマンドを実行する。<>の中身を自身の持っているファイル名に適宜置き換える。は任意。ドルマーク$は…

【MRI画像解析】ラット・マウスデータに対する前処理から定量値計算まで

目的 ラット・マウスのMRIデータを前処理 拡散MRIから得られる定量値計算 Atlasを用いた脳領域ごとの定量値算出 予備知識 Diffusion Kurtosis Imaging(DKI)の基礎と技術開発 www.innervision.co.jp 拡散 MRI 解析における数理的基礎と応用 準備 準備された…

【FSL】BEDPOSTXの使い方

目的 BEDPOSTXの利用方法の取得 BEDPOSTX BEDPOSTXの実行には、次のようなファイルが必要。 さらに、ファイル名は次のようにしておく必要がある。 Sub001/ ├── bvals # DWIのGradient Table ├── bvecs # DWIのGradient Table ├── data.nii.gz # DWI └── nodi…

【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を</index></index></binary>…

【FSL】TBSSで出た有意領域をマスクとして画像定量値を計測

目的 TBSS(Tract-Based Spatial Statistics)で出た有意領域をマスクとしてDiffusion mapなどの画像定量値を計測 ソースコード TBSSの結果が格納されているフォルダ(「stats」フォルダ)で以下のコードを実行。 この例では、健常群と患者群の2群比較をした結…

【Python】スクレイピングで使うテキスト処理

目的 スクレイピングでよく使うテキスト処理を取得 はじめに 最近、戦友がねこちゃんを飼いました☆ しっぽが鍵(key(キー))みたいだから「きぃくん」と呼ぶそうです。 とっても可愛いので毎日みています! よかったらインスタグラムフォローおねがいします…

【FSL】MRI画像のレジストレーション(Registration)と関心領域(ROI)解析

目的 JHU White-matter labels & tractography atlasでROI解析する方法 Desikan Killiany AtlasでROI解析 FreeSurferのwm.seg.nii.gzをDWI空間に位置合わせする方法 JHU White-matter labels & tractography atlasでROI解析する方法 標準空間(template (sta…

【Python】バイオリンプロット(Violin Plot)

目的 Pythonのseabornを使ってバイオリンプロットを作成 データ(例:AIの予測値と正解値) ここで使うデータは、AIが判定した予測値と正解値(0~3)。 y_true: 正解ラベル y_pred: 予測したラベル PVHs.csv y_true y_pred 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 …

【Python】カッパ(k)係数の計算

目的 コーエンの重み付きカッパ(k)係数(Cohen's kappa)をPythonで計算 scikit-learnのインストール カッパ係数の計算には、scikit-learnを使うと簡単にできます。scikit-learnをインストールしていない場合は、以下のコマンドを実行してインストールして…

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

目的 関心領域ROI(VOI)内の画像の定量値を計測 計測コマンド FSLのfslstatsを使う。 各オプションは、以下の通り。 -K: 関心領域ROI -M: ROI内の平均値の算出 fslstats -K <ROI> <input> -M 複数人被験者がいる場合 複数人の被験者がいる場合、以下のようなフォルダ構</roi>…

【FSL】Affine変換(平行移動+線形変換)

目的 異なる画像(NIFITI形式)の位置合わせをAffine変換(平行移動+線形変換)を用いて実行する。 FSLを用いて実装します。 必要なファイル T1WI: t1.nii.gz QSMの元画像: qsm_raw.nii.gz QSMの定量マップ: qsm_map.nii.gz 大脳基底核のROI: basalganglia_…

【Linux】ファイルやフォルダを小分けにする方法

目的 並列でプログラムを実行したい場合、データセットを小分けにしたい場合がある。小分けにする数が多いほど手間がかかる。 そこで、以下を目的とする。 シェルスクリプトを使ってデータセット(ファイルやフォルダ)を小分けにする フォルダ構造 フォルダ…

【Linux】DICOMのソート処理

目的 様々なSeriesDescriptionで撮像されたDICOMデータから特定のSeriesDescriptionのDICOMデータのみを取り出す。 シェルスクリプトで実行 dcmdump dcmdumpを使うことでDICOMのヘッダー情報を取得することができる。 dcmdumpのインストール $ apt-get insta…

【FSL】大脳基底核(Basal Ganglia)のセグメントと体積(Volume)計測

目的 FSLを用いて大脳基底核(Basal Ganglia)のセグメントと体積(Volume)計測 フォルダ構造 dataフォルダを作成し、その中に各被験者のフォルダ用意。大脳基底核のセグメントに必要な3D-T1WIは各被験者フォルダに<フォルダ名>_vol.nii(.gzも可)というファイル…

【Python】画像の類似度の計算(Dice係数)

目的 NIFTI形式の画像からPythonを使ってDice係数を計算する。 準備 必要となるパッケージは以下の通りです。必要に応じてインストールしてください。 pip3 install nibabel pip3 install numpy pip3 install glob pip3 install pandas フォルダ構造 フォル…

【SPM】画像の解像度の変更(Coregistration)

目的 画像の位置は同じで解像度が異なる2枚の画像の解像度を合わせる SPMのCoregisterを用いる。 方法 1. MATLABからSPMを開く。 spm 2. 上段(spatial pre-processing)からconergister(EST/RES)を選択。 3. Reference Imageに最終的に合わせたい解像度…

線形近似を用いた交絡因子の排除

はじめに データを扱う上で、年齢や測定器、環境などの交絡因子が結果にどのような影響を及ぼすのか。 それらの交絡因子を取り除くにはどうすべきかを、線形近似を用いて解決する。 間違えていたら、ご指摘いただければ幸いです。 従来のz-score 本来のz-sco…

【MATLAB】ComBatを用いた交絡因子の排除 (実践編)

問題 グループ間の差を解析する際、計測した値は、年齢、性別、計測器等の交絡因子の影響を含む。 目的 年齢、性別、計測器等の交絡因子の影響を排除するように計測値を補正する。 詳細は、こちらのManualをみること。 準備 ComBatのDownload データの補正に…

【Python】相関行列 (Correlation Matrix)とヒートマップ (Heat Map)の作り方

目的 Pythonで相関行列 (Correlation Matrix)を作成。 ヒートマップ (Heat Map)で図示。 Better Heatmaps and Correlation Matrix Plots in Pythonを参考にしました。 シンプルなヒートマップ まずは、基本的な相関行列のヒートマップを作成します。 ライブ…

【Python】縦断データの可視化(プロット・箱ひげ図・バイオリン図・信頼区間・ヒストグラム)

目的 Pythonを用いて、縦断データ(beforeとafter)の可視化 主にやることは、 プロット (dot plot) 箱ひげ図 (box plot) バイオリン図 (violin plot) 信頼区間 (CI bar) ヒストグラム (histogram) 最終的には、このような図を作成する。 準備 open-visualizat…

【PyTorch】サンプル⑨ 〜 動的グラフ 〜

目的 PyTorchの特徴の一つである動的グラフに挑戦する。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、…

Pythonを使った株価の自動収集

はじめに 最近、株価を予想するAIを作って欲しいということで、全くいい精度がでる期待もなかったが作ることにした。 過去にkerasやtensorflowを使ってAIを作ったことがあったが、株価を集めることはしたことがなかったのでやり方をまとめておく。 ビックデ…

【PyTorch】サンプル⑧ 〜 複雑なモデルの構築方法 〜

目的 このチュートリアルに至るまでは、ニューラルネットワークモデルの定義を積み木を積み重ねるように単純なシーケンスtorch.nn.Sequentialで構築していました。 このtorch.nn.Sequentialを用いた方法は、モデルの定義が簡単である反面、ネットワーク構造…

【PyTorch】サンプル⑦ 〜 optim パッケージ 〜

目的 PyTorch: optimを参考にPyTorchのoptimパッケージを使って最適化関数(optimizer)を定義する。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで…