首页 > 网名大全 正文
三个相近的QQ名字

时间:2023-02-27 06:03:56 阅读: 评论: 作者:佚名

以前有人买了我的课,淘宝ID和名字,还有QQ、QQ号、QQ名,后面还有一个微信、微信名,因为这三个ID根本不合适,所以我经常崩溃。

现在微信已经超过10亿用户,作为实名社交软件,很多用户的ID也常常让人困惑,比如一些中老年人喜欢的人生如茶,大漠祥云,金色枫叶,花自芬芳,滴水穿石,沁水百合,闲云野鹤,上善若水,四季花开等,还有XX爸,XX妈,XX姥爷,XX奶奶的,可以看出对子女无尽的爱。但是希望你儿子是马云,王健林,马化腾,这样别人才知道你是谁,微信实名是对别人的尊重,尤其你的微信号是作为工作号使用的,今天我们要说的是基因的ID问题。

讨厌的序列ID

不仅基因ID,序列ID也是一个特别讨厌的问题,而且这个问题越演越烈,做生物信息分析,在这个事情上需要浪费很多的时间。同一条参考序列,被不同的数据库收录,就会有不同的ID。而且可能还有不同的版本。我们以人全基因组序列为例。人全基因组序列目前分别被多个国际组织的数据库收录,那么同一份数据,会有不同的名字,以hg19参考序列为例,
例如在NCBI中,称为GRCH37,UCSC称为hg19,EMBL称为ENSEMBL release_59等版本,千人基因组计划称为b37,具体转换如下所示:
hg18 = GRCh36 = ENSEMBL release_52
hg19 = GRCh37 = ENSEMBL release_59/61/64/68/69/75
hg38 = GRCh38 = ENSEMBL release_76/77/78/80/81/82
此外,EMBL定期发布一些新版本,还有其他序列一些小的升级版本,例如b37的升级版本hs37d5,让人非常迷惑。

讨厌的基因ID

除了序列的ID问题,基因ID更加棘手。同一个基因序列,需要被不同的库收录,每一个库都有单独的ID信息。而且在一些数据库中,会出现一对多,多对多的情况,举个例子,同一个基因可能属于不同的GO条目,同一个GO条目中会包括不同的基因。一个常见的基因,在NCB中的属名为EGFR基因,这个称为symbol NAME,但是同一个EGFR可能测序出不同的序列,或者同一个基因在不同的哺乳动物中都存在,如果还用symbol就不容易区分,所以就需要ID信息,这个类似于姓名与身份证的关系。NCBI中为GI号,例如EGFR的GI号可能有1101020101,1100832916等多个,因为基因,外显子,转录本,核糖体RNA,物种分类号都使用数字,不容易区分,因此每个序列还有一个Access Number号,字母加数字的组合,例如NP_001333870.1,NP_001333827.1,这样一次就能看出来它是一个氨基酸的序列,NP中的P表示Protein。而在EMBL中,则为 ENSG00000146648。

基因ID与功能注释富集

理解了基因ID的内容之后,其实对于有已知基因ID的基因功能注释与富集分析,本质上就是ID匹配的过程,类似于查字典,根据已知ID,到数据库中基因型匹配。以EGFR基因为例:

这样我们就可以直接使用Q504U8这个ID去UniProt库中直接找这个基因的功能信息了,没错,基因功能注释就是这么简单。

基因ID转换

光吐槽是起不到任何作用了,吐槽完了,还是得了解如何进行序列ID的转换,其实基因ID的转换方法有很多,比如可以在DAVID网站进行转换,但是一个比较好的方法是使用R包,有很多R包都可以进行基因ID的相互转换,例如AnnotationDbi包中的mapIds函数,clusterProfiler包中的bitr函数等。其实基因ID转换,本质上是查找替换的过程,前提是必须有一个已知的基因ID的对应表,下面以AnnotationDbi包的使用为例。

> library("AnnotationDbi")
> library("org.Hs.eg.db")
#有这么多ID可供转换
> keytype)
[1] "ACCNUM" "ALIAS" "ENSEMBL"
[4] "ENSEMBLPROT" "ENSEMBLTRANS" "ENTREZID"
[7] "ENZYME" "EVIDENCE" "EVIDENCEALL"
[10] "GENENAME" "GO" "GOALL"
[13] "IPI" "MAP" "OMIM"
[16] "ONTOLOGY" "ONTOLOGYALL" "PATH"
[19] "PFAM" "PMID" "PROSITE"
[22] "REFSEQ" "SYMBOL" "UCSCKG"
[25] "UNIGENE" "UNIPROT"
egfr <- "EGFR"
#将SYMBOL转换为ENSMBL
> mapId,keys = a,column = "ENSEMBL",keytype = "SYMBOL",multiVals = "first")
EGFR
"ENSG00000146648"

使用clusterProfiler可以一次转换多个库

library(clusterProfiler)
> ids <- bitr(x, fromType="SYMBOL", toType=c("UNIPROT", "ENSEMBL","ENTREZID","GO","ONTOLOGY"), OrgDb="org.Hs.eg.db")
'select()' returned 1:many mapping between keys and columns
> head(ids)
SYMBOL UNIPROT ENSEMBL ENTREZID GO EVIDENCE ONTOLOGY
1 EGFR Q504U8 ENSG00000146648 1956 GO:0000139 IEA CC
2 EGFR Q504U8 ENSG00000146648 1956 GO:0000165 TAS BP
3 EGFR Q504U8 ENSG00000146648 1956 GO:0000186 IEA BP
4 EGFR Q504U8 ENSG00000146648 1956 GO:0001503 NAS BP
5 EGFR Q504U8 ENSG00000146648 1956 GO:0001618 IEA MF
6 EGFR Q504U8 ENSG00000146648 1956 GO:0001892 IEA BP

没有基因ID怎么办

如果是自己拼接与预测出来的基因,基因ID都是自动生成的,没有已知ID如何进行转换。这个时候就需要首先将得到的基因与NR数据库进行比对,NR是非冗余的氨基酸数据库,将预测得到的序列在数据库中找到它最近源的同源基因序列,那么他们具有相同的基因ID,NR数据库中现在采用的是Accession Number。这个Accession Number就对应的OrgDb包中的“ACCNUM”关键字,这样就可以利用bitr函数进行各种基因ID的转换了。

  • 相关阅读
  • 评论列表

发表评论: