单细胞测序数据下载和预处理


配置ascp代理高速下载sra数据
wget http://download.asperasoft.com/download/sw/connect/3.7.4/aspera-connect-3.7.4.147727-linux-64.tar.gz
tar zxvf aspera-connect-3.7.4.147727-linux-64.tar.gz
#安装
bash aspera-connect-3.7.4.147727-linux-64.sh
#然后cd到根目录下看看是不是存在了.aspera文件夹,有的话表示安装成功
cd && ls -a
#将aspera软件加入环境变量,并激活
echo ‘export PATH=~/.aspera/connect/bin:$PATH’ >> ~/.bashrc
source ~/.bashrc
#最后检查ascp是不是能用了
ascp --help
当ascp安装成功后,prefetch就会将下载方式从https转移到fasp,加速数据下载,如果不成功,则尝试打开33001端口

开启服务器33001端口
检查防火墙搞清楚你的防火墙是iptables还是firewall还是别的什么
如果是firewall
$ sudo firewall-cmd --zone=public --add-port=33001/tcp --permanent
$ sudo firewall-cmd --reload
如果是iptables
$ sudo iptables -I INPUT -p tcp --dport 33001 -j ACCEPT
$ sudo service iptables save

#下载代码
下载sra-tools
直接下载二进制可执行文件,解压完后必须执行 vdb-config --interactive使命令生效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
wkd=/home/huguang/single-cell/MCC
cd $wkd/raw
#for patient 2586-4
cat >SRR_Acc_List-2586-4.txt
SRR7722937
SRR7722938
SRR7722939
SRR7722940
SRR7722941
SRR7722942

cat SRR_Acc_List-2586-4.txt |while read i
do prefetch $i -O `pwd` && echo "** ${i}.sra done **"
done

另外,还可通过MEBL-EBI网站下载

1
ascp -QT -l 300m -P33001 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh [email protected]:vol1/srr/SRR772/009/SRR7722939 ./

单细胞数据下载完成后,利用cell ranger软件分析,一般需要两个输入文件,其中一个是测序reads,另一个是UMI+Barcode文件,那么只生成一个文件是不够的,因此可以换个参数

使用另外一个参数–split-files来替代–split-3 ,就可以生成三个文件,其中第一个文件的所有序列都是8bp,第二个文件都是26bp,第三个文件都是91bp,初步判断,第三个文件是测序reads。

单细胞转录组数据和普通的bulk转录组还是不太一样,bulk结果一般就是R1、R2,很容易区分;10X单细胞数据比较特殊,它的测序文库中包括index、barcode、UMI和测序reads。

文章使用的是10X Genomics 3’ Chromium v2.0 平台,那么就看一下它的帮助手册(https://assets.ctfassets.net/an68im79xiti/1CnKSfa7taoQwIEe0WaA4m/8635b2c9ee86c022e731b6fb2e13fed2/CG000080_10x_Technical_Note_Base_Composition_SC3_v2_RevB.pdf )

先大概了解一下10X文库组成:
在这里插入图片描述
其中Read2:98那里的星号表示这个长度不是固定的,可以调整,比如文章中患者P2586-4的Read2长度就是98,而患者9245-3的Read2长度是91

然后看看测序时每个run cycle做了什么事:
利用illumina边合成变测序(sequencing by synthesis ,SBS),每一个cycle都是一个碱基,因此用cycle数可以表示测序长度

首先,1-26个cycle就是测序得到了26个碱基,先是16个Barcode碱基,然后是10个UMI碱基;

然后,27-34这8个cycle得到了8个碱基,就是i7的sample index;

最后35-132个cycle得到了98个碱基,就是转录本reads

看下Read1、i7 index、Read2的碱基分布:

可以看到转录本read前端有20多bp质量是存在波动的,因为5’端的前几个碱基为随机引物序列,存在一定的偏好性

另外,index和barcode有什么区别,为什么用两个fq文件进行区分?
找到10X官方给出的一个解答:https://kb.10xgenomics.com/hc/en-us/articles/115002777072-How-do-I-demultiplex-by-sample-index-and-barcode-

i7 sample index是加到Illumina测序接头上的,保证多个测序文库可以在同一个flow-cell上或者同一个lane上进行混合测序(multiplexed)。当然可以自己指定index,但更多情况下会使用10X公司提供的index序列(bundled index sets),针对不同项目使用的index也是不同的。不过共性就是:96孔板的每个孔中都加入了4种不同的index oligos混合(详见:https://kb.10xgenomics.com/hc/en-us/articles/218168503-What-oligos-are-in-my-sample-index-)。

它的作用就是在CellRanger的mkfastq 功能中体现出来的,它自动识别样本index名称(例如:SA-GA-A1),将具有相同4种oligo的fq文件组合在一起,表示同一个样本
GEO的数据记录了index信息

Barcode 是10X特有的,用来区分GEMs,也就是对细胞做了一个标记。一般在拆分混养测序数据(demultiplexing)这个过程后进行操作,当然这也很符合原文的操作
在这里插入图片描述
UMI的作用呢?
它是为处理PCR 扩增偏差而生

首先,不管是bulk RNA还是scRNA,都需要进行PCR扩增,但是不可避免有一些转录本会被扩增太多次,超过了真实表达量。当起始文库大小很小时(比如单细胞数据),就需要更多次的PCR过程,这个次数越多,引入的误差就越大

UMI就是Unique Molecular Identifier,由4-10个随机核苷酸组成,在mRNA反转录后,进入到文库中,每一个mRNA随机连上一个UMI,结果可以计数不同的UMI,最终统计mRNA的数量。

那么这三个文件的名称需要修改吗?
我认为是需要修改的,因为命名太模糊,不容易指定文件进行下游分析。然后看到官网给出的解答:https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/2.0/using/fastq-input#wrongname ,也的确说需要修改

那么怎么改?
肯定要批量处理,就利用下载SRA的SRR ID好了

#比如,将原来的SRR7692286_1.fastq.gz改成SRR7692286_S1_L001_I1_001.fastq.gz
#依次类推,将原来_2的改成R1,将_3改成R2
cat SRR_Acc_List-9245-3.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

参考https://mp.weixin.qq.com/s/fP8f4HboMM7m2Nd7AIljlg