miRNA-seq分析流程

参考0
参考1
miRNA预测工具miRDeep-P2简明教程
植物miRNA靶基因预测
下机数据整理汇总
find -name ./msj *.clean.fastq.gz |xargs -i cp {} ./msj/clean/
查找所有的质控过的数据,移动到clean文件夹。
我的是水稻的miRNA数据。所以先下载水稻的各种文件。
下载地址
包括基因组序列、基因组注释、基因组蛋白质注释、基因组cds序列。
下载miRNA数据
下载miRNA注释文件

1. 测序下机数据质控、去接头、检测分布

1.1 质控fastqc
fastqc -i ./clean/*.fastq.gz -t 4 #4个进程同时运行
1.2 去接头
miRNA的一般用cutadapt,同时去掉reads中的adapter,低质量的reads以及过长过短的reads。
cutadapt下载安装配置环境变量,参考官网
环境变量在~/.bashsrc_profile
去掉接头。

cutadapt -a AGATCGGAAGAG --quality-base 33 -m 10 -q 20 --discard-untrimmed -o $Co1.fa >cutadapt.info

具体的接头文件,在fastqc的输出文件中,找adapter可以看到。
1.3 检测片段分布
新建length-distribute.py
python 代码如下:

#!/usr/bin/env/ python3
#Author:Frank
import sys
miRNA_len={}
#此处的60长度根据你的每行数据的最长长度设置,过小可能会报错。
for i in range(0,60):
    miRNA_len[i]=0
for i in open(sys.argv[1]):
    if i.startswith('@') or i.startswith('+'):
        continue
    length=len(i)-1
    miRNA_len[length] += 1
for i in miRNA_len:
    print(str(i)+"\t"+str(miRNA_len[i]/2))

使用方法:
示例:python3 length-distribute.py ./merge/S168-Na-1_L1.fastq >S168-1.stat
实际使用脚本循环所有数据:


2. 拼接

miRNA拼接最好使用bowtie,而不是bowtie2.详情地址
2.1 bowtie的使用
-建立索引

bowtie-build  -f genome.fasta genome.fa &
bowtie-build  -f miRNA.fa miRNA.fa &
bowtie -q -v 2 -l 10 -k 15 genome.fa C01.fa -S c01.sam 2>mapping.info

此处比对我实际使用的脚本循环,因为样本量太多了。

name_array=(Co1 S168-Na STTM168 Co1-Na) 
for ((n=0;n<4;n++));
do 
    for ((i=1;i<4;i++));
    do
         read="./merge/"${name_array[$n]}"-"$i"_L1.fastq"
         bowtie -q -v 2 -l 10 -k 15 genome.fa $read -S ${name_array[$n]}"-"$i".sam" 2>>mapping.info
    done
done

在输出文件mapping.info中可以找到mapping到的比率。
整体在90%以上,数据比较好。

对于miRNA比对一般有2种方式,一种是比对到基因组上,另一种是比对到对应物种的miRNA数据库中。此处的genome.fa是基因组文件。

-mi.fa 是把miRNA.fa的U碱基转换成T碱基。
-miRNA.fa 是原始的从mirbase下载的茎环结构的数据,自己命名。
bowtie分别构建上述三个基因组的索引文件。
参考曾建明多年前的 提问,miRNA比对到mirBase的miRNA数据库时,是需要把U转换为T的。
但是事实上,转变碱基之后的比对效果仍然很低(0.1-0.2%)。不知道原因。所以我暂时使用的是和基因组的比对结果。

3. 安装使用HTSeq(非root用户)(据说可以使用featurecount替代HTSeq)

作为非root用户,安装许多软件非常头疼。总是没有权限。
先在GitHub下载htseq。
下载地址

unzip  htseq-master
python setup.py build install --user

安装完成,添加环境变量。

vim ~/.bash_profile
export PATH=$HOME/chaim/.local/bin:$PATH

重启终端,测试htseq。
htseq-count -h
会出现相应的帮助信息。
HTSeq-count使用API

htseq统计counts的脚本

#!/bin/bash
name_array=(Co1 S168-Na STTM168 Co1-Na)
for ((n=0;n<4;n++));
do
        for ((num=1;num<4;num++));
        do
                htseq-count -s no -t miRNA -i ID -o ${name_array[$n]}"-"$num".hc.sam" ${name_array[$n]}"-"$num".sam" miRNA.gff3 | tee ${name_array[$n]}"-"$num".count"
                ls ${name_array[$n]}"-"$num".count" >> count.list
                #echo ${name_array[$n]}"-"$num"count"
        done
done

吐槽一下,水稻基因组本身是有2种命名格式的,基因注释是有Chr1和Chr01的格式的。所以一定要看清楚自己的注释文件和Sam文件的格式是否一致,否则会出现counts=0.

4. 表达量差异分析(R语言中操作)

无生物学重复使用DEGseq,有生物学重复使用DESeq2
无生物学重复DEGseq(以下代码摘自引用1,未经过实践。)

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()

有生物学重复DESeq2 (RNA-seq也可以使用它计算表达量)
使用DESeq2之前先生成矩阵,使用prepDE.py
python2.7 /disks/backup/chaim/soft/prepDE.py -i gtf2
gtf2文件内容

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()

5. miRNA样本配对mRNA表达量获取

参考
差异表达分析
生信菜鸟团
weibo

6.miRNA-mRNA表达相关下游分析

image.png

>当前进展,该设计脚本跑python的数据分析,等待htseq的运行结果。因忙于毕业考博事宜,此项目停更。很抱歉!<

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

推荐阅读更多精彩内容