NGS Lab1 (数据下载与质量评估)
数据库网站
数据下载工具
质量评估工具
安装 SRA Toolkit
( 挑个你喜欢的方法安装就好~ )
- 方法一:
anaconda
或micromamba
(推荐) - 方法二:下载预编译的二进制文件
使用 anaconda
安装
- 新建虚拟环境
sra-tools
conda create -n sra-tools
# 等待一会儿后输入 y , 然后回车
- 进入虚拟环境
sra-tools
conda activate sra-tools
- 安装
SRA Toolkit
# 注意!如果不添加 -c conda-forge, 则默认无法下载最新版本的 sra-tools
conda install -c bioconda -c conda-forge sra-tools
# 等待一会儿后输入 y , 然后回车
# 检验是否安装成功
srapath --version
# 我的输出是:
# srapath : 3.1.1
使用 micromamba
安装
- 新建虚拟环境
sra-tools
# 和 anaconda 不同, micromamba 在新建虚拟环境的时候需要加上 env
micromamba env create -n sra-tools
- 进入虚拟环境
sra-tools
micromamba activate sra-tools
- 安装
SRA Toolkit
# 注意!如果不添加 -c conda-forge, 则默认无法下载最新版本的 sra-tools
micromamba install -c bioconda -c conda-forge sra-tools
# 等待一会儿后输入 Y , 然后回车
# 检验是否安装成功
srapath --version
# 我的输出是:
# srapath : 3.1.1
安装 FastQC
( 挑个你喜欢的方法安装就好~ )
- 方法一:
anaconda
或micromamba
(推荐) - 方法二:下载预编译的二进制文件
使用 anaconda
安装
- 新建虚拟环境
fastqc
conda create -n fastqc
# 等待一会儿后输入 y , 然后回车
- 进入虚拟环境
fastqc
conda activate fastqc
- 安装
FastQC
conda install -c bioconda fastqc
# 等待一会儿后输入 y , 然后回车
# 检验是否安装成功
fastqc --version
# 我的输出是:
# FastQC v0.12.1
使用 micromamba
安装
- 新建虚拟环境
fastqc
# 和 anaconda 不同, micromamba 在新建虚拟环境的时候需要加上 env
micromamba env create -n fastqc
- 进入虚拟环境
fastqc
micromamba activate fastqc
- 安装
FastQC
# 注意!如果不添加 -c conda-forge, 则默认无法下载最新版本的 sra-tools
micromamba install -c bioconda -c conda-forge fastqc
# 等待一会儿后输入 Y , 然后回车
# 检验是否安装成功
fastqc --version
# 我的输出是:
# FastQC v0.12.1
安装 MultiQC
( 挑个你喜欢的方法安装就好~ )
- 方法一:
anaconda
或micromamba
(推荐) - 方法二:下载预编译的二进制文件
使用 anaconda
安装
- 新建虚拟环境
multiqc
conda create -n multiqc
# 等待一会儿后输入 y , 然后回车
- 进入虚拟环境
multiqc
conda activate multiqc
- 安装
MultiQC
# 注意!如果不添加 -c conda-forge, 则默认无法下载最新版本的 multiqc
conda install -c bioconda -c conda-forge multiqc
# 等待一会儿后输入 y , 然后回车
# 检验是否安装成功
multiqc --version
# 我的输出是:
# multiqc, version 1.8
使用 micromamba
安装
- 新建虚拟环境
multiqc
# 和 anaconda 不同, micromamba 在新建虚拟环境的时候需要加上 env
micromamba env create -n multiqc
- 进入虚拟环境
multiqc
micromamba activate multiqc
- 安装
MultiQC
# 注意!如果不添加 -c conda-forge, 则默认无法下载最新版本的 multiqc
micromamba install -c bioconda -c conda-forge multiqc
# 等待一会儿后输入 Y , 然后回车
# 检验是否安装成功
multiqc --version
# 我的输出是:
# multiqc, version 1.8
使用教程
SRA Toolkit
下载 .sra
文件
(假如我想下载 SRR1646444
)
方法一 (prefetch)
# prefetch 自带断点续传
prefetch SRR1646444
# 文件 SRR1646444.sra 保存在当前目录的 SRR1646444 文件夹里面
# 优点: prefetch 后面可以加上多个 SRR号, 利于下载多个 .sra 文件
# 缺点: 没有进度条, 不方便查看下载进度
方法二 (wget + srapath)
# srapath 获取的是 .sra 文件对应的网址
# -c 参数使得 wget 支持断点续传
wget -c $(srapath SRR1646444)
# 文件 SRR1646444 保存在当前目录 (没有 .sra 后缀)
# 优点:
# 1) wget 自带的进度条方便查看下载进度
# 2) 可使用魔法加速, 这里不赘述
# 缺点: 下载多个 .sra 文件时需要多开或者额外操作
方法三 (prefetch + ascp 加速下载)
- 如果你使用
anaconda
:
# 准备工作, 只需要初次使用时走一遍流程, 以后只要 '开始下载' 那步就可以了
# 首先, 确保所在虚拟环境为 sra-tools
conda activate sra-tools
# 接着, 安装 aspera-connect
conda install -c rpetit3 aspera-connect # 等待一会儿后输入 y , 然后回车
# 搜寻你的私钥文件, 并添加到环境变量
echo "ascp_key=$(find ~/anaconda3/envs/sra-tools/ -name asperaweb_id_dsa.openssh)" >> ~/.bashrc;
source ~/.bashrc
# 检查是否成功找到私钥
echo $ascp_key
# 我的输出:
# /home/saturn/anaconda3/envs/sra-tools/opt/aspera/connect/etc/asperaweb_id_dsa.openssh
# 没有输出的话说明有问题, 需要自行排查
# 开始下载
prefetch -a "$(which ascp)|$ascp_key" SRR1646444
# 没问题的话会显示:
# 2024-10-14T13:14:20 prefetch.3.1.1: 1) Resolving 'SRR1646444'...
# 2024-10-14T13:14:23 prefetch.3.1.1: Current preference is set to retrieve SRA Normalized Format files with full base quality scores
# 2024-10-14T13:14:24 prefetch.3.1.1: 1) Downloading 'SRR1646444'...
# 2024-10-14T13:14:24 prefetch.3.1.1: SRA Normalized Format file is being retrieved
# 2024-10-14T13:14:24 prefetch.3.1.1: Downloading via HTTPS...
# 文件 SRR1646444.sra 保存在当前目录的 SRR1646444 文件夹里面
- 如果你使用
micromamba
:
# 准备工作, 只需要初次使用时走一遍流程
# 首先, 确保所在虚拟环境为 sra-tools
micromamba activate sra-tools
# 接着, 安装 aspera-connect
micromamba install -c rpetit3 aspera-connect # 等待一会儿后输入 Y , 然后回车
# 搜寻你的私钥文件, 并添加到环境变量
echo "ascp_key=$(find ~/micromamba/envs/sra-tools/ -name asperaweb_id_dsa.openssh)" >> ~/.bashrc;
source ~/.bashrc
# 检查是否成功找到私钥
echo $ascp_key
# 我的输出:
# /home/saturn/micromamba/envs/sra-tools/opt/aspera/connect/etc/asperaweb_id_dsa.openssh
# 没有输出的话说明有问题, 需要自行排查
# 开始下载
prefetch -a "$(which ascp)|$ascp_key" SRR1646444
# 没问题的话会显示:
# 2024-10-14T13:14:20 prefetch.3.1.1: 1) Resolving 'SRR1646444'...
# 2024-10-14T13:14:23 prefetch.3.1.1: Current preference is set to retrieve SRA Normalized Format files with full base quality scores
# 2024-10-14T13:14:24 prefetch.3.1.1: 1) Downloading 'SRR1646444'...
# 2024-10-14T13:14:24 prefetch.3.1.1: SRA Normalized Format file is being retrieved
# 2024-10-14T13:14:24 prefetch.3.1.1: Downloading via HTTPS...
# 文件 SRR1646444.sra 保存在当前目录的 SRR1646444 文件夹里面
转换 .sra
文件为 fastq.gz
(假如我想把前面下载的 SRR1646444.sra
转换成 SRR1646444.fastq.gz
)
使用 fastq-dump
fastq-dump --gzip --split-files SRR1646444.sra
# 会在当前目录生成 SRR1646444.fastq.gz
# fastq-dump 还支持通配符, 可转换多个 .sra 文件
# 例: fastq-dump --gzip --split-files *.sra
使用 fasterq-dump
# 虽然 fasterq-dump 在处理速度上比 fastq-dump快, 但是并没有提供 --gzip 选项用于输出 gzip 压缩后的 fastq 文件
# 平替方法如下:
fasterq-dump --split-files SRR1646444.sra -o /dev/stdout | gzip -c > SRR1646444.fastq.gz
# 原理: 先将 .sra 文件解压后输出到标准输出, 然后使用管道符导入到 gzip 实时压缩成 .fastq.gz 文件
# PS: 想要进一步提速, 可以使用 pigz 替换 gzip -c (注意: pigz 需安装! )
附: 默认参数下 fastq-dump
与 fasterq-dump
的处理速度对比
(我使用 shell 的是 fish
, 而非 bash
, 嘻嘻)
# fastq-dump (耗时约 443 秒)
time fastq-dump --gzip --split-files SRR1646444
# Read 2631092 spots for SRR1646444
# Written 2631092 spots for SRR1646444
# ________________________________________________________
# Executed in 443.97 secs fish external
# usr time 53.23 secs 0.00 micros 53.23 secs
# sys time 1.34 secs 914.00 micros 1.33 secs
# fasterq-dump (耗时约 30 秒)
time fasterq-dump --split-files ./SRR1646444.sra -o /dev/stdout | gzip -c > SRR1646444.fastq.gz.fasterq-dump
# spots read : 2,631,092
# reads read : 2,631,092
# reads written : 2,631,092
# ________________________________________________________
# Executed in 30.31 secs fish external
# usr time 35.21 secs 0.78 millis 35.21 secs
# sys time 3.68 secs 1.17 millis 3.68 secs
查看 .fastq.gz
文件
方法一 (gunzip + less)
gunzip -c SRR1646444.fastq.gz | less
方法二 (zcat + less)
zcat SRR1646444.fastq.gz | less
方法三 (zless)
zless SRR1646444.fastq.gz
# "Less is more."
FastQC
用法解析
fastqc [选项] <fastq_file1> <fastq_file2> ...
常用选项
-o <dir>
: 指定输出文件路径, 默认为当前路径-t <int>
: 指定线程数目-a <filename>
: 指定 adapter 文件
实战使用
fastqc SRR1646444.fastq.gz
# application/gzip
# Started analysis of SRR1646444.fastq.gz
# Approx 5% complete for SRR1646444.fastq.gz
# Approx 10% complete for SRR1646444.fastq.gz
# Approx 15% complete for SRR1646444.fastq.gz
# Approx 20% complete for SRR1646444.fastq.gz
# Approx 25% complete for SRR1646444.fastq.gz
# Approx 30% complete for SRR1646444.fastq.gz
# Approx 35% complete for SRR1646444.fastq.gz
# Approx 40% complete for SRR1646444.fastq.gz
# Approx 45% complete for SRR1646444.fastq.gz
# Approx 50% complete for SRR1646444.fastq.gz
# Approx 55% complete for SRR1646444.fastq.gz
# Approx 60% complete for SRR1646444.fastq.gz
# Approx 65% complete for SRR1646444.fastq.gz
# Approx 70% complete for SRR1646444.fastq.gz
# Approx 75% complete for SRR1646444.fastq.gz
# Approx 80% complete for SRR1646444.fastq.gz
# Approx 85% complete for SRR1646444.fastq.gz
# Approx 90% complete for SRR1646444.fastq.gz
# Approx 95% complete for SRR1646444.fastq.gz
# Analysis complete for SRR1646444.fastq.gz
输出文件
ls *fastqc*
# SRR1646444_fastqc.html SRR1646444_fastqc.zip
.html 文件
:包含可视化的质量报告,可在浏览器中查看.zip 文件
:包含详细的统计数据及图表
MultiQC
用法解析
multiqc [选项] <data_directory>
常用选项
-o <dir>
: 指定输出文件路径, 默认为当前路径-n <name>
:指定生成报告的文件名, 默认为multiqc_report.html
实战使用
multiqc /public/workspace/shaojf/Course/NGS/DataSets/Lab1/rawdata.fastqc.result/
# /// MultiQC 🔍 | v1.17
# | multiqc | Search path : /public/workspace/shaojf/Course/NGS/DataSets/Lab1/rawdata.fastqc.result
# | searching | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 36/36
# | fastqc | Found 18 reports
# | multiqc | Report : multiqc_report.html
# | multiqc | Data : multiqc_data
# | multiqc | MultiQC complete
输出文件
ls *multiqc*
# multiqc_report.html
# multiqc_data:
# multiqc.log
# multiqc_citations.txt
# multiqc_data.json
# multiqc_fastqc.txt
# multiqc_general_stats.txt
# multiqc_software_versions.txt
# multiqc_sources.txt
multiqc_report.html
: 主要的可视化报告,包含了多种交互式图表,可在浏览器中打开查看multiqc_data/
文件夹 : 保存了所有用于生成报告的原始数据文件和一些辅助信息
任务
- 数据:
/public/workspace/shaojf/Course/NGS/DataSets/Lab1
- (选做)自行安装
sratools
、FastQC
、MultiQC
SRR1646444.sra
转成.fastq.gz
格式, 并用FastQC
评估- 用multiQC生成
rawdata.fastqc.result
目录下的汇总QC报告
( 结果文件均保存至 ~/myNGS/Lab1/
文件夹)
参考代码
1. 安装相关软件
- 不赘述, 详见以上内容
2. 格式转换与评估
- 确保文件夹已经建好
mkdir -p ~/myNGS/Lab1
- 进入文件夹
cd ~/myNGS/Lab1
- 将 .sra 数据软链接到 Lab1 文件夹内, 这样就不用自己下载咯~
ln -s /public/workspace/shaojf/Course/NGS/DataSets/Lab1/SRR1646444.sra .
- 转换 .sra 文件为 .fastq.gz 格式 (两种方法任选一种)
# 方法一,使用 fastq-dump, 较慢
fastq-dump --split-files SRR1646444.sra
gzip SRR1646444.fastq
# 方法二,使用 fasterq-dump, 较快
fasterq-dump --split-files SRR1646444.sra -o /dev/stdout | gzip -c > SRR1646444.fastq.gz
- 建立两个文件夹, 用于保存使用不同 adapter 的结果文件
mkdir default.qc specified.qc
- 使用
FastQC
进行评估
# 第一次评估: 使用默认 adapter, 输出结果到 default.qc 文件夹
fastqc -o default.qc SRR1646444.fastq.gz
# 第二次评估: 指定特定 adapter, 输出结果到 specified.qc 文件夹
# 将 adapter 文件软链接到你的 Lab1 里面
ln -s /public/workspace/shaojf/Course/NGS/Tools/FastQC/Configuration/adapter_list.txt .
# 使用 -a 参数指定 adapter 文件
fastqc -o specified.qc -a adapter_list.txt SRR1646444.fastq.gz
3. 汇总QC报告
# 将存放多个QC报告的文件夹软链接到你的 Lab1 里面
ln -s /public/workspace/shaojf/Course/NGS/DataSets/Lab1/rawdata.fastqc.result/ .
# 使用MultiQC生成汇总报告
multiqc rawdata.fastqc.result/