chevron_left

メインカテゴリーを選択しなおす

cancel
【初心者向け】基礎&実践プログラミング https://www.aiprogrammers.net/

脳画像解析・人工知能(AI)が専門。 ・初心者がつまづきやすいところ ・最短で実力が身につく方法 をお伝え。 【最近の記事】 ・Python基礎 ・スクレイピング ・機械学習 ・ディープラーニング ・アプリ開発

AIProgrammer
フォロー
住所
未設定
出身
未設定
ブログ村参加

2020/05/02

arrow_drop_down
  • 【脳MRI画像解析入門】FSL/MRtrixを用いたしきい値処理とマスク画像の作成

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉オーム社Amazon 目的 FSLを用いる場合 コマンド ノイズ除去(デノイズ) 複数のラベルから1部のラベルを抽出 MRtrixを用いる場合 コマンド ノイズ除去(デノイズ) 複数のラベルから1部のラベルを抽出 目的 FSL/MRtrixを用いたしきい値処理とマスク画像の作成 FSLを用いる場合 コマンド FSLのfslmathsを用いる。fslmathsは、画像の四則演算からしきい値処理、フィルタリングなど基本的な画像処理を実行することができるコマンドである。 fslmathsのヘルプは、次の通り。 クリックして展開 Usag…

  • 【脳MRI画像解析入門】MRIcron/MRIcroGLを用いたノイズ除去とマスク画像の作成

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 MRIcronを用いる場合 MRIcroGLを用いる場合 目的 MRIcron/MRIcroGLを用いたバイナリーマスク画像の作成 ここでは、拡散MRI(b=0, SE-EPI)の脳周囲にあるノイズ除去するため、マスク画像を生成しノイズを除去する方法を解説する。 まず、画像を見てみる。拡散MRI(b=0, SE-EPI)を信号値0-10のスケールで表示すると、以下のような画像が表示される。この内、脳周囲の白い点々(ごま塩ノイズ)は本来観測すべきではない信号、つまりノイ…

  • 【脳MRI画像解析入門】FSLを用いた構造MRIと拡散MRIの位置合わせ ~Boundary-Based Registration: BBR~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉オーム社Amazon 目的 Boundary-Based Registration (BBR)とは コマンド 使用例 前準備 Boundary-Based Registration: BBB 目的 Boundary-Based Registration (BBR) に基づいた構造MRIと拡散MRIの位置合わせをFSLで実装 Boundary-Based Registration (BBR)とは Doug Greve氏によって開発されたEPI画像(拡散MRIや機能的MRI)用の位置合わせツールで、EPI画像と構造MRI画像(例:T1…

  • 【脳MRI画像解析入門】MRtrixを用いた拡散MRIのマスク画像の作成

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 前準備 拡散MRIのマスク画像の作成 目的 MRtrixを用いた拡散MRIのマスク画像の作成 コマンド MRtrixを用いて拡散MRIのマスク画像の作成するには、dwi2maskを使用する。 dwi2maskのヘルプは、次の通り。 クリックして展開 SYNOPSIS Generates a whole brain mask from a DWI image USAGE dwi2mask [ options ] input output input t…

  • 【脳MRI画像解析入門】MRtrixを用いた拡散MRIのバイアス(信号ムラ)補正

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 前準備 拡散MRIのバイアス(信号ムラ)補正 目的 MRtrixを用いた拡散MRIのバイアス(信号ムラ)補正 コマンド MRtrixを用いて拡散MRIのバイアス(信号ムラ)補正をするには、dwibiascorrectを使用する。 ここでは、ANTsのN4アルゴリズムを用いたバイアス補正を紹介する。ANTsアルゴリズムを使用する場合は、ANTsを前もってインストールしておく必要がある。 dwibiascorrectのヘルプは、次の通り。 クリックして展…

  • 【脳MRI画像解析入門】MRtrixを用いた拡散MRIの前処理 ~歪み・頭の動き・渦電流の補正~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 前準備 歪み補正と頭の動き補正 目的 MRtrixを用いた拡散MRIの前処理(歪み・頭の動き・渦電流の補正) コマンド MRtrixを用いて、拡散MRIの歪み・頭の動き・渦電流を補正するには、dwifslpreprocを用いる(古いMRtrixバージョンではdwipreproc)。 dwipreprocは、FSLのtopupとeddyを用いるので、前もってFSLをインストールしておく必要がある。 dwifslpreprocのヘルプは、次の通り。 クリ…

  • 【脳MRI画像解析入門】拡散MRIからb値ごとに画像を抽出

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 前準備 b=0のみを抽出 b≠0を抽出 b値ごとに抽出 目的 拡散MRIからb値ごとに画像を抽出 コマンド 拡散MRIからb値ごとに画像を抽出するには、MRtrixのdwiextractを用いる。 dwiextractのヘルプは、次の通り。 クリックして展開 SYNOPSIS Extract diffusion-weighted volumes, b=0 volumes, or certain shells from a DWI dataset US…

  • 【脳MRI画像解析入門】MRtrixを用いた拡散MRIのノイズ除去 ~Denoise~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 目的 MRtrixを用いた拡散MRIのノイズ除去(Denoise) コマンド 拡散MRIのノイズ除去には、MRtrixのdwidenoiseを用いる。dwidenoiseは、Marchenko-Pastur PCAを用いたデノイズである。 拡散MRIのノイズ除去は、前処理の一番最初に実行する必要がある。 dwidenoiseのヘルプは、次の通り。 クリックして展開 SYNOPSIS dMRI noise level estimation and de…

  • 【脳MRI画像解析入門】MRtrixを用いたギブズのリンギングアーチファクト(Gibbs ringing)の除去

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 構造MRI(3D-T1WI)への適用 拡散MRIへの適用 目的 MRtrixを用いたギブズのリンギングアーチファクト(Gibbs ringing)の除去 コマンド ギブズのリンギングアーチファクト(Gibbs ringing)を除去するには、MRtrixのmrdegibbsを用いる。 mrdegibbsのヘルプは、以下の通り。 クリックして展開 SYNOPSIS Remove Gibbs Ringing Artifacts USAGE mrdegib…

  • 【脳MRI画像解析入門】NIfTI形式からMIF形式の変換

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 MIF形式とは コマンド 使用例 NIfTI形式からMIF形式に変換 MIF形式からNIfTI形式に変換 おまけ 目的 NIfTI形式からMIF形式の変換 MIF形式とは MIF形式は、MRtrixで使われる画像フォーマットでNIfTIとは異なり、MPGの軸情報(gradient table)やDICOMヘッダー情報が格納されたJSONファイルを組み込むことができる。 コマンド NIfTI形式からMIF形式の変換には、MRtrixのmrconvertを用いる。 mrc…

  • 【脳MRI画像解析入門】DICOM表示ソフト ~MicroDicom~

    目的 MicroDicomとは インストール 操作方法 画像の読み込み 画像の表示 コントラスト調節 DICOMタグ情報 DICOMをPNG/JPG/BMP等の画像に変換 DICOMを動画に変換 目的 MicroDicomを使ったDICOM表示 MicroDicomとは MicroDicomは、Windows上でDICOMの表示・処理・保存をすることができるGUIソフトウェアで、非営利目的であれば無料で利用することができる。 インストール こちらから、MicroDicomをダウンロードする。 64 bitのPCであれば、「Installation package:」の「MicroDicom D…

  • 【脳MRI画像解析入門】 MRIcroGLのインストールと使い方

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 MRIcroGLとは インストール方法 PATHの設定 基本的な使い方 DICOM/NIfTI画像の読み込み 画像の操作 基本的なツールウィンドウの使い方 表示したい断面の選択 複数の断面を一度に表示 ボリュームレンダリング(脳表の表示) 標準脳の開き方 アトラスの重ね合わせ(Overlay) 用意した画像を重ね合わせ(Overlay) 開いている(重ね合わせている)画像を消去 画像の向きの変更 画像のリサイズ 画像の切り取り 画像の鮮鋭化・平滑化 頭蓋除…

  • 【脳MRI画像解析入門】大脳基底核のセグメンテーション

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 頭蓋除去をしていない場合 頭蓋除去を既にしている場合 結果 おまけ 目的 大脳基底核のセグメンテーション コマンド FSLのrun_first_allを用いる。 run_first_allのヘルプは、以下。 Usage: run_first_all [options] -i <input_image> -o <output_image> Optional arguments: -m <method> : method must be one of a…

  • 【脳MRI画像解析入門】NIfTIヘッダーの確認

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 FSLを用いる場合 コマンド 使用例 MRtrixを用いる場合 コマンド 使用例 目的 NIfTIヘッダーの確認 FSLを用いる場合 コマンド FSLのfslhdを用いる。 fslhdのヘルプは次の通り。 Usage: fslhd [-x] <input> -x : instead print an XML-style NIFTI header 基本的な使い方は、以下の通り。 fslhd <入力画像(NIfTI)> 使用例 拡散MRI画像(DWI.nii.gz)のNI…

  • 【脳MRI画像解析入門】画像の向きの確認と修正

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 おまけ 目的 DICOMからNIfTIに変換した画像をFSLの画像ViewerであるFSLeyesで確認すると、FSLeyesでの表示がおかしい(画像の向きがおかしい)ときがある。 例えば、以下のようになる(上段:正常、下段:異常)。 解析をする際に、データあるいは被験者ごとに向きが異なっていると解析エラーを起こす場合がある(例:同一被験者のT1WIとDWIの向きが異なる、FAとアトラス(関心領域)の向き異なる)。特に、FSLで解析する場合には、この…

  • 【脳MRI画像解析入門】 FSLを用いた定量値の計測 ~Sampling~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 最小値と最大値 ボクセル数および容積 平均値と標準偏差 マスク画像を用いた計測 目的 定量値(容積や拡散定量値など)の算出 コマンド FSLのfslstatsコマンドを用いて、定量値を算出することが可能。 fslstatsのヘルプは次の通り。 Usage: fslstats [preoptions] <input> [options] preoption -t will give a separate output line for each 3D …

  • 【脳MRI画像解析入門】FSLを用いた画像の位置合わせ ~Registration~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 位置合わせで使用する変換について 拡大縮小・回転・平行移動・せん断を用いた変換 非線形変換 コマンド FLIRT FNIRT 使用例 同一被験者における脳画像の位置合わせ(剛体変換) 異なる被験者脳の位置合わせ(アフィン変換) 異なる被験者脳の位置合わせ(アフィン変換+非線形変換) 標準空間上にあるラベル(関心領域)を個人脳に位置合わせ(アフィン変換+非線形変換) 目的 位置合わせで使用する種々の変換の理解 拡大縮小・回転・平行移動・せん断を用いた変換 非線形変換 位…

  • 【脳MRI画像解析入門】 FSLを用いたRF/B1バイアス(信号ムラ)補正とセグメンテーション

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 結果 バイアス(信号ムラ)補正 ボクセルあたりの部分容積(存在割合) 脳組織のセグメンテーション 確率マップ 目的 RF/B1バイアス(信号ムラ)補正 脳組織のセグメンテーション(Segmentation) コマンド FSLのfastコマンドを用いる。 fastコマンドヘルプは次の通り。 Usage: fast [options] file(s) Optional arguments (You may optionally specify one o…

  • 【脳MRI画像解析入門】FreeSurferを用いた頭蓋除去 ~Skull-stripping~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 結果 目的 脳画像解析で、対象となる領域は脳実質でありその他の骨・筋・脂肪・眼球等の組織は、解析する上でノイズとなる。そのため、解析精度を高めるには頭蓋を除去することが重要である。 この記事では、FreeSurferを用いて頭蓋を除去する方法を解説する。 FreeSurferを用いた頭蓋除去 コマンド ここでは、FreeSurferの関数であるrecon-allコマンドを用いて、頭蓋を除去する。 基本的な使い方は、次の通り。 # FreeSurfer…

  • 【脳MRI画像解析入門】FSLを用いた頭蓋除去 ~Skull-stripping~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 結果 目的 脳画像解析で、対象となる領域は脳実質でありその他の骨・筋・脂肪・眼球等の組織は、解析する上でノイズとなる。そのため、解析精度を高めるには頭蓋を除去することが重要である。 この記事では、FSLを用いて頭蓋を除去する方法を解説する。 FSLを用いた頭蓋除去 コマンド ここでは、FSLの関数であるBETコマンドを用いて、頭蓋を除去する。 betコマンドのヘルプは次の通り。 Usage: bet <input> <output> [options…

  • 【まとめ】脳MRI画像解析入門

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 はじめに 1. 脳画像解析の準備 2. 脳画像解析の実践 2.1. Viewer 2.2. 前処理 2.2.1. データ準備 2.2.2. 構造MRI 2.2.3. 拡散MRI 2.2.5. 機能的MRI 2.2.6. その他 2.3. 定量値 2.3.1. 構造MRI 2.3.2. 拡散MRI 2.3.3. 機能的MRI 2.3.4. その他 2.4. 統計解析 2.5. ROI解析 2.6. 脳画像解析における結果のまとめ方 2.6.1. 図(Figure)作成 2.6…

  • 【脳MRI画像解析入門】RF/B1バイアス(信号ムラ)補正

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 コマンド 使用例 結果 目的 RF/B1バイアス(信号ムラ)補正 コマンド ここでは、FreeSurferの関数であるAntsN4BiasFieldCorrectionFsコマンドを用いて、信号ムラ補正をする。 AntsN4BiasFieldCorrectionFsは、ANTsの関数である"AntsN4BiasFieldCorrection"を基にしたものであり、補正アルゴリズムとしては、ANTs由来のものである。 AntsN4BiasFieldCorrectionF…

  • 【初心者・入門】Pythonを用いたデータ処理・統計(データサイエンス) ~チュートリアル~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 チュートリアル 0. 準備 1. データ取得 2. CSVファイルを読み込み Pandasを使ったデータフレーム(DataFrame)のアクセス 演算 3. 図示 Matplotlibを用いたシンプルな方法 seabornを用いた図示 4. 簡単なデータクリーニングと探索的分析 目的 Pythonを用いた簡単なデータ処理・統計(データサイエンス) チュートリアル 0. 準備 必要なライブラリをインストールする。 # pip3 install jupyter # pip…

  • 【初心者・入門】Pythonの基本 ~チュートリアル~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 Pythonとは Python基本 コメントアウト 一行をコメントアウト 複数をまとめてコメントアウト 文字列の表示:print 四則演算 論理型(Boolean) 論理演算子:and, or Boolean値の四則演算 比較演算子 文字列処理 Nullオブジェクト:None 変数定義 リスト型 定義 要素を追加 要素を除外 スライス操作 インデックスの確認 結合 ある要素が含まれているか確認 長さ タプル型 定義 長さ 結合 スライス操作 ある要素が含まれているか確…

  • 【初心者・入門】シェルスクリプト(bash)の基本 ~チュートリアル~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 シェルとは シェルスクリプトとは UNIX系OS(Linux, Mac)における基礎知識 パス(絶対パス・相対パス) 絶対パス 相対パス プログラミング言語は、英語の命令文に相当 ファイル名に日本語やスペースを用いない bash基本 文字の表示(コマンド:echo) Brace Expansionの使い方 変数(コマンド:変数=〇〇) 変数の定義 変数の利用 変数の配列処理 配列 配列の定義 配列の利用 現在いるディレクトリの確認(コマンド:pwd) 端末(ターミナル…

  • 【脳MRI画像解析入門】脳画像解析のための環境構築

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 はじめに Lin4Neuroに必要なPCのスペック 1. Lin4Neuroを動かすためのソフト(VirtualBox)をインストール 2. Lin4Neuro(ovaファイル)をダウンロード 3. VirtualBoxに、Lin4Neuro(ovaファイル)をインポート 4. Lin4Neuroの設定 CPUとメモリ(RAM)の設定 共有フォルダの設定 5. Lin4NeuroをVirtualBoxから起動 6. ソフトのインストール トラブルシューティング 起動時…

  • 【脳MRI画像解析入門】MRIの概要

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 MRI理論 構造的画像(structural MRI: sMRI) 機能的画像(functional MRI: fMRI) 拡散画像(diffusion MRI: dMRI) 参考文献 目的 脳画像解析に、必要なMRI知識を簡単に理解 MRI理論 MRIは、水素原子核(1H)の原子核磁気モーメントを計測対象としている。MRIで得られる信号は、原子核磁気モーメント密度のみならず、縦緩和時間・横緩和時間・流速分布・拡散係数・磁化率など、脳あるいは身体組織が持つ多数の因子(…

  • 【脳MRI画像解析入門】脳画像解析の概要

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 脳画像解析とは 脳画像解析の種類と特徴 画像ファイル形式 DICOM(拡張子: .dcm) ANALYZE(拡張子: .hdr/.img) NIfTI(拡張子: .nii) 画像解析一連の流れ 1. DICOMを脳画像解析用のファイル形式に変換(例: DICOM→NIfTI) 2. 画像に問題がないかチェック 3. 前処理 4. 統計解析 脳画像解析とは ブラックボックスといわれてきた脳の研究が、21世紀には飛躍的に進展し、20世紀後半から「21世紀は脳科学の時代」といわれ…

  • 【脳MRI画像解析】ComBatをもちいたデータの調和(Harmonization)

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 背景 準備 使用するデータ data.csv ソースコード Result 目的 多施設MRIデータに含まれる施設間差(MRI装置・撮像条件)の評価 ComBatを用いて施設間差を除去(データの調和) 施設間差補正後の評価 拡散定量値を用いて、施設間差を評価 背景 多施設で取得されたMRIデータは、施設ごとに異なる撮像装置および撮像条件で取得されたものであり、施設間差(site effect)を含む。そのため、この施設間差と本来観測したい個人間の差(ex. 疾患・成長・…

  • 【Python】ROC曲線の作成・AUC算出・最適なカットオフ値の決定・分類正確度 / 感度 / 特異度の算出まで

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 重要な関数 準備 コード 結果 ROC曲線 分類精度 混合行列(Confusion matrix) 目的 Pythonを使ってROC曲線を作成 Youden indexを用いて、最適なcutoff値を決定 AUCおよび分類正確度・感度・特異度を算出 重要な関数 ROC曲線の作成:roc_curve AUCの計算:roc_auc_score 正確度の計算:accuracy_score 以上の関数は、scikit-learnのライブラリである。インストールして…

  • 【脳MRI画像解析ケーススタディ】施設間差の評価 ~拡散定量値の観点から~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 背景 準備 解析手法 1. JHU atlasをSiteAデータに位置合わせ 準備 ソースコード 結果 2. 絶対差マップの生成とJHU atlasを用いたサンプリング 準備 ソースコード 結果 3. 脳領域ごとに絶対差を図示 準備 ソースコード 結果 目的 多施設MRIデータに含まれる施設間差(MRI装置・撮像条件)の評価 施設間差補正後の評価 拡散定量値を用いて、施設間差を評価 背景 多施設で取得されたMRIデータは、施設ごとに異なる撮像装置および撮像…

  • 【Python】DICOMのソート処理

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 準備 ソースコード : dcm_sconv.py 使い方 目的 様々なSeriesDescriptionで撮像されたDICOMデータを、SeriesDescriptionごとにフォルダ分け DICOMをNIfTI変換 Pythonで実行 準備 PythonでDICOMを扱うために、pydicomを用いる。 pip3 install pydicom ソースコード : dcm_sconv.py ソースコードは、次の通り。 以下のファイルを「dcm_sconv.…

  • 【Slack API】自動いいね・ダイレクトメッセージ・投稿収集

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目的 準備 アクセストークンの取得 SlackチャンネルIDの確認 Slackのあるチャネル内の投稿に、自動いいね 使用するAPI コード 使用するAPI コード Slackから投稿コメントを一括収集 使用するAPI コード 結果 目的 Slackのあるチャネル内の投稿に、自動いいね Slackで自動ダイレクトメッセージ Slackから投稿コメントを一括収集 準備 アクセストークンの取得 Slack APIを使用するためには、アクセストークンが必要である。次の手順で、アクセ…

  • 【脳画像解析ケーススタディ】超解像AIの評価 ~大脳皮質解析の観点から~

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 準備 解析手法 1. 皮質厚計測 準備 実行 結果 2. 皮質厚評価 準備 実行 結果 各大脳皮質の分布:data_hist?.png Ground truthに対する相対誤差:Relative_error_in_cortical_thickness.png 平均二乗誤差(MSE)と平均絶対誤差(MAE):MSE_MAE.csv, MAE_result.png, MSE_result.png Ground truthからの絶対差に対する検定:indepen…

  • 【Python スクレイピング】投稿論文情報とインパクトファクターIFを取得

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 背景 方法 ① researchmapから、投稿した論文情報を取得 ② 雑誌のインパクトファクターIFを取得 ③ ①と②を結合して、投稿した論文とインパクトファクターの情報が載ったCSVを出力 目的 researchmapから、投稿した論文情報を取得 雑誌のインパクトファクターIFを検索・追加し、CSVで出力 背景 「学術雑誌等に発表した論文・著書のうち、主なもの(過去5年間)を記載せよ。」 投稿した論文はたくさんあるけど、IFが高くて最近の論文はどれだろ…

  • 【Python】対応のあり・なし、パラメトリック・ノンパラメトリック検定と多重比較補正

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 準備 data.csv ソースコード 結果 対応なし検定の結果(independent_result.csv) 目的 Pythonを使って、対応のあり・なし、パラメトリック・ノンパラメトリック検定と多重比較補正 準備 統計解析には、scipyとstatsmodelsを用いる。インストールしていない場合は、以下のコマンドでインストールする。 pip3 install scipy pip3 install statsmodels 以下のように、データを準備する…

  • 【Python】1要因で分類される対応のない多群の検定・事後検定(post hoc test)

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 準備 data.csv ソースコード 結果 パラメトリック検定の結果(para_result.csv) パラメトリック検定の結果(nonpara_result.csv) 目的 Pythonで、「1要因で分類される対応のない多群の検定(ANOVA or Kruskal-Wallis test)」と「事後検定(Tukey-Kramer or Steel-Dwass test )」 準備 統計解析には、scipyとscikit-posthocsを用いる。インスト…

  • 【画像認識】Pythonを使った物体抽出・切り取り

    動かしながら学ぶ PyTorchプログラミング入門作者:斎藤勇哉発売日: 2020/11/30メディア: Kindle版 目次 目次 目的 用意するデータ image001.jpg image002.jpg image003.jpg ソースコード a.sh 結果 目的 PyThonを用いて物体抽出・切り取りをする。具体的には、画像処理ライブラリであるOpenCVを用いて、画像中に存在する物体(ex. リンゴ, コイン, etc.)それぞれに外接矩形を当てはめる機能がある。その機能を用いて、画像内に存在する物体を抽出・切り取りをする。 用意するデータ dataフォルダ内に、物体抽出したい画像(コ…

  • 【脳画像表示ソフト】MRIcronのインストールと使い方

    目次 目次 目的 使用するソフトウェア 使い方 GUI版 CUI版 MRIcronの機能について 画像の重ね合わせ(Overlay) 画像の透明度の変更 ROI作成 ROIを使った記述統計量の計測 Intensity Filterを使ったMaskの作成 画像の二値化 目的 MRIcronのインストールと使い方 使用するソフトウェア Chris Rorden氏が配布しているMRIcronを用いる。 こちらのリンクから自身のPCのOSにあったものをインストールする。 インストール&圧縮解凍するとmricronフォルダできる。mricronフォルダ内のファイルは次の通り。 使い方 GUI版 mric…

  • 【脳画像解析】Tract-Specific Analysis (TBSS)

    目次 目次 目的 はじめに TBSSの処理内容 データ準備 GLMの準備 実行 結果 有意差の有無の確認(corrected_P_report.txt) 有意差のあった領域の確認(tbss[map name]_tfce_corrp_tstat?_fill.nii.gz) 各脳領域ごとに計測した定量値(all_[map name]_*_mask.txt) alll_MK_mask.txt alll_MK_skeletonised_mask.txt 目的 TBSSを用いた脳画像の統計解析 はじめに 脳画像解析目的は、脳領域ごとの機能や構造を個人としてではなく、典型的なものとして明らかにすることであ…

  • 【まとめ】MRI脳画像解析の基本

    目次 目次 目的 1. 前処理 1.1. DICOMをNIFTIに変換 1.2. 拡散MRIの前処理(歪み補正&頭の動き補正) 2. 定量値の計算 2.1. 基本的な拡散定量値 (DTI/DKI/NODDI) 2.2. DKEを用いた拡散尖度イメージング 2.3. 自由水イメージング(Free-Water Imaging: FWI) 2.3. 脳構造解析 (FreeSurfer) 2.4. 神経白質路の同定 (XTRACT) 3. 画像の統計解析 3.1. TBSS 3.2. GBSS 3.3. FBA 3.4. FLICA 4. その他 4.1. 脳画像解析 4.1.1. ROI解析 4.1…

  • 【脳画像定量値】脳構造解析 (FreeSurfer)

    目次 目次 目的 FreeSurferの概要 準備するデータ 実行 結果 aparc.stats wmparc.stats 目的 構造MRI (3D-T1WI)から、の脳構造を解析 FreeSurferの概要 準備中。。。 準備するデータ 準備するデータは、3D-T1WIのみである。 . └── Subj001.nii.gz 実行 FreeSurferのrecon-allの基本的な使い方は、次の通り。Subjects DIR-sdは、被験者データが集められているフォルダを指定する。 recon-all -i <Input 3D-T1WI> -subjid <Subject ID> -all -…

  • 【脳画像定量値】自由水イメージング(Free-Water Imaging: FWI)

    目次 目次 目的 はじめに 理論 準備するデータ 実行 すべてのb値を使う場合 b値を指定して使う場合 結果 目的 自由水イメージング(Free-Water Imaging: FWI)の解析方法の取得 はじめに 脳拡散MRIの1つのボクセルには、何100万もの神経細胞が存在する。さらにその1つのボクセル内に脳脊髄液 (CSF)や浮腫のような自由水が存在する場合、DTIの定量値は影響を受ける(部分容積効果)。脳画像解析では、神経細胞や神経白質路の状態を正確に評価したいので、これらの自由水の影響を排除して定量値を求めたい。そこで、拡散MRIで得られる信号値は、脳実質 (intracell) と自由…

  • 【脳画像定量値】DKEを用いた拡散尖度イメージング

    目次 目次 目的 Diffusional Kurtosis Estimator (DKE) DKIの概要 準備するデータ b-vectorファイル b1000_bvecs.txt DKEParameters.dat 実行方法 結果 目的 DKEを用いて、Diffusoin MRIからDTIおよびDKIの定量値を算出 Diffusional Kurtosis Estimator (DKE) Diffusional Kurtosis Estimator (DKE) は、DTIおよびDKIの定量値を算出する無償のソフトウェアである。Windows/Mac/Linuxに対応している。 DKIの概要 準…

  • 【脳画像定量値】基本的な拡散定量値 (DTI/DKI/NODDI)

    目次 目次 目的 導入 ソフトウェアの処理 準備するデータとディレクトリ構造 実行 結果 目的 脳画像解析における基本的な拡散定量値 (DTI/DKI/NODDI)を計算 導入 拡散MRIは、単に水分子の拡散状態をMRIの信号値で可視化した画像であるが、MRIの信号値は絶対量ではないので、この画像では群間比較のような相対評価はできない。そこで、拡散MRIから水分子の拡散状態を定量し、絶対量を計算する。定量方法はさまざまであり、次のような手法が提案されている。 拡散テンソルイメージング (Diffusion Tensor Imaging: DTI) Fractional Anisotropy (…

  • 【脳画像前処理】拡散MRIの前処理(歪み補正&頭の動き補正)

    目次 目次 目的 脳画像解析における拡散MRIの問題点 磁化率効果に起因する画像の幾何学的歪み(位相エンコードをAP方向として撮像した場合) 撮像中の頭の動き 使用するソフトウェア TOPUP --datain(Acquisition_parameters)について --indexについて 画像の歪み補正の効果 EDDY 頭の動き補正の効果 サンプルコード 目的 拡散MRIの前処理(歪み補正&頭の動き補正) 脳画像解析における拡散MRIの問題点 拡散MRI (Diffusion MRI) はEcho Planer Imaging (EPI)というシーケンスで撮像されているが、EPIは磁化率効果…

  • 【脳画像前処理】DICOMをNIfTIに変換

    目次 目次 目的 使用するソフトウェア 使い方 GUI版 CUI版 目的 DICOMをNIfTIに変換 使用するソフトウェア Chris Rorden氏が配布しているdcm2niiを用いる。 こちらのリンクから自身のPCのOSにあったものをインストールする。 インストール&圧縮解凍するとmricronフォルダできる。mricronフォルダ内のファイルは次の通り。 使い方 GUI版 mricronフォルダ内の「dcm2niigui.exe」をダブルクリックしてdcm2niiを起動する。 dcm2niiを起動すると、次のようなウィンドウが表示される。「Output Format:」はDICOM変換…

  • 【FreeSurfer】FreeSurferの3D-T1WI前処理を使ってSkull Strip

    目的 FreeSurferの3D-T1WI前処理を使ってSkull Strip 必要なデータ T1.nii.gz: 3D-T1WI $ ls T1.nii.gz 実行 fslreorient2stdでMNI152のOrientationに合わせる recon-allのオプション-autorecon1で3D-T1WIのSkull Stripまで実行 FreeSurferのSkull Stripでは、Skull Strip後のマスク(mri/brainmask.mgz)が出力されるので、それを前処理済みの3D-T1WI(mri/T1.mgz)に適応 rT1_brain.nii.gzがSkull S…

  • 【FSL】XTRACTを用いたトラクトグラフィー

    目的 XTRACTを用いたトラクトグラフィー(Tractography) 主要白質路の抽出 XTRACT XTRACTの論文はこちら www.sciencedirect.com XTRACTのドキュメントはこちら fsl.fmrib.ox.ac.uk XTRACTによって以下の白質路がトラクトグラフィーによって抽出される。 Tract Abbreviation Left/Right? Seeding Strategy Association Fibres Arcuate Fasciculus AF Yes Reverse-seeding Frontal Aslant Tract FA Yes …

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

    目的 FDT pipelineを用いて、個人のDiffusion画像と標準空間(MNI空間)の構造画像の位置合わせ 必要なファイル 必要なファイルは次の通り。 BEDPOSTXの使い方はこちら。 . ├── DTI.bedpostX # BEDPOSTXの出力フォルダ ├── T1.nii.gz # BET前のBrain 3D-T1WI (FNIRT用) └── T1_brain.nii.gz # BET後のBrain 3D-T1WI (FLIRT用) 実行 ターミナル(端末)でfslと入力。 fsl Windowが立ち上がったら、「FDT diffusion」を選択。 各項目ごとにファイルを…

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

    目的 FLICAを用いた画像のマルチモーダル主成分分析(ICA) リポジトリ FLICAに必要なスクリプトを次のコマンドで取得。今のところプライベートリポジトリにしています。ご興味のある方はコメントしてください。 git clone https://github.com/Hexans/FLICA_corrected.git 必要なデータ 必要なデータは、モダリティごとに全ての被験者の画像がまとめられた4D画像である。例えば、次のようなファイルを用いる。 VBM: GM_mod_merg_s?.nii.gz TBSS: all??skeletonised.nii.gz FreeSurfer: ?…

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

    目的 LinuxのターミナルからSPMを操作 リポジトリ 例は、GitHubのリポジトリに保存してある。 github.com 1_Applywarp_MNI2Subj 目的 被験者のDWI空間からMNI空間への変換行列を用いて、MNI空間上にあるROIをDWI空間へ移動させる 必要なファイル 必要なファイルは次の通り。 b0.nii.gz: DWIのb=0画像 1mm_ROI[L, R]3_MNI_relabel_group.nii.gz: MNI空間上の黒質ROI diff2MNI_sn.mat: 被験者のDWI空間からMNI空間への変換行列 NIfTI_20130306: NIFTIをM…

  • 【Python】箱ひげ図の作り方

    目的 Pythonを使って箱ひげ図(BoxPlot)を作成 1つの図に3群の結果をプロット データ準備 行に各被験者、列にIDと各被験者のlabel、さらに各定量値が来るようにデータをまとめる。以下のデータは、その一部である。 この例では、以下のデータを「dataset.csv」として保存。 ID label AD ADfwe MD MDfwe RD RDfwe AK MK RK ICVF ISO AVF FA fafwe freewater MVF gratio OD T1 T2 R1 R2 PD CC001 0 1.139126 1.084 0.767302 0.602 0.566298 …

  • 【Tractography】拡散MRIを用いたTractographyの基本

    目的 準備するデータ Seed imageの作成方法 MRIcron ITK-SNAP Tractography 結果の表示 コマンドから表示する場合 Manualで開く場合 seed imageを変更した後にもう一度Tractographyをしたい場合 Colour-Encoded FA 目的 拡散MRIを用いたトラクトグラフィー(Tractography)の生成の基礎 準備するデータ 準備するデータは次の通り。b-valueは0, 2000のSingle-shell data。 seedは、Tractographyをする際のTractの出発点をBinary ROIで定義したファイル。 . …

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

    目的 DWIからDWIのmaskを生成 コマンドは、MRtrix3のdwi2maskを用いる dwi2maskの使い方 dwi2maskに必要なのは、DWIとその軸情報。NIFTIからMIFに変換する際にb-vectorやb-valueといった軸情報を織り込んでいれば-fslgrad <bvecs> <bvals>の指定は必要ない。 $ dwi2mask -fslgrad <bvecs> <bvals> input output データ準備 次のようなデータがあったとする。dwi.nii.gzがDWIデータでその他のbvals/bvecsが軸情報。 $ ls bvals bvecs dwi.n…

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

    目的 拡散MRIをDTIFITを用いてDTI解析 DTIFITの基本的な使い方 必要なデータは以下。 DWI images b-vectors file b-values file DTIFITを実行するには次のコマンドを実行する。<>の中身を自身の持っているファイル名に適宜置き換える。は任意。ドルマーク$は、入力する必要はない。以下同様。 $ dtifit -k <DWI images> -o <OUTPUT> -m <MASK> -r <b-vectors file> -b <b-values file> データが一つの時 DTI解析に必要なファイルは次の通り。Sub001のフォルダにDW…

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

    目的 ラット・マウスのMRIデータを前処理 拡散MRIから得られる定量値計算 Atlasを用いた脳領域ごとの定量値算出 予備知識 Diffusion Kurtosis Imaging(DKI)の基礎と技術開発 www.innervision.co.jp 拡散 MRI 解析における数理的基礎と応用 準備 準備されたデータは次の通り。 $ tree . . ├── HRT2.nii # 3D-T2WI ├── MToff.nii # MT saturation imaging (OFF) ├── MTon.nii # MT saturation imaging (ON) ├── b1000.bva…

  • 【FSL】BEDPOSTXの使い方

    目的 BEDPOSTXの利用方法の取得 BEDPOSTX BEDPOSTXの実行には、次のようなファイルが必要。 さらに、ファイル名は次のようにしておく必要がある。 Sub001/ ├── bvals # DWIのGradient Table ├── bvecs # DWIのGradient Table ├── data.nii.gz # DWI └── nodif_brain_mask.nii.gz # b=0のマスク BEDPOSTXは、次のコマンドで実行できる。 bedpostx Sub001 # Usage: bedpostx <subject directory> [options]…

  • 【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, 後頭葉:…

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

    目的 TBSS(Tract-Based Spatial Statistics)で出た有意領域をマスクとしてDiffusion mapなどの画像定量値を計測 ソースコード TBSSの結果が格納されているフォルダ(「stats」フォルダ)で以下のコードを実行。 この例では、健常群と患者群の2群比較をした結果を用いている。 c1: 患者群 > 健常群 c2: 患者群 < 健常群 の片側検定の結果をまとめている。 手順は次の通りです。 corrected p mapを0.95でしきい処理することで有意差のあった領域のマスクを作成 1.のマスクを用いて各被験者の画像定量値を計測 skeletonised…

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

    目的 スクレイピングでよく使うテキスト処理を取得 はじめに 最近、戦友がねこちゃんを飼いました☆ しっぽが鍵(key(キー))みたいだから「きぃくん」と呼ぶそうです。 とっても可愛いので毎日みています! よかったらインスタグラムフォローおねがいします! https://www.instagram.com/keykun_0501/ また、ここで扱ったソースコードはGitHubにあげてありますのでもしよろしければお使いください。 github.com スクレイピング まずはじめに、インスタグラムからきぃくんのアカウントにアクセスします。 事前に許可はとってあります! 画像を保存するために、右クリッ…

  • 【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 (standard) space)にあるJHU-ICBM-labels-1mm.nii.gz、JHU-ICBM-tracts-maxprob-thr25-1mm.nii.gz をDWI空間に位置合わせしてR…

  • 【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 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 3 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 3 3 3 3 3 3 3 3 3 3 3 3 …

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

    目的 コーエンの重み付きカッパ(k)係数(Cohen's kappa)をPythonで計算 scikit-learnのインストール カッパ係数の計算には、scikit-learnを使うと簡単にできます。scikit-learnをインストールしていない場合は、以下のコマンドを実行してインストールしてください。 $ sudo pip3 install scikit-learn データの準備 正解のラベル(クラス)を「y_true」の列に、AIの予測ラベルを「y_pred」の列に記載し、「label.csv」として保存。 label.csv y_true y_pred 0 0 0 1 1 1 1 2…

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

    目的 関心領域ROI(VOI)内の画像の定量値を計測 計測コマンド FSLのfslstatsを使う。 各オプションは、以下の通り。 -K: 関心領域ROI -M: ROI内の平均値の算出 fslstats -K <ROI> <input> -M 複数人被験者がいる場合 複数人の被験者がいる場合、以下のようなフォルダ構造にならって各被験者ごとにファイルを用意し、後述するソースコードを実行することで、すべての被験者の計測結果をresult_mapstats.csvにまとめてくれる。 フォルダ構造 data ├── sub001 │ ├── basalganglia_roi_in_qsm.nii.g…

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

    目的 異なる画像(NIFITI形式)の位置合わせをAffine変換(平行移動+線形変換)を用いて実行する。 FSLを用いて実装します。 必要なファイル T1WI: t1.nii.gz QSMの元画像: qsm_raw.nii.gz QSMの定量マップ: qsm_map.nii.gz 大脳基底核のROI: basalganglia_roi.nii.gz MRIで撮像したT1WIをquantitative susceptibility mapping(QSM)に位置合わせします。 QSMの撮像で得られた画像(QSMの元画像)をもとにQSMの定量マップが計算されます。 basalganglia_ro…

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

    目的 並列でプログラムを実行したい場合、データセットを小分けにしたい場合がある。小分けにする数が多いほど手間がかかる。 そこで、以下を目的とする。 シェルスクリプトを使ってデータセット(ファイルやフォルダ)を小分けにする フォルダ構造 フォルダ内にテキストファイルが100個あります。 . ├── 001.txt ├── 002.txt ├── 003.txt ... └── 100.txt ソースコード ソースコードは、以下の通りです。folder_nでいくつのフォルダに分けるかを指定してください。この例では、100個のテキストファイルを10個のフォルダ(batch??)に分けます。 時折、均…

  • 【Linux】DICOMのソート処理

    目的 様々なSeriesDescriptionで撮像されたDICOMデータから特定のSeriesDescriptionのDICOMデータのみを取り出す。 シェルスクリプトで実行 dcmdump dcmdumpを使うことでDICOMのヘッダー情報を取得することができる。 dcmdumpのインストール $ apt-get install dcmtk 使い方 使い方は、dcmdumpのあとにDICOM fileを指定するだけです。 タグごとに情報が吐き出されます。 $ dcmdump <DICOM file> フォルダ構造 一つのフォルダにすべてのDICOMデータが入っていれば、フォルダ構造はどのよ…

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

    目的 FSLを用いて大脳基底核(Basal Ganglia)のセグメントと体積(Volume)計測 フォルダ構造 dataフォルダを作成し、その中に各被験者のフォルダ用意。大脳基底核のセグメントに必要な3D-T1WIは各被験者フォルダに<フォルダ名>_vol.nii(.gzも可)というファイル名で入れておく。 segcalc_basalganglia.sh # ソースコード data ├── Sub001 │ └── Sub001_vol.nii ├── Sub002 │ └── Sub002_vol.nii └── Sub003 └── Sub003_vol.nii ソースコード 以下のコー…

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

    目的 NIFTI形式の画像からPythonを使ってDice係数を計算する。 準備 必要となるパッケージは以下の通りです。必要に応じてインストールしてください。 pip3 install nibabel pip3 install numpy pip3 install glob pip3 install pandas フォルダ構造 フォルダ構造は以下の通りです。image1とimage2に比較したい画像をいれてください。比較したい画像同士が比較できるようにimage1とimage2の並び順は対応させておいてください。calc_dice.pyはDice係数を計算するためのPythonスクリプトです。…

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

    目的 画像の位置は同じで解像度が異なる2枚の画像の解像度を合わせる SPMのCoregisterを用いる。 方法 1. MATLABからSPMを開く。 spm 2. 上段(spatial pre-processing)からconergister(EST/RES)を選択。 3. Reference Imageに最終的に合わせたい解像度の画像を選択する。Source Imageに変換したい画像を選択する。 4. Reslice Options/InterplationをNearest neighborに設定する。 5. Run batch(緑色の△)から動かす。 6. 解像度が変更(Coregis…

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

    はじめに データを扱う上で、年齢や測定器、環境などの交絡因子が結果にどのような影響を及ぼすのか。 それらの交絡因子を取り除くにはどうすべきかを、線形近似を用いて解決する。 間違えていたら、ご指摘いただければ幸いです。 従来のz-score 本来のz-score 新たなz-score 頑張れ!、喝!!の代わりにB!ブックマークを押していただけるとただただうれしいです(^^)! ↓

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

    問題 グループ間の差を解析する際、計測した値は、年齢、性別、計測器等の交絡因子の影響を含む。 目的 年齢、性別、計測器等の交絡因子の影響を排除するように計測値を補正する。 詳細は、こちらのManualをみること。 準備 ComBatのDownload データの補正には、ComBatというSoftwareを用いる。 ComBatのサイトから、必要なファイルをダウンロードする。 (Qiitaの画像アップロード月制限で画像載せれません。) パスを通す MATLABを起動し、Downloadした、"./Matlab/scripts/"にパスを通す。 パスの追加方法は、こちら。 または、[パスの設定] …

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

    目的 Pythonで相関行列 (Correlation Matrix)を作成。 ヒートマップ (Heat Map)で図示。 Better Heatmaps and Correlation Matrix Plots in Pythonを参考にしました。 シンプルなヒートマップ まずは、基本的な相関行列のヒートマップを作成します。 ライブラリのインポート import seaborn as sns import pandas as pd from matplotlib import pyplot as plt from pylab import rcParams データの読み込み Automobi…

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

    目的 Pythonを用いて、縦断データ(beforeとafter)の可視化 主にやることは、 プロット (dot plot) 箱ひげ図 (box plot) バイオリン図 (violin plot) 信頼区間 (CI bar) ヒストグラム (histogram) 最終的には、このような図を作成する。 準備 open-visualizationsのダウンロード 縦断データの可視化は、open-visualizationsを用いると簡単にできる。 GitHubのリモートリポジトリからopen-visualizationsをダウンロードする。 $ git clone https://github.…

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

    目的 PyTorchの特徴の一つである動的グラフに挑戦する。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、コマンドの実行結果です。 >>> print("PyTorch") # コマンドラインに打ち込む PyTorch # 出力結果 これまで、勉強してきた内容は以下。 チュートリアル 【PyTorch】チュートリアル(日本語版 )① 〜テンソル〜 【PyTorch】チュートリアル(日本語版 )② 〜AUTOGRAD〜…

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

    目的 このチュートリアルに至るまでは、ニューラルネットワークモデルの定義を積み木を積み重ねるように単純なシーケンスtorch.nn.Sequentialで構築していました。 このtorch.nn.Sequentialを用いた方法は、モデルの定義が簡単である反面、ネットワーク構造も簡素なものしか作ることができません。 例えば、torch.nn.Sequentialでは、ResNetネットワーク構造を構築することがきません。 (Credit:Deep Residual Learning for Image Recognition. Kaiming He, Xiangyu Zhang, Shaoqi…

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

    目的 PyTorch: optimを参考にPyTorchのoptimパッケージを使って最適化関数(optimizer)を定義する。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、コマンドの実行結果です。 >>> print("PyTorch") # コマンドラインに打ち込む PyTorch # 出力結果 これまで、勉強してきた内容は以下。 チュートリアル 【PyTorch】チュートリアル(日本語版 )① 〜テンソル〜 …

  • 【PyTorch】サンプル⑥ 〜 nn パッケージ 〜

    目的 PyTorch: nnを参考にPyTorchのnnパッケージを扱う。 nnパッケージの便利さを感じる。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、コマンドの実行結果です。 >>> print("PyTorch") # コマンドラインに打ち込む PyTorch # 出力結果 これまで、勉強してきた内容は以下。 チュートリアル 【PyTorch】チュートリアル(日本語版 )① 〜テンソル〜 【PyTorch】チュ…

  • 【Python】DICOMからPNGやCSVに変換

    はじめに AIを作成するために、MRI画像をDICOM形式からPNG形式あるいはCSV形式に変換する必要があった。 件数は1700件ほど。 有名なものとしてはDICOM Cenverterがあるが、大量のDICOMをInputすると固まってしまう。 (199.99$で買わなきゃいけないのか??) そこで、pythonを使ってDICOMからPNG形式あるいはCSV形式に変換するコードを作成した。 前準備 DICOMの読み取りに必要なpydicomとPNGとして保存する上でひつようなopencv-pythonを用意する。 $ pip3 install pydicom $ pip3 install …

  • 【FSL】Atlas(アトラス)を1枚1枚はがして別々にする方法

    目的 FSLを用いて、atlas(アトラス)のlabel(ラベル)を1枚1枚はがして別々にする。 例として、AAL atlasを用いる。 atlasの用意 今回のターゲットとなるatlasはAAL atlas。 1から116の画素値を持つ。 label listの作成 labelの番号(画素値)ごとの領域名を一列にしてテキストに保存する。 label_list.txt AAL001_Precentral_L AAL002_Precentral_R AAL003_Frontal_Sup_L AAL004_Frontal_Sup_R AAL005_Frontal_Sup_Orb_L AAL006_…

  • 【Linux】DICOMから被験者の情報を一括自動収集

    はじめに 200件ちかいMRIのDICOMから被験者の - 名前 - ID - 生年月日 - 性別 - 年齢 - 検査日 を表にまとめる。 手作業では、いつまで経っても終わらないのとコピペのミス等のHuman Errorが出る可能性があるのでPCにまかせるプログラムを作成した。 dcmdumpを使うととても便利。 作業環境 $ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.4 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.4 LTS" VERSI…

  • 【Python】MAEとRMSEの計算方法

    目的 Pythonを使って平均絶対誤差(Mean Absolute Error:MAE)と二乗平均平方根誤差(Root Mean Squared Error:RMSE)を計算する。 準備 CSVファイルに2変数のデータを書き込む。 1列目はLabel、2列目はAIの予測値(Predicted)。 今回はdata.csvとして保存する。 label predicted 0.11 -0.615615 0.86 0.29520833 . . . . . . -0.14 -0.2419486 必要なpackageのdownload Terminal(端末)を開いて、以下のコマンドをタイプして必要なパッ…

  • 【機械学習】Random Forestで疾患分類

    (Credit: Decision tree icon Royalty Free Vector Image - VectorStock ) 目的 自分のメモ用。 Random Forestを使って疾患Aと疾患Bを分ける。 入力したバイオマーカの内どれが重要かを調べる。 UCLの先行研究では、Accuracy74.0%だったのでそれを超えることが目標。 作業環境 $ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.3 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu…

  • 【PyTorch】サンプル⑤ 〜Static Graphs(静的グラフ)〜

    目的 Deep Learning(ディープラーニング)で、よく使われるTensorFlowを使って計算グラフの設計からニューラルネットワークの学習をする。 PyTorchが採用している動的グラフを理解するために、静的グラフの代表であるTensorFlowに触れる。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、コマンドの実行結果です。 >>> print("PyTorch") # コマンドラインに打ち込む PyTorc…

  • 【PyTorch】サンプル④ 〜Defining New autograd Functions(自動微分関数の定義)〜

    目的 PyTorchのチュートリアルPyTorch: Defining New autograd Functionsを参考にPyTorchテンソル(tensor)と自動微分(autograd)を使って、損失(loss)や重み(weight)の計算をする。 前回の、【PyTorch】サンプル③ 〜TENSORS AND AUTOGRAD(テンソルと自動微分)〜では、自動微分の基本的な扱いをご紹介しました。 今回は、前回使用した自動微分のコードを関数化してみましょう。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧くだ…

  • 【PyTorch】サンプル③ 〜TENSORS AND AUTOGRAD(テンソルと自動微分)〜

    目的 PyTorchのチュートリアルPyTorch: Tensors and autogradを参考にPyTorchテンソル(tensor)と自動微分(autograd)を使って、損失(loss)や重み(weight)の計算をする。 これまでは、PyTorchに実装されている自動微分機能を使わずにニューラルネットワークのパラメータの勾配を計算していましたが、PyTorchの自動微分(autograd)機能を使うとパラメータの勾配計算を簡単にすることができます。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください…

  • 【PyTorch】サンプル② 〜TENSOR (テンソル) 〜

    目的 PyTorchのチュートリアルPyTorch: Tensorsを参考にPyTorch Tensor(テンソル)を使って、損失(loss)や重み(weight)の計算をする。 PyTorchの特徴の一つである、テンソルとNumPyの違いを手を動かしながら感じる。 NumPyを用いた例は、こちらから。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、コマンドの実行結果です。 >>> print("PyTorch") #…

  • 【PyTorch】サンプル① 〜NUMPY〜

    目的 PyTorchのチュートリアルWarm-up: numpyを参考にNumpyを使って、損失(loss)や重み(weight)の計算をする。 PyTorchの特徴の一つである、テンソルとNumpyの違いを理解するための前準備。 前準備 PyTorchのインストールはこちらから。 初めて、Google Colaboratoryを使いたい方は、こちらをご覧ください。 コマンドラインの「>>>」の行がPythonで実行するコマンドです。 それ以外の行は、コマンドの実行結果です。 >>> print("PyTorch") # コマンドラインに打ち込む PyTorch # 出力結果 これまで、勉強し…

  • 【Python】NIFITIからPNGへ変換 (COVID-19[新型コロナウイルス] CT例)

    目的 NIFTIからPNGへ変換 NIfTI-Image-Converterを使用する。 COVID-19(新型コロナウイルス)患者のCTデータを例に、NIFTIからPNGへと変換していく。 準備 パッケージのインストール shutilは、404のアクセスエラーが生じるが、ほっておいてもOK(2020/04/20)。 scipyに関しては、scipy.misc.imsaveのモジュールがversion 1.1.0以下でないとないためあえて古いバージョンでインストール。 scipy.misc.imsave — SciPy v1.1.0 Reference Guide pip3 uninstall…

  • Registration-free Distortion Correction of Diffusion Weighted MRI ~Synb0-DisCoの実装~

    目的 2種類のPhase Encodingを撮像していないDiffusion dataであってもFSLのTOPUPのように歪み補正(distortion correction) 1.を実現するためにSynb0-DisCoを実装 参考文献はこちら。 前準備 環境構築 実装には、DockerあるいはSingularityのいずれかをインストールしている必要があります。 Dockerのインストールは、こちら。 Singularityのインストールは、こちら。 フォルダ構造 Synb0-DisCoで必要なのは以下のファイルです。 T1WI (T1.nii.gz) DWIのb=0の画像 (b0.nii.…

  • 【LINE bot】おいら、だじゃレンジャー!その2

    はじめに 以前の作成した、だじゃレンジャーLINE botの更新。 問題点 小学生には難解な漢字が多く読めない。 与えられたお題(キーワード)でだじゃれを返せない場合、botからのレスポンスがなく、利用者が不安に。 目的 漢字にフリガナをふる。 だじゃれを返せない場合は、返せない旨を伝える。 コード 1. 漢字にフリガナをふる。 こちらの記事を参考にした。 手順としては、 Mecabで形態素解析 漢字であればふりがなをふる。ふりがなは形態素解析の結果を用いる。 ふりがなは括弧書き()で、送り仮名はふりがなとは別に()の外に表示。 furigana.py import sys import Me…

  • 【Python GUI】Tkinterを使ったDICOMのコントラスト調節とBMP変換

    目的 コード保存。中身は汚い。 DICOM画像を任意のコントラストに調節しBMPに保存。 コントラスト調節の式が怪しいかも。 コード import cv2 import numpy as np import glob import os import shutil import os, tkinter, tkinter.filedialog, tkinter.messagebox from tkinter import filedialog import pydicom #from pydicom.data import get_testdata_files def adjusted_WL_W…

  • 【Deep Learning】SONY neural network consoleをCUIから実行

    コード内容 コード保存のため投稿。 コードは汚い。 SONYが開発した、neural network console(NNC)をCUIから実行。SONYが提供しているNNablaライブラリを使用する。 準備 NNCのProject File(*.sdcproj) Neural networkのArchitecture(*.nntxt) 学習したparameter(*.h5) Testするinput data(*.csv) 実行 #!/bin/bash #delete previous output rm output_result.csv #folder_dir=`pwd` sdcproj=`…

  • 【Python】if文を使ったファイル操作

    問題 フォルダが100個あり、その中に2つの画像が入っているべきである。 しかし、フォルダによっては1つしかない場合がある。 目的 1つしか画像が入っていないフォルダのみを”mada”フォルダに集める。 コード import os, glob import shutil if not os.path.isdir('mada'): os.makedirs('mada') path = os.getcwd() # ファイルもフォルダも混ざったリスト files = os.listdir(path) # フォルダのみのリスト dirs = [f for f in files if os.path.i…

  • 【Bash】ファイル名一括変換

    はじめに フォルダ構造が複雑であり、リネームしたいファイルが散らばっているときに有効なリネーム方法。 実行 この例だと、".nii.gz"という拡張しがあるファイルはすべてAAA.nii.gzというファイルにリネームするといったもの。 find . -name "*.nii.gz" xargs -i echo 'rename "$(basename {})" AAA.nii.gz {}' bash

  • 【LINE bot】おいら、だじゃレンジャー!

    はじめに 前回のLINE botの記事でオウムがえしのLINE botを作成したぞ! ちびっこのみんなに好かれたくお題を与えるとそのお題にまつわる だじゃれを返すLINE botを作成することにしたんだ😁 LINE botの登録、作成、Herokuへのデプロイ等は 前回のLINE botの記事を参考にしてくれ👍 完成品 できあがりはこんな感じなんやで! ぜひとも友達登録してくれよな😁 準備 Procfile (Herokuで実行するコマンド) requirements.txt (main.pyを動かす上で必要なパッケージ) runtime.txt (使用する言語とバージョン) main.py …

  • 【Python】ランダムフォレストで疾患分類〜LDAも交えて〜

    はじめに 過去の記事でランダムフォレストを使って疾患分類をしたが、そのアップデート版。 今回は、データの標準化およびLiner Discriminant Analysis(LDA)を追加した。 また、結果のまとめがみれるようにClassification ReportとConfusion Matrixが出力されるようにした。 LDA LDAは、変量の次元を圧縮した特徴量を抽出します。 主成分分析では、各データの分散が最大となるような直行する線を抽出する方法であるのに対し、LDAは、分類するクラスを最もよく分離する直線を引き、そこから1次元に線形写像する方法である。LDAは、主成分分析よりも精度…

  • LINE botの作成 〜作成・デプロイ・起動まで〜

    はじめに LINE botを作りたくなったので練習がてら、オウム返しのLINE botに挑戦。 その時のメモ、日記。 環境 Ubuntu 18.04.3 LTS Python 3.6.8 Flask==1.1.1 line-bot-sdk==1.15.0 Heroku 必要なパッケージのインストール $ pip3 install flask $ pip3 install line-bot-sdk 目標 出来上がりはこのようになります。 LINEのQRコードリーダーで以下のQRコードを読み込んでください。 なにかコメントするとオウム返ししてくれます。 登録 LINE Developers LIN…

  • PythonによるDiffusion MRIのbvec fileの極性変更

    はじめに diffusion MRIで重要なMPGのGradient Tableであるbvecの極性がMRI装置と解析ソフトウェアで互換性がない。 被験者は200人以上いるため、一人ひとり手直しするのは困難である。 そこで、Pythonでbvec fileの中の極性を任意に変更できるスクリプトを作成した。 FSLやMRtrixではbvecの極性を修正するコマンドはないんじゃないかな? コードの中身 パッケージのインポート import pandas as pd import numpy as np from argparse import ArgumentParser コマンドライン引数の設定…

arrow_drop_down

ブログリーダー」を活用して、AIProgrammerさんをフォローしませんか?

ハンドル名
AIProgrammerさん
ブログタイトル
【初心者向け】基礎&実践プログラミング
フォロー
【初心者向け】基礎&実践プログラミング

にほんブログ村 カテゴリー一覧

商用