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",]

參考文章:http://www.lxweimin.com/p/3a0e1e3e41d0?

http://www.lxweimin.com/u/51a71446d509? Y大寬

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容