RNA-Seq數(shù)據(jù)分析:cutadapt+hisat2+samtools+stringtie+deseq2

參考教程:

數(shù)據(jù):線蟲轉(zhuǎn)錄組測序PF data(雙端測序);

流程:

  1. cutadapt去接頭;
  2. hisat2建立索引(indexing);
  3. hisat2+samtools序列比對(alignment);

通過index進行比對可加快比對速度。

  1. FastQC對當前測序數(shù)據(jù)的質(zhì)量進行評估;
  2. Stringtie對數(shù)據(jù)進行拼接赚导、定量(expression);

一個基因可能由幾段不相鄰的序列組成锻霎。

  1. prepDE.py腳本提取基因表達矩陣;
  2. DESeq2差異分析;
  3. Metascape路徑分析差異基因富集(Pathway and Process Enrichment Analysis)。

cutadapt去接頭(adapter trimming)

已知接頭序列read1_adapt长已、read2_adapt,需要將read1_adapt 的反向互補序列read1_adapt_REV(在線轉(zhuǎn)換

cutadapt -a read2_adapt -A read1_adapt_REV -m 20 --pair-filter=both -o out_fq1 -p out_fq2 fq1 fq2
#-m:表示去除接頭后如果read長度小于這個m值就不要了

hisat2建立索引(indexing)

  • hisat2官網(wǎng)
    官網(wǎng)提供了一些物種的index文件昼牛,如人類术瓮、小鼠
  • 基因注釋:Caenorhabditis_elegans.gtf
  • 參考基因組:Caenorhabditis_elegans.WBcel235.dna.toplevel.fa
#加入-ss, -exon,需要消耗上百G的內(nèi)存贰健,不加也可胞四,具體區(qū)別不太清楚
hisat2_extract_splice_sites.py Caenorhabditis_elegans.gtf > Caenorhabditis_elegans.ss
hisat2_extract_exons.py Caenorhabditis_elegans.gtf > Caenorhabditis_elegans.exon
hisat2-build -p 20 Caenorhabditis_elegans.WBcel235.dna.toplevel.fa --ss Caenorhabditis_elegans.ss --exon Caenorhabditis_elegans.exon Caenorhabditis_elegans

#-p 線程數(shù)
#最后一項為輸出的index文件名

hisat2+samtools序列比對(alignment)

hisat2 -x Caenorhabditis_elegans(index_name) -p 20 -1 N1_R1.fastq.gz -2 N1_R2.fastq.gz -S N1.sam

輸出:

26484487 reads; of these:
  26484487 (100.00%) were paired; of these:
    2355777 (8.89%) aligned concordantly 0 times
    23433490 (88.48%) aligned concordantly exactly 1 time
    695220 (2.63%) aligned concordantly >1 times
    ----
    2355777 pairs aligned concordantly 0 times; of these:
      605991 (25.72%) aligned discordantly 1 time
    ----
    1749786 pairs aligned 0 times concordantly or discordantly; of these:
      3499572 mates make up the pairs; of these:
        2745181 (78.44%) aligned 0 times
        713028 (20.37%) aligned exactly 1 time
        41363 (1.18%) aligned >1 times
94.82% overall alignment rate

輸出sam文件,將其轉(zhuǎn)為bam文件(sam的二進制格式)伶椿,并對bam文件進行排序辜伟。

samtools sort -@ 8 -o *.bam *.sam

FastQC

對測序數(shù)據(jù)(去接頭)的質(zhì)量進行評估。

fastqc N1.bam N2.bam N3.bam T1.bam T2.bam T3.bam

Stringtie對數(shù)據(jù)進行拼接脊另、定量(expression)

stringtie -p 8 -G /……/Caenorhabditis_elegans.gtf -e -B -o N1/transcripts.gtf -A N1/gene_abundances.tsv /……/N1.bam

設置參數(shù)-B导狡,輸出的結(jié)果為ballgown所需要的格式,需要python腳本prepDE.py偎痛,才能得到基因表達矩陣旱捧。

使用prepDE.py腳本提取基因表達矩陣

進入ballgown文件夾(由stringtie生成,包含所有樣本)踩麦,將prepDE.py腳本拷貝至當前文件夾廊佩,

cp /……/prepDE.py ./

使用python命令直接運行腳本,注意需要使用python2

python prepDE.py

運行結(jié)果中"gene_count_matrix.csv"是基因表達矩陣(DESeq2的輸入文件)靖榕。

刪除gene_count_matrix.csv中全是0的行(R語言):

gene_count <- read.csv("gene_count_matrix.csv",stringsAsFactors = F,header = T)
rownames(gene_count) <- gene_count[,1]
gene_count <-gene_count[,-1]
gene_count<-gene_count[which(rowSums(gene_count) > 0),]

DESeq2差異分析

基于負二項式分布标锄,包含標準化(基于負二項式分布)。

參考教程:

# 設置工作目錄
setwd("C:/Users/DELL/Desktop/gene_count/")
# 讀入基因表達值茁计,設定行名為gene_id
gene_count <- read.csv("gene_count_matrix.csv",stringsAsFactors = F)
# 對gene_id一列進行拆分料皇,去除重復名稱
library(stringr)
# 設置空的"gene_count_1"向量,行數(shù)與上面的測序結(jié)果一致
gene_count_1<-rep(NA,nrow(gene_count))
# 利用for循環(huán)星压,對gene_count數(shù)據(jù)框中的重復列進行拆分提取
#將gene_id中|兩側(cè)拆分践剂、提取
for (i in 1:nrow(gene_count)){
  gene_count_1[i] <- unlist(str_split(gene_count[i,1], pattern = "\\|"))[1]
}
# 對原數(shù)據(jù)框中的特定序列重新賦值
gene_count$gene_id <- gene_count_1
# 將第一列作為文件的行名
rownames(gene_count) <- gene_count[,1]
gene_count <-gene_count[,-1]
#保存文件至對應目錄
write.csv(gene_count, file = "……/gene_count/gene_count.csv", row.names = TRUE)

#加載DESeq2包
library(DESeq2)
#DESeq2需要三種矩陣,分別為countData表達矩陣,colData樣品信息矩陣及design差異表達矩陣
#countData為表達矩陣即gene_count
#colData為樣品信息矩陣即coldata
#design為差異表達矩陣即批次和條件(對照娜膘、處理)等
#設置condition樣品組別逊脯、重復數(shù)
condition<- factor(c(rep("N", 3), rep("T", 3)), levels = c("N","T"))
condition
#設置樣品信息矩陣colData
colData <- data.frame(row.names = colnames(gene_count), condition)
colData

#在R里面用于構(gòu)建公式對象,~左邊為因變量竣贪,右邊為自變量军洼。
#標準流程:dds <- DESeqDataSetFromMatrix(countData = cts, colData = coldata, design= ~ batch + condition) 
#countData為表達矩陣即countdata
#colData為樣品信息矩陣即coldata
#design為差異表達矩陣即批次和條件(對照巩螃、處理)等
#對dds進行標準流程構(gòu)建
dds <- DESeqDataSetFromMatrix(gene_count, colData, design = ~condition)
#過濾低豐度數(shù)據(jù)
dds <- dds[rowSums(counts(dds)) > 1, ]
#或者在構(gòu)建dds之前加上gene_count <- gene_count[apply(gene_count, 1, sum) > 1 , ] 
#對原始dds進行normalize
dds <- DESeq(dds)
#顯示dds信息
dds

# 對差異分析結(jié)果進行保存 -------------------------------------------------------------

#使用DESeq2包中的results()函數(shù),提取差異分析的結(jié)果
#Usage:results(object, contrast, name, .....)
#將提取的差異分析結(jié)果定義為變量"res" 
#contrast: 定義誰和誰比較匕争,處理組在前避乏,對照組在后
#提取分析結(jié)果并保存為res
res = results(dds, contrast=c("condition","T","N"))
#對結(jié)果res利用order()函數(shù)按pvalue值進行排序
#order()函數(shù)先對數(shù)值排序,然后返回排序后各數(shù)值的索引甘桑,常用用法:V[order(V)]或者df[order(df$variable),]
#對res進行排序
res = res[order(res$pvalue),]
#顯示res結(jié)果前6行信息
head(res)
#對res矩陣進行總結(jié)拍皮,利用summary命令統(tǒng)計顯示一共多少個genes上調(diào)和下調(diào)
summary(res)
#將差異分析的所有結(jié)果進行輸出保存
write.csv(res, file="……/all_different_genes.csv")

#利用table函數(shù)統(tǒng)計顯著差異基因的數(shù)目
table(res$padj<0.05&abs(res$log2FoldChange>1))
#對具有顯著性差異的結(jié)果進行過濾、提取
#獲取padj小于0.05跑杭,表達倍數(shù)取以2為對數(shù)后的絕對值大于1
#使用subset()函數(shù)過濾需要的結(jié)果至新的變量significant_different_genes_group中
#Usage:subset(x, ...)铆帽,其中x為objects,...為篩選參數(shù)或條件
#對group中數(shù)據(jù)進行過濾德谅、提取
significant_different_genes <- subset(res, padj < 0.05 & abs(log2FoldChange) > 1)
#使用dim函數(shù)查看該結(jié)果的維度爹橱、規(guī)模
dim(significant_different_genes)
#顯示結(jié)果的前6行信息
head(significant_different_genes)
#對顯著差異基因進行輸出保存
write.csv(significant_different_genes, file = "……/significant_different_genes.csv")

Metascape路徑分析差異基因富集(Pathway and Process Enrichment Analysis)

上調(diào)基因(up):log2FoldChange>0

step2:選擇物種女阀;
step3:express analysis(快速分析),custom analysis(自定義分析)屑迂。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浸策,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子惹盼,更是在濱河造成了極大的恐慌庸汗,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件手报,死亡現(xiàn)場離奇詭異蚯舱,居然都是意外死亡,警方通過查閱死者的電腦和手機掩蛤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門枉昏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人揍鸟,你說我怎么就攤上這事兄裂。” “怎么了阳藻?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵晰奖,是天一觀的道長。 經(jīng)常有香客問我腥泥,道長匾南,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任蛔外,我火速辦了婚禮蛆楞,結(jié)果婚禮上溯乒,老公的妹妹穿的比我還像新娘。我一直安慰自己臊岸,他們只是感情好橙数,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帅戒,像睡著了一般纵刘。 火紅的嫁衣襯著肌膚如雪集惋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音蓝丙,去河邊找鬼。 笑死灿渴,一個胖子當著我的面吹牛叹侄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扒秸,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼播演,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伴奥?” 一聲冷哼從身側(cè)響起写烤,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拾徙,沒想到半個月后洲炊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡尼啡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年暂衡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崖瞭。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡狂巢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出书聚,到底是詐尸還是另有隱情隧膘,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布寺惫,位于F島的核電站疹吃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏西雀。R本人自食惡果不足惜萨驶,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望艇肴。 院中可真熱鬧腔呜,春花似錦叁温、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谤草,卻和暖如春跟束,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丑孩。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工冀宴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人温学。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓略贮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仗岖。 傳聞我的和親對象是個殘疾皇子逃延,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容