salmon分析RNA-seq实战

作者: 超级无敌大蜗牛 | 来源:发表于2020-03-18 18:00 被阅读0次

    Salmon应用

    查看帮助文档

    #查看可用的命令
    ###Salmon v0.9.1
    salmon -h
    #查看帮助文档之Salmon's quasi-mapping-based mode
    salmon --no-version-check quant --help-reads
    #查看帮助文档之Salmon's alignment-based mode
    salmon --no-version-check quant --help-alignment
    
    

    Quasi-mapping-based mode (including lightweight alignment)

    目前,Salmon有两种不同的方法---支持将reads比对到transcriptomes,分别是(SMEM-based) lightweight-alignment 和 quasi-mapping。SMEM-based mapping是Salmon自带的轻量级的比对方法;而 quasi-mapping这种比对方法相对较新较快。这两种方法的使用均是通过quant命令来应用的,但是两者比对方法所应用到的索引不同。

    quasi-mapping 应用到的数据结构是:a combination of data structures—a hash table, suffix array (SA) and efficient rank data structure

    quasi-mappings的详情见:RapMap: a rapid, sensitive and accurate tool for mapping RNA-seq reads to transcriptomes


    #构建quasi-mapping-based index
    ##注意,此处的-k值的设定。
    ####当reads长度长于75bp时,k值设为31是个理想的选择;
    ####当reads长度短于75bp时,应该尝试使用降低k值。
    ####另外,参数k能够被传递给命令quant。因此,在构建索引阶段提供的参数k能够覆盖在估计表达量阶段的参数k的设定。
    ######即如果用户使用quasi-mapping-based index,则估计表达量阶段的参数k的设定对结果没有任何影响。
    ####因为index命令中,--type参数的默认值是quasi,所以在构建quasi-mapping-based index时,--type quasi可以省略不写。
    salmon index -t transcripts.fa -i transcripts_index --type quasi -k 31
    
    #构建SMEM-based mapping index 
    #### 虽然此处未给定参数k,但是程序的默认值是19。
    #### 同上,在构建索引阶段提供的参数k能够覆盖在估计表达量阶段的参数k的设定。
    salmon index -t transcripts.fa -i transcripts_index --type fmd
    
    #对双端测序数据reads表达量的估计
    salmon quant -i transcripts_index -l <LIBTYPE> -1 reads1.fq -2 reads2.fq -o transcripts_quant
    
    #对单端测序数据reads表达量的估计
    salmon quant -i transcripts_index -l <LIBTYPE> -r reads.fq -o transcripts_quant
    
    ### 命令quant均适用于这两个index(quasi-mapping or SMEM-based),此外,Salmon能够自动检测到使用的是哪种index,从而采用与之匹配的比对方法。
    ### 注意:参数-l必须指定在参数-1,-2和-r的前面。
    ### 生成一个目录,内含文件quant.sf
    

    Alignment-based mode

    #使用aligner比对生成的结果文件aln.bam,对其进行表达量分析
    ### 生成一个目录,内含文件quant.sf
    salmon quant -t transcripts.fa -l <LIBTYPE> -a aln.bam -o salmon_quant
    

    salmon分析RNAseq数据实战

    #创建分析文件夹
    mkdir salmon_tutorial
    cd salmon_tutorial
    
    #下载参考转录组数据
    curl ftp://ftp.ensemblgenomes.org/pub/plants/release-28/fasta/arabidopsis_thaliana/cdna/Arabidopsis_thaliana.TAIR10.28.cdna.all.fa.gz -o athal.fa.gz
    
    #创建索引
    salmon index -t athal.fa.gz -i athal_index
    
    #获取测序数据
    mkdir data
    cd data
    for i in `seq 25 40`; 
    do 
      mkdir DRR0161${i}; 
      cd DRR0161${i}; 
      wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/DRR016/DRR0161${i}/DRR0161${i}_1.fastq.gz; 
      wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/DRR016/DRR0161${i}/DRR0161${i}_2.fastq.gz; 
      cd ..; 
    done
    cd .. 
    
    #估计样本的表达量
    for fn in data/DRR0161{25..40};
    do
    samp=`basename ${fn}`
    echo "Processing sample ${samp}"
    salmon quant -i athal_index -l A \
             -1 ${fn}/${samp}_1.fastq.gz \
             -2 ${fn}/${samp}_2.fastq.gz \
             -p 8 -o quants/${samp}_quant
    done 
    
    ### 其他常用的参数
    --seqBias   #纠偏序列的bias
    --gcBias    #纠偏GC含量的bias[beta for single-end reads]
    -g/--geneMap    #提供转录本与基因之间对应关系的文件。如果提供了该文件,Salmon将会输出文件:quant.sf 和 quant.genes.sf。
                    #其中quant.genes.sf 文件中含有对基因表达水平的估计。
                    #提供的文件可以是GTF文件,也可以是由TAB分隔符分隔文件,文件中的每一行含转录本名称和对应的基因名。
                    #以'.gtf', '.gff' 或 '.gff3'结尾的文件名均被当做GTF格式做处理解析。
                    #以其他字符结尾的被当做由TAB分隔符分隔的简单文件格式做处理解析。
    -z/--writeMappings      #若提供了该参数,则quasi-mapping的结果也会以SAM格式输出。
                            #默认情况下,输出结果是标准输出,建议提供文件名存储至文件中,以便后续分析的需要。
    ### 其他常用高级的参数                       
    --useVBOpt #使用Variational Bayesian EM算法,而非传统的EM算法。目的是批处理优化
    --numBootstraps num     #Number of bootstrap samples to generate。
                            #注意,该参数的使用与Gibbs sampling是相斥的。
                            #如果后续的分析差异表达搭配sleuth使用,则必须应用此参数。
    
    
    #下游的差异表达分析
    ### 差异表达分析的包:DESeq2, edgeR, limma, or sleuth
    ### 使用tximport包导入salmon转录本表达量分析的结果文件
    ### 再根据 DESeq2 vignette(https://bioconductor.org/packages/DESeq2)提供的范例,将salmon转录本表达量分析的结果文件读入DESeq2
    

    Salmon输出文件

    Salmon输出文件之Quantification File

    Quantification File: quant.sf
    quant.sf文件有5列,分别是Name,Length ,EffectiveLength,TPM和NumReads。分别表示的含义如下所述:

    • Name — target transcript 名称, 由输入的 transcript database (FASTA file)所提供。
    • Length — target transcript 长度,即有多少个核苷酸
    • EffectiveLength — target transcript 计算的有效长度。此项考虑了所有被建模的因素,这将影响从这个转录本中取样片段的概率,包括片段长度分布和序列特异性和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 — 估计转录本的表达量。
    • NumReads — 估计比对到每个转录本的reads数。

    补充:FPKM,RPKM,RPM以及TPM的关系之见解
    RPKM (Reads Per Kilobase Million)
    FPKM (Fragments Per Kilobase Million)
    TPM(Transcripts Per Kilobase Million)
    RPM (Reads per million)
    CPM (Counts per million)

    TPM
    Transcripts Per Kilobase of exonmodel per Million mapped reads (每千个碱基的转录每百万映射读取的Transcripts),优化的RPKM计算方法,可以用于同一物种不同组织的比较。
    TPM概括了基因的长度、表达量和基因数目。TPM可以用于同一物种不同组织间的比较,因为sum值总是唯一的。

    Salmon输出文件之其他

    cmd_info.json: JSON格式文件,记录salmon程序运行的命令和参数
    lib_format_counts.json: Observed library format counts。当运行salmon是 mapping-based mode时,则会生成改文件。 JSON格式文件,记录有关文库格式和reads比对的情况。
    eq_classes.txt: Equivalence class file。当Salmon运行时,应用参数--dumpEq,则会生成此文件。
    aux_info: 辅助文件夹,内含多个文件
    fld.gz:在辅助文件夹中,该文件记录的是观察到的片段长度分布的近似值
    obs5_seq.gz, obs3_seq.gz, exp5_seq.gz, exp5_seq.gz: Sequence-specific bias files
    expected_gc.gz, observed_gc.gz: 当Salmon运行时,应用fragment-GC bias correction,在辅助文件夹中则会生成这两个文件。记录Fragment-GC bias。
    meta_info.json: JSON格式文件,记录salmon程序运行的统计信息
    ambig_info.tsv: tab分隔符的文本文件,含有两列。记录的是每个转录本对应的 the number of uniquely-mapping reads 和 the total number of ambiguously-mapping reads

    参考:Salmon---a tool for wicked-fast transcript quantification from RNA-seq data

    相关文章

      网友评论

        本文标题:salmon分析RNA-seq实战

        本文链接:https://www.haomeiwen.com/subject/seucyhtx.html