為避免造成環(huán)境污染勾效,建議使用conda創(chuàng)建隔離環(huán)境進(jìn)行分析
#創(chuàng)建隔離環(huán)境
conda create -n 10X
#激活隔離環(huán)境
conda activate 10X
添加必要的conda鏡像
conda config --add channels conda-forge
conda config --add channels defaults
conda config --add channels r
conda config --add channels bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
1.原始數(shù)據(jù)下載及轉(zhuǎn)換
從GEO下載原始數(shù)據(jù)需要使用官方工具sra-tools
安裝sra-tools
conda install -y -c bioconda sra-tools
數(shù)據(jù)下載
在SRA數(shù)據(jù)庫中檢索后勾選需要下載的數(shù)據(jù)并導(dǎo)出為文件
將獲取的文件上傳至服務(wù)器企软,并啟用sra-tools
中的prefetch
下載
#順序下載
prefetch --option-file SraAccList.txt
下載后會在目錄下得到包含sra文件的文件夾
1.多線程下載。
cat SRR_Acc_List.txt | parallel -j 10 "prefetch {} -X 5000000000000"
2.這里還可以使用ascp進(jìn)行下載督赤,速度快米死,但個人使用體會不如prefetch穩(wěn)定跨扮,反正是丟到服務(wù)器寒波,不如圖個穩(wěn)定安心睡覺吹害。
將所有下載的SRA文件轉(zhuǎn)移到一個目錄下方便后續(xù)批量分析
mkdir raw
mv SRR*/*.sra raw/
cd raw
這樣我們就將所有的sra文件匯總到了raw文件夾下。接下來需要對sra文件轉(zhuǎn)換為fastq。
SRA批量轉(zhuǎn)換為fastq
首先在raw目錄下寫一個批量腳本,我這里命名為sra2fastq.sh
腳本內(nèi)容:
for i in *sra
do
echo $i
pfastq-dump --gzip --split-files -t 32 $i
done
由腳本可見垄琐,這里我使用了pfastq-dump以實現(xiàn)多線程運算。具體安裝方法:shell下運行
git clone https://github.com/inutano/pfastq-dump
cd pfastq-dump
chmod a+x bin/pfastq-dump
##將pfastq-dump添加到環(huán)境
sudo vim ~/.bashrc
#最后面添加一行,注意修改你保存的絕對路徑
export PATH=$PATH:/home/xuran/Desktop/10X/pfastq/pfastq-dump/bin:$PATH
#保存后刷新bash環(huán)境
source ~/.bashrc
為腳本添加權(quán)限并運行
chmod 777 sra2fastq.sh
bash sra2fastq.sh
運行完畢后我們就講sra文件轉(zhuǎn)換為了gz壓縮后的fastq文件经柴。
這里存在三種情況:
- 從sra拆分的fastq文件只有一個:單端測序
- 從sra拆分的fastq文件有兩個:雙端測序
- 從sra拆分的fastq文件有三個:雙端測序read+index
單細(xì)胞測序都為第2,3種情況
詳見下圖說明
index文件不是必須的,因此不必糾結(jié)分割出來的是兩個還是三個狸窘,只需要下面分析注意一下就可以。
i7 sample index是加到Illumina測序接頭上的坯认,保證多個測序文庫可以在同一個flow-cell上或者同一個lane上進(jìn)行混合測序(multiplexed)翻擒。當(dāng)然可以自己指定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-)。
還可以對fastq文件進(jìn)行質(zhì)控引润,對于單樣本的多個run巩趁,可以舍棄其中質(zhì)量較差的run,這里省略淳附,個人認(rèn)為意義不大议慰。
2.cellranger流程
為了在下游分析中讓cellranger指定識別我們的fastq文件進(jìn)行下游分析,使用官網(wǎng)推薦的命名格式進(jìn)行命名
寫一個批量重命名為cellranger推薦格式的腳本奴曙,這里我保存為rename.sh
别凹。腳本內(nèi)容如下:
cat SraAccList.txt | while read i ;do (mv ${i}_1*.gz ${i}_S1_L001_R1_001.fastq.gz;mv ${i}_2*.gz ${i}_S1_L001_R2_001.fastq.gz);done
由于我這里作者上傳的只有兩邊Read的fastq,不包含Index洽糟,因此我只批量命名了兩個Read文件名稱炉菲,如果你得項目包含了index可根據(jù)你的需求結(jié)合cellranger官方建議進(jìn)行改寫。
chmod 777 rename.sh
bash rename.sh
cellranger安裝及參考基因組下載
- 下載
#參考基因組下載(human)
curl -O https://cf.10xgenomics.com/supp/cell-exp/refdata-gex-GRCh38-2020-A.tar.gz
#cellranger下載
curl -o cellranger-6.1.2.tar.gz "https://cf.10xgenomics.com/releases/cell-exp/cellranger-6.1.2.tar.gz?Expires=1649559567&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9jZi4xMHhnZW5vbWljcy5jb20vcmVsZWFzZXMvY2VsbC1leHAvY2VsbHJhbmdlci02LjEuMi50YXIuZ3oiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE2NDk1NTk1Njd9fX1dfQ__&Signature=Zwk8l6ickwwGCQCAcsHziaoVtnS3MI0yjZMiaqV8UiyL6rW4vTjpyMHFLl04KDWpKpuMi~6D6RfHrJlZKTli---KBfC05b5u8mVcA28uDEZuSyHiOnEpI-cDdwtJ5SuGyjuNbvsUBxTCyJ~mMkrNxTivGC5XCpx6dj312qL4d4RImwEWmwMl0Nm7L8OcRGVLlujgODH51bwB03LCq1VoYIE-ECu7IhVCHlkXRzG9jLpnP98b4xf5x50WitToM4BcsW3kuQBk6w8AXjNLk3zLJwLbqKPxjAhWGZofYIKV4p-3C6G0wuJm-6XRYE0q25KrTYuDVm6Hhr~Yk46XM7Z1MA__&Key-Pair-Id=APKAI7S6A5RYOXBWRPDA"
- 解壓兩個文件
tar -xzvf filename
- 把cellranger添加到系統(tǒng)環(huán)境坤溃。
sudo vim ~/.bashrc
將下方這句添加到.bashrc文件中拍霜,注意修改目錄
export PATH=~/download/cellranger-6.1.2:$PATH
- 更新一下.bashrc文件。
source ~/.bashrc
- 測試安裝是否正確
cellranger testrun --id=tiny
如果運行成功會顯示Pipestance completed successfully!
接下來 就進(jìn)入到了cellranger 定量的正式環(huán)節(jié)薪介,為批量運行先在目錄下寫一個運行腳本
在目錄下編寫一個cellranger運行腳本沉御,我保存為run-cellranger.sh
。內(nèi)容如下:
db=/home/xuran/Desktop/10X/cellranger/refdata-gex-GRCh38-2020-A
ls $db
fq_dir=/home/xuran/Desktop/10X/raw
cellranger count --id=$1 \
--localcores=32 \
--transcriptome=$db \
--fastqs=$fq_dir \
--sample=$1 \
--nosecondary \
--expect-cells=5000
注意修改
db后面為你所下載的參考基因組目錄昭灵。
fq_dir后面為你得原始fastq地址
--localcores為指定最大使用線程數(shù)
--nosecondary為不進(jìn)行聚類分群分析吠裆,因為后續(xù)使用seurat分析
--expect-cells為指定最大細(xì)胞數(shù),根據(jù)項目決定
批量并行run-cellranger.sh進(jìn)行比對定量
cat SraAccList.txt |while read id;do (nohup bash run-cellranger.sh $id 1>log-$id.txt 2>&1 & );done
批量順序運行run-cellranger.sh進(jìn)行比對定量
寫一個腳本命名為muti.sh
cat SRR_Acc_List.txt |while read id;do ( bash run-cellranger.sh $id );done
后臺執(zhí)行腳本
nohup bash mutil.sh
SraAccList.txt
為最一開始從sra網(wǎng)站上保存的訪問號文件烂完。
至此试疙,單細(xì)胞轉(zhuǎn)錄組從上游原始數(shù)據(jù)下載到cellranger定量的流程就結(jié)束了。
結(jié)果查看
分樣本的文件夾和每個樣本的運行日志抠蚣,我們進(jìn)入其中一個去查看祝旷。
其中最重要的就是outs文件夾
其中web_summary.html
為本次分析的質(zhì)量情況
filtered_feature_bc_matrix
目錄下則保存了用于下游Seurat分析的三個文件
參考來源:
https://cloud.tencent.com/developer/article/1949641
https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest?
鳴謝:
I thank Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes.
問題交流:
Email: xuran@hrbmu.edu.cn