ImPLoc: a multi-instance deep learning model for the prediction of protein subcellular localization based on immunohistochemistry images
论文材料
论文下载路径: ImPLoc: a multi-instance deep learning model for the prediction of protein subcellular localization based on immunohistochemistry images
数据、代码:https://github.com/yl2019lw/ImPloc
作者:Wei Long, Yang Yang and Hong-Bin Shen
发表年份:2019
期刊: bioinformatics (IF:6.931,2022年中科院2区,TOP)
研究背景
一些背景知识可以从前两篇获取:
1. An image-based multi-label human protein subcellular localization predictor (iLocator) reveals protein mislocalizations in cancer tissues
2. A Framework for the Automated Analysis of Subcellular Patterns in Human Protein Atlas Images
蛋白质亚细胞定位模式有助于理解蛋白质的功能,正常和癌症组织的差异定位分析有助于发现癌症的生物标志物。特别的, 这个工作与前两篇的区别在于,是从蛋白质水平进行研究,而前两个工作是以图片角度去表达模型性能;差别在于蛋白质可以表达在多个组织下,因而一般情况下一个蛋白质是可以拍摄多张图片,而这个工作是即是以多张图片的特征集成表达一个蛋白质。 这篇论文以免疫组化图像(IHC)为研究对象,解决多标签多实例蛋白质亚细胞位置预测任务,利用以Imagenet数据集预训练的Resnet-18为特征提取器获取卷积神经网络(CNN)不同深度下的同一蛋白质下的多张IHC的深度特征,以此描述的一个蛋白质的特征喂入Transformer下的Encoder部分模块拟合出类别置信度, 即 ImPLoc,方法框架如下图1所示。
数据
![](https://i-blog.csdnimg.cn/blog_migrate/02f4dc3a4ae76b43419afb5bc6022be5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9d26647cdd810f451bf6932d06bd2fd0.png)
模型
由上图所示,ImPLoc的方法总结如下:
1. 以IHC为研究对象,开展多标签多实例预测任务,即将一个蛋白质视为预测对象,蛋白质下的多张图片视为多个实例,一个蛋白质会同时出现在多个亚细胞位置视为多标签;
2. 以Resnet-18为特征提取器,将3000*3000分辨率的IHC作为CNN的输入,获取不同深度下的深度特征,将同一个蛋白质下的图片的深度特征拼接描述数据;
3. 将拼接的特征喂入后续的Classifier模块,一个以自注意力机制和线性映射等单元构建的模型,最后输出蛋白质的类别置信度。
Resnet-18
从蛋白质水平预测,需要以图片来表述蛋白质的特征描述,作者以Resnet-18为特征提取器获取深度特征,如下图3,公式1所示。由于IHC表现出大尺度,精细的特征,采用图片压缩去拟合Resnet18的方法会造成图片信息丢失,因此作者借鉴迁移学习的思想,将Resnet18加载Imagenet与训练权值,然后以此提取深度特征。在公式1中,
X
(
1
)
X^{(1)}
X(1)表示为蛋白质,
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn表示的是蛋白质下的
n
n
n张图片,每一张图片的维度为
d
m
∈
{
64
,
128
,
256
,
512
}
d_m \in \lbrace64,128,256,512\rbrace
dm∈{64,128,256,512}。
图片中Resnet18的实线表示输入直接与输出相加,虚线表示输入经过1*1卷积升维后与输出相加;考虑到深度网络下不同深度描述的信息不同,比如浅层网络下多表示图片的颜色、边缘或者纹理等信息,深度网络下多表示抽象的语义信息,因此作者从4种深度获取图片特征。由于网络种的输出特征矩阵为C, H, W三个维度的,为便于特征拼接,将特征图通过全局平均池化(Global Average Pooling, GAP)变成行向量。此外,为了所有的蛋白质表征维度一致,采用补0的方法进行补齐。Resnet的论文[1]
X
(
1
)
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
(1)
X^{(1)}=[x_1, x_2, ..., x_n]^{T} \tag{1}
X(1)=[x1,x2,...,xn]T(1)
Classifier
在分类器中包括了特征的修饰和置信度线性映射部分。首先,采用多头注意力机制和一维卷积神经网络等方法进行特异性修饰;其次采用sigmoid函数进行置信度输出,如图3,公式2-8所示[2][3]。(Ps:在作者代码中似乎没有Embedding的部分)
M
u
l
t
i
H
e
a
d
j
=
C
o
n
c
a
t
(
h
e
a
d
1
,
j
,
.
.
.
,
h
e
a
d
h
,
j
)
∗
P
o
(2)
MultiHead_j=Concat(head_{1,j}, ..., head_{h,j})*P_{o}\tag{2}
MultiHeadj=Concat(head1,j,...,headh,j)∗Po(2)
h
e
a
d
i
,
j
=
A
t
t
e
n
t
i
o
n
(
Q
(
i
,
j
)
,
K
(
i
,
j
)
,
V
(
i
,
j
)
)
(3)
head_{i,j}=Attention(Q^{(i,j)}, K^{(i,j)}, V^{(i,j)})\tag{3}
headi,j=Attention(Q(i,j),K(i,j),V(i,j))(3)
A
t
t
e
n
t
i
o
n
(
Q
(
i
,
j
)
,
K
(
i
,
j
)
,
V
(
i
,
j
)
)
=
W
(
i
,
j
)
∗
V
(
i
,
j
)
(4)
Attention(Q^{(i,j)}, K^{(i,j)}, V^{(i,j)})=W^{(i,j)}*V^{(i,j)}\tag{4}
Attention(Q(i,j),K(i,j),V(i,j))=W(i,j)∗V(i,j)(4)
W
(
i
,
j
)
=
s
o
f
t
m
a
x
(
Q
(
i
,
j
)
∗
K
(
i
,
j
)
d
k
)
(5)
W^{(i,j)}=softmax(\frac{Q^{(i,j)}*K^{(i,j)}}{\sqrt{d_k}})\tag{5}
W(i,j)=softmax(dkQ(i,j)∗K(i,j))(5)
Q
(
i
,
j
)
=
X
(
j
)
∗
P
q
(
i
)
(6)
Q^{(i,j)}=X^{(j)}*P_{q}^{(i)}\tag{6}
Q(i,j)=X(j)∗Pq(i)(6)
K
(
i
,
j
)
=
X
(
j
)
∗
P
k
(
i
)
(7)
K^{(i,j)}=X^{(j)}*P_{k}^{(i)}\tag{7}
K(i,j)=X(j)∗Pk(i)(7)
V
(
i
,
j
)
=
X
(
j
)
∗
P
v
(
i
)
(8)
V^{(i,j)}=X^{(j)}*P_{v}^{(i)}\tag{8}
V(i,j)=X(j)∗Pv(i)(8)
公式中
P
o
P_o
Po为输出映射矩阵,
h
h
h为注意力模块的头数,
M
u
l
t
i
H
e
a
d
j
MultiHead_j
MultiHeadj为第
j
j
j个多头注意力模块的输出;
W
(
i
)
W^{(i)}
W(i)(
大小为
n
∗
n
,
n
为图片量
大小为n*n,n为图片量
大小为n∗n,n为图片量)是注意力权值矩阵,
Q
(
i
,
j
)
Q^{(i,j)}
Q(i,j)为query(查询)矩阵,
K
(
i
,
j
)
K^{(i,j)}
K(i,j)为key(键)矩阵,
V
(
i
,
j
)
V^{(i,j)}
V(i,j)为value(价值)矩阵;
P
q
(
大小为
d
m
∗
d
q
)
P_{q}(大小为d_m*d_q)
Pq(大小为dm∗dq),
P
k
(
大小为
d
m
∗
d
k
)
P_{k}(大小为d_m*d_k)
Pk(大小为dm∗dk),
P
v
(
大小为
d
m
∗
d
v
)
P_{v}(大小为d_m*d_v)
Pv(大小为dm∗dv)为映射矩阵,
X
(
j
)
(
大小为
d
n
∗
d
m
)
X^{(j)}(大小为d_n*d_m)
X(j)(大小为dn∗dm)为输入矩阵,
n
n
n为样本量,
m
m
m为特征维度。
![](https://i-blog.csdnimg.cn/blog_migrate/21b4dbe0fd5d4a732069fe1bc9b3061e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/07f7832e2e545ba2ae0e6ce135152b1f.png)
对于注意力机制,通过训练获得
P
q
(
i
)
,
P
k
(
i
)
,
P
v
(
i
)
P_{q}^{(i)}, P_{k}^{(i)}, P_{v}^{(i)}
Pq(i),Pk(i),Pv(i) 三个映射矩阵,可以认为是对输入
X
(
j
)
X^{(j)}
X(j)的空间映射,而输出
Q
(
i
,
j
)
,
K
(
i
,
j
)
,
V
(
i
,
j
)
Q^{(i,j)}, K^{(i,j)}, V^{(i,j)}
Q(i,j),K(i,j),V(i,j)可认为是高维空间下的特征编码,编码的结果压缩了冗余性获得了特征的聚合,经过公式5可以获得特征图中不同像素的重要些差异,在经过公式4即可获得特征图修饰后被高亮出的特异性像素特征。
对于核心模块,主要包括多头注意力机制和前向传播模块。多头注意力机制模块中有包括多头注意力机制,残差连接和Layer Norm(对一个Batchsize中蛋白质下图片维度进行归一化,ps:个人觉得应该是对特征维度做归一化,因为蛋白质下IHC的顺序对特征的提取影响不会很大);前向传播模块包括两层一维卷积和ReLU激活结构,其中两层一维卷积是先升维再降维以满足输入输出维度一致。
损失函数
L
o
s
s
(
y
,
y
^
)
=
−
y
l
o
g
y
^
−
(
1
−
y
)
l
o
g
(
1
−
y
^
)
(9)
Loss(y,\hat{y})=-ylog\hat{y}-(1-y)log(1-\hat{y})\tag{9}
Loss(y,y^)=−ylogy^−(1−y)log(1−y^)(9)
损失函数中
y
y
y表示标签(one_hot类型),
y
^
\hat{y}
y^表示预测的输出置信度。在多标签任务中,多将sigmoid函数和BCELoss结合使用,先按位计算损失,再计算样本损失均值,最后计算Batchsize的均值获得最后的损失值。
优化器
作者采用了Adam作为损失函数的优化方法,Adam的算法框架如下图4所示,更新公式如公式10所示。其中 m t ^ \hat{m_t} mt^采用一阶矩向量的方式获取的前 t − 1 t-1 t−1步中梯度的值,可以理解为对以往梯度(周边环境),做出均值化(对前面梯度的总体均匀化的状态); v t ^ \hat{v_t} vt^是采用二阶矩向量获取前面所有梯度的变化趋势(梯度的模表示点在曲线上变化的剧烈程度);而 α v t ^ + ϵ \frac{\alpha}{\sqrt{\hat{v_t}}+\epsilon} vt^+ϵα即表示自适应学习率;即若当前曲线变化剧烈, v t ^ \hat{v_t} vt^就会很大,因此 α v t ^ + ϵ \frac{\alpha}{\sqrt{\hat{v_t}}+\epsilon} vt^+ϵα很小,更新的步长就会小一些,相反曲线比较平稳更新速度会快些;当到达最小值点时梯度和步长都减小,即慢慢到达最优值点[4][5]。
θ
t
=
θ
t
−
1
−
α
∗
m
t
^
v
t
^
+
ϵ
(10)
\theta_{t}=\theta_{t-1}-\frac{\alpha*\hat{m_t}}{\sqrt{\hat{v_t}}+\epsilon}\tag{10}
θt=θt−1−vt^+ϵα∗mt^(10)
结果
部分实验结果如图5所示,在深度特征维度64,128,256,512中维度为128的结果最好,这与自然图像下深度特征随网络深度加深抽象能力和特异性能力愈强有悖,因此对于IHC图像的特征表示还具有进一步的研究空间。下图是基于蛋白质水平与其他模型的对比结果,ImPLoc达到的最优。(Ps: 此外在论文中还使用了SLFs的特征喂入Classifier模块进行了十重交叉实验,论文中深度特征的subset_accuracy的平均结果为53.78%,使用SLFs的subset_accuracy的结果为55.76%,似乎SLFs的特征比深度特征更有效?这部分数据来自论文补充材料)
讨论
- 作者在论文考虑,采用切割patch的方法将大的IHC变成小的局域图像,然后再按照上述方法进行实验,但数据量会剧增。
- 实验中作者从889个蛋白质中采用ImPLoc和T检验的方法获得了8个生物标志物。
- 作者对不同置信度的蛋白质下的图片也进行的实验,包括Enhanced, Approved, Supported等三种等级,结果是Enhanced的最好。
- 未能理解从图片角度进行蛋白质亚细胞预测,会引入噪声而增加样本的假阳性比例?
[1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun; Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 770-778
[2] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.
[3] https://blog.csdn.net/qq_37541097/article/details/117691873
[4] https://arxiv.org/abs/1412.6980
[5] https://blog.csdn.net/bu_fo/article/details/119888296?