RNA-seq(2)

目录

一、软件安装

二、数据预处理

1.sra文件下载及格式转变。

2.数据质量过滤

数据质量检测(FastQC、MultiQC)

FastQC、MulitiQC结果:

数据过滤

参考资料:


上篇主要简单介绍了RNA-seq流程及简单的概念,这篇博文主要讲获取数据后的一些操作。

大概流程为:数据预处理、序列比对、基因表达定量、差异表达分析、功能注释和富集分析等。

一、软件安装

1.常规软件安装

以下是可能用到的一些软件,由于测序数据量比较大,有条件的可以使用服务器来操作,为了便于管理,建议使用conda安装和管理软件。可以参考原创10000+生信教程大神给你的RNA实战视频演练

(1)SRA-tools:一组用于访问和处理Sequence Read Archive (SRA) 数据的命令行工具。内含工具主要包括:prefetch:用于从 SRA 数据库下载测序数据。fastq-dump:用于将下载的 SRA 文件转换为常见的 FASTQ 格式,以便进行进一步的分析。fasterq-dump:fastq-dump 的改进版本,速度更快,适合处理大数据集。sam-dump:用于将 SRA 数据转换为 SAM 格式(测序比对格式)。vdb-config:配置 SRA 工具的参数,比如下载路径、缓存大小等。

(2)FastQC:用于评估高通量测序数据的质量。

(3)Trim Galore:用于剪切测序数据中的低质量序列和接头序列。

(4)HISAT2:用于将RNA-Seq数据比对到参考基因组上。

(5)Subread:用于比对和量化RNA-Seq、DNA-Seq等高通量测序数据。

(6)MultiQC:用于整合并展示多个质控工具的结果。

(7)Samtools:用于处理比对后的SAM/BAM/CRAM文件。

(8)Salmon:用于RNA-Seq数据的转录本定量分析。

(9)Fastp:高效的测序数据质控和剪切工具。

(10)aspera CLI: IBM Aspera提供的命令行工具,用于通过Aspera的高速文件传输协议(Aspera FASP)传输大型文件和数据集。

安装好conda后,把fastqc换成需要的软件即可。

conda install  -y fastqc

2.创建工作目录

wkd="/xxx/data"          # 工作目录

二、数据预处理

1.sra文件下载及格式转变。

首先设置工作目录及环境

mkdir -p ~/xxx/xxx
cd ~/xxx/xxx

mkdir -p  rawdata  fastq  qc  trim_galore  fastp hisat2 featureCounts#此处根据需要创建

第一种:测序公司的文件。

第二种:可以先在把数据下载在本地,再上传(如果数据量比较大的不推荐这种方法),

第三种:通过prefetch下载SRA数据,新建一个包含SRR号码的文档(一个号码占据一行)

#下载单个数据
prefetch SRRxxx -O ./rawdata   #-O . 指定到当前路径;

#下载多个数据,SRR号码保存在文档里,每行一个
cat SRR_Acc_List.txt | while read id; do (prefetch  ${id} );done

第四种:通过ascp(Aspera Connect)下载,NCBI提供的一种工具。Downloads and Documentation - IBM Aspera,感兴趣的可以试试。

格式转变: sra转为fastq 

fastq-dump *.sra #格式转换

这两步也可以合并,代码如下

#!/bin/bash

# 1. 批量下载 .sra 文件
cat SRR_Acc_List.txt | while read id; do
  prefetch ${id}
done

# 2. 批量转 .fastq.gz
cat SRR_Acc_List.txt | while read id; do
  fasterq-dump --split-3 ${id}/${id}.sra && gzip ${id}_*.fastq
done

# 3. 清理临时文件
rm -rf SRR*/  # 删除 prefetch 生成的临时目录

