前言
本文记录了单细胞分析之前的数据准备过程,单细胞数据偏大,可能会耗时。
一、数据下载
首先,在GEO上找到自己需要的单细胞数据。利用 爬虫 提取数据对应的SRR号,然后通过 SRAToolkit 工具下载,单发现该工具下载速度太慢,所以用 aria2 下载。
爬虫 代码详见通过爬虫在GEO数据库上获取对应SRR号;
SRAToolkit 代码如下:
prefetch SRR号
aria2 代码如下:
aria2c -x16 -s16 -j16 --piece-length="16M" --min-split-size="16M" --dir="输出路径" --input-file="路径/downloadlink.txt"
downloadlink.txt内容为SRR下载链接
二、数据处理
1.解压(sra到fastq)
通过 aria2 下载好的SRR文件是没有.sra后缀的,需要自己补全。sra文件需要解压变成fastq文件,SRAToolkit 里自带解压的工具 fastq-dump,fasterq-dump,解压速度太慢,推荐 pfastq-dump。代码如下:
安装路径/pfastq-dump/bin/pfastq-dump --threads 线程数 --split-3 --outdir 输出路径 存放sra路径/SRRxxxxxx.sra
对于一个你不知道到底是单端还是双端的SRA文件,一律用--split-3。
2.压缩(fastq到fastq.gz)
普通的压缩命令为gzip,但是单线程进行,速度较慢,推荐用 pigz 多线程进行,节省时间。
pigz -p 线程数 filename
file1="/home/data/fastq.txt"
line=`cat "$file1" |wc -l`
for((i=1;i<="$line"+1;i++))
do
file=$(awk -v vi=$i 'NR==vi{print $1}' "$file1")
pigz -p 96 $file
done
3.修改fastq名(符合cellranger输入)
每个SRR文件会变成解压出三个文件,这三个文件10X官网文档有说明
Cellranger count 的fastq输入文件格式必须要求格式如下:
#[Sample Name]S1_L00[Lane Number][Read Type]_001.fastq.gz
#Where Read Type is one of:
#I1: Sample index read (optional)
#R1: Read 1(barcode+UMI)
#R2: Read 2(转录本reads)
#V2 版本: 26bp + 98bp (16bp 10XBC + 10bp UMI + 98bp read2) V3 版本: 28bp + 91bp (16bp 10XBC + 12bp UMI + 91bp read2)
接下来就按照10X的标准去对文件进行改名,在这之前可以查看fastq里序列长度,确定R1,R2
zless -SN SRR21437900_1.fastq.gz | head
cat 构建的fastq.gz的文件名.txt | while read i
do
mv ${i}_1*.gz ${i}_S1_L001_I1_001.fastq.gz
mv ${i}_2*.gz ${i}_S1_L001_R1_001.fastq.gz
mv ${i}_3*.gz ${i}_S1_L001_R2_001.fastq.gz
done
大多数解压后是只有R1,R2两个文件,处理结果同上。
总结
到这里数据准备工作完毕,可以进行将数据输入到cellranger中进行下一步处理。