生信 | scATAC-Seq数据获取(超快sra转fq)

部分代码参考自10x genomics官网,但绝大多数代码融入了我自己的思考

1、上游分析(软件安装 + 数据获取 + call peak)

  • 由于10X封装好了流程,所以软件安装和call peak就很简单了,因此重要的就是如何获取数据?如何超快速从sra跑出来R1234?,不过还是解释一下整体流程吧,不想看的可以直接往下翻!

1.1 软件安装

1) 服务器硬件与软件要求

# 先激活任意一个 conda 环境,然后再执行下面的代码
conda install -c freenome bcl2fastq -y
# 检查是否安装成功
bcl2fastq -h

2) Cell Ranger ATAC - 2.0.0软件安装(1.7GB)

  • 因为经常更新,所以去【官网】看一看是不是2.0.0版本了,至少在我更新的时候还是的
wget -O cellranger-atac-2.0.0.tar.gz "https://cf.10xgenomics.com/releases/cell-atac/cellranger-atac-2.0.0.tar.gz?Expires=1626103123&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9jZi4xMHhnZW5vbWljcy5jb20vcmVsZWFzZXMvY2VsbC1hdGFjL2NlbGxyYW5nZXItYXRhYy0yLjAuMC50YXIuZ3oiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE2MjYxMDMxMjN9fX1dfQ__&Signature=VODjodUMuNGP51unCTQHn6ONd8dI~tepKSW0qDcxv2n2LKQoCMxKoTD6Vdkidwl7F~a0XAnc1~ji5V4wgkQgeY5~gbqf~ZMNpAxf3AXU9XreMwsP7izc-EDOelCbcUkK8n3ynfzXSKvq9qR008LjPwIGUAN0prS9xJNFkPD0Dq7GiK~tKZ5-g~20YEwpx--OMeIpzEvVlq-xpKNVy8qjulshKgslmcOPs7lHxv9bI04Xd8XFS5CE9DoKKD~2bCyXTXWYSRAhWLsXDdozGzVaSVJwh8sbarQzRaot79GCS~xQPkmZJmnXuKgHFiwUDmFenOtpkYh2gqpo1nEfaFBlTQ__&Key-Pair-Id=APKAI7S6A5RYOXBWRPDA"
tar -xzvf cellranger-atac-2.0.0.tar.gz
# 永久添加到环境变量
echo 'export PATH=/你的安装路径/cellranger-atac-2.0.0:$PATH' >> ~/.bashrc
source ~/.bashrc
# 检查是否安装成功,需要 3分钟,最后提示Pipestance completed successfully!
cellranger-atac testrun --id=tiny
rm cellranger-atac-2.0.0.tar.gz

1.2 数据获取

  • 如果你已经有了I1,R1,R2,R3以下内容可以跳过,主要阐述分析的I1,R1,R2,R3数据是怎么得到的。来源有两个:\color{red}{①\ \ 下机的BCL转fastq} \color{red}{②\ \ 从SRA/ENA上下载fastq}

1)数据来源一:对下机数据base calling files(BCL)转为fastq文件(做生信的跳过)
软件:cellranger mkfastq : 它借鉴了Illumina的bcl2fastq ,可以将一个或多个lane中的混样测序样本按照index标签生成样本对应的fastq文件。即对下机数据base calling files转为fastq文件。

  • 下载示例数据(233MB)
# 下载Illumina® BCL的测序文件,大小为233MB
wget https://cf.10xgenomics.com/supp/cell-atac/cellranger-atac-tiny-bcl-1.0.0.tar.gz
# 下载样本注释文件,也可以自己手动创造,见下文格式
wget https://cf.10xgenomics.com/supp/cell-atac/cellranger-atac-tiny-bcl-simple-1.0.0.csv
tar -zvxf cellranger-atac-tiny-bcl-1.0.0.tar.gz
rm cellranger-atac-tiny-bcl-1.0.0.tar.gz
  • 可以看一下样本注释文件的格式
head cellranger-atac-tiny-bcl-simple-1.0.0.csv
# 三列,逗号分割
Lane,Sample,Index
1,test_sample,SI-NA-C1
  • 运行程序——mkfastq
cellranger-atac mkfastq --id=tiny-bcl \
                     --run=cellranger-atac-tiny-bcl-1.0.0 \
                     --csv=cellranger-atac-tiny-bcl-simple-1.0.0.csv \
                     --delete-undetermined

--id:输出文件夹的名字
--run:测序文件夹的名字
--csv:样本注释文件
--delete-undetermined:删除输出文件中的undetermined文件

  • 查看运行结果
