十行代码完成circRNA多种ID相互转换

科研热点层出不穷,从技术层面来看miRNA,lncRNA,circRNA,ceRNA各领风骚一两年,现在又是m6A和单细胞。前面我们在生信技能树已经系统性的总结了circRNA的相关背景知识

而且在单细胞天地平台也探索一下单细胞circRNA技术的进展,这个链接就不放了,感兴趣的自己去单细胞天地搜索哈。

最近有人咨询,他在某自学网买的circRNA多种ID相互转换代码运行不了,而且还是perl语言编写的代码,打开一看,一两百行,头都大了。鉴于他恳请我出手解决这个bug的心非常诚恳,我就勉为其难打开电脑,三下五除二写了10行代码,打完收工。

查看3个输入数据

首先是circRNA的表达矩阵

> a=fread('probeMatrix.txt',data.table = F)
> a[1:4,1:4]
 ID_REF GSM2561829 GSM2561830 GSM2561831
1 ASCRP000002 9.042573 9.238902 8.997313
2 ASCRP000004 10.219584 9.999965 10.246754
3 ASCRP000005 5.997230 6.022147 6.075589
4 ASCRP000006 7.918213 7.954153 8.005365

可以看到,探针ID,是ASCRP开通的数字,熟悉circRNA芯片的就知道这个是circRNA芯片厂家规定好的。通常呢,我们需要把这样的探针ID转换为circRNA的基因名字,虽然说circRNA基因名字也有两种:

首先看看 探针ID 和 circRNA 的6位数代号基因名字的转换:

> tail(head(b,20))
 ID circRNA SPOT_ID PROBE_TYPE BUILD SEQUENCE
15 AS_circRNA_control9 control control TGTCAGTCTGCAGCTACTCAGATCAACCTCTCCACTTCTCCTACAC
16 ASCRP000001 hsa_circRNA_000006 hsa_circRNA_000006 circRNA HG19 TGGGCTTGAGGCCTGATCTTTTGGCCAGAAGGAGATTAAAAAGATG
17 ASCRP000002 hsa_circRNA_000010 hsa_circRNA_000010 circRNA HG19 TCCTTTTGGCCTCACCCAATGACCTGGCTGAAGAAGAGCCCAAGGA
18 ASCRP000003 hsa_circRNA_000028 hsa_circRNA_000028 circRNA HG19 TAAGCCAAATGACTAACAGTAATTAAAATGGAAATGGCACAGGGAG
19 ASCRP000004 hsa_circRNA_000031 hsa_circRNA_000031 circRNA HG19 ATTGGCACTCAGTGACCATCAGGCTGGCTGTGTGCGGCAGCTTCCT
20 ASCRP000005 hsa_circRNA_000041 hsa_circRNA_000041 circRNA HG19 GCAGGTTGAGGATTTTATTTGATCCCTGCTCTAATTTTTAGCTTCA

其实你查阅GEO数据库就可以发现,目前经常使用的人类circRNA芯片主要有以下几种:

  • GPL21825:074301 Arraystar Human CircRNA microarray V2
  • GPL19978:Agilent-069978 Arraystar Human CircRNA microarray V1
  • GPL26925:Agilent-084217 CapitalBio Technology Human CircRNA Array v2
  • GPL23467:Agilent-082557 CBChuman circRNA array V2.0

对我们感兴趣的GSE,下载相应的GPL信息即可获得circRNA_ID,当然还有其他物种的circRNA芯片,可自行探索。

我们需要circRNA的基因名字就是想对它进行功能注释,但是很多生物学功能数据库,并没有对6位数代号基因名字的注释,还需要再转换为7位数的数字基因名字,需要读入如下所示的文件:

> e=read.table('ID.txt',header = T)
> head(e)
 circRNA Alias
1 hsa_circRNA_000001 hsa_circ_0000001
2 hsa_circRNA_100003 hsa_circ_0000002
3 hsa_circRNA_100011 hsa_circ_0000007
4 hsa_circRNA_100017 hsa_circ_0000008
5 hsa_circRNA_000031 hsa_circ_0000009
6 hsa_circRNA_092361 hsa_circ_0000010

这样我们的3个文件, 就通过桥梁连接起来了,前面的探针ID 就可以一步步转为hsa_circ_0000001这样的7位数的数字基因名字。

这样的7位数的数字基因名字就可以去各大数据库查询其生物学功能啦。

十行代码

全部的R代码是:

library(data.table)
a=fread('probeMatrix.txt',data.table = F)
a[1:4,1:4]
b=read.table('ann.txt',sep = '\t',header = T)
tail(head(b,20))
d=merge(a,b,by.x='ID_REF',by.y='ID')
e=read.table('ID.txt',header = T)
head(e)
f=merge(e,d,by='circRNA')
head(f[,1:6])

是不是10行代码啊,多一行都是算我输。基本上我要讲解的知识点清晰明了,但是如果你需要测试数据和代码,就需要付费啦!看文末

文末友情宣传

强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶:

付费内容分割线

为有效杜绝黑粉跟我扯皮,设置一个付费分割线,这样它们就没办法复制粘贴我的代码,也不可能给我留言骂街了!(付费6元,拿到测试数据和代码

世界顿时清净很多!

综合脚本

链接在微信公众号:https://mp.weixin.qq.com/s/-wVGQFgQ_vyaMqKwy7yMrA

内容如下:

脚本文件

Comments are closed.