科研信息学生信RNA-seq转录组分析

Salmon 进行转录本定量

2020-04-11  本文已影响0人  BeeBee生信

Salmon 是转录本定量软件,使用转录本定量主要优点一是更准确,比如不同样本同一基因使用不同 isoform 此时基因长度并不相等,直接基因定量无法顾及;二是方便进行可变剪切分析。Salmon 提供2种运行模式,一是直接读取 reads 文件(姑且称为 fastq 模式);二是读取比对好文件 sam/bam (姑且称为比对模式)。

在文章《StringTie + DESeq2 进行 RNA-seq 差异基因分析》《featureCounts 计算基因 reads 数目》我介绍了一个基本的 RNA-seq 差异基因分析流程,Salmon 能用来替代这里的 StringTie 和 featureCounts, DESeq2 也专门有导入 Salmon 数据的函数。这篇文章我用人种 RNA-seq 数据演示一遍 Salmon 流程,下篇文章将用 Salmon 数据进行可变剪切分析。

Reads 乱序
Salmon 要求 reads 是无序的,如果你的文件将 reads 排序过,用 Salmon 前要先重新乱序。

线程数
fastq 模式差不多使用线程越多运行越快,不过实际操作也没必要给整个几十个线程去跑;比对模式线程到达一定数目后,总体速度就不怎么加快了,设置 8-12 线程是相对合适的。

文库类型(library type, LIBTYPE)
RNA-seq 有多种多样文库类型,使用 Salmon 应设置好这个参数,因为 Salmon 自动检测也许会出现错误。下面图示是 Salmon 定义的文库类型分类。

Salmon 文库类型

所以 LIBTYPE 设定包含了三个部分,一是 reads 的相对方向,分别用 I/O/M 表示;二是文库有无链特异性,分别用 S/U 表示;三是,假如文库有链特异性,指明链方向,分别用 F/R 表示。如果第二部分是 U 就不需要设置这里。下面是这些字母代表的全称。

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

要注意 Salmon 用 F/R 表示链方向,其他软件可能喜欢用 F2R1/F1R2形式。

流程示例

第一步是建立索引,建议先用 generateDecoyTranscriptome.sh 脚本产生一个 decoys.txt 文件,下面是我命令示例。
注:generateDecoyTranscriptome.sh 脚本在 GitHub - COMBINE-lab/SalmonTools: Useful tools for working with Salmon output 下载,或者 Github 搜索 SalmonTools.

/Example/Project/SalmonTools/scripts/generateDecoyTranscriptome.sh -a gencode.v33.annotation.gtf -g bigZips/hg38.fasta -t gencode.v33.transcripts.fa -o hsa_decoy

这里 -a-t 参数用到文件可以在 Gencode 网站下载(人种),这个命令我跑了2天时间,所以别以为出错了强制中断,没报错就等待。结束后 -o 目录会输出 decoys.txt 文件。
完成后建立 index 命令:

salmon index -t gencode.v33.transcripts.fa -i hsa_transcripts_index --decoys hsa_decoy/decoys.txt -k 31 --gencode

设置 -k 31 适合 75 bp 及更长 reads,如果你的 reads 更短需要设置小点。或者你觉得比对率有些偏低,可以将 -k 设小些,提高灵敏度。建立索引完成后 -i 参数指定目录会有许多文件。

$ls hsa_transcripts_index
complete_ref_lens.bin  ctg_offsets.bin         eqtable.bin  mphf.bin  pre_indexing.log  refAccumLengths.bin  reflengths.bin  seq.bin
ctable.bin             duplicate_clusters.tsv  info.json    pos.bin   rank.bin          ref_indexing.log     refseq.bin      versionInfo.json

fastq 模式
注意 -l 参数放 -1/-2 前面。

salmon quant -l MU -i /share/database/openData/GRCh38_hg38/hsa_transcripts_index --validateMappings -1 5637_50nm_1_Clean_Data1.fq.gz -2 5637_50nm_1_Clean_Data2.fq.gz -o Test1

运行后有 quant.sf 文件就是转录本定量信息。

Name    Length  EffectiveLength TPM     NumReads
ENST00000456328.2       1657    1372.105        0.034568        1.000
ENST00000450305.2       632     348.480 0.000000        0.000
ENST00000488147.1       1351    1066.105        3.604749        81.025
ENST00000619216.1       68      69.000  0.000000        0.000
ENST00000473358.1       712     427.508 0.000000        0.000
ENST00000469289.1       535     255.958 0.000000        0.000
ENST00000607096.1       138     5.557   0.000000        0.000
ENST00000417324.1       1187    902.105 0.000000        0.000

定量后 Salmon 工作也完成了,后面就是 DESeq2, limma 等软件进行下游分析。

部分参数解释

[参考]
Overview – Salmon: Fast, accurate and bias-aware transcript quantification from RNA-seq data
Bowtie 2: fast and sensitive read alignment

上一篇 下一篇

猜你喜欢

热点阅读