Satoshi Kume
211104 @ BioC Asia 2021 Workshop
Rにおけるバイオ画像解析入門
Introduction to Bioimage Analysis in R
バイオ画像解析の背景・現状
From Molecular Biology of the Cell. 4th edition.
可能になってきた
近年、網羅的な形態情報(Morphome)/顕微鏡の画像データを「オミックス」として扱うトレンドがある
久米, 村川: 顕微鏡 55 巻1 号, 2020
John M Lucocq et al, Trends Cell Biol. 5(2):59-6., 2015.
バイオ画像のデータベース
https://www.ebi.ac.uk/bioimage-archive/
Williams et al, Nature Methods 14: 775–781, 2017.
Iudin et al, Nature Methods 13(5): 387-8, 2016.
Lawson et al, Nucleic Acids Res 4;44(D1): D396-403. 2016.
EMBL-EBIが主となって、公共の画像データベースを整備中。
登録すれば、データDOIがもらえる。
クオイオ電顕の普及が大きい (特に構造生物学)。
今回の内容 〜バイオ画像解析に向けての取り組み〜
・ Rにおける基本的な画像処理
Rへの画像の読み込み・書き出し、リサイズ etc
・ 教師付きバイオ画像データの取得
・ 画像セグメンテーション (領域分割)
- 非階層クラスタリング(k-means)
- U-NETモデル
Rにおける画像とは何か?
画像は、数値のアレイ (配列) として扱われる。
アレイは、3次元以上のデータ構造をもつR data objectである。
(ラスター画像: ピクセルに色値(e.g. 16進数カラーコード)を割り当てたアレイ)
4 次元アレイ: 2D画像データセット
・画像枚数
・幅のピクセル(数)
・高さのピクセル(数)
・色チャネル(数) (e.g. Gray, RGB)
5 次元アレイ: 3D画像データセット
・画像のセット数
・幅のピクセル(数)
・高さのピクセル(数)
・Z軸(時間、奥行き)のピクセル(数)
・色チャネル(数)
要素 ex. numeric
【調査】Bioconductor内で「image」で検索した結果
Bioconductorで、image関係はこれだけ。
AnnotationData、Workflowではゼロ。
210609 調査結果
主に使用するパッケージ
BioImageDbs:
機械学習用の教師ラベル付きの画像アレイデータを提供するBioconductor/ExperimentHubパッケージ
rMiW: (開発中、近々 Bioconductorに登録予定)
顕微鏡画像データの解析ワークフローを提供するパッケージ
バックエンド: keras, tensorflow, EBImage
EBImage:
Rで基本的な画像処理を行うための関数群を提供するBioconductorパッケージ
主に使用するパッケージ
BioImageDbs:
機械学習用の教師ラベル付きの画像アレイデータを提供するBioconductor/ExperimentHubパッケージ
rMiW: (開発中、近々 Bioconductorに登録予定)
顕微鏡画像データの解析ワークフローを提供するパッケージ
バックエンド: keras, tensorflow, EBImage
EBImage:
Rで基本的な画像処理を行うための関数群を提供するBioconductorパッケージ
EBImage: Rで画像処理を行うための関数群
(基本関数)
画像の読み込み: readImage()
画像の書き出し: writeImage()
可視化: display()
Imageオブジェクト管理: Image(), is.Image(), imageData()
(処理系)
画像の結合: combine()
画像の移動・回転など:
transpose(), rotate(), translate(), flip(), flop()
画像サイズの変更: resize(), affine()
画像フィルター: filter2(), gblur(), medianFilter()
膨張・収縮フィルタ処理: erode(), dilate()
簡易セグメンテーション: otsu(), watershed(), propagate()
領域充填: fillHull(), floodFill(), paintObjects()
Pau G, Fuchs F, Sklyar O, Boutros M, Huber W (2010). “EBImage—an R package for image processing with applications to cellular phenotypes.” Bioinformatics, 26(7), 979–981. doi: 10.1093/bioinformatics/btq046.
実行例(1): 画像の読み込み / Image object
実行例(2): 画像の表示 (マウス腎臓のHE染色像)
実行例(3):
画像の回転など
(Image objectに対する処理)
実行例(4):
画像の重ね合わせ
Rでのアレイ処理のTips:
drop=FALSEの設定で、
データ抽出における結果のベクトル化やアレイの変形を防ぐことができる
主に使用するパッケージ
BioImageDbs:
機械学習用の教師ラベル付きの画像アレイデータを提供するBioconductor/ExperimentHubパッケージ
rMiW: (開発中、近々 Bioconductorに登録予定)
顕微鏡画像データの解析ワークフローを提供するパッケージ
バックエンド: keras, tensorflow, EBImage
EBImage:
Rで基本的な画像処理を行うための関数群を提供するBioconductorパッケージ
BioImageDbsのコンセプト
〜 R上で教師ラベル付きのアレイデータに簡単アクセス 〜
画像データリポジトリ
・ 画像リポジトリによって、フォーマットがバラバラ。
・ 画像データ to 4D/5Dテンソルへの変換プログラムを都度書くのは面倒
・ 統一されたRフォーマット(e.g. Rds, Tensor/Array)で扱いたい
R環境で
すぐにデータ解析に使いたい。。。
BioImageDbsで提供している画像前処理の概要
2D 画像
(raw data)
多次元アレイ
(テンソル構造: 4D, 5D)
変換
2D 教師ラベル画像
(raw data)
変換
多次元アレイ
(テンソル構造: 4D, 5D)
整数値を保持
8/16bit
- Training
- 画像 (raw data)
- 教師ラベル
- Test for training
- 画像 (raw data)
- 教師ラベル
- Validation data
Ex. データセット
の分割 / CV
Bioconductorで公開
機械学習/Deep learning
に使う
List形式
(R arrays)
結合
R data file (Rds)
Save
BioImageDbsが提供する公開画像データセット
電子顕微鏡で得られた組織・細胞像
光学顕微鏡で得られたタイムラプスデータ
Rds以外に、GIFアニメーション(可視化の結果) も提供
今回使用するデータセット:
LM_id0001_DIC_C2DH_HeLa_4dTensor
rMiW: 顕微鏡画像データの解析ワークフローを提供するパッケージ
R パイプ (%>%)文法で、モデルなどの記述ができる。
Keras とは?
文法が容易
Kerasでプログラムを書いて、BackendはTensorFlowで実行する
CPU runとGPU runが同じコード
RStudioから、R版Kerasがリリースされている。
a high-level neural networks API developed with a focus on enabling fast experimentation
TensorFlow (TF) とは?
Googleが開発している深層学習(DL)のフレームワーク
主流は、(当然)Python版TFであるが、
RStudioから、R版TF( Python版TF のRインターフェイス)がリリースされている。
深層学習(DL)実行の流れ
Dataset
用意
Model
構築
Compile
最適化
損失関数
設定
Fit
訓練
テスト
Evaluate
モデル評価
keras / tensorflow : 基本関数の提供
BioImageDbs
rMiW: バイオ画像解析WF
U-NET
モデル
Contracting path /収束経路
(Encoder or the analysis path)
Expansion path / 拡張経路
(the decoder or the synthesis path)
Tensorの連結
(concatenations with features from the contracting path)
Olaf Ronneberger, Philipp Fischer, Thomas Brox, U-Net: Convolutional Networks for Biomedical Image Segmentation
MICCAI 2015: Medical Image Computing and Computer-Assisted Intervention – MICCAI 2015 pp 234-241, https://arxiv.org/pdf/1505.04597.pdf
(Ronneberger et al, 2015)
U-NETの改良モデル
BMC Bioinformatics (2020) 21:8
Lecture Notes in Computer Science. Springer; 2018. p. 3–11.
Computational Intelligence and Neuroscience, 8214975, 14, 2019
Hum Brain Mapp. 2020;41:291–308.
Frontiers in Bioengineering and Biotechnology, 8:670, 2020
U-NETモデルの遍歴をまとめた総説
【 モデル構築のTips 】
・入力ピクセル数は、2のn乗(e.g. 32, 64, 128, 256, 512, 1024)
・入力サンプル数は可変である一方、入力のピクセル数や中間層レイヤーの構造は固定される。ただし、入力サンプル数は偶数が望ましい。
・使っているテンソル全体の大きさ、パラメータ数を把握しておく(=メモリ消費)
今日実行予定のモデルのテキスト表示
・・・
拡大
拡大
【 Compile 】最適化には、何かの指標の教師データとの誤差が減るように計算する。損失関数(Loss function)が導入される。
Intersection over Union (IoU)
Dice Coefficient
IoU =
Union
Common area
=
| A ∪ B |
| A ∩ B |
Dice =
All area
2 x (Common area)
=
| A | + | B |
2 | A ∩ B |
+
2 x
IoU = 1 : perfect match
(1) モデル構築(トレーニング)
テスト画像のGT
評価・検証
(R)
正解率?
前処理 (R)
画像補正
データ増幅
モデル構築
【 Fit 】ディープラーニング を用いた画像解析WF例
DL学習 / Fitting
各ピクセル情報を入力・出力とする
ネットワークの最適化
正解率?
(2) モデルの検証(テスト: 別画像)
テスト画像
??
DL予測結果
予測(R)
教師データ準備
画像
正解データ
(GT: Ground truth)
M3型急性骨髄性白血病細胞株
BioImageDbs
それでは、
実際のRコードをみていきます
補足
tfaddons: Interface to 'TensorFlow SIG Addons’
開発中の関数機能はAddonsとして配布
https://cran.r-project.org/web/packages/tfaddons/index.html
R/TensorFlow
まとめ資料
https://github.com/ANTsX/ANTsRNet
Neuroconductor
https://neuroconductor.org
関連パッケージ
Nicholas J. Tustison et al,
Scientific Reports 11: 9068 (2021)