01 检索数据
run就是数据,如SRR26717485
SRA 档案数据通过 SRA 加载过程进行标准化,并由 SRA 工具包用于读取和生成如 FASTQ、SAM 等格式。默认的工具包配置使其能够通过登录号查找和检索 SRA 运行数据。
现在,公共 SRA 文件可以通过 GCP 和 AWS 云平台以及 NCBI 访问。在云端访问大多数数据需要用户在云服务提供商处拥有账户。用户的账户将因云计算或将数据复制到指定的云服务区域外而产生费用。三个地址都可以,一般选AWS快一点稳定。NCBI亦可。
即可下载到本地。
02 NCBI下载数据
wget -c -t 0 -O path/SRR1482463.sra https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR26717485/SRR26717485
#-c -t 配合使用可以防止下载数据的过程中链接中断的问题,-O则可以指定下载路径和文件名
wget https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR26717485/SRR26717485
# 或者
curl -O https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR26717485/SRR26717485
# 或者有了 ID List
while read line; do
wget https://sra-pub-run-odp.s3.amazonaws.com/sra/${line}/${line};
done < list_of_ids
下载完之后拆分
下载之后是SRA格式,是二进制文件,这时候就要用到SRAToolKIT
~/sratoolkit/bin/fastq-dump --split-files SRR390728
#-I 生成两个fastq文件(--split-files),其中包含“ .1”和“ .2”读取对(-I),用于配对端数据
拆分完转化为fa文件,推荐seqkit安装与使用 v2.5.1(生物信息学工具-003)
seqtk安装与使用-seqtk-1.4(bioinfomatics tools-012)
1 linux下直接: sed -n '1~4s/^@/>/p;2~4p' in.fastq > out.fasta
2 perl: perl -ne 'y/@/>/;print($_.<>)&&<>&&<>' your_file.fastq > output_file.fasta
3 seqtk包下载(bioconda):seqtk seq -A input_file.fastq > output_file.fasta
太慢了,有没有提速方式?有的,sra-tools !
03 参考
https://github.com/ncbi/sra-tools #官网
https://github.com/ncbi/sra-tools/wiki #txt
https://edwards.sdsu.edu/research/fastq-dump/ #note
04 SRAtoolkit安装
mkdir ~/SRAToolkit #先建立一个放工具的文件夹
cd ~/SRAToolkit
wget -c https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.1.1/sratoolkit.3.1.1-centos_linux64.tar.gz
tar xzvf sratoolkit.3.1.1-centos_linux64.tar.gz
##配置环境
echo 'export PATH=$PATH:$HOME/SRAToolkit/sratoolkit.3.1.1-centos_linux64/bin ' >> ~/.bashrc
source ~/.bashrc
或者conda一步安装
conda install bioconda::sra-tools
05 使用
5.1 下载文件
prefetch SRR26717485 #一个
prefetch --option-file sraid.txt #多个
5.2 拆分双端测序文件
`fastq-dump` 是一个用于从 NCBI 的序列读取档案(SRA)下载测序读取的工具。这些序列读取将以 FASTQ 文件的形式下载。FASTQ 文件的格式取决于使用的 `fastq-dump` 选项。
使用 `fastq-dump` 从 SRA 下载读取
在这个例子中,我们希望为一个 mate-pair 库下载 FASTQ 读取。
fastq-dump --gzip --skip-technical --readids --read-filter pass --dumpbase --split-3 --clip --outdir path/to/reads/ SRR_ID
在这个命令中:
- `--gzip`:使用 gzip 压缩输出。Gzip 压缩的读取可以直接被 bowtie2 读取。
- `--skip-technical`:仅导出生物学读取,跳过技术读取。
- `--readids` 或 `-I`:在 spot ID 后附加读取 ID,格式为 `accession.spot.readid`。使用此标志后,一条序列将附加 ID `.1`,另一条序列附加 ID `.2`。如果不使用此选项,配对读取将具有相同的 ID。
- `--read-filter pass`:仅返回通过过滤的读取(不含 Ns)。
- `--dumpbase` 或 `-B`:使用碱基空间格式化序列(默认用于除 SOLiD 之外的其他平台)。包括此选项是为了避免使用颜色空间(其中碱基对用数字表示)。
- `--split-3`:将读取拆分为左端和右端。如果左端没有匹配的右端,或右端没有匹配的左端,它们将被放入一个文件中。
- `--clip` 或 `-W`:SRA 中的一些序列包含需要移除的标签。此选项将移除这些序列。
- `--outdir` 或 `-O`:(可选)输出目录,默认是当前工作目录。
- `SRR_ID`:这是从 SRA 下载的运行 ID。该 ID 以 “SRR” 开头,后跟大约七位数字(例如 SRA1234567)。
可以替代 `--split-3` 使用的其他选项:
- `--split-files`:将 FASTQ 读取拆分为两个文件:一个文件包含 mate 1(..._1),另一个文件包含 mate 2(..._2)。此选项不会将无匹配对的序列放入第三个文件。
- `--split-spot`:将 FASTQ 读取拆分为一个文件中的两部分(mate 1 和 mate 2)。`--split-spot` 将生成一种 8 行的 fastq 格式,其中前向序列在前,反向序列在后(参见 [链接](https://www.biostars.org/p/178586/#258378))。
#单线程
fastq-dump --gzip -O $PWD --split-3 *.sra
# --gzip :输出gz格式压缩文件,节省空间,稍微多费点时间
# -O ${directory} :设置输出的文件间路径,outdirectory改为相应路径
# --split-3 :不知道sra是单端还是双端,默认使用--split-3
#多线程
fasterq-dump -p -e 24 --split-3 -O ${outdirectory} SRR1XXX.sra
#-p 可以显示进程
#-e 24 使用24个线程
# fasterq-dump不能使用压缩命令
06 常用命令行
# 下载 sra 格式文件
prefetch SRR26717485
# 转换为fastq格式
fastq-dump --split-files SRR26717485
## 或者直接
fastq-dump --split-3 SRR26717485 #most缺省模式fastq-dump --split-3 XXX
#循环
for sra file in ~/public/sra/*; do
fastq-dump --split-files --origfmt --gzip ${sra};
done