在一开始做生信分析的时候,我对下游的分析其实不太了解,当时频繁接触到的概念叫“注释”,注释后就可获得关键基因相关的一些数据。后来深入分析后也经常会疑惑为什么某些数据就是注释不上信息,参与到注释数据库的开发之后,对数据注释有了更深入的认识,于是写下了本篇的说明,只讲功能注释。
• 通过注释过程明白注释结果是怎么来的
• 了解数据库的局限性
生物的数据一般分为表格数据和序列数据。虽然生物数据有很多种格式如
gff,vcf,bed
等等, 但它们实际上都是以tab为分隔符的tsv表格,开头一大段####
这些都是注释信息,python或者R语言读取数据的时候一般都可以跳过。
• 序列数据
这里所说的序列数据指的是DNA(.fasta),蛋白质序列(.faa)这一类文件。
网站提供的注释流程应该是先进行序列比对,选出相似性最高的序列,搜索数据库中相关信息最后得出结果。
• 表格数据
vcf实际上也是以tab为分割的tsv文件呢
以gnomAD注释vcf为例,gnomAD实际上只需要vcf中的CHROM,POS, ID, REF, ALT
这几列的信息即可,也即说这里面只要存在这几个值就能拿到对应位点的全部信息,CHROM,POS,ID,REF,ALT
实际上就是key-value pair(键值对)中的key
,对应信息则是value
PS:附功能注释分析的一个小tips,比如说vcf,实际上只需要上文提到的五列信息即可去注释,减少了注释时间和资源还减少了不必要的信息量。其他需要注释的数据也可以如法炮制,尝试用最少的信息得到完整的映射关系(一般网站也会告诉我们注释所需要的必须信息,强制|带星号的填写)
经常会有老师同学问到为什么我的基因组注释信息那么少?为什么会没有得到预期中本应该存在的信息?
原因
• 数据库没有收录对应的信息(包括没有更新的情况):数据库对一些信息的收录是整理后的信息集合,信息的完整度取决于整合数据库的一方。
• 某个物种/物质缺乏研究数据:注释信息少是因为原本存在的信息少所致的,比较贴近的例子就是蛋白质组的注释结果(2024年的今天数据库应该扩充了不少吧)。
如何解决?
尽可能地整合各个数据库和文献发布的序列
生信的数据注释结果归结起来其实是手中数据与数据库之间key-value的映射结果,注释信息的多少取决于数据库收录信息的广度和深度,有些问题看上去是生物学问题,实际上是计算机的问题。
参考及推荐阅读
原核个性化分析:https://zhuanlan.zhihu.com/p/421697388