ls -lh tiny-bcl/outs/fastq_path/HJN3KBCX2/test_sample
  • 一个样本生成四个文件,分别为I1, R1,R2,R3,依次代表着sample index,read1,barcode,read2
    大多数情况下,我们直接会拿到一个样本的四个文件I1, R1,R2,R3或者其中的R1,R3,所以上面使用mkfastqIllumina®BCL的测序文件进行的处理可以跳过,直接进行下面的分析即可

\color{red}{2)数据来源二:从SRA/ENA上下载(生信砖家请重点关注)}

  • 这里面的门道感觉还比较多,经过我3天的探索,基本上摸清楚了如何快速得到scATAC-Seq产生的I1, R1,R2,R3的四个文件,注意是快速!请听我慢慢道来(又在废话)

  • 软件: 【Aspera Connect】 + 【SRA Toolkit】 【帮助文档】
    以前我是从来不使用SRA Toolkit,但是现在想获取scATAC产生的数据不得不用到,没办法,人在屋檐下哪能不低头?另外我还想说一点的是SRA Toolkit目前依旧支持 ascp 下载,不知道以前听谁说不可以的

  • 软件安装(均不推荐使用conda安装)

wget https://d3gcli72yxqn2z.cloudfront.net/connect_latest/v4/bin/ibm-aspera-connect-3.11.2.63-linux-g2.12-64.tar.gz
tar -zvxf ibm-aspera-connect-3.11.2.63-linux-g2.12-64.tar.gz
sh ibm-aspera-connect-3.11.2.63-linux-g2.12-64.sh
# 永久添加到环境变量
echo 'export PATH=~/.aspera/connect/bin:$PATH' >> ~/.bashrc

wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.9.6/sratoolkit.2.9.6-ubuntu64.tar.gz
tar -zvxf sratoolkit.2.9.6-ubuntu64.tar.gz
echo 'export PATH=/你的安装路径/sratoolkit.2.9.6-ubuntu64/bin:$PATH' >> ~/.bashrc

source ~/.bashrc
  • 下载数据
    首先不同于传统的NGS测序数据,如果你直接下载_1.fastq.gz_2.fastq.gz由于缺少barcode文件,cellranger ATAC是无法运行的,所以只能使用SRA Toolkit将原始sra文件下载下来,然后再分解为单独的文件。
    好!重点来了!既然要分解那就要选择块一点的方式,传统的fastq-dump我是不敢再用了,巨慢。因此有没有替代品呢?那是当然!同样来自SRA Toolkit,叫做fasterq-dump。顾名思义,比fastq-dumpfaster的分解软件,下面正式开始

  • 以下载SRR13450125.sra为例

prefetch SRR13450125 -O ./

-O:大写的O,表示存放在指定的文件夹下
使用prefetch是极度看脸的,因为你设置的所有想让他使用ascp下载的参数后,他依旧可能使用https下载,因此佛系一点吧,https也不算太慢。

  • 使用fasterq-dump分解
fasterq-dump -p --include-technical -S -e 10 -O ./ SRR13450125.sra

-p:显示进程,非常推荐
--include-technical:这是关键点,如果不加这个参数是不会分解出来index和barcode文件的,这就不同于fastq-dump--split-files
-S:将分解出来的序列存放到不同的文件中,如I1, R1,R2,R3四个文件
-e:设置线程数
-O:大写的O,表示存放在指定的文件夹下

  • fasterq-dump是真的快啊,不到2分钟,就分解完了,不过不足之处就是输出不是压缩文件,毕竟压缩也是需要时间的,因此用内存换速度,我觉的挺值的
  • 修改fastq的名字
    因为CellRanger ATAC只能识别他pipeline规定的名字格式,因此需要改名,格式如下
[Sample Name]_S1_L00[Lane Number]_[Read Type]_001.fastq
--------------------------------------------------------------
[Sample Name]:自己对样本的命名
[Lane Number]:同一个样本不同测序泳道的序号
[Read Type]:四种类型,如下
I1: Sample index read (这个文件可要可不要)
R1: Read 1
R2: barcode(这个文件必须要有)
R3: Read 2
--------------------------------------------------------------
举例如下:
SRR13450125_S1_L001_I1_001.fastq
SRR13450125_S1_L001_R1_001.fastq
SRR13450125_S1_L001_R2_001.fastq
SRR13450125_S1_L001_R3_001.fastq

可是,我们怎么知道上面的1,2,3,4怎么对应I1, R1,R2,R3啊?方法很简单,在浏览器中输入下面的网址查询一下文件的基本信息,需要查询其他的修改run=SRR13450125即可

https://trace.ncbi.nlm.nih.gov/Traces/sra/?run=SRR13450125


