我們常見的轉(zhuǎn)錄組表達分析一般都是將reads比對至參考基因組或者轉(zhuǎn)錄組上站超,然后在基因或者轉(zhuǎn)錄本水平上定量表達豐度艾船。
但最近在做小RNA分析時卻遇到了沒有參考基因組注釋文件(gtf/gff文件)的情況弟疆,而注釋文件的缺失則意味傳統(tǒng)的轉(zhuǎn)錄組定量分析是無法進行的籍嘹。那在缺少注釋文件的情況下栅组,該如何進行定量分析呢棕兼?在各種搜索后發(fā)現(xiàn)了一款無需mapping便可進行定量的軟件——Salmon宴猾。
一圆存、基本情況
Salmon軟件于2017年發(fā)表在Nature Methods,其題目為《Salmon provides fast and bias-aware quantification of transcript expression》
Salmon 提供2種運行模式仇哆,一是quasi-mapping直接讀取 reads 文件沦辙;二是讀取比對文件 sam/bam 進行mapping。
1讹剔、quasi-mapping-based mode的運行有兩階段:構(gòu)建索引和用戶想要定量的reads文件油讯。
2、alignment-based mode的運行則不需要構(gòu)建索引延欠,而是僅需提供一個轉(zhuǎn)錄本的 FASTA文件和用戶想要定量的 SAM/BAM 文件陌兑。
二、軟件使用:
1由捎、quasi-mapping-based mode
構(gòu)建索引:
salmon index -t transcripts.fa -i transcripts_index -k 31
參數(shù)說明:
-t:轉(zhuǎn)錄本的fasta文件
-i:輸出目錄
-k:K-mers诀紊,默認值為31
#如果你的reads大于75bp,那么k設(shè)置為31是較好的選擇,如果reads低于75可略微減少K值
名詞解釋:
簡單來說邻奠,k-mer是一段長度為k的序列笤喳,而后面的mer即為monomeric unit(單體單元),也就是每個堿基碌宴。因k-mer包含k個堿基杀狡,若一段核酸序列長度為L,以一個堿基為步長滑動贰镣,那么根據(jù)這個核酸序列就可以得到L-k+1個k-mer呜象;由于每個位點的堿基可以為(A、T碑隆、C恭陡、G)中的任意一個,因此k-mer理論上說有個不同的序列上煤。原本一條長片段休玩,就變成了很多短的片段,因此計算機處理的堿基數(shù)量也會增加很多倍劫狠。而且拴疤,每次取k-mer是同一條reads正反取兩次,這就是對這條reads的反向互補序列再取一次k-mer独泞。下面的圖就形象化了這一過程呐矾,長度為15的序列,選取k-mer為5懦砂,那么就會得到11(15-5+1=11)個5-mer蜒犯。
定量分析:
#雙端測序數(shù)據(jù)reads表達量的估計
salmon quant -i transcripts_index -l <LIBTYPE> -1 reads1.fq -2 reads2.fq -o transcripts_quant
#單端測序數(shù)據(jù)reads表達量的估計
salmon quant -i transcripts_index -l <LIBTYPE> -r reads.fq -o transcripts_quant
參數(shù)說明:
-1/2:雙端數(shù)據(jù)
-r:單端數(shù)據(jù)
-l:--libType,測序文庫類型荞膘,一般不知道什么文庫的話用參數(shù) A 讓軟件自動檢測
#I = inward
#O = outward
#M = matching
#S = stranded
#U = unstranded
#F = read 1 (or single-end read) comes from the forward strand
#R = read 1 (or single-end read) comes from the reverse strand
#A = automatically determine
2罚随、alignment-based mode
該模式下無需創(chuàng)建索引
salmon quant -t transcripts.fa -l <LIBTYPE> -a aln.bam -o salmon_quant
3、輸出文件
主要輸出文件為quant.sf
衫画,該文件共有5列,分別是Name瓮栗,Length 削罩,EffectiveLength,TPM和NumReads费奸。
- Name — target transcript 名稱弥激, 由輸入的 transcript database (FASTA file)所提供。
- Length — target transcript 長度愿阐,即有多少個核苷酸
- EffectiveLength — target transcript 計算的有效長度微服。此項考慮了所有被建模的因素,這將影響從這個轉(zhuǎn)錄本中取樣片段的概率缨历,包括片段長度分布和序列特異性和gc片段偏差(如果這些因素在建模時均被考慮的話)以蕴。 (It takes into account all factors being modeled that will effect the probability of sampling fragments from this transcript, including the fragment length distribution and sequence-specific and gc-fragment bias (if they are being modeled))糙麦。
- TPM — 估計轉(zhuǎn)錄本的表達量。
- NumReads — 估計比對到每個轉(zhuǎn)錄本的reads數(shù)丛肮。
其他輸出文件:
cmd_info.json
: JSON格式文件赡磅,記錄salmon程序運行的命令和參數(shù)
lib_format_counts.json
: Observed library format counts。當(dāng)運行salmon是 mapping-based mode時宝与,則會生成改文件焚廊。 JSON格式文件,記錄有關(guān)文庫格式和reads比對的情況习劫。
eq_classes.txt
: Equivalence class file咆瘟。當(dāng)Salmon運行時,應(yīng)用參數(shù)--dumpEq诽里,則會生成此文件袒餐。
aux_info
: 輔助文件夾,內(nèi)含多個文件
fld.gz
:在輔助文件夾中须肆,該文件記錄的是觀察到的片段長度分布的近似值
obs5_seq.gz, obs3_seq.gz, exp5_seq.gz, exp5_seq.gz
: Sequence-specific bias files
expected_gc.gz, observed_gc.gz
: 當(dāng)Salmon運行時匿乃,應(yīng)用fragment-GC bias correction,在輔助文件夾中則會生成這兩個文件豌汇。記錄Fragment-GC bias幢炸。
meta_info.json
: JSON格式文件,記錄salmon程序運行的統(tǒng)計信息
ambig_info.tsv
: tab分隔符的文本文件拒贱,含有兩列宛徊。記錄的是每個轉(zhuǎn)錄本對應(yīng)的 the number of uniquely-mapping reads 和 the total number of ambiguously-mapping reads
三、補充
TPM:
Transcripts Per Kilobase of exonmodel per Million mapped reads (每千個堿基的轉(zhuǎn)錄每百萬映射讀取的Transcripts)逻澳,優(yōu)化的RPKM計算方法闸天,可以用于同一物種不同組織的比較。
TPM概括了基因的長度斜做、表達量和基因數(shù)目苞氮。TPM可以用于同一物種不同組織間的比較,因為sum值總是唯一的瓤逼。
計算公式:PMi=(Ni/Li)*1000000/sum(Ni/Li+……..+ Nm/Lm)
其中:Ni:mapping到基因i上的read數(shù)笼吟; Li:基因i的外顯子長度的總和
http://blog.sciencenet.cn/blog-1113671-1038659.html
參考:
https://www.bioinfo-scrounger.com/archives/411/
Salmon 進行轉(zhuǎn)錄本定量http://www.reibang.com/p/f62fd85113d3
tximport 將 Salmon 定量結(jié)果導(dǎo)入 DESeq2http://www.reibang.com/p/e0acb957b351
salmon分析RNA-seq實戰(zhàn)http://www.reibang.com/p/5ffbe89d3b6b