利用NCBI数据进行分析的时候,遇到的第二个问题就是如何将SRA文件转化为常用的fastq文件。
NCBI官方提供的SRAtoolkit里面有fastq-dump,很简单的一个命令,直接转换出来就是压缩好的fastq.gz文件,但是这个命令是单线程的,遇上大量的SRA数据就非常慢了,所以后来开发了一个fasterq-dump,能够多线程的转换。
但是这个命令最大的问题是不能直接出压缩好的fastq.gz文件,对于非服务器用户很不友好,没压缩的fq文件通常十几个G,文件一多硬盘就爆炸,所以还是希望能够以压缩好的gz文件存储,通常只有原始文件的1/8左右,只有原始SRA文件的2倍左右。如果利用gzip命令,这玩意也是个单线程的,压缩起来要了亲命。所以通过寻找我发现pigz这个命令可以多线程的压缩,压缩大小和gzip是差不多的,最后我写了个简单的shell脚本,可以一次性完成这两步工作。
#!/bin/bash
# 本脚本可多线程的将SRA文件转化为Fastq文件#
# 本脚本依赖于SRA-toolkit以及pigz两个软件,需要在PATH中存在#
# 使用方法:SRA2fq.sh 线程数 文件地址#
# 例如: SRA2fq.sh 48 /media/sata2/Bju_RNASeq/SRR8293215.sra #
mkdir fastq_files
cd ./fastq_files
fasterq-dump -3 -e $1 $2
pigz -p $1 ./*.fastq
把两个分割线中间的命令用记事本保存为sh文件,放在服务器上就能够执行了。多线程的转换,多线程的压缩,节约不少时间,对台式机用户比较友好。