熟悉barcode的应该知道它为16bp,因此其中的L=16就代表着barcode文件,也就是R2,所以SRR13450125.sra_3.fastq就可以改名为SRR13450125_S1_L001_R2_001.fastq。而R1和R2命名给SRR13450125.sra_2.fastq或者SRR13450125.sra_4.fastq都可以,不放心的可以head一些文件看一看,这里我跑了一下fastqc进一步验证了我的观点

所以根据以上规则改名:

mv SRR13450125.sra_1.fastq SRR13450125_S1_L001_I1_001.fastq
mv SRR13450125.sra_2.fastq SRR13450125_S1_L001_R1_001.fastq
mv SRR13450125.sra_3.fastq SRR13450125_S1_L001_R2_001.fastq
mv SRR13450125.sra_4.fastq SRR13450125_S1_L001_R3_001.fastq
  • 作者不想让你分析系列
    如果你探索的足够深入的话,你还会发现一些奇怪的东西,比如SRR14539571

    这种就直接放弃吧,我看了一下他是把R1(L=51)R2(L=16)R3(L=51)序列合并了,很难搞,感兴趣的同学可以自己把barcode提取出来继续分析,这里不再展开
$ head SRR14539571.sra_2.fastq
@SRR14539571.sra.1 NB501658:300:HVW2LBGXF:1:11101:15875:1034 length=118
GTCCANCCATTTGTCTAAGAATTTCATGAATTCGTTGTTTCTAATAGCTAATGGCCGATGCGATGGACTCTTCCCATTGATGCCCGCNTAGGTNATNCTCTGCTACATATGCATCTAN
+SRR14539571.sra.1 NB501658:300:HVW2LBGXF:1:11101:15875:1034 length=118
AAAA/#AEE6/E6EE/EAEAEEAEEEEEEEEE6/EEEE/EEEEE/EAEAA/AAAAAEEAAEEEAEA/6AAAA/A/A6EEEE///E/E#EEEEE#AE#/E/A///EAEEEE//EA<AE#
@SRR14539571.sra.2 NB501658:300:HVW2LBGXF:1:11101:10442:1035 length=118
GTTTANTGGCTAGCTCATCCAGACCCCTCAACTAAACTAGTTTTCTATTGGCCCTTGCCTACAGGCATCGCTATTCTCGGCCCTTCCNGTTCAACANCTAGCCCTGGGTTCCCGAAGG
+SRR14539571.sra.2 NB501658:300:HVW2LBGXF:1:11101:10442:1035 length=118
AA6AA#EEE/E//E/EAEEE/E/AEEEEEE6EEEE6EE6EEEEEE/EEEEEA/A/AEAE/AEAEEAAAAAAAEAEE///EEEEE//A#A/E/EEE/#AEE/E6/6E//<A<EAAE/AE
  • 一个样本多个Lane系列
    如果还要继续探索的,还存在另外一种情况,就是一个样本有多个Lane,因此分析的时候要把原始文件下载全了再分析,就比如说上面下载的SRR13450125,他其实还有个孪生兄弟SRR13450126,只不过测序的时候泳道不同,所以下载的时候一定要下载全,虽然不全也能继续分析,只不过就不能复原文献内容了。这种情况在传统ATAC-Seq中也存在,这里不再展开叙述了

终于把下载数据折腾完了

1.3 下载【比对索引】或者【自己构建索引】

这里就不得不吐槽10X了,你整那么大的索引干什么,下载起来贼费劲。

  • 下载适配于Cell Ranger ATAC小鼠的参考基因组(13GB,解压后19GB)。没办法,就是这么大,但下载总比自己构建的快且用的安心吧
wget https://cf.10xgenomics.com/supp/cell-atac/refdata-cellranger-arc-mm10-2020-A-2.0.0.tar.gz
tar -zvxf refdata-cellranger-arc-mm10-2020-A-2.0.0.tar.gz
rm refdata-cellranger-arc-mm10-2020-A-2.0.0.tar.gz #快点删了
  • 番外篇:自己构建适配于Cell Ranger ATAC的参考基因组——mkref
  • 目前官网上提供的参考基因组只有GRCh38mm10,因此做其他动物或植物的需要自己构建索引。但必须同时具有gtf和genome文件,所以不想下载或官网上没研究的物种的,也可以自己构建
# 首先准备一个配置文件
vi config
# 在配置文件中输入以下内容后保存(字典格式)
{
    organism: "mouse"
    genome: ["GRCh38"]
    input_fasta: ["/public/bioinfoYu/genome/GRCm38.assembly.genome.fa"]
    input_gtf: ["/public/bioinfoYu/genome/GRCm38.annotation.gtf"]
    non_nuclear_contigs: ["chrM"]
    input_motifs: "/public/bioinfoYu/genome/motifs.pfm"
}
# 然后执行程序
cellranger-atac mkref --config=config

