转录组数据分析 RNA-seq(二)

简介: 转录组数据分析 RNA-seq

测序数据质量控制

测序数据分析前需要经过数据预处理,并检查数据GC含量、序列重复、是否存在接头等。

  1. 质量评估:

使用 FastQC 检测原始数据质量


fastqc –o fastqc_results –f fastq test_1.fastq test_2.fastq b_1.fastq b_2.fastq

83f47e47705ff76b12c5c7170e136c98_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

cc43f2fd0ba871645e2d1e408bcd5185_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

GC含量分布图.问题区域需要切除,例如切除前 30bp

c96ff54a509563391d632c2f28208c59_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

错误率分布图.越接近尾部错误率越高,通常要求 Quality Score > 30


  1. 质量控制

使用 Trimmomatic 去除低质量reads。

Trimmomatic 详细说明参考:https://www.jianshu.com/p/a8935adebaae

FastQC和Trimmomatic的安装及使用参考:https://www.jianshu.com/p/bc3ad9379e3e?utm_campaign=hugo&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

用法:


java -trimmomatic.jar PE -threads 2 -phred33 \test_1.fq.gz test_2.fq.gz \test_1.trimed.fq.gz test_1.un.fq.gz test_2.trimed.fq.gz test_2.un.fq.gz \ILLUMINACLIP:/path/to/Trimmomatic/adapters/TruSeq3-PE-2.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:20 MINLEN:76

在质控后,再质检一次,对比看看有什么不同。

reads比对

将 reads 匹配到参考基因组或转录组的相应位置上

• 非剪接比对:转录组

Bowtie、BWA

• 剪接比对:参考基因组

STAR、HISAT、Topha

对鉴定SNP做了优化:GSNAP、MapSplice等


HISAT2比对流程

① 建立基因组索引


extract_splice_sites.py tair10.gtf > genome.ss # 把剪切位点提取出来extract_exons.py genome.gtf > genome.exon # 把exon提取出来hisat2-build --ss genome.ss --exon genome.exon genome.fasta genome # 最后的genome是输出文件的前缀

②利用注释文件比对


hisat2 -p 4 --known-splicesite-infile genome.ss --dta -x tair10 -1 test_1.trimed.fq.gz -2 test_2.trimed.fq.gz -S test.sam ## -p 线程数 ## --known-splicesite-infile 输入剪切位点文件## --dat 转录本拼接## -x index 库文件前缀CDS 和 exon 前## -1 -2 双端测序 fastq的名字, 如是单端测试 –U ## -S 输出文件,是比对的 SAM 文件

没有注释文件的比对方法:


hisat2 -p 18 --dta -x ~/genome/rice -1 /path/to/Rice_1.fq.gz -2 /path/to/Rice_.fq.gz -S rice.sam

③ SAM 文件处理

使用 samtools 对 SAM 文件排序并转化为 BAM 文件。samtools是一个用于操作sam和bam文件的工具合集,包含有许多命令。


samtools view -bS SRAxxx.sam > SRAxxx.bam  # 查看bam文件内容samtools sort -@ 2 -o SRAxxx.sort.bam SRAxxx.bam  # 按比对位置排序+格式转换samtools index rice.bam  # 建立bam文件索引samtools merge -@ 4 -h SRR1582649.bam merged.bam SRRxxx1.bam SRRxxx2.bam SRRxxx3.bam # 把生成的bam文件合并为一个文件## -@ 额外线程数## -m 每个线程最大占用内存,单位 K/M/G,根据实际情况调整。## -o 输出文件## -h 因为每个文件的sam文件表头都一样,所以用-h指定某一个文件的表头作为总文件的表头

④比对结果可视化

比对结果使用 IGV 、Genome Maps 和Sacant 等可视化查看。

例如:IGV 通过读入基因组和注释信息以及BAM 文件展示比对结果。

需要额外添加 BMA 的索引:samtools index、test_sorted.bam、test_sorted.bai

⑤比对结果评估

比对结果评估工具:RSeQC、Qualimap

  • Reads 匹配百分比评估预测精度和DNA污染程度或参考基因组的选择是否适合;
  • Reads 随机性分布 评估reads打断的随机程度;
  • 匹配Reads的GC含量,与PCR偏差有关。


基于NGS的转录本定量---StringTie

  1. reads 计算策略

① 只选唯一匹配 reads:用于估计基因水平的 reads 匹配数,常用工具如HTSeq-count、featureCounts;

② 保留多重匹配的 reads:利用统计算法将多重比对reads定位到对于的转录本异构体上,如 Cufflinks、StringTie、RSEM等

用法:


stringtie merge.bam -e -G Oryza_sativa.genomic.gff -o Oryza_sativa.new.gtf

RNA定量标准化

Reads 数受到基因长度、测序深度和测序误差等影响,需要归一化处理。

常用归一化策略:

RPKM(reads per kilobase of exon model per million reads)每 100 万 reads 比对到每 1kb 碱基外显子的 reads 数目

FPKM (fragments per kilobase of exon model per million reads) 每 100 万 reads 比对到每 1kb 碱基外显子的片段数目

TPM(transcripts per million)每 100 万 reads 比对到该转录本的片段数目

单端测序:RPKM = FPKM

双端测序:FPKM 更优

(FPKM 和 TMP 可以换算)

转录组核心分析策略选择

有参考基因组

可基于参考基因组序列和注释文件(gff或gtf文件)获得注释基因的基因表达、可变剪接状况、识别新转录本;

