十行代码完成circRNA多种ID相互转换
https://mp.weixin.qq.com/s/-wVGQFgQ_vyaMqKwy7yMrA
原创 生信技能树 生信技能树 6天前
科研热点层出不穷,从技术层面来看miRNA,lncRNA,circRNA,ceRNA各领风骚一两年,现在又是m6A和单细胞。前面我们在生信技能树已经系统性的总结了circRNA的相关背景知识:
首先了解一下circRNA背景知识
circRNA芯片分析的一般流程
circRNA-seq分析的一般流程
ceRNA-芯片分析的一般流程
circRNA_ID转化
而且在单细胞天地平台也探索一下单细胞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行代码啊,多一行都是算我输。基本上我要讲解的知识点清晰明了,但是如果你需要测试数据和代码,就需要付费啦!看文末
--
FROM 120.236.174.*