organism:可选参数,指定你想定义的物种名
genome:必选参数,输出文件所存放的文件夹名称
input_fasta:必选参数,物种的基因组文件
input_gtf:必选参数,物种的gtf注释文件
non_nuclear_contigs:构建索引的时候忽略的染色体,chrM指线粒体上的染色体,指定多个用逗号分割,如:["chrM","chrC"]
input_motifs::可选参数,指定jaspar格式的motif文件,推荐加上啊,可以去扣扣群559758504下载hg38或者mm10的motifs文件

1.4 call peak

这里就以我们下载的SRR13450125SRR13450126为例吧,因为二者是孪生兄弟,因此分析的时候一起分析,所以改名的时候不能说改为SRR13450125_S1...SRR13450126_S1...,要命名成同样的前缀,这里我统一命名为armstrong_IGO_09847_1,和作者保持一致,如下:

开始分析,cellranger-atac count的原理就是单纯的将两个lane文件合并后分析,后面我们看一下差别

cellranger-atac count --id=armstrong_result \
                        --reference=refdata-cellranger-arc-mm10-2020-A-2.0.0 \
                        --fastqs=mm10/ \
                        --sample=armstrong_IGO_09847_1 \
                        --localcores=8 \
                        --localmem=64

--id:输出的文件夹名称
--reference:下载或自己构建的参考基因组索引文件夹
--fastqs:存放样本的文件夹。路径前面一定不要有【/】,否则报错
--sample:样本名,也就是_S1前面的内容,我们前面改名为了armstrong_IGO_09847_1_S1...因此这个地方就是armstrong_IGO_09847_1
--lanes:指定分析一个样本下的单个lane,如--lanes=1则只分析L001的内容。如果不使用,则默认分析一个样本下的所有lanes,这里我们不使用,则同时分析L001L002
--localcores:默认占满服务器的所有核CPU,因此推荐设置的小一点,如8核
--localmem:请调整参数限制占用的运行内存

为了比较差异,我单独跑了一下L001L002的call peak结果,差异比较放到结果解读后面吧

for i in 1 2
do
cellranger-atac count --id=armstrong_result_${i} \
                        --reference=refdata-cellranger-arc-mm10-2020-A-2.0.0 \
                        --fastqs=mm10/test \
                        --sample=armstrong_IGO_09847_1 \
                        --lanes=${i}
                        --localcores=8 \
                        --localmem=64
done

1.5 结果解读

Outputs:
- Per-barcode fragment counts & metrics:        /home/bioinfoYu/armstrong_result/outs/singlecell.csv
- Position sorted BAM file:                     /home/bioinfoYu/armstrong_result/outs/possorted_bam.bam
- Position sorted BAM index:                    /home/bioinfoYu/armstrong_result/outs/possorted_bam.bam.bai
- Summary of all data metrics:                  /home/bioinfoYu/armstrong_result/outs/summary.json
- HTML file summarizing data & analysis:        /home/bioinfoYu/armstrong_result/outs/web_summary.html
- Bed file of all called peak locations:        /home/bioinfoYu/armstrong_result/outs/peaks.bed
- Raw peak barcode matrix in hdf5 format:       /home/bioinfoYu/armstrong_result/outs/raw_peak_bc_matrix.h5
- Raw peak barcode matrix in mex format:        /home/bioinfoYu/armstrong_result/outs/raw_peak_bc_matrix
- Directory of analysis files:                  /home/bioinfoYu/armstrong_result/outs/analysis
- Filtered peak barcode matrix in hdf5 format:  /home/bioinfoYu/armstrong_result/outs/filtered_peak_bc_matrix.h5
- Filtered peak barcode matrix in mex format:   /home/bioinfoYu/armstrong_result/outs/filtered_peak_bc_matrix
- Barcoded and aligned fragment file:           /home/bioinfoYu/armstrong_result/outs/fragments.tsv.gz
- Fragment file index:                          /home/bioinfoYu/armstrong_result/outs/fragments.tsv.gz.tbi
- Filtered tf barcode matrix in hdf5 format:    /home/bioinfoYu/armstrong_result/outs/filtered_tf_bc_matrix.h5
- Filtered tf barcode matrix in mex format:     /home/bioinfoYu/armstrong_result/outs/filtered_tf_bc_matrix
- Loupe Browser input file:                     /home/bioinfoYu/armstrong_result/outs/cloupe.cloupe
- csv summarizing important metrics and values: /home/bioinfoYu/armstrong_result/outs/summary.csv
- Annotation of peaks with genes:               /home/bioinfoYu/armstrong_result/outs/peak_annotation.tsv
- Peak-motif associations:                      /home/bioinfoYu/armstrong_result/outs/peak_motif_mapping.bed
 
Pipestance completed successfully!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容