• 分析策略:

① 利用 TopHat、HISAT 及 STAR 等(剪接匹配工具)将 reads 比对到参考基因组上;

② 使用 Cufflinks 和 Stringtie 等软件进行转录本拼接,获取转录本表达量;

③ 拼接结果还可以与注释文件相比获取新转录本,并对新转录本进行功能注释。

无参考基因组

以前的策略:是对二代测序 reads 使用 Tiinity、SOAPdenovo-Trans等拼接成转录本,再获取表达信息。

• 现在的策略:

① 使用三代测序(Pacbio)进行全长转录本测定,获取参考转录组;

② 对获得的全长转录组进行功能注释;

③ 进行二代测序,并利用 Bowtie 等非剪接比对工具直接匹配到到参考转录组上;

④ 使用 RSEM、HTSeq-count 等工具进行转录本定量。

以 stringtie 进行有参转录本拼接

① 转录本拼接


    stringtie -p 4 -G reff.gtf -o test.gtf -l test test_sorted.bam## -p 线程数## -G 参考基因组注释文件## -o 输出文件## -l 转录本命名前缀

    ② 转录本整合


    stringtie --merge -p 4 -G ref.gtf -o test_merge.gtf gtflist.txt## 先将不同样本在上一步产生的gtf文件路径写进 gtflist.txt,再合并 gtf,用于后续分析鉴定

    ③ 转录本注释文件比较


    ## 先将不同样本在上一步产生的gtf文件路径写进 gtflist.txt,再合并 gtf,用于后续分析鉴定gffcompare –r ref.gtf -G -omerged test_merge.gtf

    FPKM的计算

    使用 stringtie 计算基因和转录本的 FPKM

      stringtie -e -p 4 -G test_merge.gtf -A test_merge_gene.gtf -o test_merge_transcript.gtf test test_sorted.bam## -e 只列出已知转录本丰度,不进行额外拼接预测## -G 如果只关注参考基因组注释基因就用参考基因组gtf,如果关注新转录本就用前一步meregd的gtf## -A 输出有 gene 表达量的 gtf## -o 输出有转录本表达量的gtf

      Reads 计数

        ## 使用 HTSeq-count 从比对结果中提取所有基因匹配的reads数据,用于后续差异表达分析htseq-count -q -f bam -s no -i gene_name /path/to/alignment/test_sorted.bam /path/to/genome/gff/tai /path/to/ref.gtf > test.count## -q 不显示进程报告## -f 比对文件格式 sam / bam## -s 是否考虑链特异性## -i 提取属性名

        Q&A

        1. 定量过程中,比对到基因组多个位置的reads(multi mapped)是如何处理的?

        A: 这些 reads 比对到基因组多个位置,无法确定是由哪个基因转录而来,所

        以这部分 reads 在定量过程中直接被过滤掉。

        1. 有重叠区域的两个基因,重叠区域的reads在定量时如何分配?

        A: 基因重叠区域的 reads 也无法确定由哪个基因转录而来,这部分的 reads

        也是被过滤处理。

        1. 基因表达的阈值是多少?为什么设置为这个阈值?

        A: 一般认为 FPKM 大于 1 时基因表达,这个阈值是主流杂志推荐的。

        7766a959d801fb81747c22f85d06fd65_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

        相关文章
        |
        数据挖掘 芯片
        转录组数据分析 RNA-seq(一)
        转录组数据分析 RNA-seq
        381 0
        转录组数据分析 RNA-seq(一)
        |
        3月前
        |
        数据采集 数据可视化 数据挖掘
        数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
        在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
        77 2
        |
        3月前
        |
        机器学习/深度学习 数据采集 数据可视化
        基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
        本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
        171 4
        |
        3月前
        |
        机器学习/深度学习 算法 数据挖掘
        2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
        本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
        84 0
        2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
        |
        7天前
        |
        SQL 数据挖掘 Python
        数据分析编程:SQL,Python or SPL?
        数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
        |
        1月前
        |
        机器学习/深度学习 数据采集 数据可视化
        数据分析之旅:用Python探索世界
        数据分析之旅:用Python探索世界
        26 2
        |
        2月前
        |
        数据采集 数据可视化 数据挖掘
        数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
        【9月更文挑战第2天】数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
        56 5
        |
        3月前
        |
        供应链 数据可视化 数据挖掘
        【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
        本文详细介绍了第十一届泰迪杯数据挖掘挑战赛B题的解决方案,涵盖了对产品订单数据的深入分析、多种因素对需求量影响的探讨,并建立了数学模型进行未来需求量的预测,同时提供了Python代码实现和结果可视化的方法。
        123 3
        【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
        |
        3月前
        |
        机器学习/深度学习 数据采集 数据挖掘
        【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
        本文提供了第十一届泰迪杯数据挖掘挑战赛B题问题二的详细解题步骤,包括时间序列预测模型的建立、多元输入时间预测问题的分析、时间序列预测的建模步骤、改进模型的方法,以及使用Python进行SARIMA模型拟合和预测的具体实现过程。
        68 1
        |
        3月前
        |
        数据采集 机器学习/深度学习 搜索推荐
        【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析
        本文介绍了2023钉钉杯复赛A题的智能手机用户监测数据分析,包括数据预处理、特征提取、推荐模型建立与评价的Python代码实现,旨在通过用户使用记录预测APP使用情况并建立推荐系统。
        72 0
        【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析