©️ Copyright 2024 @ Authors
作者: guolj@dp.tech 📨
日期:2024-04-21
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 bohrium-notebook:2023-05-31镜像 和任意配置机型即可开始。
自己动手,丰衣足食。
——延安生产动员大会,1939年2月
蛋白质谱定量
蛋白质组学定量方法主要可以分为两大类:
标记定量
非标记定量
非标记定量方法的一个显著优势是它不需要昂贵的标记物作为内标准,而样本的制备过程也相对简单。
由于涉及较少的操作步骤,可以有效减少人为和系统误差。
此外,通过在样本中加入已知浓度的标准蛋白,这种方法还可以用于蛋白质的绝对定量。
然而,相对于标记定量方法,非标记定量的数据分析更加复杂且难度更大,可重复性通常也较低,对仪器的稳定性和分辨率有较高的要求。
本篇Notebook将对常用的TOP3和iBAQ两个非标记定量方法进行阐述。
读取OpenMS结果文件
我在这里为你准备好了结果文件,它的产生可以见上一篇Notebook
sequence | score | protein_accession | protein_count | charge | RT | mz | quality | ZY_UPS2_C3_Mouse_0_6ug | ZY_UPS2_D2_Mouse_0_6ug | ZY_UPS2_C2_Mouse_0_6ug | ZY_UPS2_C1_Mouse_0_6ug | ZY_UPS2_B3_Mouse_0_6ug | ZY_UPS2_A1_Mouse_0_6ug | ZY_UPS2_D3_Mouse_0_6ug | ZY_UPS2_B1_Mouse_0_6ug | ZY_UPS2_A2_Mouse_0_6ug | ZY_UPS2_A3_Mouse_0_6ug | ZY_UPS2_B2_Mouse_0_6ug | ZY_UPS2_D1_Mouse_0_6ug | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | IDLAVGDVVK | 11.477765 | Q8K1B8|URP2_MOUSE | 1.0 | 2 | 3254.861012 | 514.806014 | 0.915005 | 269256000.0 | 417071300.0 | 405560700.0 | 398971200.0 | 285516400.0 | 244054700.0 | 360338700.0 | 361681600.0 | 260860600.0 | 240820200.0 | 319740100.0 | 465238500.0 |
1 | VMSQNFTNC(Carbamidomethyl)HTK | 15.736818 | P97855|G3BP1_MOUSE | 1.0 | 2 | 1492.125672 | 733.826388 | 0.961677 | 166461400.0 | 163396900.0 | 182838000.0 | 181990100.0 | 124401600.0 | 170870100.0 | 170593700.0 | 158083400.0 | 148514500.0 | 78017240.0 | 142878300.0 | 153835500.0 |
上面表格中每个表头的含义如下:
sequence:肽段的氨基酸序列,包含PTM注释。例子中的VMSQNFTNC(Carbamidomethyl)HTK的序列为VMSQNFTNCHTK,其中第九号位上的C为Carbamidomethyl修饰。
score:搜索分数,表示肽段鉴定的置信度。分数越高,鉴定的可信度越高。目前OpenMS并没有给出一个推荐的阈值,但你还是可以查看官方文档了解更多。
protein_accession:蛋白质访问号,通常指的是蛋白质数据库中的一个唯一标识符,用于标记特定的蛋白质。这与我们当初给定的搜索数据库中的蛋白质Description相关。
protein_count:表示鉴定到的该序列肽段所对应的蛋白质数量。通常用于反映一个肽段可能属于多个蛋白质的情况。与protein_accession中的数量一致。
- 你可以利用consensus_df_with_prot.query("protein_count > 1")查看protein_count > 1的情况。
charge:肽段的电荷状态。在质谱分析中,肽段离子的电荷影响其质量/电荷比(m/z),进而影响检测和分析。你可以查看这里获得更多相关信息。
RT:肽段的LC部分洗脱峰最大值对应的时间点。
mz:质量/电荷比,是质谱分析中的一个基本参数,用于描述肽段或蛋白质离子的质量与其电荷的比值。
quality:质量分数,通常用来表示肽段信号的质量,包括信噪比、峰的对称性等因素。
ZY_***:样品名,其数值即为该样品中对应肽段的定量结果(通常为面积)
数据预处理
数据筛选
接下来,我们看一下quality和score的数值分布情况
Text(0.5, 1.0, 'quality')
一般地,其他软件会提供E-Value供筛选时需要,但OpenMS目前还未实现这个功能
我们将拍个脑袋,根据quality和score对数据进行过滤,实际项目进行中,我们可以根据内标蛋白/QC样品的RSD(Relative Standard Deviation,或称CV,Coefficient of Variation)或经验来决定阈值。
另外,当一条多肽与多个蛋白质相匹配时,这种情形被称作“多肽共享”或“多肽歧义”。
在利用质谱技术进行蛋白质的非标记定量分析时,这会带来特定的挑战,主要是因为无法确切知道这些多肽具体属于哪个蛋白质。
对于这种情况的处理方法主要有以下几种:
最保守分配:只有当一个多肽唯一匹配到一个蛋白质时,才将其用于定量。
分配比例:这种方法根据特定的规则将多肽的信号按照一定比例分配给各个匹配的蛋白质。比如,可以依据每个蛋白质的独有多肽丰度来计算共享多肽的贡献量。
最小化共享多肽的使用:在定量分析中优先使用独特多肽,只在必要时使用共享多肽。这种策略旨在最大程度上减少因共享多肽带来的计算复杂性和潜在误差。
统计模型:使用复杂的统计模型来估计每个蛋白质的丰度,这些模型可以考虑多肽共享的影响。例如,软件如MaxQuant中的LFQ (Label-Free Quantification) 算法,可以处理多肽共享问题,通过算法内部的优化处理来估计蛋白质的丰度。
作为入门教学,在本篇Notebook中,我们将采用最保守分配法进行数据预处理。
((6836, 20), (33161, 20))
可以看到,这里筛选的过程使得,我们丢掉了几乎80%的数据,他们的Venn图如下
<matplotlib_venn._common.VennDiagram at 0x7fed763a04f0>
另外,更加严格地,我们只保留鉴定出的独特肽段 > 1的蛋白质
sequence | score | protein_accession | protein_count | charge | RT | mz | quality | ZY_UPS2_C3_Mouse_0_6ug | ZY_UPS2_D2_Mouse_0_6ug | ZY_UPS2_C2_Mouse_0_6ug | ZY_UPS2_C1_Mouse_0_6ug | ZY_UPS2_B3_Mouse_0_6ug | ZY_UPS2_A1_Mouse_0_6ug | ZY_UPS2_D3_Mouse_0_6ug | ZY_UPS2_B1_Mouse_0_6ug | ZY_UPS2_A2_Mouse_0_6ug | ZY_UPS2_A3_Mouse_0_6ug | ZY_UPS2_B2_Mouse_0_6ug | ZY_UPS2_D1_Mouse_0_6ug | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | IDLAVGDVVK | 11.477765 | Q8K1B8|URP2_MOUSE | 1.0 | 2 | 3254.861012 | 514.806014 | 0.915005 | 269256000.0 | 417071300.0 | 405560700.0 | 398971200.0 | 285516400.0 | 244054700.0 | 360338700.0 | 361681600.0 | 260860600.0 | 240820200.0 | 319740100.0 | 465238500.0 |
1 | VMSQNFTNC(Carbamidomethyl)HTK | 15.736818 | P97855|G3BP1_MOUSE | 1.0 | 2 | 1492.125672 | 733.826388 | 0.961677 | 166461400.0 | 163396900.0 | 182838000.0 | 181990100.0 | 124401600.0 | 170870100.0 | 170593700.0 | 158083400.0 | 148514500.0 | 78017240.0 | 142878300.0 | 153835500.0 |
2 | FVDEEDGGDGQAGPDEGEVDSC(Carbamidomethyl)LR | 40.109421 | Q9CPW4|ARPC5_MOUSE | 1.0 | 2 | 2891.478878 | 1277.021152 | 0.960235 | 61894790.0 | 47759900.0 | 64873340.0 | 61048470.0 | 60498050.0 | 41455210.0 | 48406750.0 | 63682410.0 | 43125160.0 | 48718520.0 | 60900750.0 | 56396670.0 |
3 | EKPQALVTSPATPLPAGSGIK | 38.518372 | O88271|CFDP1_MOUSE | 1.0 | 3 | 2909.676320 | 688.057099 | 0.943737 | 82818720.0 | 69078570.0 | 80557970.0 | 80324010.0 | 64225850.0 | 64915200.0 | 74057170.0 | 74447260.0 | 55183950.0 | 59126850.0 | 68997690.0 | 74162200.0 |
5 | LDLEAWFPGSGAFR | 18.670906 | P26638|SYSC_MOUSE | 1.0 | 2 | 4483.495941 | 783.393557 | 0.976265 | 43836660.0 | 39589420.0 | 40812830.0 | 35405420.0 | 33558470.0 | 45752620.0 | 35412970.0 | 46204930.0 | 42939580.0 | 37579030.0 | 37180490.0 | 52378800.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
14238 | SSEMNVLIPTEGGDFNEFPVPEQFK | 26.028290 | P40124|CAP1_MOUSE | 1.0 | 3 | 4354.917646 | 937.778026 | 0.802763 | 168539700.0 | 159314500.0 | 190462600.0 | 167633400.0 | 165573700.0 | 97061050.0 | 157201000.0 | 188045500.0 | 91055600.0 | 0.0 | 195871800.0 | 0.0 |
14247 | LAGVTALSC(Carbamidomethyl)WLPLR | 21.785582 | P97823|LYPA1_MOUSE | 1.0 | 2 | 4460.107468 | 778.936559 | 0.807358 | 59122810.0 | 47262840.0 | 53875060.0 | 45753870.0 | 37983950.0 | 40344040.0 | 44332540.0 | 48201210.0 | 44635930.0 | 0.0 | 47577000.0 | 0.0 |
14248 | MFIGGLSWDTTK | 19.285593 | Q60668|HNRPD_MOUSE | 1.0 | 2 | 4071.956379 | 678.337935 | 0.802992 | 216008800.0 | 226267900.0 | 210280400.0 | 227036000.0 | 191345200.0 | 175056200.0 | 0.0 | 221198200.0 | 175835800.0 | 165210800.0 | 207849600.0 | 0.0 |
14335 | QAFTDVATGSLGQGLGAAC(Carbamidomethyl)GMAYTGK | 48.753551 | P40142|TKT_MOUSE | 1.0 | 2 | 4007.753599 | 1266.596595 | 0.800172 | 129932500.0 | 122962900.0 | 118945200.0 | 0.0 | 108757800.0 | 130031000.0 | 113474400.0 | 117755100.0 | 131244700.0 | 135655600.0 | 121221200.0 | 0.0 |
14338 | ITGEAFVQFASQELAEK | 18.519884 | Q9Z2X1|HNRPF_MOUSE | 1.0 | 3 | 4331.446865 | 623.319650 | 0.807390 | 90952630.0 | 0.0 | 84579110.0 | 44385430.0 | 45189660.0 | 61535430.0 | 44376070.0 | 108048800.0 | 26259210.0 | 34415850.0 | 43703790.0 | 0.0 |
6205 rows × 20 columns
,零值填充
对于检出为0的结果,我们需要对其数值进行填充。
这里我们采用Scikit-Learn中的KNNImputer
蛋白质定量
由于蛋白质在蛋白酶的催化下降解本质上是一个化学过程,这个反应如下:
在我们鉴定出的结果中,一般而言,(当然,你可以自行再验证一下)
于是,直觉上,蛋白质的浓度应当于其消化产物中肽段的浓度基本一致(虽然实际上不同肽段会因为性质差异表现出质谱检出强度的偏差,但在入门教学中我们暂时不引入过多考虑)
TOP3
接下来,我们采用TOP3法对蛋白质进行定量。
上述提到,不同肽段会因为性质差异,表现出质谱检出强度的偏差,即:
而对于检出强度较高的肽段,这个偏差对强度本身的影响较小
简单运行上面代码,我们便获得了TOP3法的蛋白非标记定量结果,之后,我们运行完iBAQ之后再对比二者的结果
iBAQ
接下来,我们采用iBAQ法对蛋白质进行定量。
iBAQ(intensity-Based Absolute Quantification)是一种用于蛋白质组学定量的技术,主要用于估算蛋白质在样本中的绝对丰度。
iBAQ的原理基于蛋白质的肽段信号强度总和来估计蛋白质的绝对量。
其包括下列步骤:
对一个蛋白质的所有鉴定到的肽段的信号强度进行求和,得到该蛋白质的总信号强度。
将这个总信号强度除以蛋白质中可观测到的肽段数量(理论上可以被鉴定的肽段数量),得到iBAQ值。
iBAQ值 = 总信号强度 / 可观测肽段数量
通过比较不同蛋白质的iBAQ值,可以估算它们在样本中的相对丰度。如果有标准蛋白或已知浓度的蛋白质参与实验,还可以通过iBAQ值估算蛋白质的绝对浓度。
100%|██████████| 1086/1086 [00:00<00:00, 2485.33it/s]
运行上面的代码,我们便获得了iBAQ的定量结果,接下来,我们简短地欣赏一下海象后,来对比一下两个方法的定量结果
:=海象运算符
顺便推荐一个Python黑魔法手册,虽然在工程代码中我会希望你少用这些怪东西
TOP3和iBAQ结果对比
RSD/CV 对比
<matplotlib.legend.Legend at 0x7fecbaa5ea10>
top3 0.121571 ,ibaq 0.118506 ,dtype: float64
可以看到,iBAQ的RSD略小于TOP3(越小越好),在更复杂的样品和更粗的筛选条件中,iBAQ的领先一般会更多。
你可以调整数据筛选阶段的阈值来试试
标准品定量对比
实验在样品中加入了UPS2,这是一个包含了一些的已知相对浓度蛋白质的标准品,常用来作为样品间绝对定量的内标。
在这里,我们可以根据它们的结果评估定量方法。
我们一般会采用非线性拟合(特定的高线性区段也可以采用线性拟合)根据内标的定量结果来定量其他蛋白
因此我们也可以简单地观察内标定量结果与真实值的Spearman相关系数来考察不同方法定量的可靠性
real_amount | top3 | ibaq |
---|---|---|
group | ||
A | 0.700464 | 0.700464 |
B | 0.873181 | 0.850792 |
C | 0.737246 | 0.794819 |
D | 0.535743 | 0.698865 |
其中A - B - C - D四个group为逐步稀释后的样品
可以看到,在样品浓度较低的情况下,iBAQ方法显著优于top3
本Notebook对常用的TOP3和iBAQ进行了代码实现和阐述。随着硬件和算法的进步,非标记定量领域也一直在发展,一些新的算法也被提出,例如LFAQ、FlashLFQ等。
未来,我们或许会对各个算法进行复现和解读。 :sweat_drops:
另外,根据情况,或许也会写一些Notebook来展示MaxQuant等工具的使用。
当然,这非常取决于作者的心情,所以,你不妨通过点赞的形式催更。 :stuck_out_tongue_winking_eye:
Suice。
guolj@dp.tech
Suice。