1 of 35

Satoshi Kume

211104 @ BioC Asia 2021 Workshop

Rにおけるバイオ画像解析入門

Introduction to Bioimage Analysis in R

2 of 35

バイオ画像解析の背景・現状

From Molecular Biology of the Cell. 4th edition.

  • 生命科学における、形態学的な理解の不足 (教科書レベルから進歩してない、公開データがない)
  • 従来、細胞/組織の形態画像を取得・解析すること自体が困難(一部の画像解析専門家なら可能)
  • 現在、バイオ画像解析でも、機械学習・Deep learningを使った画像認識が

 可能になってきた

  • 計測装置側(光顕・WSI、電顕、X線CT etc)の性能向上!! 取得データ量の増加!!

3 of 35

近年、網羅的な形態情報(Morphome)/顕微鏡の画像データを「オミックス」として扱うトレンドがある

久米, 村川: 顕微鏡 55 巻1 号, 2020

John M Lucocq et al, Trends Cell Biol. 5(2):59-6., 2015.

4 of 35

バイオ画像のデータベース

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がもらえる。

​

クオイオ電顕の普及が大きい (特に構造生物学)。

5 of 35

今回の内容 〜バイオ画像解析に向けての取り組み〜

・ Rにおける基本的な画像処理

  Rへの画像の読み込み・書き出し、リサイズ etc

・ 教師付きバイオ画像データの取得

・ 画像セグメンテーション (領域分割)

  - 非階層クラスタリング(k-means)

  - U-NETモデル

6 of 35

Rにおける画像とは何か?

画像は、数値のアレイ (配列) として扱われる。

アレイは、3次元以上のデータ構造をもつR data objectである。

(ラスター画像: ピクセルに色値(e.g. 16進数カラーコード)を割り当てたアレイ)

4 次元アレイ: 2D画像データセット

 ・画像枚数

 ・幅のピクセル(数)

 ・高さのピクセル(数)

 ・色チャネル(数) (e.g. Gray, RGB)

5 次元アレイ: 3D画像データセット

 ・画像のセット数

 ・幅のピクセル(数)

 ・高さのピクセル(数)

 ・Z軸(時間、奥行き)のピクセル(数)

 ・色チャネル(数)

要素 ex. numeric

7 of 35

【調査】Bioconductor内で「image」で検索した結果

Bioconductorで、image関係はこれだけ。

AnnotationData、Workflowではゼロ。

210609 調査結果

8 of 35

主に使用するパッケージ

BioImageDbs:

 機械学習用の教師ラベル付きの画像アレイデータを提供するBioconductor/ExperimentHubパッケージ

rMiW: (開発中、近々 Bioconductorに登録予定)

 顕微鏡画像データの解析ワークフローを提供するパッケージ

 バックエンド: keras, tensorflow, EBImage

EBImage: 

 Rで基本的な画像処理を行うための関数群を提供するBioconductorパッケージ

9 of 35

主に使用するパッケージ

BioImageDbs:

 機械学習用の教師ラベル付きの画像アレイデータを提供するBioconductor/ExperimentHubパッケージ

rMiW: (開発中、近々 Bioconductorに登録予定)

 顕微鏡画像データの解析ワークフローを提供するパッケージ

 バックエンド: keras, tensorflow, EBImage

EBImage: 

 Rで基本的な画像処理を行うための関数群を提供するBioconductorパッケージ

10 of 35

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.

11 of 35

実行例(1): 画像の読み込み / Image object

12 of 35

実行例(2): 画像の表示 (マウス腎臓のHE染色像)

13 of 35

実行例(3):

画像の回転など

(Image objectに対する処理)

14 of 35

実行例(4):

画像の重ね合わせ

15 of 35

Rでのアレイ処理のTips:

​

drop=FALSEの設定で、

データ抽出における結果のベクトル化やアレイの変形を防ぐことができる

​

16 of 35

主に使用するパッケージ

BioImageDbs:

 機械学習用の教師ラベル付きの画像アレイデータを提供するBioconductor/ExperimentHubパッケージ

rMiW: (開発中、近々 Bioconductorに登録予定)

 顕微鏡画像データの解析ワークフローを提供するパッケージ

 バックエンド: keras, tensorflow, EBImage

EBImage: 

 Rで基本的な画像処理を行うための関数群を提供するBioconductorパッケージ

17 of 35

BioImageDbsのコンセプト

〜 R上で教師ラベル付きのアレイデータに簡単アクセス 〜

画像データリポジトリ

・ 画像リポジトリによって、フォーマットがバラバラ。

・ 画像データ to 4D/5Dテンソルへの変換プログラムを都度書くのは面倒

・ 統一されたRフォーマット(e.g. Rds, Tensor/Array)で扱いたい

R環境で

すぐにデータ解析に使いたい。。。

18 of 35

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

19 of 35

BioImageDbsが提供する公開画像データセット

電子顕微鏡で得られた組織・細胞像

光学顕微鏡で得られたタイムラプスデータ

Rds以外に、GIFアニメーション(可視化の結果) も提供

20 of 35

今回使用するデータセット:

LM_id0001_DIC_C2DH_HeLa_4dTensor

21 of 35

rMiW: 顕微鏡画像データの解析ワークフローを提供するパッケージ

22 of 35

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

23 of 35

TensorFlow (TF) とは?

Googleが開発している深層学習(DL)のフレームワーク

​

主流は、(当然)Python版TFであるが、

RStudioから、R版TF( Python版TF のRインターフェイス)がリリースされている。

24 of 35

深層学習(DL)実行の流れ

Dataset

用意

Model

構築

Compile

​

最適化

損失関数

設定

Fit

​

訓練

テスト

Evaluate

​

モデル評価

keras / tensorflow : 基本関数の提供 

BioImageDbs

rMiW: バイオ画像解析WF

25 of 35

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)

26 of 35

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

27 of 35

U-NETモデルの遍歴をまとめた総説

28 of 35

【 モデル構築のTips 】

・入力ピクセル数は、2のn乗(e.g. 32, 64, 128, 256, 512, 1024)

・入力サンプル数は可変である一方、入力のピクセル数や中間層レイヤーの構造は固定される。ただし、入力サンプル数は偶数が望ましい。

・使っているテンソル全体の大きさ、パラメータ数を把握しておく(=メモリ消費)

今日実行予定のモデルのテキスト表示

・・・

拡大

Max Pooling

2x2内で最大値だけ残して圧縮

拡大

29 of 35

【 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

30 of 35

(1) モデル構築(トレーニング)

テスト画像のGT

評価・検証

(R)

正解率?

前処理 (R)

画像補正

データ増幅

モデル構築

【 Fit 】ディープラーニング を用いた画像解析WF例

DL学習 / Fitting

各ピクセル情報を入力・出力とする

ネットワークの最適化

正解率?

(2) モデルの検証(テスト: 別画像)

テスト画像

??

DL予測結果

予測(R)

教師データ準備

画像

正解データ

(GT: Ground truth)

M3型急性骨髄性白血病細胞株

BioImageDbs

31 of 35

それでは、

  実際のRコードをみていきます

32 of 35

補足

33 of 35

tfaddons: Interface to 'TensorFlow SIG Addons’

 開発中の関数機能はAddonsとして配布

https://cran.r-project.org/web/packages/tfaddons/index.html

34 of 35

R/TensorFlow

まとめ資料

35 of 35

https://github.com/ANTsX/ANTsRNet

Neuroconductor

https://neuroconductor.org

関連パッケージ

Nicholas J. Tustison et al,

Scientific Reports 11: 9068 (2021)