miRNA-seq分析流程-----转载

miRNA-seq分析流程

转载2016-11-28 16:29:44

miRNA是生物中非常重要的一类非编码小RNA,其在生物体的调控中具有非常重要的作用,在人中大约三分之一的基因受到miRNA的调控。对于miRNA转录后调控的分析也越来越多。那么拿到一组miRNA测序的数据之后我们进行怎样的分析呢?

第一,  对于所有的测序数据,我们都要进行质量的检测,这里我常用的检测软件是fastQC,(fastqcdata1.fq -o data1),得到的结果是一个文件夹的压缩形式,里面可以得到以下所示的信息:

网页结果展示

​同时这些结果都有单独的图片格式,用于数据展示与质量评定。在新版本的fastQC中有一个新的功能就是识别reads中包含的adapter序列,并且fastqQC中有一个adapter的库,可以从里面找到对应的adapter序列,再也不用担心没有测序报告没法去掉adapter了。

第二,  对数据进行过滤,这里我用的是cutadapt,这个软件可以去掉reads中的adapter,低质量的reads以及过长过短的reads,还可以对reads中含有N的进行处理。(cutadapt-a AGATCGGAAGAG --quality-base 33 -m 10 -q 20 --discard-untrimmed -o trim_data1.fqdata1.fq > cutadpt.info),这里--discard-untrimmed是把reads中不含有adapter的reads去掉。

第三,  由于分析的是miRNA-seq,这里对clean的reads还要进行一下长度分布的统计,一般就是自己写脚本,我用的python。

importsys

miRNA_len= {}

fori in range(0,52):

        miRNA_len[i] = 0

fori in open(sys.argv[1]):

        if i.startswith('@') ori.startswith('+'):

                        continue

        length = len(i) - 1

        miRNA_len[length] += 1

fori in miRNA_len:

        printstr(i)+"\t"+str(miRNA_len[i]/2)

统计完长度分布之后就是做呈现出来,这里是用R作图:

#use all reads

s1= read.table("trim_data1.stat")

s2= read.table("trim_data2.stat")$V2

s3= read.table("trim_data3.stat")$V2

s4= read.table("trim_data4.stat")$V2

s5= read.table("trim_data5.stat")$V2

s6= read.table("trim_data6.stat")$V2

data= cbind(s1, s2, s3, s4, s5, s6)

colnames(data)= c("Length","data1","data2","data3","data4","data5","data6")

#normalize by library size

data$kBT_0= 100 * data$data1/sum(data$data1)

data$kBT_1= 100 * data$data2/sum(data$data2)

data$kBT_3= 100 * data$data3/sum(data$data3)

data$kN6_0= 100 * data$data4/sum(data$data4)

data$kN6_1= 100 * data$data5/sum(data$data5)

data$kN6_3= 100 * data$data6/sum(data$data6)

library(reshape2)

data.melt= melt(data, id="Length")

library(ggplot2)

p<- ggplot(data.melt, aes(x=Length, y=value, col=variable))

p+ geom_line() +

  theme( text = element_text(size=30),

         panel.background=element_blank(),

         axis.line = element_line(size = 1,colour="black"),

         axis.text =element_text(colour="black")) +

  labs(title="All reads lengthdistribution",x="Read Length", y="Fraction (%)")

得到的示意图如下,一般在21和24nt的位置有两个峰:

第四,  在得到高质量的clean数据之后就是进行比对,将miRNA的数据比对到相应物种的基因组上,这里我用的是bowtie软件,(bowtie -q -v 2 -l 10 -k 15 Reference/genome.fa trim_data1.fq -S data1.sam 2>mapping.info),我分析的植物miRNA-seq的数据,比对率超过了90%。

第五,  在得到比对的结果之后就是用HTSeq进行count计数,把在不同的材料中表达的miRNA的reads支持数统计出来。

for i in data1 data2 data3 data4 data5 data6

do

htseq-count-s no -t miRNA -i ID -o $i.hc.sam $i.ht.sam miRNA_reference/miRNA.gff3 | tee$i.count &

ls$i.count >> count.list

done

第六,  然后就是重头戏,差异表达的miRNA,这里分为有重复的处理和没有重复的处理两种,对于没有重复的用DEGseq处理,有重复的用DESeq处理。

没有重复的用DEGseq:​

R

library("DEGseq")

#BT_0_1

geneExpMatrix1<- readGeneExp("ht.genotype_data1.txt", geneCol=1, valCol=3)

geneExpMatrix2<- readGeneExp("ht.genotype_data2.txt", geneCol=1, valCol=2)

write.table(geneExpMatrix1[30:31,],row.names=FALSE)

write.table(geneExpMatrix2[30:31,],row.names=FALSE)

pdf(file="data1_2.pdf")

layout(matrix(c(1,2,3,4,5,6),3, 2, byrow=TRUE))

par(mar=c(2,2, 2, 2))

DEGexp(geneExpMatrix1=geneExpMatrix1,geneCol1=1, expCol1=2, groupLabel1="data1",

geneExpMatrix2=geneExpMatrix2,geneCol2=1, expCol2=2, groupLabel2="data2",

method="MARS",outputDir="05DEmiRNA/DEGSeq")

dev.off()

 有重复的用DESeq:

R

library("DESeq")

data=read.table("ht.genotype_data.txt",header=TRUE,row.names=1)

pd=data.frame(row.names=colnames(data),condition=c("data3","data3","data4","data4"),libType=c("single-end","single-end","single-end","single-end"))

ps=pd$libType=="single-end"

ct=data[,ps]

condition=pd$condition[ps]

cds=newCountDataSet(ct,condition)

cds= estimateSizeFactors(cds)

sizeFactors(cds)

cds= estimateDispersions(cds)

res=nbinomTest(cds,"data3","data4")

write.table(res,file="data3_data4.xls")

quit()

第七,  在找到相应的差异表达miRNA之后,对其靶基因进行预测与分析,这里我是将我做的玉米miRNA的所有靶基因进行了预测,这里的玉米miRNA的全部注释信息是从miRbase中下载的,得到miRNA靶基因的详细信息之后,对于不同组的差异表达miRNA可以从中去对应分析。

在植物中有两个比较好的miRNA预测的软件,分别是psRNAtarget和psRobot,psRNAtarget是一个支持在线预测的软件,psRobot可以将软件安装在服务器中,用命令行进行预测。

在得到的结果中两种软件预测到的共同的部分是结果比较可信的部分。

第八,  当然对于miRNA还有很过方面,对靶基因的功能分析,对miRNA二级结构的分析,对样品中新miRNA的分析等等。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容