完整轉(zhuǎn)錄組RNAseq分析流程(tophat2+cufflink+cuffdiff)

前一段時間跟著孟浩巍大神的視頻學(xué)習(xí)动雹,在自己的小破筆記本上還是跑完了整個RNAseq差異表達(dá)的分析流程( tophat2 + cufflink + cuffdiff )雖然這個流程比較老了鳖枕,現(xiàn)在做分析一般使用的都是 HTseq + DESeq2 等其他的流程祝懂,但是作為入門的知識還是比較容易理解,這篇文章先更一下流程涩拙,后面會再更一篇 安裝 Linux 子系統(tǒng)(已更新)飘蚯,安裝 anconda 和一些分析軟件(已更新)的流程,湊一個真正完整的入門生信的操作流程艳吠。
火山圖麦备、熱圖在 R 中可視化部分已更新

我的電腦配置,真的是戰(zhàn)五渣昭娩。


電腦配置

但還是在一天內(nèi)跑完了整個流程

運行環(huán)境python2.7

原始數(shù)據(jù)如下:

原始文件

包括四個文件:

  • bowtie2_hg19 index 文件(這里已經(jīng)提前使用bowtie2建立好了index文件可以直接使用)
  • raw_data illumina 雙端測序原始文件(對照組和實驗組各兩個凛篙,就是八條測序文件)
  • rRNA rRNA index 序列文件(用于去除 rRNA 的影響)
  • RefSeq_genes_hg19.gtf 基因組注釋文件
    鏈接:https://pan.baidu.com/s/1Q4SwosKaG16-aYA74SaASQ
    提取碼:gss3

分析流程

  • RNA-seq的原始數(shù)據(jù)(raw data)的質(zhì)量評估
  • raw data的過濾和清除不可信數(shù)據(jù)(clean reads)
  • reads回帖基因組和轉(zhuǎn)錄組(alignment)
  • 計數(shù)(count )
  • 基因差異分析(Gene DE)
  • 數(shù)據(jù)的下游分析(這次先不做這個,下次會單獨寫)

下面開始正式分析

1栏渺、fastqc質(zhì)控

mkdir fastqc_result.raw     #(建立輸出文件夾)                                                                       
fastqc -q -t 3 -o ../fastqc_result.raw/ *.fq.gz &    #(使用fastqc質(zhì)控軟件呛梆,對所有raw_data進(jìn)行質(zhì)控檢測)

2、multiqc整合質(zhì)控文件(因為得到很多的質(zhì)控檢測結(jié)果磕诊,需要整合)

multiqc .  #(這一步就是對 fastqc_reault 文件夾下所有文件進(jìn)行整合)
整合后文件

3填物、根據(jù)質(zhì)控結(jié)果纹腌,使用fastx_tolltik去除不良序列

zcat hela_ctrl_rep1_R1.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_rep1_R1.fq.gz &             
zcat hela_ctrl_rep2_R1.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_rep2_R1.fq.gz &             
zcat hela_ctrl_rep2_R2.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_rep2_R2.fq.gz &             
zcat hela_ctrl_rep1_R2.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_rep1_R2.fq.gz &             
zcat hela_treat_rep1_R1.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_t_rep1_R1.fq.gz &          
zcat hela_treat_rep1_R2.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_t_rep1_R2.fq.gz &          
zcat hela_treat_rep2_R1.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_t_rep2_R1.fq.gz &          
zcat hela_treat_rep2_R2.fq.gz  | fastx_trimmer -f 11 -l 140 -z -o out_t_rep2_R2.fq.gz &          

因為當(dāng)時我還不會寫 shell 腳本,正則表達(dá)式也不懂滞磺,就一個一個寫了壶笼,但是 shell 才是生產(chǎn)力啊啊啊啊,這一步也可以放后臺的,當(dāng)時為了看結(jié)果就一個一個跑了