Fastq格式是一种基于文本的存储生物序列和对应碱基(或氨基酸)质量的文件格式。fastp文件一般每4行为一个read分别为第1行主要储存序列测序时的坐标信息等;第2行是测序得到的序列信息,一般用ATCGN(N 代表的是未确定的碱基(N 表示 "unknown" 或 "ambiguous" base)来表示。第3行以“+”开始,可以储存一些附加信息,一般是空的。第4行储存质量信息,与第2行的碱基序列一一对应。每个符号对应的ASCII值成为phred值,可以简单理解为对应位置碱基的质量,越大说明测序质量越好。

2.数据质量过滤

数据质量检测(FastQC、MultiQC)

fastqc *.fastq #生成质控报告

multiqc *.zip #整合为一个文件

或者保存为一个脚本,

#!/bin/bash

# 定义FastQC输出目录
fastqc_output_dir="fastqc_results"
# 创建FastQC输出目录(如果不存在)
mkdir -p $fastqc_output_dir

# 并行运行FastQC
parallel fastqc -o $fastqc_output_dir ::: *.fastq

# 定义MultiQC输出目录
multiqc_output_dir="multiqc_results"
# 创建MultiQC输出目录(如果不存在)
mkdir -p $multiqc_output_dir

# 运行MultiQC整合结果
multiqc -o $multiqc_output_dir $fastqc_output_dir/*.zip

echo "FastQC分析和MultiQC整合完成。"
echo "FastQC结果保存在 $fastqc_output_dir 目录中。"
echo "MultiQC结果保存在 $multiqc_output_dir 目录中。"

然后运行

chmod +x qc_analysis.sh #赋予权限

./qc_analysis.sh  #运行脚本

FastQC、MulitiQC结果:

基本信息:展示了样本名称、测序数据格式、数据量等基本信息。

序列质量分布:碱基质量得分(Per sequence quality scores:在每个碱基位置上,以 Phred 质量分数来衡量碱基的准确性。质量分数越高,碱基识别的准确性越高。一般来说,质量分数大于 30 表示碱基错误率低于 1%,是比较好的质量。如果某区域的碱基质量得分整体偏低,可能意味着该区域的测序质量较差,需要进一步分析原因。质量分布曲线(Per base sequence content:通过曲线展示整个序列上碱基质量的分布情况。理想情况下,曲线应该是平滑且位于较高质量分数区域的。通常四条线应尽可能平行,并保持在 25% 附近。如果曲线出现明显的波动或在低质量分数区域有较多分布,说明测序数据质量可能存在问题。

GC 含量:正常的测序数据中,GC 含量在一个合理的范围内,并且在不同的样本之间应该相对稳定。如果某个样本的 GC 含量明显偏离预期范围,可能提示存在样本特异性的问题,如样本中存在高 GC 或低 GC 含量的区域,或者测序过程中存在偏差。

序列重复水平:过高的序列重复水平可能表示存在 PCR 扩增偏好性或样本中存在大量的重复序列。如果是 PCR 扩增偏好性导致的,可能会影响对基因表达量的准确评估,需要在后续分析中进行校正。

接头序列:如果检测到接头序列,说明测序数据中存在接头污染。接头污染可能会影响序列比对和后续的分析结果,需要进行接头去除处理。

整体样本质量概览:在 MultiQC 整合的报告中,首先会有一个整体的样本质量概览,通过各种图表和统计数据展示所有样本的关键质量指标,如平均碱基质量、GC 含量分布、测序深度等。可以通过这些概览信息快速了解所有样本的整体质量情况,以及样本之间的差异和一致性。

样本间比较:质量指标分布比较:例如碱基质量分布、GC 含量分布等在不同样本间的比较。如果发现某些样本的质量指标与其他样本存在明显差异,需要进一步调查原因,可能是样本制备过程中的差异,也可能是测序过程中的问题。测序深度比较:展示不同样本的测序深度分布情况。测序深度的差异可能会影响基因表达量的检测和分析,需要确保各个样本的测序深度在合理范围内且相对均匀,以便进行准确的比较和分析。

模块汇总:MultiQC 会将 FastQC 的各个分析模块进行汇总展示,方便用户快速定位到每个样本在不同方面的质量情况。例如,可以通过模块汇总快速查看哪些样本存在较高的序列重复水平,哪些样本的 GC 含量异常等。

用fastqc看数据质量,发现没有什么问题的话,以下步骤可以不用进行,直接进行比对。


数据过滤

测序得到的原始序列含有接头序列和低质量序列,为了保证信息分析的准确性,需要对原始数据进行质量控制,得到高质量序列(Clean Reads),原始序列质量控制的建议标准为:

接头:去除含接头的reads;

序列质量:过滤去除低质量值数据,确保数据质量;

N碱基比例:去除含有N(无法确定碱基信息)的比例大于5%的reads

数据过滤的两个工具:Trim_Galore 和 Fastp

#完整流程
graph LR
    A[原始数据: *_1.fastq.gz, *_2.fastq.gz] --> B{生成config文件}
    B --> C[Trim Galore质控]
    C --> D[Clean数据: *_val_1.fq.gz, *_val_2.fq.gz]
    C --> E[FastQC报告]
    C --> F[日志文件]
#检查结果

(1)生成config文件

#(1)生成config文件
wkd="/xxx/sra"
mkdir -p $wkd/clean
ls $wkd/*.fastq > $wkd/clean/config  # 直接保存路径到config

#双端
# 生成双端样本的config文件(两列:fq1 fq2)
ls $wkd/*_1.fastq.gz | sed 's/_1.fastq.gz//' > $wkd/clean/samples.list
while read sample; do
    echo "${sample}_1.fastq.gz ${sample}_2.fastq.gz" >> $wkd/clean/config
done < $wkd/clean/samples.list
head $wkd/clean/config # 检查config内容

(2)脚本qc.sh(脚本均以单端测序为例,双端自行改动)

#!/bin/bash

# 设置变量
bin_trim_galore=trim_galore
dir="/xxx/clean"
config=$1  # 输入参数,如config文件路径

# 检查Trim Galore是否安装
if ! command -v $bin_trim_galore &> /dev/null; then
    echo "Error: Trim Galore not found. Install with 'conda install -c bioconda trim-galore'"
    exit 1
fi

# 检查config文件是否存在
if [ ! -f "$config" ]; then
    echo "Error: Config file $config not found!"
    exit 1
fi

# 检查config文件是否存在
if [ ! -f "$config" ]; then
    echo "Error: Config file $config not found!"
    exit 1
fi

# 逐行处理config文件
while read fq1; do
    echo "Processing $fq1..."
    $bin_trim_galore \
        -q 25 \                  # 去除低于Q25碱基
        --phred33 \              # 质量编码格式
        --length 36 \            # 保留长度≥36的reads
        --stringency 3 \         # 接头匹配严格度
        --fastqc \               # 自动运行FastQC
        -o $dir \                # 输出目录
        $fq1                     # # 输入文件
done < $config

echo "All done! Results saved to $dir"

(3) 运行脚本

bash xx.sh   /xx/xx (bash+脚本名称+参数)

bash qc.sh /xxx/sra/clean/config

输出文件:*_val_1.fq.gz 质控后的Read 1;*_val_2.fq.gz 质控后的Read 2;*_unpaired_1.fq.gz Read 1中未配对的reads(若未丢弃);*_fastqc.htmlFastQC报告*_trimming_report.txt处理日志。

执行完毕后,检查 $dir 中的 *_trimming_report.txt 确认过滤效果(如保留的reads比例)

PS:本篇为新手友好教程! 每个步骤都附上了详细说明,并且刻意控制了单篇内容量,避免信息过载。如果有表述不准确的地方,欢迎在评论区或私信指教!你的建议会让教程变得更好~

参考资料:

RNA-seq: 7-alignment-3_哔哩哔哩_bilibili

原创10000+生信教程大神给你的RNA实战视频演练

看优秀本科生如何一周内学会Linux进而搞定RNA-seq上游分析

原创10000+生信教程大神给你的RNA实战视频演练

转录组上游分析流程(一)

上游分析!SRA数据的下载和数据质控!

R 语言21天教程,致敬坚持的你!

基因测序的基本原理以及转录组测序数据的上游分析【GEO数据库】_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值