蛋白酶概述
何为蛋白酶
蛋白酶,也称多肽酶、蛋白水解酶。是水解蛋白质或多肽中氨基酸之间肽键的酶,可在肽链中的特定位置将肽链切断
何为底物
酶所作用的分子,即被酶切断的多肽或蛋白质,称为底物
蛋白酶在生物体内有何重要作用
- 使蛋白质功能激活或失活
- 内分泌
- 信号通路
- 消化
- 蛋白质降解
- 免疫
- 细胞凋亡
- 很多疾病的致病过程
何为蛋白酶对底物的专一性
蛋白酶在水解蛋白质时,不同蛋白酶对底物的作用部位不同。这种蛋白酶对切点的特异性要求叫做蛋白酶的底物专一性。如胃蛋白酶要求切点两端有芳香族氨基酸,胰蛋白酶要求切点的羧基侧为碱性氨基酸(精氨酸、赖氨酸),枯草杆菌碱性蛋白酶要求切点的羧基侧为疏水性芳香族氨基酸( 色氨酸、酪氨 酸、苯丙氨酸)
何为底物上的P1位点
酶切位置位于P1位点之后
本项目主要研究内切酶
- 内肽酶(内切酶)从肽链的中间切断肽链,产生长度较短的短肽片段。
- 外肽酶(外切酶)从肽链的两端切断肽链,产生两个氨基酸组成的二肽,或产生单个氨基酸。
- 在本项目中,我们只研究内切酶
数据来源和数据前处理
蛋白酶数据库MEROPS
- 网址为 https://www.ebi.ac.uk/merops/
- 此数据库收录了全世界所有已知的多肽酶,及其底物的酶切位点信息。在数据库中,为每个蛋白酶都分配了一个唯一的编号(Peptidase Code),如A01.001、A01.009、C01.032、M10.001、S01.151等。编号前的字母代表了酶的催化类型,后面的数字代表了酶所属的家族以及在家族中的编号。在数据库中同时也存储了酶的所有已知底物(蛋白序列)及其中所能被酶切的位置。本项目就是从该数据库中获得的数据
数据前处理
- 从MEROPS数据库中下载目前所有已知的蛋白酶及其已知的底物酶切位点
- 去除底物过少或其酶切位点过少的酶;
- 同种酶的所有底物蛋白的氨基酸序列经过序列比对,去除相似度大于25%的序列;即如果其中有一批序列彼此很相似(相似度大于25%),则只从这批序列中选择一条序列作为代表,其他序列都删除
- 最终收集数据——这些将作为本项目分析的数据源:l92种不同的蛋白酶、l6,421条底物蛋白质分子(包含序列)、l28,059个酶切位点
基于access平台实现蛋白酶数据库的构建
创建氨基酸信息表AAs
- 氨基酸信息表包含AASingleChar(氨基酸单字母名称 )、AAThreeChar(氨基酸三字母名称 )、AAFullName(氨基酸完整英文名称 )、AAChinese(氨基酸中文名称 )、HydroEisen(Eisenberg疏水值)五列,主键为氨基酸单字母名称
创建蛋白质底物的酶切位点信息表CleaProts
- 蛋白质底物的酶切位点信息表包含PepCode(酶ID(MEROPS编号))、UniprotID(底物蛋白质ID)、P1(酶切的P1位置)、CleavageType(酶切类型)四列,主键由酶ID、底物蛋白质ID、酶切的P1位置共同构成
创建作业任务分配表HomeWorkStuPeps
- 作业任务分配表包含StuID(学号)、PepCode(酶ID(MEROPS编号) )两列,主键由这两列共同构成
创建酶信息表PepInfos
- 酶信息表包含PepCode(酶ID(MEROPS编号))、PeptidaseName(酶名称)、PeptidaseDescrip(酶的有关描述)三列,主键为酶ID
创建底物蛋白质序列表ProtSeqs
一种避免复制粘贴的创建方式——导入方式
- 底物蛋白质序列表由UniprotID(底物蛋白质ID)、SpTr(数据库来源类型)、UniprotEntryName(在Uniprot数据库中的名称)、ProteinName( 蛋白质名称)、Organism( 蛋白质来源物种)、GeneName( 对应的编码基因)、Seq( 氨基酸序列)七列组成,主键为底物蛋白质ID
- 值得注意的是,氨基酸序列的数据类型必须为备注类型。因为氨基酸序列的字符串长度可多于255,而文本型最大只能保存长度为255的字符串
通过查询创建新表TrainTestSets
- CleaProts表包含PepCode和UniprotID( 酶和对应底物蛋白)这些信息,然而由于一种酶在一种底物蛋白上有多个P1酶切位点,因此只看这两列信息的话,会存在重复。
- 由于信息存在重复,所以使用DISTINCT语句,去除重复信息。 又因为这一信息将来要被经常反复使用,所以为了提高效率,使用INTO语句将查询的结果生成一张新的基本表——TrainTestSets
SELECT DISTINCT PepCode, UniprotID
INTO TrainTestSet
FROM CleaProts
ORDER BY PepCode, UniprotID
修改TrainTestSets表的设计
- 设置已存在的两个字段为主键,然后增加一列:TrainTest
划分训练集和测试集
- 在数据分析中,为了后续数据挖掘的需要,会把样本集划分训练集和测试集。训练集用于用于完成训练过程,使计算机总结规则和经验;测试集用于完成测试过程,获得测试准确率,以判断计算机总结的规律经验的准确性。
- 值得注意的是,在划分时要以底物蛋白(而非酶切位点)为最小单位。对于同一种酶,在它的一个底物蛋白中可有多个酶切位点;我们不应以酶切位点为最小单位划分训练集和测试集,而应以“一种酶+一种底物蛋白”为最小单位。
- 在TrainTest表中进行划分:
首先新建并执行以下查询,将新列 TrainTest 的值全部设置为1,即先全设为训练集:
UPDATE TrainTestSets
SET TrainTest=1
然后导入表Test来存储测试集的样本
最后,在TrainTestSets表中:将应属于测试集的“酶+底物”样本置TrainTest值为2
UPDATE TrainTestSets, Tests
SET TrainTestSets.TrainTest=2
WHERE TrainTestSets.PepCode=Tests.PepCode AND
TrainTestSets.UniprotID=Tests.UniprotID
新建查询 ViewSiteTrainTestSets
TrainTestSets表给出了“一种酶+一种底物”属于训练集或测试集。我们进一步使用查询ViewSiteTrainTestSets,以给出每一个酶切位点属于训练集或测试集。
SELECT CleaProts.PepCode, CleaProts.UniprotID, P1, CleavageType, TrainTest
FROM CleaProts, TrainTestSets
WHERE CleaProts.PepCode =TrainTestSets.PepCode AND CleaProts.UniprotID = TrainTestSets.UniprotID;
创建/绘制数据库关系图
创建关系后,数据表可形成嵌套表格的效果,方便查看
蛋白酶和底物的数据统计
- 使用查询ViewSubsCounts统计各酶的底物蛋白数、酶切位点数
SELECT T1.PepCode, T1.蛋白底物数, T2.蛋白底物的酶切位点数
FROM
(SELECT PepCode, COUNT(*) AS 蛋白底物数 FROM
( SELECT DISTINCT PepCode, UniprotID FROM CleaProts )
GROUP BY PepCode
) AS T1
,
(SELECT PepCode, COUNT(*) AS 蛋白底物的酶切位点数
FROM CleaProts
GROUP BY PepCode
) AS T2
WHERE T1.PepCode = T2.PepCode
预统计每个酶分别在训练集、测试集中,都分别有多少个蛋白质底物、多少个酶切位点
- 求训练集中蛋白质底物数,保存为查询 ProteinsTrain
SELECT PepCode, COUNT(*) AS 训练集蛋白底物数
FROM TrainTestSets
WHERE TrainTest=1
GROUP BY PepCode
- 求测试集中蛋白质底物数,保存为查询 ProteinsTest
SELECT PepCode, COUNT(*) AS 测试集蛋白底物数
FROM TrainTestSets
WHERE TrainTest=2
GROUP BY PepCode
- 求训练集中酶切位点数,保存为查询 SitesTrain
SELECT PepCode, COUNT(*) AS 训练集酶切位点数
FROM ViewSiteTrainTestSets
WHERE TrainTest=1
GROUP BY PepCode
- 求测试集中酶切位点数,保存为查询 SitesTest
SELECT PepCode, COUNT(*) AS 测试集酶切位点数
FROM ViewSiteTrainTestSets
WHERE TrainTest=2
GROUP BY PepCode
- 组合以上查询,获得最终数据统计结果
SELECT
ViewSubsCounts.*, ProteinsTrain.训练集底物蛋白数,
ProteinsTest.测试集底物蛋白数,SitesTrain.训练集酶切位点数,
SitesTest.测试集酶切位点数
FROM ViewSubsCounts,
( SELECT PepCode,COUNT(*) AS 训练集底物蛋白数
FROM TrainTestSets
WHERE TrainTest=1
GROUP BY PepCode
) AS ProteinsTrain,
( SELECT PepCode,COUNT(*) AS 测试集底物蛋白数
FROM TrainTestSets
WHERE TrainTest=2
GROUP BY PepCode
) AS ProteinsTest,
( SELECT PepCode,COUNT(*) AS 训练集酶切位点数
FROM ViewSiteTrainTestSets
WHERE TrainTest=1
GROUP BY PepCode
) AS SitesTrain ,
( SELECT PepCode,COUNT(*) AS 测试集酶切位点数
FROM ViewSiteTrainTestSets
WHERE TrainTest=2
GROUP BY PepCode
) AS SitesTest
WHERE
ViewSubsCounts.PepCode = ProteinsTrain.PepCode AND
ProteinsTrain.PepCode = ProteinsTest.PepCode AND
ProteinsTest.PepCode = SitesTrain.PepCode AND
SitesTrain.PepCode = SitesTest.PepCode
ORDER BY ViewSubsCounts.PepCode
- 将数据结果导出,转换为Word表格形式写在Word文档中
蛋白酶底物专一性的统计分析
获得各酶切情况的底物氨基酸序列
CleaProts表列出了各酶的底物的酶切位点位置P1,但没有氨基酸序列。因此与ProtSeqs表做连接查询,获得每种酶切情况的底物氨基酸序列,借助这个查询进一步获得各酶切情况的酶切位点附近氨基酸(此查询省略也对整体无妨,只是为了较为连贯的理解下一个查询)
SELECT CleaProts.*, Seq
FROM CleaProts, ProtSeqs
WHERE CleaProts.UniprotID = ProtSeqs.UniprotID
获得各酶切情况的酶切位点附近氨基酸
- 借助ViewPepAAs查询获得P1位置的氨基酸、前一个氨基酸、后一个氨基酸
SELECT CleaProts.*, Seq, MID(Seq, P1-1, 1) AS PreAA,
MID(Seq, P1, 1) AS P1AA, MID(Seq, P1+1, 1) AS NextAA
FROM CleaProts, ProtSeqs
WHERE CleaProts.UniprotID = ProtSeqs.UniprotID AND P1>1
- MID()函数:截取字符串中间的一部分。MID(字符串, 从第几个字符开始截取, 共截取几个字符) (参数3不是截取到第几个)
例如: MID("abcde", 3, 2)获得"cd",MID("abcde", 4, 1)获得"d"
- 查询自己的作业任务,得到要分析的三种酶S08.073、C02.002、S01.153
SELECT *
FROM HomeWorkStuPeps
WHERE StuID='3019244229'
P1及前后1个位点的氨基酸种类的统计分析(以S08.073为例)
- 针对某一种酶,对其能切断底物的P1位点、以及P1前、后位点的氨基酸种类进行统计分析,可探查该种酶对底物酶切的专一性。
P1前一位点氨基酸种类的统计分析
使用查询 ViewPreCountsTemp 统计S08.073这一种酶所有底物的P1前一位点的氨基酸种类
SELECT PreAA, COUNT(*) AS PreCount
FROM ViewPepAAs
WHERE PepCode="S08.073"
GROUP BY PreAA
然而以上查询有一个问题,即如果某种氨基酸在该位置上没有出现,则查询结果中也没有这种氨基酸。而需要在这种情况下能显示为0,而不是在结果中不存在。所以执行以下集合查询 ViewPreCounts,求两个查询的并集
SELECT * FROM
ViewPreCountsTemp
UNION
SELECT AAs.AASingleChar, 0
FROM ViewPreCountsTemp RIGHT JOIN AAs ON ViewPreCountsTemp.PreAA = AAs.AASingleChar
WHERE PreAA IS NULL
P1位点氨基酸种类的统计分析
查询 ViewP1CountsTemp
SELECT P1AA, COUNT(*) AS P1Count
FROM ViewPepAAs
WHERE PepCode="S08.073"
GROUP BY P1AA
查询 ViewP1Counts
SELECT * FROM
ViewP1CountsTemp
UNION
SELECT AAs.AASingleChar, 0
FROM ViewP1CountsTemp RIGHT JOIN AAs ON ViewP1CountsTemp.P1AA = AAs.AASingleChar
WHERE P1AA IS NULL
P1后一位点氨基酸种类的统计分析
查询 ViewNextCountsTemp
SELECT NextAA, COUNT(*) AS NextCount
FROM ViewPepAAs
WHERE PepCode="S08.073"
GROUP BY NextAA
查询 ViewNextCounts
SELECT * FROM
ViewNextCountsTemp
UNION
SELECT AAs.AASingleChar, 0
FROM ViewNextCountsTemp RIGHT JOIN AAs ON ViewNextCountsTemp.NextAA = AAs.AASingleChar
WHERE NextAA IS NULL
综合结果:酶切位点附近的氨基酸种类的统计分析
将上述三个查询组合起来, 将Count转换为百分比
SELECT ViewPreCounts.PreAA AS AA,
PreCount / (SELECT SUM(PreCount) FROM ViewPreCounts ) AS PreRatio,
P1Count / (SELECT SUM(P1Count) FROM ViewP1Counts ) AS P1Ratio,
NextCount / (SELECT SUM(NextCount) FROM ViewNextCounts ) AS NextRatio
FROM ViewPreCounts, ViewP1Counts, ViewNextCounts
WHERE ViewPreCounts.PreAA = ViewP1Counts.P1AA AND
ViewP1Counts.P1AA = ViewNextCounts.NextAA
对三种蛋白酶的底物酶切位置的氨基酸偏好分析结论
对蛋白酶S01.161的底物酶切位置的氨基酸偏好分析结论
S01.161这种酶,更多地倾向于在精氨酸(R)后切断蛋白底物,对精氨酸(R)后的肽键具有较强专一性;少数情况下,也可能在其他氨基酸的肽键后切断底物。而对精氨酸(R)前后1个位置的氨基酸种类偏好性并不明显。
对蛋白酶C02.002的底物酶切位置的氨基酸偏好分析结论
C02.002这种酶,对P1位置及其后一个位置的氨基酸种类偏好性并不明显。对于P1的前一个位置,对L有更强的专一性。