簡單地記錄一下我的一次RNA-seq實戰,由于我們實驗室的服務器沒有聯網,我之前一直在自己的PC上,安裝虛擬機或者用OS系統跑數據,出現許多問題,而且速度很慢,后來詢問了洲更大神,直接按照biostar handbook 來設置我的電腦Mac,但是我又遇到了很多問題,不過biostar handbook 確實很不錯,我后續的學習應該要按照這本書來,但是這次時間比較急,要趕緊先跑一遍,學會大致流程再說。那我就跌跌撞撞根據百度,文獻,問大神的模式開始學習了。
整個學習過程是完全沒有邏輯和順序的,但是我現在是整理好的順序,這樣后面的人來看操作起來就很方便了。
1安裝軟件的過程
先要安裝這些軟件,這些軟件直接在百度搜索,然后去官網下載軟件包,Linux 下直接解壓可以用的就可以,建議不要源碼編譯,我源碼編譯了一下,但是服務器沒有聯網,缺少lib 庫 反正沒有直接下載軟件包來的方便。
fastqc?
fastx_toolkit
trimmomatic?
bowtie2?
tophat?
cufflinks
1傳輸文件ssh
scp -P 22 -r 要傳輸的文件路徑 will@10.10.10.10 你要保存的文件路徑
2解壓.gz .tar.gz
解壓這些文件,解壓不同類型的方法不一樣,具體可以參考這篇文章:
http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.html
*.tar 用 tar -xvf 解壓
*.gz 用 gzip -d或者gunzip 解壓
*.tar.gz和*.tgz 用 tar -xzf 解壓
*.bz2 用 bzip2 -d或者用bunzip2 解壓
3 把文件PATH修改
? 1 cd 回到主目錄
? 2 ls -all 查看所有的文件 找到 ?.bash_profile ( 可能不同系統命名不一樣)
? 3 ?vim .bash_profile
增加 exportPATH=$PATH:/public/home/你的用戶名/rna-seq/FastQC/
4 FASTqc使用指南檢測測序的質量
這個看我之前寫的一篇文章專門記錄fastqc 以及遇到的問題 或者參考這篇https://zhuanlan.zhihu.com/p/20731723
主要命令如下:
?1 主文件下 chmod 755 fastqc
? 2 fastqc -o result -t 8 gene_1.fq
然后會生成一個報告文件,具體分析可以看之前的文章
5 Trimmomatic處理reads 可以參考
http://www.lxweimin.com/p/36891a89ed6e
http://blog.sina.com.cn/s/blog_4b91a9e50101ock4.html
主要就是java 的程序
java -jar trimmomatic-0.36.jar PE? -threads20 -phred33 -trimlog logfile?reads1.fq reads2.fq ?reads1.clean.fq reads1.unpaired.fq reads2.clean.fq reads2.unpaired.fq ILLUMINACLIP:/path/Trimmomatic-0.36/adapters/TruSeq3-PE.fa:2:30:10\ LEADING:3TRAILING:3SLIDINGWINDOW:4:15MINLEN:50
PE/SE 設定對Paired-End或Single-End的reads進行處理,其輸入和輸出參數稍有不一樣。 -threads 設置多線程運行數 -phred33 設置堿基的質量格式,可選pred64ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 切除adapter序列。參數后面分別接adapter序列的fasta文件:允許的最大mismatch 數:palindrome模式下匹配堿基數閾值:simple模式下的匹配堿基數閾值。 LEADING:3 切除首端堿基質量小于3的堿基 TRAILING:3 切除尾端堿基質量小于3的堿基 SLIDINGWINDOW:4:15 Perform a sliding window trimming。Windows的size是4個堿基,其平均堿基 質量小于15,則切除。 MINLEN:50 最小的reads長度 CROP: 保留reads到指定的長度 HEADCROP: 在reads的首端切除指定的長度 TOPHRED33 將堿基質量轉換為pred33格式 TOPHRED64 將堿基質量轉換為pred64格式
會出現4個文件
http://blog.sciencenet.cn/blog-2458445-933838.html
paired 的一對 unpaired 的一對
用biotie2 處理paired 的一對
其實我還是有點不理解,下次理解了再補上這里的
6 bowtie2 (map的常用工具 )(短序列拼接至模版基因組)
好了現在reads處理好了,接下來要map了
?1 先要建立參考基因組的索引 對參考基因組fasta 格式文件建立index ( 去網上下載參考基因組的fa文件)
bowtie2-build genome.fa genome?
然后你會看到 genome.1.bt2 4個 還有 genome.rev.1.bt2 2 個
7 tophat通過調用bowtie2來完成map
tophat -p 30 -G? annotation.gff3 -o qc-thout genome qc-1.fq qc-2.fq
( annotation.gff3 為基因的注釋信息 genome為基因組的序列,qc-1.fq qc-2.fq為質控后的雙端測序數據)
出現錯誤一 (注意啦 注意啦)
Error: Could not find Bowtie 2 index files (genome.*.bt2)
這個是網上找的,和我基本一樣,我也是按照網上攻略輸入的語句,但是就是出現問題。然后我搗鼓了好久,去了https://www.biostars.org/p/203950/這個biostar 網站,還是不錯的,不過里面的英文有些理解不了,要參考一下中文的. 解決如下:
1 最好把要跑的文件和參考基因組的文件都放在一個文件夾下面
2 (我的問題主要是這個) basename 很重要, 一定要把basename 改成和基因的注釋文件一樣的開頭,不能下載下來是什么就用什么
3 我把基因的注釋文件后面的 .fa拿掉了,發現才可以跑起來,不知道為什么
出現錯誤二 ( 注意啦注意啦)
跑了大約1個小時的時候突然斷了
Tophat Error "segment-based junction search failed"
這是咋搞得呢,我查了查https://www.biostars.org/p/146557/
這篇英文說的還是挺清楚的 我線程用的太多了 我用了 80.....
好吧我把 -P 調節到30 就解決了
OK 跑完出現了幾個文件:
accepted_hits.bam? align_summary.txt? deletions.bed? insertions.bed? junctions.bed? logs? prep_reads.info? unmapped.bam
參考一下這個解析很清楚:http://www.360doc.com/content/17/0802/19/45954458_676165658.shtml
8 cufflinks查看樣本間基因的差異表達計算
主要用于基因表達量的計算和差異表達基因的尋找。
Cufflinks程序主要根據Tophat的比對結果,依托或不依托于參考基因組的GTF注釋文件,計算出(各個gene的)isoform的FPKM值,并給出trascripts.gtf注釋結果(組裝出轉錄組)。
1 ?用 cufflinks 對Tophat比對的每個結果(bam文件)進行組裝
? ? ?cufflinks -p 30 -u -g annotation.gff3 --library-type fr-unstranded - o S3 accepted_hits.bam?
出現下面幾個文件
genes.fpkm_tracking? isoforms.fpkm_tracking? skipped.gtf? transcripts.gtf
2 將 Cufflinks 組裝出來的轉錄本注釋文件(gtf)結尾的 路徑匯總到文件 assemblies.txt
然后用cuffmerge將各個樣本的組裝結果與下載的基因注釋文件整合在一起,創建一個整體的注釋信息:
cuffmerge -p 30 -o merge_out -g annotation.gff3 -s genome.fa assemblies.txt
注意這個assemblies.txt文件要自己建立,然后寫入路徑
3 最后啦啦啦
用cuffdiff -o diff-out -b genome.fa -p 40 -L S1,G1 -u merged.gtf accepted_hits.bam
9未完待續后面用R語言來做可視化
后記:
這個流程現在看看是很簡單,但是從一點也不會到跑下來遇到的問題都是很困難的,特別是沒有人帶你,還是要感謝各路大神,各種論壇。 說不定這個流程在我服務器上跑是可以的,但是別人的就不行,所以多多交流哈