前面给大家详细的介绍过ENCORI这个数据库,相信很多小伙伴也已经使用过这个工具了
☞R批量预测miRNA和靶基因之间的调控关系-ENCORI篇
最近有小伙伴反映,使用这个数据库预测的miRNA-circRNA调控关系的结果中geneName这一列有些显示的是标准的circRNA的ID号,但是大多数显示的都是基因名字。怎么样才能让这一列全部显示circRNA的ID号呢?
前面我们也给大家讲解过怎么样用代码批量下载miRNA靶基因的结果
用代码下载下来的结果,你会发现跟直接从网页上下载的结果不太一样,似乎多了一列circID,而这一列正式我们需要的circID,里面全部是标准的circRNA的ID号。
但是这里又有一个问题,一个miRNA可以同时靶向多个circRNA,所以有些行里面会出现多个circRNA ID,用逗号隔开。这种格式是没办法直接作为cytoscape的输入文件的。前面给大家介绍过
我们知道如果要构建ceRNA网络,cytoscape的边的文件格式必须是下面这种,一对一的关系,而不能是一对多的关系
那么接下来小编就来教大家把一对多转换成一对一的关系
#读入miRNA靶基因预测結果,跳过前四行
a=read.table("ENCORI_hg19_miRNATarget_hsa-miR-25-3p_all_all.txt",sep="\t",stringsAsFactors = F,skip=4)
#提取第二列miRNAname和第五列circID,
b=a[,c(2,5)]
#给b添加列名
names(b)=c("mir","circ")
#将circID列,按照,拆分开,然后强制转换成向量
circs=unlist(strsplit(b$circ,","))
#构建miRNA-circRNA一对一的关系,mir都是相同的hsa-miR-25-3p,长度跟circ向量的长度一样
#第一列为miRNA名字,第二列为circRNA的名字
result=data.frame(mir=rep(unique(b$mir),length(circs)),circ=circs)
#去除一下冗余
result_rmdp=unique(result)
#保存結果到miRNA_circ.txt中
write.table(file="miRNA_circ.txt",result_rmdp,quote=F,row.names = F,sep="\t")
最后我们得到的结果是这样的