zcat解壓縮雁刷,文件名,fastx_trimmer -f x -l y 保留從x-y的序列 -z壓縮命令 -o輸出結(jié)果 &后臺運行
trimmer保礼,可以使所有序列長度一致

4沛励、cutadaptor去掉read兩端的adaptor

nohup cutadapt --times 1 -e 0.1 -o 3 --quality-cutoff 6 -m 50 -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o cut_out_c_rep1_R1.fq.gz -p cut_out_c_rep1_R2.fq.gz out_c_rep1_R1.fq.gz out_c_rep1_R2.fq.gz &       
nohup cutadapt --times 1 -e 0.1 -o 3 --quality-cutoff 6 -m 50 -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o cut_out_c_rep2_R1.fq.gz -p cut_out_c_rep2_R2.fq.gz out_c_rep2_R1.fq.gz out_c_rep2_R2.fq.gz &          
nohup cutadapt --times 1 -e 0.1 -o 3 --quality-cutoff 6 -m 50 -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o cut_out_t_rep1_R1.fq.gz -p cut_out_t_rep1_R2.fq.gz out_t_rep1_R1.fq.gz out_t_rep1_R2.fq.gz &          
nohup cutadapt --times 1 -e 0.1 -o 3 --quality-cutoff 6 -m 50 -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o cut_out_t_rep2_R1.fq.gz -p cut_out_t_rep2_R2.fq.gz out_t_rep2_R1.fq.gz out_t_rep2_R2.fq.gz &          

--times 1一條序列只去一次Adaptor;
-e 0.1在匹配時可以有10%的錯誤率炮障;
-o 3 adaptor序列必須和測序序列有3個堿基以上的overlap才可以目派;
--quality-cutoff常用6;
-m 50如果處理之后低于50的話就扔掉序列胁赢,短序列測序質(zhì)量可能不是很好企蹭;
-a-A是 Illumina 常用的通用引物,之所以輸入兩個智末,是因為是一個雙端測序的結(jié)果谅摄,需要對兩個文件內(nèi)容進(jìn)行分別去除,-a對應(yīng)Reads1系馆,-A對應(yīng)reads2
-o 上一步輸出fastq1 -p 上一步輸出fastq2
> 最后是寫入log文件
//其中nohup:不掛斷地運行命令送漠。
& 就是放后臺
//2>1:1 是傳遞給shell腳本的第一個參數(shù);

5由蘑、利用bowtie2將reads比對到rRNA上闽寡,除去rRNA的影響

nohup bowtie2 -x $rRNA_index -1 cut_out_c_rep1_R1.fq.gz  -2 cut_out_c_rep1_R2.fq.gz  -S sam_out_c_rep1_bowtie -p 2 --un-conc-gz fastq_unmap_c_rep1_R1 &
nohup bowtie2 -x $rRNA_index -1 cut_out_c_rep2_R1.fq.gz  -2 cut_out_c_rep2_R2.fq.gz  -S sam_out_c_rep2_bowtie -p 2 --un-conc-gz fastq_unmap_c_rep2_R1 &                                                  
nohup bowtie2 -x $rRNA_index -1 cut_out_t_rep2_R1.fq.gz  -2 cut_out_t_rep2_R2.fq.gz  -S sam_out_t_rep2_bowtie -p 2 --un-conc-gz fastq_unmap_t_rep2_R1 &                                                  
nohup bowtie2 -x $rRNA_index -1 cut_out_t_rep1_R1.fq.gz  -2 cut_out_t_rep1_R2.fq.gz  -S sam_out_t_rep1_bowtie -p 2 --un-conc-gz fastq_unmap_t_rep1_R1 &  

(這里要先為rRNA進(jìn)行index建庫,如果有別人建好的庫可以直接下載使用)

 rRNA_index=/mnt/c/Users/wt/Desktop/test_data/rnaseq_test_date/rRNA/bowtie2_rRNA_human

