1. 首页
  2. 各色DNA

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

大家好,我是各色见习研究员惠惠。

 

我的研究方向是生物信息,就是通过计算机科学和信息技术的手段来分析生物方面的数据,以此得到想要的信息。

 

我最近在一门心思研究血型。

 

这是因为先前我收到了一位用户的难题挑战——他问:各色能不能开发一个血型的性状解读呢?

 

让我从头开始讲:

 

这位出难题的用户叫 Misaka ,大名田文泽,目前是一名高三学生,是计算机科学和生物科学的发烧爱好者,自己私下里就很喜欢研究。

 

他成为各色用户后,就开始想自己尝试一下开发一个新的性状。ABO 血型的基本遗传关系 Misaka 同学早在初中就有过学习,后来,各色 CEO 郭婷婷老师在各色人类微信群里的一次树洞直播中提到了基因 – 血型的检测问题,于是他开始了自己的研发之路。

 

他的思路是(记住这里):

1 查找文献,确立假设:通过文献,找到哪个基因位点可以判断血型

2 找到样本,验证假设:拿自己和另外两个同伴作为样本,看看根据自己的基因位点,预测出的血型,和自己的真实血型是否相符。

 

首先,他通过维基百科等百科全书类网站了解到血型的基本知识,比如,ABO 血型主要由 9 号染色体上的 ABO 基因决定,然后,他又在网上搜索了关于这个基因的可靠位点。 

上下滑动查看

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

接下来,他就拿自己和同学的数据开刀了。

 

他们找到了四个与血型相关的位点,通过结合几个位点进行人工判断以后,他得出了自己和同学的预测血型。

 

然后,为了得到自己的真实血型,他们又在网上购买了两张血型测试卡,自己完成了全流程的血型测试(此处请脑补以下画面:酒精消毒,无痛采血针上膛,准备好冲洗液和滴管……)

 

最后的结果是,他们测试得出的真实血型,跟一开始预测的血型是一致的。

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

 

所以,在 Misaka 的鼓舞下,我就这么愉快地决定了:

 

我要设计一套算法——一个包含多个基因位点、准确、且尽可能适用于所有人的综合评估方案,我希望通过这套算法,可以让我们能根据一个人的基因数据预测他/她的血型

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

这个挑战让我肾上腺素飙升,立刻行动起来。

 

首先,我得做些前期调研:

 

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

开局不利:文献少,研究机理复杂
基因预测血型无法达到 100% 准确

 

关于 ABO 基因上影响血型的位点的研究很少,文献也很少。

 

这点其实很好理解——现在医疗用途的血型检测,都会使用血型检测卡之类更加直观、快速且低成本的方法,血型 – 基因 关联的研究自然就少了。

 

但事实上,血型和基因互相关联的机理其实是非常复杂的,它涉及多个位点的突变。

 

就拿我们最熟悉的「ABO 血型」来举个?吧:

ABO 血型系统由一个叫做 ABO 的基因控制,有 A,B,O 和 AB 型四种血型的大类。

 

而这四种血型是由 3 个等位基因控制的,3个等位基因中有两个是显性,一个是隐性,他们又是由至少 20 个位点互相关联互相作用决定的,而整个 ABO 基因上又有多达 70 个位点……

 

也就是说,这 70 个位点,在缺乏充足研究文献的情况下,我得挨个地去跑我的算法,来确认他们和 ABO 血型性状到底有没有联系……

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

更打击我的是:我还从文献中发现,原来血型与基因并不是一一对应的关系,基因位点也不是能完全决定血型的。

 

这意味着:从基因位点,通过算法来推测血型,我们只能获得一个概率,并且理论上,这个概率是无法达到 100% 准确的。

 

在医院里,甚至在家里测血型,准确率已经可以接近 100%了,为什么还要费劲从基因里来推测呢?

 

因为这种过程中的复杂性和不确定性正是它有趣的地方呀。

 

研究少,机理复杂,准确率无法达到 100%,在这样多重阻碍下,我还要坚持去做血型预测的研发,目的当然不是想知道自己的血型——

 

通过自己的设计,建立一个算法模型,去尽量提高我的预测准确率,最好能无限接近100%,这个过程才是真正吸引我的地方。

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战 于是,我初步的研究思路是:

1. 找到最合适的参考位点;

2. 设计一套最合适的计算方法,使用这套算法,将各色现有基因数据得出相应的预测血型结果;

3. 把预测结果和各色人类自我报告的真实血型数据比对,评估预测力。

 

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

第一次尝试

两个位点,准确率只有 75%

 

还记得最开头 Misaka 的研究步骤吗:

1 查找文献,确立假设;

2 找到样本,验证假设。

 

我在已经收集好的文献中发现,Misaka 先前使用的四个位点都有可靠文献支撑,文献中也都有清晰的机理展示。所以,我选择沿用这些位点,然而——

 

