1.下載sra序列
SRA(Sequence ReadArchive)數據庫是用于存儲二代測序的原始數據,包括454,Illumina,SOLiD,IonTorrent,Helicos和CompleteGenomics。除了原始序列數據外,SRA現在也存在raw reads在參考基因的比對信息。
(1)進入在NCBI數據庫里面的SRA數據庫
我搜索的是基因組很小的腸腦炎微孢子蟲(Microsporidia)
在Send to中點擊Run Selector,然后點擊Go。
會出現如下界面:
我隨意找了兩個比較小的測序數據文件:
SRR065292
SRR070508
首先需要在linux下載SRAtoolkit,然后才能下載SRA數據。
然后再執行命令將SRA數據下載下來:
prefetch SRR065292
prefetch SRR070508
但是會報錯:
我查詢了很久,都沒有找到它的解決辦法。
那么我嘗試用另一種辦法將這兩個SRA數據下載下來。
進入NCBI網站,點擊Send To,然后再點擊File->Runinfo->Create File。然后會生成一個csv文件,我將它用excel打開并找到我需要的那兩個數據。
我們在download_path中找到對應的下載路徑,然后進行下載。
下載得到這樣兩個文件:
SRR065292.lite.1
SRR070508.lite.1
但是我不知道怎么用,而且還是需要用fastq-dump命令。
后來我想是否要下載最新版的SRA toolkit,原先的版本是sratoolkit.2.9.2-ubuntu64。
于是我下載了最新的SRA toolkit版本(sratoolkit.3.0.0-ubuntu64),下載的方法如下:
官網:https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit
##wget的-P參數,設置下載文件保存的路徑是~/Biosofts/(路徑可以更換為自己要下載的路徑)
1.wget -P ~/Biosofts/ https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.0/sratoolkit.3.0.0-ubuntu64.tar.gz
2.cd Biosofts/
3.tar zvxf sratoolkit.3.0.0-ubuntu64.tar.gz
4.cd ~/Biosofts/sratoolkit.3.0.0-ubuntu64##注意:這里不進入bin目錄下
5../bin/vdb-config --interactive
6../bin/fastq-dump##檢驗是否安裝成功
7.vi .bashrc
8.export PATH=~/Biosofts/sratoolkit.3.0.0-ubuntu64/bin:$PATH##末端添加
9.source ~/.bashrc
10.fastq-dump或prefetch -h##檢驗是否安裝成功
第四條命令如果進入bin目錄下會報錯:
因為可能是版本不同,命令也發生了變化。
參考:sratoolkit-安裝過程中的問題 - zypiner - 博客園 (cnblogs.com)
(2)下載sra序列
現在終于我可以下載啦!
2.解壓SRA文件為fastq格式
fastq-dump --gzip --split-files SRR065292
fastq-dump --gzip --split-files SRR070508
由前面查詢得到的Run可知,這兩個run都有三條reads。
這里我采用的是單獨解壓,數據文件多可以采用批量解壓。
3.用fastqc進行數據質量評價
fastqc SRR065292_1.fastq.gz
fastqc SRR065292_2.fastq.gz
fastqc SRR065292_3.fastq.gz
fastqc SRR070508_1.fastq.gz
fastqc SRR070508_2.fastq.gz
fastqc SRR070508_3.fastq.gz
結果如下:
4.使用multiqc整合
multiqc .
又出現了錯誤:
解決辦法:
1.
pip install matplotlib==2.2.3 https://pypi.tuna.tsinghua.edu.cn/simple/ ##這里添加清華安裝源防止出現ReadTimeoutError的報錯。
##報錯:ERROR: Cannot uninstall 'matplotlib'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.發現已存在版本matplotlib 1.1.1
cd ./anaconda3/envs/python27/lib/python2.7/site-packages
##刪除所有的matplotlib文件或目錄
rm matplotlib-1.1.1-py2.7.egg-info
rm -r matplotlib
pip install matplotlib==2.2.3 https://pypi.tuna.tsinghua.edu.cn/simple/
2.
pip install numpy==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
##相同錯誤:ERROR: Cannot uninstall 'numpy'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.已存在版本numpy 1.7.1
cd ./anaconda3/envs/python27/lib/python2.7/site-packages
rm numpy-1.7.1-py2.7.egg-info
pip install numpy==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
參考:
1.python2安裝matplotlib_qq_43151209的博客-CSDN博客_matplotlib python2
2.https://blog.csdn.net/mahoon411/article/details/112074810
3.https://blog.csdn.net/weixin_45468845/article/details/105494864
刪除之前用multiqc .嘗試的廢用文件,圖片所標注。
刪除后再輸入multiqc .就成功啦
生成了兩個文件,1個multiqc_report.html網頁報告和1個multiqc_data的文件夾,前者直接網頁打開就可以查看,后者包含一些數據基本的統計信息和日志文檔。
可以把multiqc_report.html 下載下來到本地,用windows的瀏覽器打開,也可以直接在圖形界面打開查看。
5.結果分析
(1)General Statistics:所有樣本數據基本情況統計
%Dups——重復reads的比例
%GC——GC含量占總堿基的比例,比例越小越好
Length——測序長度
M Seqs——總測序量(單位:millions)
(2)Sequence Quality Histograms:每個read各位置堿基的平均測序質量
橫坐標——堿基的位置
縱坐標——質量分數
質量分數=-10log10p(p代表錯誤率),所以當質量分數為40的時候,p就是0.0001。此時說明測序質量非常好。
綠色區間——質量很好,
橙色區間——質量合理。
紅色區間——質量不好。
此處可以看出我的2個樣本在389個堿基后的測序質量平均線落在紅色區間,測序質量不合格。
(3)PerSequence Quality Scores 具有平均質量分數的reads的數量
橫坐標——平均序列質量分數
縱坐標——reads數
綠色區間——質量很好
橙色區間——質量合理
紅色區間——質量不好
當峰值小于27時——warning
當峰值小于20時——fail
由此圖中可以看出低質量reads占整體reads的比例(估算各顏色區域曲線下面積)
圖中可以看出:6個樣本的最高峰值都在綠色區域,低質量read數量占總體reads的比例比較小,所以這6個樣本的該項檢測質量是合格的。
(4)Per Base Sequence Content :每個read各位置堿基ATCG的比列
對所有reads的每一個位置,統計ATCG四種堿基的分布,
橫坐標——堿基位置,縱坐標——樣本。
%T——紅色,%C——藍色,%A——綠色,%G——紫色。
reads每個位置的顏色顯示由4種顏色的比例混合而成,哪一個堿基的比例大,則趨近于這個堿基所代表的顏色。
正常情況下每個位置每種堿基出現的概率是相近的。即·ATCG四種堿基在每一個位置都應該是25%左右。
如果ATGC在任何位置的差值大于10%——warning
如果ATGC在任何位置的差值大于20%——fail
我只有SRR065292_3和SRR070508_3這兩個有堿基分布,所以只有這兩個樣本進行了測序,但所有堿基位置都顯示的fail,即所有位置ATCG分布都不均勻,可能是有過表達的序列的污染。
(5)Per Sequence GC Content :reads的平均GC含量
橫坐標——GC含量百分比,縱坐標——數量。
正常的樣本的GC含量曲線會趨近于正態分布曲線,曲線形狀的偏差往往是由于文庫的污染或是部分reads構成的子集有偏差(overrepresented reads)。形狀接近正態但偏離理論分布的情況提示我們可能有系統偏差。
偏離理論分布的reads超過15%時——warning
偏離理論分布的reads超過30%時——fail
從圖中可以看出綠色的那個樣本檢測是合格的,其余5個樣本檢測是不合格的。
(6)Per Base N Content :每條reads各位置N堿基含量比例
當測序儀器不能辨別某條reads的某個位置到底是什么堿基時,就會產生“N”,統計N的比率。正常情況下,N值非常小。
橫坐標——read中的位置,縱坐標——N的數量比。
當任意位置的N的比例超過5%——warning
當任意位置的N的比例超過20%——fail
由圖中看出,只顯示了我成功測序的兩個樣本,N值都非常小,檢測是合格的。
(7)Sequence Duplication Levels:每個序列的相對重復水平
橫坐標:每個序列的相對重復水平,縱坐標:在文庫中的比例。
當非unique的reads占總數的比例大于20%時——warning
當非unique的reads占總數的比例大于50%時——fail
測序深度越高,越容易產生一定程度的duplication,這是正常的現象,但如果duplication的程度很高,就提示我們可能有bias即偏差的存在。
由圖可見,我只有兩個樣本合格,有2個樣本序列重復水平很高,還有2個樣本沒有重復。
(8)Overrepresented sequences:文庫中過表達序列的比例
橫坐標:過表達序列的比例;縱坐標:樣本
過表達序列的比例>0.1%:warning
過表達序列的比例>1%:fail
從圖中可以看出我的兩個樣本3沒有過表達,其余的四個樣本都超過了1%,兩個樣本1過表達為100%。這4個樣本早已判斷肯定是有問題的。
一條序列的重復數,因為一個轉錄組中有非常多的轉錄本,一條序列再怎么多也不太會占整個轉錄組的一小部分(比如1%),如果出現這種情況,不是這種轉錄本巨量表達,就是樣品被污染。這個模塊列出來大于全部轉錄組1%的reads序列,但是因為用的是前100,000條reads,所以其實參考意義不大。
(9)Sequence Length Distribution:序列長度分布
橫坐標:序列長度(bp),縱坐標:reads數量
在許多情況下,這將產生一個簡單的圖,只顯示一個大小的峰值,但對于可變長度的FastQ文件,這將顯示每個不同大小的序列片段的相對數量。
如果所有序列的長度不相同:warning
如果任何序列的長度為零:fail
對于某些測序平臺,有不同的讀取長度是完全正常的,所以這里的警告可以忽略。
由于每個序列只有樣本3才是合格的,無法將其他兩個樣本進行比較,事實上,每條序列的所有測出來的樣本應該線條趨勢一樣,峰值一樣,這樣測出來的序列精確度才最好。
(10)Adapter Content 接頭含量
橫坐標——堿基位置,縱坐標——占序列的百分比。
超過5%——warning,超過10%——fail。
我的樣本中沒有發現任何接頭含量(污染)超過0.1%。
總的來說,我的兩條序列的樣本1和樣本2都是有問題的,極不準確的。只有樣本3是基本合格的,比較好的是兩個樣本3基本沒有重復序列,但GC含量很不正常,很有可能樣品存在被污染的情況。
總體參考:
1.http://www.lxweimin.com/p/d5d5479c2d39
2.http://www.lxweimin.com/p/85da4dcc6020