一般通過map到rRNA中的比例來衡量建庫的質(zhì)量尼酿。一般的要求rRNA的比例不超過10%。
-x 對應(yīng)rRNA的索引序列裳擎;
-1涎永,-2 是剛輸出的reads1和reads2土辩;
-S 是比對結(jié)果的輸出文件启涯;
-p 2 使用2個核心去運算(p就是processor吧!)蒸殿;
--un-conc-gz 輸出比對不上的結(jié)果;(比對不上的才是需要的)

輸出結(jié)果如下


輸出結(jié)果

其實還應(yīng)當(dāng)將log文件輸出霞玄,用于查看運行過程喊暖,如果報錯容易查看進(jìn)行處理咨跌,但是我第一次做的時候輸出的都是空白,也不知道哪里有問題,遍膜。這里sam_out文件有點問題弛说,雖然沒有用,本應(yīng)當(dāng)輸出的是比對上的比例翰意,是一個log文件木人,后面會再看看這里怎么回事。


到這里才算質(zhì)控做完冀偶!

6虎囚、使用 tophat2 將過濾掉 rRNA 的 reads 比對到 ref(參考)基因組上

(如果mRNA直接比對到人的DNA上,可能會出現(xiàn)問題蔫磨,有可能跨越了一個內(nèi)含子,tophat2考慮了這個問題圃伶,它將reads根據(jù)注釋文件分開成短序列堤如,重新比對;)
需要先建庫(這里別人建好了)

 hg19_index=/mnt/c/Users/wt/Desktop/test_data/rnaseq_test_date/bowtie2_hg19/hg19_only_chromosome  
nohup tophat2 -p 2 -o top_out1 $hg19_index fastq_unmap_c_rep1_R1.fq.1.1.gz fastq_unmap_c_rep1_R1.fq.1.2.gz &
nohup tophat2 -p 2 -o top_out2 $hg19_index fastq_unmap_c_rep2_R1.fq.2.1.gz fastq_unmap_c_rep2_R1.fq.2.2.gz & 
nohup tophat2 -p 1 -o top_out3 $hg19_index fastq_unmap_t_rep1_R1.fq.1.1.gz fastq_unmap_t_rep1_R1.fq.1.2.gz & 
nohup tophat2 -p 1 -o top_out4 $hg19_index fastq_unmap_t_rep2_R1.fq.2.1.gz fastq_unmap_t_rep2_R1.fq.2.2.gz & 

-o top_out1窒朋, 結(jié)果輸出到這個文件夾中
hg19 是人的第19個基因組版本搀罢,常用的包括hg19和hg38,hg38會取代hg38侥猩,hg19包含的信息比較豐富
所使用序列是上一步未比對上的序列unmap(也就是我們所需要的質(zhì)控后的結(jié)果)

輸出結(jié)果如下


tophat2輸出結(jié)果

.bam 是最終的比對結(jié)果;
.txt 是比對中的總結(jié)情況榔至;
3個bed文件,軟件檢測出來的 deletions 缺失欺劳, insertions 插入唧取, junctions 區(qū)域
.info 有一些reads沒有直接 map 到連續(xù)的 DNA 基因組上,需要切一些reads,加工 reads 的過程文件保存在 info 里划提;
unmapped.bam 是沒有 map 上去枫弟,一層層都沒有比對到的,可能是基因組上未注釋過的鹏往、測序問題等淡诗。

7、使用cuffliks對表達(dá)量進(jìn)行評估(這一步在正常情況下沒什么用)

cufflinks -o cufflink_out1 -p 4 -G ../RefSeq_genes_hg19.gtf top_out1/accepted_hits.bam                                                                                                   
cufflinks -o cufflink_out2 -p 4 -G ../RefSeq_genes_hg19.gtf top_out2/accepted_hits.bam     
cufflinks -o cufflink_out3 -p 4 -G ../RefSeq_genes_hg19.gtf top_out3/accepted_hits.bam      
cufflinks -o cufflink_out4 -p 4 -G ../RefSeq_genes_hg19.gtf top_out4/accepted_hits.bam   