第一个障碍很快就出现了。这四个位点,三个 在 GSA 芯片上有,三个在 ASA 芯片上有,两种芯片重合的位点只有两个。

 

按照这样的位点选取,新旧芯片的位点完全做不到统一啊。而 Misaka 有这四个位点的数据,是因为他有 GSA 芯片数据, 也有ASA 芯片数据,但其他用户应该都只有一份数据。

 

最终,我每个芯片上都选取了 三个位点,其中有两个位点是两个芯片上都有的,另外一个是两个芯片上分别不同的位点,目的是希望能完美兼顾 GSA 用户和 ASA 用户,这样 GSA 芯片用户在不需要重新检测的情况下也能拥有血型性状的解读。

       基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

 

在样本选择上,之前的招蚊子问卷中恰好有自我报告血型的题目,有 777 位 GSA 芯片用户和 150 位 ASA 芯片用户 完成了这道题目,报告了自己的血型。

 

这次尝试,我的研究方法和 Misaka 是一致的:根据已有文献提高的基因型-血型对应关系,直接看选中的三个位点,据此来判断样本的血型。

 

虽然心理的预期并没有多高,但结果还是吓到我了,准确率仅仅只有 75%!

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

 

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

第一次改善算法

准确率 80%,方向对了!

 

我先挑了一个位点,统计了一下位点上的基因型与用户汇报的血型性状的对应关系,结果吓了一大跳。

 

位点上的基因型充其量只能略微改变某一血型的出现比例而已,这和我之前设想的可太不一样了。

 

既然发现了位点与血型的关系不是「决定」而是「影响」,想要改善预测准确率的话就只有两个方向:

1. 改善算法

2. 寻找更多位点

 

首先,先拿我最擅长的算法开刀。

 

如果把位点上的基因型中的血型分布看做一个概率问题,那么,要预测一个样本是什么血型的概率,其实就是查看多个位点上该样本的基因型所对应的概率分布,再把这些百分数一一对应相乘,最后,概率最高的那个血型,就是样本推测出来最可能的血型了。

 

我虚构一个位点做例子,下面是它的基因型对应的血型分布: 

    基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

这只是一个位点的概率分布,如果选取 2 个位点(下面增加一个不存在的位点): 

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

那么,如果一个人在这两个位点上的基因型分别是 T/T 和 A/A,那么:

他是 O 型血的概率是:80% X 14% = 11.2%

他是 A 型血的概率是:4% X 47% = 1.88%

他是 B 型血的概率是:9% X  10% = 0.9%

他是 AB 型血的概率是:7% X 29% = 2.03%

 

所以,最后的预测结果是,这个人是 O 型血的概率最大。

 

这样做,可以综合多位点的基因型-血型概率分布,计算单一样本是某一血型的相对概率。最终,这个算法的改进将准确率从 75% 提升到了 80%。

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

第二次改善算法

通过机器学习,再次提高 5%

 

那接下来再看看位点方面有没有我还能做的

 

可是问题来了:研究文献就那么多,可靠的位点就那么几个,我要怎么办呢?

 

我发现自己已经被之前的研究结论困住了。必须全部擦掉重来。

 

换一种思路,如果把血型的预测问题,抽象成一个多分类问题呢?

 

于是,我挑选了 GSA 芯片上所有在 ABO 基因范围内的位点,再把他们的数据都提取出来,总共有 70 个。

 

然后,无差别地将这 70 个位点全部放入模型中,让机器学习不同基因位点类型和血型之间的规律,最后再用机器学到的规律来做预测。

 

我选择了支持向量机(SVM) ,这个常用的分类算法。将 777 个人(既有基因数据,也有血型数据),分为学习集和测试集,分别是 505 人 和 272 人。

 

从 505 人中总结基因位点和血型的关系,然后再根据 272 人的基因类型预测他们的血型。

 

比较这 272 人预测的血型和他们自己报告的血型,得到了模型预测准确率—— 85%。

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

 

基因能算出你的血型吗?我跟一位高中生用户联手接受了挑战

继续提高预测准确率,

还有一个方法,

但我需要你的帮助

 

位点和算法两条路都已经走到头了。

 

再回过头来,数据收集这个环节还能再优化吗?

 

我重新看了招蚊子问卷里报告血型的题目,发现选项只设置了 A,B,O,AB 四个。这很难保证用户答案的准确率,因为如果他并不确定自己的血型,而且又没有「不确定」的选项,那他/她很可能随意选一个血型。

 

再加上,最后统计到的样本总共只有 777 位 GSA 和 150 位 ASA 的,就算答案准确,这样的样本容量要得出更有代表性的结论也是远远不够的。

 

所以,如果你也是一个有着科研精神、喜欢挑战不可能的科学爱好者,现在,我想邀请你点击下面的链接,完成血型调查。

原创文章,作者:DOT日报,如若转载,请注明出处:https://www.bilingling.cn/gesedna/24802.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注