在lncRNA的研究中,lncRNAba基因的确定是必不可少的环节,因此系统的梳理下常用的预测lncRNA靶基因的方法,将会为以后的科研工作带来不小帮助。
太长不看版:
- 1.starbase
- MEM
- 顺式/反式调控
- 3.基因共表达预测
- 4.RNA-seq测序
详细版:
lncRNA的作用模式比microRNA复杂很多(microRNA常见通过结合mRNA来抑制翻译或促进降解来达到目的,一般发生在转录后水平),有关lncRNA作用模式的说法有很多种,比如顺式(cis)、反式(trans),根据作用的位置不同可分为DNA、RNA和蛋白质,大致可分为转录和转录后水平。
lncRNA本质上是核酸,二核酸与核酸之间依靠碱基互补配对,因此无论lncRNA与RNA(microRNA、mRNA)或DNA之间,都可以通过碱基互补配对原则进行预测。
1. starbase
网址:http://starbase.sysu.edu.cn/
找到ceRNA network栏,点开lncRNA-ceRNA,选取目标lncRNA即可。但这个结果有一定确定,基本上都是经过别的实验验证过的,如果是探索性的,可能就太合适了。
2. MEM
网址:https://biit.cs.ut.ee/mem/
MEM汇总了GEO数据集上的芯片数据,然后基于共表达分析,预测lncRNA的靶基因。
在1处输入目标基因,2处输入物种,3处搜索,Output处可以设置输出基因的数目。
3.顺式/反式调控
顺式(cis)指lncRNA对邻近mRNA(比如在同一染色体上)的一种调控方式,因此可以完全通过寻找lncRNA周围的mRNA这种方式来预测lncRNA的靶基因。
反式(trans)指不同染色体后染色体远端位置的靶点。
目前一般认为1Mbps是一个合适的单位,即认为1Mbps内会出现频繁的顺式调控。
用LncRIsearch:分别输入想要检测的lncRNA-mRNA即可。
网址:http://rtools.cbrc.jp/LncRRIsearch
4.基因共表达预测
根据基因的表达模式,预测可能的靶基因,数据下载和分析可用R|TCGA|m6AlncRNA的例子,核心代码如下:
rm(list = ls())
library(limma)
corFilter=0.4 #设置相关系数阈值
pvalueFilter=0.001 #设置p值过滤标准
# lncRNA数据处理
rt <- data.table::fread("D:/jianshu/R-TCGA-m6AlncRNA/lncRNA.txt",data.table = F)
rt <- as.matrix(rt) #变为matrix
rownames(rt) <- rt[,1]
exp <- rt[,2:ncol(rt)]
dimnames <- list(rownames(exp),colnames(exp))
data <- matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames = dimnames)
data <- avereps(data)
data <- data[rowMeans(data)>0.1,] #去掉数值比较小的lncRNA
library(tidyverse)
lncRNA <- data[,str_sub(colnames(data),14,15)<10]
lncRNA <- log2(lncRNA+1)
# mRNA数据处理
rt1 <- data.table::fread("D:/jianshu/R-TCGA-m6AlncRNA/mRNA.txt",data.table = F)
rt1=as.matrix(rt1)
rownames(rt1)=rt1[,1]
exp=rt1[,2:ncol(rt1)]
dimnames=list(rownames(exp),colnames(exp))
data1=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
data1=avereps(data1)
data1 <- log2(data1+1)
data1 <- data1[,str_sub(colnames(data1),14,15)<10]
# 求相关性
gene="ZEB1-AS1"
outTab=data.frame()
for (i in rownames(data1)){
x=as.numeric(lncRNA[gene,])
y=as.numeric(data1[i,])
corT=cor.test(x,y)
cor=corT$estimate
cor=round(cor,3)
pvalue=as.numeric(corT$p.value)
if(pvalue<0.001){
pvalue=format(pvalue,scientific = TRUE)
}else(
pvalue=round(pvalue,3)
)
if((abs(cor)>corFilter)&(pvalue<pvalueFilter)){
outTab=rbind(outTab,cbind(lncRNA=gene,mRNA=i,cor,pvalue))
}
}
参考文献:
http://www.360doc.com/content/16/1111/12/19913717_605626019.shtml