-G 轉(zhuǎn)錄組的參考文件

cufflinks輸出結(jié)果如下:


cufflinks 輸出結(jié)果

gene.fpkm gene的 fpkm 計算結(jié)果(基因表達(dá)量)
isoforms.fpkm isoforms (可以理解為 gene 的各個外顯子)的 fpkm 計算結(jié)果(轉(zhuǎn)錄本表達(dá)量)
skipped.gtf 跳過的基因的轉(zhuǎn)錄本信息
transcripts.gtf 轉(zhuǎn)錄組的gtf,該文件包含Cufflinks的組裝結(jié)果isoforms
fpkm 是衡量基因表達(dá)量的數(shù)值伊履,一個基因有不同的內(nèi)含子和外顯子韩容,不同的外顯子之間可以形成不同的轉(zhuǎn)錄本,每一個轉(zhuǎn)錄本可以翻譯成不同的蛋白唐瀑,這些蛋白互相之間就是 isoforms(亞型)群凶,對于不同的轉(zhuǎn)錄本來說基因有一個表達(dá)量,這就是基因的 fpkm 和 isoform 的 fpkm 哄辣。

8座掘、cuffdiff計算基因表達(dá)差異

ctrl_bam=top_out1/accepted_hits.bam,top_out2/accepted_hits.bam
treat_bam=top_out3/accepted_hits.bam,top_out4/accepted_hits.bam
label=hela_ctrl,hela_treat
cuffdiff -o diff_out1 -p 7 --labels $label --min-reps-for-js-test 2 ../RefSeq_genes_hg19.gtf $ctrl_bam $treat_bam

--lables 是文件的輸入次序递惋,如上 label=hela.ctrl,hela_treat;
--min 每個 treat 里有幾個 repeat 溢陪,上邊 ctrl_bam 是兩個萍虽,要和 treat_bam 數(shù)量一致且>=2(最小重復(fù))
然后比對到參考轉(zhuǎn)錄本上

運行結(jié)果如下:

cuffdiff 結(jié)果

主要用到genes_exp.diff文件后續(xù)分析
以上文件含義查看 cuffdiff 輸出文件的筆記內(nèi)容(有時間我補充上來)
至此 rnaseq 分析結(jié)束一部分,可視化會另外做

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末形真,一起剝皮案震驚了整個濱河市杉编,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咆霜,老刑警劉巖邓馒,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛾坯,居然都是意外死亡光酣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門脉课,熙熙樓的掌柜王于貴愁眉苦臉地迎上來救军,“玉大人,你說我怎么就攤上這事倘零〕猓” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵呈驶,是天一觀的道長拷泽。 經(jīng)常有香客問我,道長袖瞻,這世上最難降的妖魔是什么司致? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮聋迎,結(jié)果婚禮上蚌吸,老公的妹妹穿的比我還像新娘。我一直安慰自己砌庄,他們只是感情好羹唠,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著娄昆,像睡著了一般佩微。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萌焰,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天哺眯,我揣著相機與錄音,去河邊找鬼扒俯。 笑死奶卓,一個胖子當(dāng)著我的面吹牛一疯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夺姑,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼墩邀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盏浙?” 一聲冷哼從身側(cè)響起眉睹,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎废膘,沒想到半個月后竹海,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡丐黄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年斋配,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灌闺。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡艰争,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出菩鲜,到底是詐尸還是另有隱情,我是刑警寧澤惦积,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布接校,位于F島的核電站,受9級特大地震影響狮崩,放射性物質(zhì)發(fā)生泄漏蛛勉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一睦柴、第九天 我趴在偏房一處隱蔽的房頂上張望诽凌。 院中可真熱鬧,春花似錦坦敌、人聲如沸侣诵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杜顺。三九已至,卻和暖如春蘸炸,著一層夾襖步出監(jiān)牢的瞬間躬络,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工搭儒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留穷当,地道東北人提茁。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像馁菜,于是被迫代替她去往敵國和親茴扁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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