轉錄組上游-windows使用kallisto-從cleandata到表達矩陣
由於我linux系統崩了,於是我開始探索再windows環境完成RNA-seq分析,實際情況是windows完全夠用(如果記憶體足夠),不然還是選擇用伺服器分析。
網上對於kallisto的使用教程並不詳細,也主要集中在linux系統,於是我想分享一下我使用kallisto的經驗。這是我的分析流程,大家可以參考一下。
1.安裝kallisto
kallisto是一個免費的轉錄組拼接軟體,在linux和windows-CMD裡都可以執行,使得你的row data被拼接為可以進行下游操作的read count這樣的matrix。以下是下載安裝的官網:
https://pachterlab.github.io/kallisto/download
下載到你能找得到的位置(很關鍵,因為等下要轉到這個工作目錄)下載後在資料夾裡看到這樣就成功下載安裝了:
2.在CMD中執行kallisto
我們使用windows的命令列來操作,Win+R開啟執行,輸入cmd進入命令列視窗;
然後我們要cd我們的工作目錄到kallisto的目錄:
>cd C:\Users\Huzhuocheng\Desktop\畢業設計\轉錄組\轉錄組上游\kallisto\kallisto
這樣就歐克了,我們已經在kallisti的工作目錄裡了;
3.獲取CDS或者exon建立Index
現在的轉錄組分析大多是有參轉錄組的分析了,不過kallisto也只能做有參的,因此要先建立索引。我們不能用全基因組做參考,這樣切出來會一坨一坨的,因此我們需要先獲得CDS序列或者exon序列再來建立Index,這裡我推薦使用TBtools獲取,TBtools轉換需要兩個檔案:
(1)全基因組.fa(2)基因組註釋檔案.gff3
(沒有這些檔案的話可以在ncbi上找,我也會出教程,但是如果是冷門模式生物,比如我的薩氏海鞘,就可以問問實驗室的大老闆應該是有基因組檔案的)
這樣獲得的CDS.fa 或者 exon.fa就可以用來建立Index,當然具體用CDS還是exon可以自己選,我做出來發現CDS表達量高一些,CDS(Coding Sequence)和exon(外顯子)都是基因結構中的重要組成部分。CDS指的是一段特定的DNA序列,它包含了用於編碼蛋白質的所有資訊。具體來說,CDS是從基因的起始密碼子(通常是ATG)開始,一直到終止密碼子(可以是TAA、TAG或TGA)結束的一段序列。在這段序列中,每一個三聯體密碼子對應著蛋白質中的一個氨基酸,因此CDS是基因表達成蛋白質的直接模板。
另一方面,exon則是指真核生物基因中的編碼序列,這些序列在RNA剪接過程中會被保留下來,並最終構成成熟的mRNA分子。外顯子本身可以跨越幾個不同的DNA片段,並且在剪接過程中會被連線在一起,形成連續的mRNA序列。
總的來說,CDS關注的是DNA序列中負責編碼蛋白質的部分,而exon則是從DNA層面描述哪些序列會在最終的mRNA中被表達出來。
4.kallisto建立Index
在剛剛的cmd裡輸入kallisto index會跳出指令教程:
用法(Usage):
kallisto index [arguments] FASTA-files
#example
C:\Users\Huzhuocheng\Desktop\畢業設計\轉錄組\轉錄組上游\kallisto\kallisto>kallisto index -i D:\CDS.idx D:\CDS.fa
kallisto index -i 你的輸出位置 你的CDS檔案位置
必需的引數(Required argument):
-i, --index=STRING
: 你需要指定一個輸出檔案的名稱,Kallisto將用這個檔名來儲存生成的索引。
可選的引數(Optional argument):
-k, --kmer-size=INT
: 這個引數允許你設定k-mer的長度。k-mer是在構建索引過程中使用的短序列片段,通常長度為奇數個鹼基對。預設值是31,最大值也是31。--make-unique
: 如果你的輸入檔案中包含重複的目標名稱(例如不同的轉錄本具有相同的名稱),你可以使用此選項讓Kallisto生成唯一的名稱以區分它們。
看到這樣的反饋就是成功了:
5.kallisto進行雙端轉錄組測序資料定量
kallisto可以對雙端和單端的測序資料進行比對,我這裡以雙端的為例。
在cmd裡輸入kallisto quant後,會出現比對指令表:
Required arguments: 這一部分列出了執行Kallisto時必須要提供的引數:
-i, --index=STRING: 指定用於定量分析的Kallisto索引檔案的名稱。
-o, --output-dir=STRING: 指定輸出結果的目錄路徑。
Optional arguments: 接下來列出的是一些可選引數,使用者可以根據需要選擇是否提供這些引數:
--bias: 執行基於序列的偏差校正。
-b, --bootstrap-samples=INT: 設定bootstrap取樣的數量,預設為0。
--seed=INT: 設定bootstrap取樣的種子值,預設為42。
--plaintext: 以純文字形式輸出結果,而不是HDF5格式。
--fusion: 為Pizzly搜尋融合事件。
--single: 對單端讀取資料進行定量。
--single-overhang: 包括預測其未觀察到的片段剩餘部分位於轉錄本之外的讀取。
--fr-stranded: 針對正向鏈特異性讀取(第一讀取為正向)。
--rf-stranded: 針對反向鏈特異性讀取(第一讀取為反向)。
-l, --fragment-length=DOUBLE: 估計的平均片段長度。
-s, --sd=DOUBLE: 估計的片段長度的標準差,預設情況下是從配對末端資料中估計出來的,但在使用--single時需要明確指定。
-t, --threads=INT: 要使用的執行緒數,預設為1。
--pseudobam: 將偽比對到轉錄本的記錄儲存為BAM檔案。
--genomebam: 將偽比對投影到基因組並生成排序後的BAM檔案。
-g, --gtf: 包含轉錄本資訊的GTF檔案,對於--genomebam選項是必需的。
-c, --chromosomes: 染色體名稱和長度的製表符分隔檔案,對於--genomebam選項是可選的,但推薦使用
大部分指令用不到,可以直接看我的示例:
C:\Users\Huzhuocheng\Desktop\畢業設計\轉錄組\轉錄組上游\kallisto\kallisto>kallisto quant -i D:\CDS.idx -o D:\second\HSL-1-1 D:\trans\clean\Unknown_BT072-002T0001_good_1.fq D:\trans\clean\Unknown_BT072-002T0001_good_2.fq
########格式
>kallisto quant -i index位置 -o 輸出檔案位置 第一個fq檔案位置 第二個fq檔案位置
看到這樣就是執行成功了,可以去輸出檔案下看一下輸出的檔案。
6.使用kallisto2matrix轉為read counts檔案
剛剛得到的abundance檔案還是不能直接分析,我們是想得到表達量的matrix檔案。
下載地址是:GitHub - yukaiquan/kallisto2matrix: kallisto/salmon result to matrix (TPM,Count,FPKM)
我把它安裝到了kallisto同一個目錄,也是可以在CMD進行執行的
這樣就安裝成功了。
我們需要在這個工作目錄下新建一個txt檔案,裡面放著我們剛剛得到的多個樣本的abundance檔案,然後執行指令就可以輸出了。
C:\Users\Huzhuocheng\Desktop\畢業設計\轉錄組\轉錄組上游\kallisto\kallisto>kallisto2matrix.exe -i C:\Users\Huzhuocheng\Desktop\畢業設計\轉錄組\轉錄組上游\kallisto\kallisto\example.txt -o test
輸出得到的是count/tpm/fpkm三個矩陣
1. Counts矩陣代表原始的讀數(read counts),它記錄了每個樣本中每條基因序列被測序儀檢測到的次數。這是一個絕對數值,反映了測序的深度和基因的長度。由於這些因素可能導致不同樣本或基因之間的直接比較存在偏差,因此通常需要透過其他形式的標準化來處理。
2. FPKM(Fragments Per Kilobase of transcript per Million mapped reads)矩陣是一種標準化後的表達量度量單位,旨在解決由基因長度和測序深度帶來的問題。FPKM首先考慮了基因的長度,然後根據每個樣本中對映到基因組的讀取總數進行調整。具體來說,FPKM透過將每個基因的片段數(fragments)除以該基因的長度(以千鹼基為單位),再乘以一百萬(因為測序深度可能達到數百萬級別),從而使得不同長度的基因和不同測序深度的樣本之間可以進行比較。
3. TPM(Transcripts Per Million)矩陣也是用來標準化基因表達量的一種方法,它與FPKM的主要區別在於調整順序的不同。TPM先對每個樣本的所有基因的讀數進行歸一化,然後再除以基因的長度。這種計算方法有助於在不同的樣本之間進行更準確的比較,尤其是在跨樣本分析時。TPM的一個顯著特點是,所有樣本中所有基因的TPM值加起來等於同一個常數(通常是1百萬),這使得TPM非常適合於描述樣本中基因表達的相對比例。
總結來說,這三個矩陣代表了從原始資料到標準化表達量的不同階段。Counts矩陣提供了最基礎的讀數資訊,而FPKM和TPM則是對這些資料進行標準化處理後得到的表達量度量,它們幫助我們在不同樣本間進行更有意義的比較和分析。
結語
以上就是從轉錄組raw data到表達量資料的全過程,後續的分析我也會出教程,有什麼問題可以評論交流。謝謝大家!
相關文章
- 單細胞分析實錄(2): 使用Cell Ranger得到表達矩陣Ranger矩陣
- 使用RSEM進行轉錄組測序的差異表達分析
- 從斐波那契到矩陣快速冪矩陣
- 矩陣轉置矩陣
- 旋轉矩陣矩陣
- 矩陣旋轉矩陣
- 旋轉的數學表達:尤拉角、軸向角、四元數與矩陣矩陣
- Hadoop 2.6 使用Map Reduce實現矩陣相乘1 矩陣轉置Hadoop矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 從拉普拉斯矩陣說到譜聚類矩陣聚類
- zip矩陣轉至矩陣
- 稀疏矩陣轉置矩陣
- V矩陣(轉載)矩陣
- THREE 矩陣優先原則和平移旋轉矩陣矩陣
- 矩陣:如何使用矩陣操作進行 PageRank 計算?矩陣
- 【矩陣求導】關於點乘 (哈達瑪積)的矩陣求導矩陣求導點乘
- 矩陣求導公式【轉】矩陣求導公式
- 旋轉矩陣推導矩陣
- Excel巧錄許可權矩陣Excel矩陣
- 生成螺旋矩陣(方陣、矩陣)矩陣
- 傳輸表空間(從Linux到Windows)LinuxWindows
- lisp 習題 矩陣旋轉Lisp矩陣
- 客戶忠誠矩陣(轉載)矩陣
- 威脅分析矩陣(轉載)矩陣
- 賦權分析矩陣(轉載)矩陣
- IT附加價值矩陣(轉載)矩陣
- 鄰接矩陣、度矩陣矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- SHAREit Group產品矩陣從0到全球24億使用者的增長祕笈矩陣
- 旋轉變換(一)旋轉矩陣矩陣
- 三維空間 旋轉矩陣 四元數 尤拉角 相互轉換 組合旋轉矩陣
- 原地旋轉矩陣(不申請新的記憶體空間旋轉矩陣)矩陣記憶體
- 稀疏矩陣之三元組壓縮儲存並且轉置矩陣
- 【程式碼隨想錄】一、陣列:5.螺旋矩陣陣列矩陣
- 矩陣矩陣
- 如何用GSL數學庫求解矩陣方程組?矩陣
- 三維旋轉矩陣推導矩陣