一些参考资料

http://www.360doc.com/content/17/0528/22/19913717_658086490.shtml

https://www.cnblogs.com/triple-y/p/9338890.html

一、对miRNA进行分析 

1、bowtie比对

"bowtie -q -v 2 -l 10 -k 15 /data/pub/shehb/Spinach_genome/spinach_genome_v1.fa "+fq+" -S "+fq+".sam >mapping.info"

2、HTSeq 计算reads数量 (详细:http://www.chenlianfu.com/?p=2438)

(1)HTSeq是对有参考基因组的转录组测序数据进行表达量分析的,其输入文件必须有SAM和GTF文件。

(2)一般情况下HTSeq得到的Counts结果会用于下一步不同样品间的基因表达量差异分析,而不是一个样品内部基因的表达量比较。因此,HTSeq设置了-a参数的默认值10,来忽略掉比对到多个位置的reads信息,其结果有利于后续的差异分析。

(3)输入的GTF文件中不能包含可变剪接信息,否则HTSeq会认为每个可变剪接都是单独的基因,导致能比对到多个可变剪接转录本上的reads的计算结果是ambiguous,从而不能计算到基因的count中。即使设置-i参数的值为transcript_id,其结果一样是不准确的,只是得到transcripts的表达量。

run = "htseq-count -s no -t mRNA -i ID "+sam+" ./Spinach_genome/spinach_gene_v1miRNA.gff3 > "+sam+"count_out.txt"

参数:

-f | --format default: sam 设置输入文件的格式,该参数的值可以是sam或bam

-r | --order default: name 设置sam或bam文件的排序方式,该参数的值可以是name或pos。,但HTSeq推荐使用name排序,且一般比对软件的默认输出结果也是按name进行排序的。

-s | --stranded default: yes 设置是否是链特异性测序。该参数的值可以是yes,no或reverse。no表示非链特异性测序;若是单端测序,yes表示read比对到了基因的正义链上;若是双末端测序,yes表示read1比对到了基因正义链上,read2比对到基因负义链上;reverse表示双末端测序情况下与yes值相反的结果。根据说明文件的理解,一般选择no, yes是成对的reads数量
-a | --a default: 10 忽略比对质量低于此值的比对结果。在0.5.4版本以前该参数默认值是0。 
-t | --type default: exon 程序会对该指定的feature(gtf/gff文件第三列)进行表达量计算,而gtf/gff文件中其它的feature都会被忽略。 比如:在mRNA中,选择exon,表示只计算exon的reads数量
-i | --idattr default: gene_id 设置feature ID是由gtf/gff文件第9列那个标签决定的;若gtf/gff文件多行具有相同的feature ID,则它们来自同一个feature,程序会计算这些features的表达量之和赋给相应的feature ID。 看基因前面的标志是什么
-m | --mode default: union 设置表达量计算模式。该参数的值可以有union, intersection-strict and intersection-nonempty。这三种模式的选择请见上面对这3种模式的示意图。从图中可知,对于原核生物,推荐使用intersection-strict模式;对于真核生物,推荐使用union模式。 
-o | --samout 输出一个sam文件,该sam文件的比对结果中多了一个XF标签,表示该read比对到了某个feature上。 
-q | --quiet 不输出程序运行的状态信息和警告信息。 
-h | --help 输出帮助信息。
 
htsq-count三种比对模式
 
 
 输出:
基因  reads数量
 
合并不同样品的reads count,使用如下:
1 paste *.txt |awk '{printf $1"\t";for(i=2;i<=18;i+=2)printf $i"\t";printf $i"\n"}' |less -S
2
3 ##18 为总共有多少列
 
 

3、对于有重复的样本用DESeq2进行分析

自认为感觉不是很好安装包 ,我用下前面方法安装上去的

若R安装包出现package ‘xx’ is not available (for R version 3.4.2)的问题时:

用以下方法安装包

source("http://bioconductor.org/biocLite.R")

biocLite("包名")

DESeq2对于输入数据的要求

1.DEseq2要求输入数据是由整数组成的矩阵。

2.DESeq2要求矩阵是没有标准化的。

DESeq2进行差异表达分析

DESeq2包分析差异表达基因简单来说只有三步:构建dds矩阵,标准化,以及进行差异分析。

1、构建dds矩阵

需要:(1)countData, 是readscount计算后,合并的形成的矩阵。行为基因名字,列为样本

   (2)colData, 样本信息,标出哪些是control,哪些是treat。第一列样品名称(其实就是countData第一行的名称),第二列是样品处理情况(对照还是处理等),condition的类型是一个factor。

   (3)差异比较矩阵 即上述代码中的design。 差异比较矩阵就是告诉差异分析函数是要从要分析哪些变量间的差异,简单说就是说明哪些是对照哪些是处理。

library(S4Vectors)
library(stats4)
library(BiocGenerics)
library(parallel)
library(IRanges)
library(GenomicRanges)
library(GenomeInfoDb)
library(SummarizedExperiment)
library(Biobase)
library(DelayedArray)
library(matrixStats)
library(DelayedArray)
library(DESeq2)
library(ggplot2)
setwd("/Users/hongbingshe/Desktop")
condition <- factor(c("XX","XX","XX","XY","XY","XY"))
countData <- read.table("XX_XYmiRNA.count_out",header = T,sep = "\t",row.names = "X") ##open file
colData <- data.frame(row.names = colnames(countData),condition)
dds <- DESeqDataSetFromMatrix(countData,DataFrame(condition),design = ~ condition)
head(dds) ##
dds2 <- DESeq(dds) ###normalize                                         rlogTransformation(dds2). ???
resultsNames(dds2) ###objective name
res <- results(dds2)
summary(res) ###infomation
table(res$padj<0.05) ##number of true 小于0.05 的基因个数
res <- res[order(res$padj),]
diff_gene_deseq2 <- subset(res,padj <0.05 & (log2FoldChange >1 |log2FoldChange < -1)) ###FC >1, P <0.05
differ_gene_deseq2 <- row.names(diff_gene_deseq2)
resdata <- merge(as.data.frame(res),as.data.frame(counts(dds2,normalize=TRUE)),by="row.names",sort=FALSE)
write.csv(resdata,file = "/Users/hongbingshe/Desktop/XX_XYmiRNA.cvs",row.names = F) ##output file
resdata[which(resdata$padj < 0.05 & resdata$log2FoldChange > 1 ),'significant'] <-'up'
resdata[which(resdata$padj < 0.05 & resdata$log2FoldChange < -1 ),'significant'] <-'down'
resdata[!resdata$significant%in%c('up','down'),'significant'] <- 'no'
p <- ggplot(resdata,aes(resdata$log2FoldChange,-log10(resdata$padj))) + geom_point(aes(color=significant),size=0.5) +scale_color_manual(limits=c('up','down','no'),values = c('blue','red','gray40')) +labs(x="log2(Fold Change)",y="-log10(P-value)")
p <- p + theme(panel.grid.major = element_line(color="gray",size=0.2), panel.background = element_rect(color = "black",fill = "transparent")) +geom_vline(xintercept = c(-1,1),color="gray",linetype=2,size=0.5)+geom_hline(yintercept = -log10(1),color='gray',linetype=2,size=0.5)
p <- p + theme(legend.title = element_blank(),legend.key = element_rect(fill='transparent'),legend.background = element_rect(fill = 'transparent'))
p <- p + xlim(-4,4) +ylim(0,40) ##X scale
p
ggsave("XY_XXmiRNAvalcano_plot.png",p,width = 4.5,height=5.5)

标记出你期望的基因名字

(1)首先需要做一个数据框.  假如为test

(2)导入 ggrepel 包

   library(ggrepel)

(3)添加图层

p + geom_text_repel(data =test,aes(test$log2FoldChange,-log10(test$padj),label=test$Name))

或者用p +geom_label_repel(data = test,aes(test$log2FoldChange,-log10(test$padj),label=test$Name))

二、mRNA分析

选用hisat2+HTseq+DEseq2

1、hisat2:

run = "hisat2 -x ./Spinach_genome/spinach_genome_v1.fa -p 4 -1 "+i+" -2 "+j+" -S "+Out

2、HTSeq2

htseq-count -f bam -r name -s no -a 10 -t exon -i ID -m intersection-nonempty yourfile_name.bam ~/reference/hisat2_reference/Homo_sapiens.GRCh38.86.chr_patch_hapl_scaff.gtf > counts.txt

3、DEseq2

同上

关注下方公众号可获得更多精彩

miRAN 分析以及mRNA分析的更多相关文章

  1. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  2. Memcached源代码分析 - Memcached源代码分析之消息回应(3)

    文章列表: <Memcached源代码分析 - Memcached源代码分析之基于Libevent的网络模型(1)> <Memcached源代码分析 - Memcached源代码分析 ...

  3. mysql 分析3使用分析sql 性能 show profiles ;

    show variables like '%profiling%';    查看状态  查看时间去哪了``` set  profiling=1;// 打开 show profiles;  查看执行过的 ...

  4. [转载] 常用 Java 静态代码分析工具的分析与比较

    转载自http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代 ...

  5. x264源代码简单分析:宏块分析(Analysis)部分-帧间宏块(Inter)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  6. x264源代码简单分析:宏块分析(Analysis)部分-帧内宏块(Intra)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  7. loadrunner 结果分析-loadrunner结果分析

    结果分析-loadrunner结果分析 by:授客 QQ:1033553122 百度网盘分享链接: 烦请 复制一下网址到浏览器中打开,输入密码提取 链接: http://pan.baidu.com/s ...

  8. ⑥NuPlayer播放源码分析之DecoderBase分析

    NuPlayer播放源码分析之DecoderBase分析 [时间:2017-02] [状态:Open] [关键词:android,nuplayer,开源播放器,播放框架,DecoderBase,Med ...

  9. 【转载】常用 Java 静态代码分析工具的分析与比较

    摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...

随机推荐

  1. IDEA 激活码,最新激活码,亲测有效,持续更新(2021.10.26)

    这里整理了一份 IntelliJ IDEA的最新激活码,持续更新 获取链接:[腾讯文档]分享白嫖JB Account和激活码(并附带破解工具) https://docs.qq.com/doc/DVnB ...

  2. httpclient 登录成功后返回的cookie值访问下一页面

    HttpClient4.x可以自带维持会话功能,只要使用同一个HttpClient且未关闭连接,则可以使用相同会话来访问其他要求登录验证的服务(见TestLogin()方法中的"执行get请 ...

  3. 2019OO第三单元作业总结

    OO第三单元的作业主题是JML规格化设计,作业以图及图的最短路径相关计算为载体,体现接口的规格化设计. ------------------------------------------------ ...

  4. 使用jave2实现将wav格式的音频转换成mp3格式

    最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件. ...

  5. 『学了就忘』Linux基础 — 7、补充:安装Linxu系统时设置硬盘挂载说明

    目录 (1)新建一个/home分区 (2)再创建一个/boot分区. (3)创建一个swap分区 (4)最后剩余的空间全部分给根目录 (5)总结 上一篇在VMwar虚拟机中安装Linux操作系统中ht ...

  6. linux 内核源代码情景分析——用户堆栈的扩展

    上一节中,我们浏览了一次因越界访问而造成映射失败从而引起进程流产的过程,不过有时候,越界访问时正常的.现在我们就来看看当用户堆栈过小,但是因越界访问而"因祸得福"得以伸展的情景. ...

  7. maven+springmvc+cxf 实现简单webservice小例子

    1.首先你需要创建一个maven项目[当然是web项目] 2.pom.xml添加以下 <properties> <cxf.version>2.2.3</cxf.versi ...

  8. 修改 openssh 版本号

    1.查看 sshd 位置 #which sshd 2.查看 /usr/sbin/sshd(二进制文件) 内容 #strings /usr/sbin/sshd | grep nicai 3.修改版本号, ...

  9. Mysql教程:(五)多表查询

    多表查询 select name,student.class,student.number,maths,chinese,english from student,score where student ...

  10. SpringBoot 中发布ApplicationEventPublisher,监听ApplicationEvent 异步操作

    有这么一个业务场景:当用户注册后,发送邮件到其邮箱提示用户进行账号激活,且注册成功的同时需要赠送新人用户体验卡券. 业务有了,那么问题也就来了. What? 问题....问题?我听说你有问题? 来拔刀 ...