20200412 转录组分析--斑马鱼线粒体(二)

#FeatureCounts

for ele in {MT1,MT2,MT3,WT1,WT2,WT3}; do featureCounts -p -T 6 -t exon -g gene_id -a Danio_rerio_Ensemble_97.gtf -o ./count/counts$ele.txt ./bam/M_H_$ele.bam; done ###每个文件进行counts

featureCounts -p -T 6 -t exon -g gene_id -a Danio_rerio_Ensemble_97.gtf -o ./count/counts_all.txt ./bam/M_H_*.bam ###所有输入文件汇成一个txt

featureCounts -T 24 -p -a ~/data/genome/Rat6.0.99.gtf -o ~/1data/07count/count_all.txt ~/1data/06sort/sorted*.bam 1

-a 注释文件,也就是GTF或者GFF文件,通过这个文件才能区分出哪些区域为外显子; -o 输出结果文件,同样会输出一个以该名字结尾的.summary统计文件; -F 指定输入注释文件类型,包括GTF,GFF,SAF等; -t 指定注释文件中功能类型,默认外显子exon -g 指定注释文件中属性信息,默认为gene_id -A 如果基因组与注释文件中染色体ID不同,可以通过-A指定一个别名文件,例如有些基因组直接用数字表示染色体号,有些使用chr前缀; -f 计算级别,以基因还是外显子为单位进行计算; -M 如何处理多重比对reads -Q 比对质量值阈值,小于此值的reads不用于计算; -G 参考序列

最后的到数据有,countData表示的是count矩阵,行代表gene,列代表样品,中间的数字代表对应count数。


ZUI

安装DESeq2包    start R (version "3.6") and enter

> if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")  

> BiocManager::install("DESeq2")

y

一个个包安装

data1<-read.table("counts_all.txt")### txt格式读取数据。。。mycounts<-read.csv("readcount.csv")##csv格式读取

dim(data1)###查看行数列数   >head(data1) ##前六行数据

>mycounts<-data1[,-(2:6)] ##先去掉第2-6列        

> write.csv(mycounts, "results2.csv",row.names=FALSE) #重新写入csv格式中,去除行名,并将行名改为M_H_MT1等,删除第一行数据。###

> mycounts<-read.csv("results2.csv") #重新读入数据

> rownames(mycounts)<-mycounts[,1] ###第一列设为行名 

> mycounts<-mycounts[,-1]  ##去掉第1列    

> head(mycounts)


手动去除第一行,就不需要下面的2行命令

> colnames(mycounts)<-mycounts[1,]

> mycounts<-mycounts[-1,]

###注意control要放在前面####

> condition <- factor(c(rep("M_H_MT",3),rep("M_H_WT",3)), levels = c("M_H_MT","M_H_WT"))    ##设置对照组,实验组

> condition

[1] M_H_WT M_H_WT M_H_WT M_H_MT M_H_MT M_H_MT Levels: M_H_WT M_H_MT

>colData <- data.frame(row.names=colnames(mycounts),condition) #####colData也可以自己在excel做好另存为.csv格式,再导入即可

> colData


condition M_H_MT1 M_H_MT M_H_MT2 M_H_MT M_H_MT3 M_H_MT M_H_WT1 M_H_WT M_H_WT2 M_H_WT M_H_WT3 M_H_WT

构建dds对象,开始DESeq流程 注释:dds=DESeqDataSet Object

> dds <- DESeqDataSetFromMatrix(mycounts, colData, design= ~ condition)   

> dds <- DESeq(dds)  

> dds   # 查看一下dds的内容

接下来,我们要查看treat versus control的总体结果,并根据p-value进行重新排序。利用summary命令统计显示一共多少个genes上调和下调(FDR0.1)
>  res= results(dds)         

> res = res[order(res$pvalue),]      .

> head(res)      

> summary(res)           #所有结果先进行输出 > write.csv(res,file="All_results.csv")

> table(res$padj<0.05)


可见,一共93个genes上调,94个genes下调,有离群值19。padj小于0.05的共有156个


4 提取差异表达genes(DEGs)并进行gene symbol注释

差异表达基因的界定很不统一,但log2FC是用的最广泛同时也是最不精确的方式,但因为其好理解所以广泛被应用尤其芯片数据处理中,记的是havard universit做过一个统计,FC=2相对比较可靠。但无论怎么,这种界定人为因素太大,过于武断。所以GSEA,WGCNA是拿全部表达数据(可以进行初步过滤)来进行分析,并且WGCNA采取软阈值的方式来挑选genes更加合理。既然挑选差异表达基因,还是采取log2FC和padj来进行。 获取padj(p值经过多重校验校正后的值)小于0.05,表达倍数取以2为对数后大于1或者小于-1的差异表达基因。

获取padj(p值经过多重校验校正后的值)小于0.05,表达倍数取以2为对数后大于1或者小于-1的差异表达基因。代码如下

> diff_gene_deseq2 <-subset(res, padj < 0.05 & abs(log2FoldChange) > 1)                      #或 #

> diff_gene_deseq2 <-subset(res,padj < 0.05 & (log2FoldChange > 1 | log2FoldChange < -1))                           

> dim(diff_gene_deseq2)                                  

> head(diff_gene_deseq2)                             

> write.csv(diff_gene_deseq2,file= "DEG_MT_vs_WT.csv")


5 用bioMart对差异表达基因进行注释

和RNA-seq(6): reads计数,合并矩阵并进行注释代码一样

> library("biomaRt")        

> zebrafish<- useMart("ensembl", dataset = "drerio_gene_ensembl")                          

> my_ensembl_gene_id<-row.names(diff_gene_deseq2)

> mms_symbols<- getBM(attributes=c('ensembl_gene_id','external_gene_name',"description"), filters = 'ensembl_gene_id', values = my_ensembl_gene_id, mart = zebrafish)                                         

> > head(mms_symbols)



5合并数据:res结果+mms_symbols合并成一个文件

合并的话两个数据必须有共同的列名,我们先看一下

可见,diff_gene_deseq2,mms_symbols两个文件没有共同的列名,所以要先给'diff_gene_deseq2'添加一个‘ensembl_gene_id’的列名,方法如下:(应该有更简便的方法)

> ensembl_gene_id<-rownames(diff_gene_deseq2)                        

 > diff_gene_deseq2<-cbind(ensembl_gene_id,diff_gene_deseq2)                             

> colnames(diff_gene_deseq2)[1]<-c("ensembl_gene_id")    ##添加到第一列                               

> diff_name<-merge(diff_gene_deseq2,mms_symbols,by="ensembl_gene_id")         ### 两个表根据共同列合并                              

>head(diff_name)                            #查看mtpap的情况

mtpap <- diff_name[diff_name$external_gene_name=="mtpap",]

参考文章:https://www.jianshu.com/p/3a0e1e3e41d0 

https://www.jianshu.com/u/51a71446d509  Y大宽

你可能感兴趣的:(20200412 转录组分析--斑马鱼线粒体(二))