从原始数据——得到文件夹filtered_gene_bc_matrices【其中包含barcodes.tsv.gz、features.tsv.gz、matrix.mtx.gz,是下游Seurat、Scater、Monocle等分析的输入文件。】
原始数据下载
现在大多数测序公司以及公共数据库给的都是上面所指的三个表达矩阵,不需要下载原始数据处理。但是如果我们希望用公共数据做一些特殊分析(比如lncRNA,repeat elements)就要重头处理数据了,因为用到的注释文件可能不同
# 安装软件
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.11.1/sratoolkit.2.11.1-centos_linux64.tar.gz
tar zvxf sratoolkit.2.11.1-centos_linux64.tar.gz
# 添加到环境变量
# 添加环境变量
echo 'export PATH=$PATH:/LY_software/sratoolkit.2.11.1-centos_linux64/bin' >> ~/.bashrc
source ~/.bashrc
到GEO数据库中找GSE117988,获取accession list,这里有两种方法推荐第二种。
- 点击SRP,send to file可以下载
- 点击SRA Run Selector可以直接获得Accession List,并且这个界面可以查看Metadata等更详细的信息。点击每个run进入Run Browser——Data access,这里一定要仔细看,有的原始文件是fastq,但有些是bam,bam文件后续需要用bamtofastq。这个软件解压后是二进制文件(binary),一般这种文件都存在初始权限问题,修改权限后方可运行。
# 下载软件
wget https://github.com/10XGenomics/bamtofastq/releases/download/v1.3.5/bamtofastq_linux
# 修改权限
chmod 700 bamtofastq_linux
# 写入路径
echo 'export PATH=/home/biosoftware/bamtofastq_linux:$PATH' >>~/.bashrc
source ~/.bashrc
# 运行时必须要输入该文件名的全程
[LY@logina1 cellranger-tiny-bcl-1.2.0]$ bamtofastq_linux
bamtofastq v1.3.5
Invalid arguments.
Usage:
bamtofastq [options]
bamtofastq (-h | --help)
# 将下载的accession_list上传到服务器,或者复制粘贴写入新文件
cat > SRR_Acc_List-2586-4.txt <SRR7722937
>SRR7722939
>SRR7722941
>SRR7722938
>SRR7722940
>SRR7722942
>END
# 查看文件
cat SRR_Acc_List-2586-4.txt
SRR7722937
SRR7722939
SRR7722941
SRR7722938
SRR7722940
SRR7722942
# &&的含义https://blog.csdn.net/chinabestchina/article/details/72686002
## -O|--output-directory 所以'pwd'指的并不是当前目录,而是文件夹的名字
### 这里pwd带引号可能是怕被当成命令
[ly@logina1 raw]$ cat SRR_Acc_List-2586-4.txt | while read i
> do prefetch $i -O 'pwd' && echo "**${i}.sra done**"
> done
# cat SRR_Acc_list.txt |while read i; do prefetch $i -O 'raw' && echo *${i}.sra done**"
生成fastq文件
10x测序结果通常有3个fastq文件:
PBMC_DiscAR_S5_L002_I1_001.fastq.gz
PBMC_DiscAR_S5_L002_R1_001.fastq.gz
PBMC_DiscAR_S5_L002_R2_001.fastq.gz
测序最初的Base calling结果是bcl文件,cellranger软件的mkfastq 命令通过调用 Illumina’s bcl2fastq生成3个标准的fastq文件
官网教程:Cell Ranger mkfastq -Software -Single Cell Gene Expression -Official 10x Genomics Support
# 查看官网cellranger mkfastq指导给出的bcl文件
[Ly@logina1 cellranger-tiny-bcl-1.2.0]$ tree Data/
Data/
└── Intensities
├── BaseCalls
│ └── L001
│ ├── C100.1
│ │ └── s_1_1101.bcl.gz
│ ├── C10.1
│ │ └── s_1_1101.bcl.gz
│ ├── C101.1
│ │ └── s_1_1101.bcl.gz
│ ├── C102.1
│ │ └── s_1_1101.bcl.gz
如果环境中没有bcl2fastq则无法运行bcl2fastq,需要安装
# 在官网上注册并下载
wget https://files.softwaredownloads.illumina.com/e8ed3335-5201-48ff-a2bc-db4bfb792c85/bcl2fastq2-v2-20-0-linux-x86-64.zip?Expires=1630143759&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9maWxlcy5zb2Z0d2FyZWRvd25sb2Fkcy5pbGx1bWluYS5jb20vZThlZDMzMzUtNTIwMS00OGZmLWEyYmMtZGI0YmZiNzkyYzg1L2JjbDJmYXN0cTItdjItMjAtMC1saW51eC14ODYtNjQuemlwIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNjMwMTQzNzU5fX19XX0_&Signature=C3MKu~2Of9hWKcl1C-rD8tKv6Iz07lSlSp4mxb-p4cAzOqZi3mKJX9K02T2HvwlmRzt0cZkuB2AQqgKAK~QemZSOqFsHcdAa~EDszuooXqdPd~JuS8qGcJxiorI4hQ26sdJoLoHl1MbZ0gvjCIRZOkFrJRPjmDiYsF1To2-u~ZTluL8ppMwUzUvfy9VRpQHgySKaYmZ24md2xAT~1ffrjvd4ile6rrZspMaKFST4BwuBwItGp3XTpStoQhyaVXYIexETmzYf9OS84K-YwHWBJ5ARSviF0UTfmwW2pgwS7qdOwLVb9pbELVLhojQq~J1zFYXzQGJxH39r5TGaEguAww__&Key-Pair-Id=APKAJO3UYWPXK4A26FPQ
# 解压得到.rpm文件
unzip bcl2fastq2-v2-20-0-linux-x86-64.zip
# 破解.rpm文件
rpm2cpio ./bcl2fastq2-v2.20.0.422-Linux-x86_64.rpm | cpio -idmv
# 得到文件夹
./usr/local/bin/bcl2fastq
# 修改权限chmod 700···
# 单独运行软件会报错,无需理会,cellranger可以正常调用
[Ly@logina1 cellranger-tiny-bcl-1.2.0]$ bcl2fastq
BCL to FASTQ file converter
bcl2fastq v2.20.0.422
Copyright (c) 2007-2017 Illumina, Inc.
···
Error>std::exception::what: Unable to find filter file for lane: 1 and tile: 1101
# 写入路径
echo 'export PATH=/LY_software/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 查看cellranger mkfastq 参数
[Ly@logina1 LY_software]$cellranger mkfastq --help
Required:
--run=PATH Path of Illumina BCL run folder.
--id=NAME Name of the folder created by mkfastq. If not supplied,will default to the name of the flowcell referred toby the --run argument.
--csv=PATH
# --localmem Restricts cellranger to use specified amount of memory (in GB) to execute pipeline stages. By default, cellranger will use 90% of the memory available on your system. 避免cellranger耗尽所有资源
# 查看一下文件的内容
[Ly@logina1 LY_software]$ cat exercise/Data/cellranger-tiny-bcl-simple-1.2.0.csv
Lane,Sample,Index
1,test_sample,SI-P03-C9
# 运行
cellranger mkfastq --id=tiny_test --run=Data/cellranger-tiny-bcl-1.2.0 --csv=Data/cellranger-tiny-bcl-simple-1.2.0.csv --localmem=10
查看得到的结果
# 我们想要的三个文件在tiny_test/outs/fastq_path/H35KCBCXY、test_sample下
[Ly@logina1 exercise]$ tree tiny_test/outs/fastq_path/
tiny_test/outs/fastq_path/
├── H35KCBCXY
│ └── test_sample
│ ├── test_sample_S1_L001_I1_001.fastq.gz
│ ├── test_sample_S1_L001_R1_001.fastq.gz
│ └── test_sample_S1_L001_R2_001.fastq.gz
├── Reports
···
结果的命名形式与之前提供的csv文件有关
需要理解一下这三个文件的构成:
I1:index
R1:read 1
R2:read 2
[Ly@loginb2 test_sample]$ zcat test_sample_S1_L001_I1_001.fastq.gz|less -S
@D00547:905:H35KCBCXY:1:1101:19188:87078 1:N:0:AGATCGGG
AGATCGGG
+
.<<....<
@D00547:905:H35KCBCXY:1:1101:14415:42805 1:N:0:CGTCGTCG
CGTCGTCG
+
..<.....
@D00547:905:H35KCBCXY:1:1101:17646:100743 1:N:0:CATCGTTG
CATCGTTG
+
.......<
@D00547:905:H35KCBCXY:1:1101:13481:41873 1:N:0:GTCATACA
GTCATACA
...
I1的每行都是8nt
[Ly@loginb2 test_sample]$ zcat test_sample_S1_L001_R1_001.fastq.gz|less -S
@D00547:905:H35KCBCXY:1:1101:19188:87078 1:N:0:AGATCGGG
CGCTTCGGCGTTATAACCTCACACTC
+
GGGGGIIIIIIIIIIGGGGIGGGIGG
@D00547:905:H35KCBCXY:1:1101:14415:42805 1:N:0:CGTCGTCG
TCAAACGGCCTGTCTCATCATGGAAG
+
GGGGGIIIIIIIIIIIIIIIIIIIII
@D00547:905:H35KCBCXY:1:1101:17646:100743 1:N:0:CATCGTTG
ACCAATGACCAAATCAAAGAAATGAC
+
GGGGGGIIIIIGGIIIIIIIIIIIII
@D00547:905:H35KCBCXY:1:1101:13481:41873 1:N:0:GTCATACA
AACGTTGGTTAAAGTGTCACAAAGGT
+
GGGGGIIIIIIIIIIIIIIIIIIIII
@D00547:905:H35KCBCXY:1:1101:17238:58729 1:N:0:GTCCTATA
ACTAAAAACCAAGCTGTCGCTACTTC
+
...
R1每行都是26nt
[Ly@loginb2 test_sample]$ zcat test_sample_S1_L001_R2_001.fastq.gz|less -S
@D00547:905:H35KCBCXY:1:1101:19188:87078 2:N:0:AGATCGGG
TCCGTTCTGGTGATTCGTCTAAGAAGTTTAAGATTGCTGAGGGTCAGTGGTATCGTTATGCGCCTTCGTATGTTTCTCCTGCTT
+
GAGGGGGIIGIG<
R2每行大概84nt
利用Sratool的 同样可以得到三个文件,但是需要重新命名。
认识I1/R1/R2的内容需要详细了解10x的测序原理以及引物设计
read1 1:28 / read2 2:98 代表R1和R2 的长度区间
10x Genomics RNA-seq 原理详解 - (jianshu.com)
R1和R2是什么
cell ranger分析流程
cellranger count得到下游分析文件
这里有测试Demo,官网提供人和鼠的参考基因组以及注释
如果做其他物种可以使用cellranger 的mkgtf和mkref来自己构建。
# 测试文件只要包含R1/R2即可
# 下载参考基因组及注释文件
wget https://cf.10xgenomics.com/supp/cell-exp/refdata-gex-GRCh38-2020-A.tar.gz
# 解压
tar -zxvf refdata-gex-GRCh38-2020-A.tar.gz
# 将命令写入.sh 文件,文件内容如下
[L@loginb2 Script]$ cat CellRanger_Count.sh
cd /Ly/exercise && \
rm -rf DEMO1 && \
cellranger count --id=DEMO1 --sample=Demo1 --fastqs=./Data/SequenceData/Demo1 --localcores=2 --localmem=20 --transcriptome=/Ly/LY_software/refdata-gex-GRCh38-2020-A --expect-cells=5000 && \
cd /Ly/exercise && \
rm -rf DEMO2 && \
cellranger count --id=DEMO2 --sample=Demo2 --fastqs=./Data/SequenceData/Demo2 --localcores=2 --localmem=20 --transcriptome=/Ly/LY_software/refdata-gex-GRCh38-2020-A --expect-cells=5000
[L@loginb2 Script]$ bash CellRanger_Count.sh
得到的结果中值得关注的文件是:
molecule_info.h5 #可用于cellranger arrg分析
filtered_feature_bc_matrix 文件夹下内容可用于下游分析
详见
[Ly@loginb2 DEMO1]$ ls outs/
analysis possorted_genome_bam.bam
cloupe.cloupe possorted_genome_bam.bam.bai
filtered_feature_bc_matrix raw_feature_bc_matrix
filtered_feature_bc_matrix.h5 raw_feature_bc_matrix.h5
metrics_summary.csv web_summary.html
molecule_info.h5
# filtered_feature_bc_matrix 文件夹下内容
[Ly@logina1 filtered_feature_bc_matrix]$ ls -sh
total 1.3M
74K barcodes.tsv.gz 326K features.tsv.gz 928K matrix.mtx.gz
这三个文件分别包括什么内容?
# barcodes.tsv.gz
[Ly@logina1 filtered_feature_bc_matrix]$ zcat barcodes.tsv.gz |less -S
AAACCCAAGGAACGTC-1
AAACCCAAGGCACTAG-1
AAACCCACAAGAGGCT-1
AAACCCACACAAATCC-1
AAACCCAGTCAGGTAG-1
AAACCCAGTCGAAACG-1
AAACCCAGTTGTAAAG-1
AAACCCATCACCTTGC-1
AAACCCATCGCCTCTA-1
AAACGAAAGCGAGAAA-1
···
# features.tsv.gz
[Ly@logina1 filtered_feature_bc_matrix]$ zcat features.tsv.gz |less -S
ENSG00000243485 MIR1302-2HG Gene Expression
ENSG00000237613 FAM138A Gene Expression
ENSG00000186092 OR4F5 Gene Expression
ENSG00000238009 AL627309.1 Gene Expression
ENSG00000239945 AL627309.3 Gene Expression
ENSG00000239906 AL627309.2 Gene Expression
ENSG00000241860 AL627309.5 Gene Expression
ENSG00000241599 AL627309.4 Gene Expression
ENSG00000286448 AP006222.2 Gene Expression
ENSG00000236601 AL732372.1 Gene Expression
···
# matrix.mtx.gz
[Ly@logina1 filtered_feature_bc_matrix]$ zcat matrix.mtx.gz |less -S
%%MatrixMarket matrix coordinate integer general
%metadata_json: {"software_version": "cellranger-6.1.1", "format_version": 2}
36601 14472 232328
5567 1 1
13754 1 1
20004 1 1
21425 1 1
26219 1 1
26563 1 2
1476 2 1
6629 2 1
10985 2 1
在下游分析中会得到一个Seurat矩阵:
barcodes.tsv.gz 是列名。
features.tsv.gz是行名。
matrix.mtx 文件是3列,第一列是行号,第二列是列号,第三列是基因表达量。
参考:表达矩阵逆转为10X的标准输出3个文件 (qq.com)
探究一下,是否真的像上述所说
下载cell Ranger运行得到的三个压缩文件这个路径下(不需要解压缩)
# 创建Seurat对象
data1 <-CreateSeuratObject(Read10X("../Data/filtered_feature_bc_matrix/"))
矩阵大小为36601x14472和matrix.mtx.gz文件第三行的第一列、第二列一致
# matrix.mtx.gz第一列为row line ,第二列为col line
> ct=GetAssayData(object = data1, assay = "RNA", slot = "counts")
> ct[5567,1]
[1] 1
> ct[1476,2]
[1] 1
## matrix.mtx.gz第三列为表达量
matrix.mtx.gz文件压缩了所有细胞中基因表达量不为0的矩阵信息
不同样本的整合分析
一般在下游分析中整合,不用cellanger arrg
#arrg运行需要的文件
[Ly@loginb2 exercise]$ cat ./Data/Libraries.csv
sample_id,molecule_h5
Demo1,./DEMO1/outs/molecule_info.h5
Demo2,./DEMO2/outs/molecule_info.h5
# 命令
cellranger aggr --id=Demo --csv=./Data/Libraries.csv --normalize=mapped