工欲善其事必先利其器
前面介绍了alevin 的单细胞定量功能,见 Alevin — 更快的单细胞定量,其也只是Salmon软件的一个组成部分,今天我们就再来学习一下 Salmon 其最初的功能 —— 转录组定量
Salmon 是由Rob Patro领导的团队开发的一款高效的生物信息学工具,主要用于定量转录组数据中的转录本表达量。其特性如下:
官网:https://combine-lab.github.io/salmon/
GitHub:https://github.com/COMBINE-lab/salmon?tab=readme-ov-file
编程语言:C++
Salmon
文章信息:Salmon provides fast and bias-aware quantification of transcript expression 期刊:Nature Methods 日期:2017年3月 作者 & 单位:Rob Patro & Stony Brook University DOI:https://doi.org/10.1038/nmeth.4197
Salmon 提供了多种安装方式。包括但不限于 二进制版本、源码构建、Docker镜像、Conda安装等。由于源码构建所需依赖过多,所以推荐使用二进制版本、Conda、Docker镜像安装
由于Github 没有提供最新版的salmon的二进制版本,所以推荐使用Conda安装
conda create -n salmon
conda activate salmon
conda install salmon -y
salmon有两种定量模式
GENCODE:https://www.gencodegenes.org/
##下载对应物种的转录本fa文件
wget -c https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_45/gencode.v45.transcripts.fa.gz
## 创建salmon索引
salmon index -i homo_gencode_transcript_index -k 31 --gencode -p 8 -t gencode.v45.transcripts.fa.gz
-i #指定索引的输出位置和名称
-k #设置用于构建准索引的k-mer的长度,默认为31
-p #设置调用线程,默认为2
-t #输入文件;转录本的fasta格式文件
--gencode #此选项表明输入的fasta文件是GENCODE格式的,会在第一个`|`字符处切分转录本名称
索引文件
当然,部分物种也可下载官方构建好的索引文件,见:http://refgenomes.databio.org/
## 双端测序
## salmon quant -i transcripts_index -l <LIBTYPE> -1 reads1.fq -2 reads2.fq --validateMappings -o transcripts_quant
salmon quant -i ~/ref/homo/homo_gencode_transcript_index -l IU -p 8 -1 SRR8707539_1.fastq.gz -2 SRR8707539_2.fastq.gz -o ~/GSE128101/salmon_paired_out/
-i #指定索引文件位置
-l #指定库类型的格式字符串。这个参数告诉Salmon你的测序库是单端还是双端,以及测序的方向性 (注意参数顺序,-l 参数要放在reads文件之前),不清楚的话可以设为 “A”
-1 # reads 文件1
-2 # reads 文件2
-o #输出结果目录
-p #设置调用线程(默认256),建议8~12个线程
--validateMappings #早期版本的 Salmon 中,需要显式启用选择性对准来优化映射质量。在较新版本的Salmon中已被标记为弃用,并且没有效果。因为选择性对准(selective alignment)现在是Salmon的默认行为
## 单端测序
## salmon quant -i transcripts_index -l <LIBTYPE> -r reads.fq --validateMappings -o transcripts_quant
salmon quant -i ~/ref/mouse/mouse_gencode_transcript_index -l A -p 8 -r SRR8734841.fastq.gz -o ~/GSE128101/salmon_single_out/SRR8734841
-r # 指定单端样本
-l A #自动检测读段方向
双端演示
单端演示
-l
参数 库类型对于单端测序
对于双末端测序
I
代表内向(inward)配对,O
代表外向(outward)配对,M
代表匹配(matching)配对。S
代表正向(same),R
代表反向(reverse)
示意图
Salmon期望提供的对齐文件是针对与FASTA文件中给出的转录本进行的。这意味着读段应该直接对齐到转录本上,而不是整个基因组。这与一些其他工具(如Cufflinks)不同,后者是对整个基因组进行读段的对齐
## 比对
## hisat2 -p 4 -x ~/ref/homo/hisat2_trans_index/homo_gencode_v45 -1 SRR8707540_1_val_1.fq.gz -2 SRR8707540_2_val_2.fq.gz |samtools sort -@ 4 -o ~/GSE128101/hisat_trans_out/SRR8707540_sort.bam
## salmon基于比对模式的定量
## ./bin/salmon quant -t transcripts.fa -l <LIBTYPE> -a aln.bam -o salmon_quant
salmon quant -t ~/ref/homo/gencode.v45.transcripts.fa -l IU -p 8 -a ./SRR8707540_sort.bam -o ~/GSE128101/salmon_paired_out/SRR8707540_bam
基于比对模式
结果文件
以制表符分割的定量文件 —— quant.sf
quant.sf
更多参数信息详见:https://salmon.readthedocs.io/en/latest/salmon.html
参考: