Closed ixxmu closed 2 months ago
工欲善其事必先利其器
Alevin 是一个专为单细胞RNA测序(scRNA-seq)数据设计的软件工具,它是Salmon软件的一个组成部分,由Rob Patro及其研究团队开发。其具有以下特性
官方文档:
github:
题目: Alevin efficiently estimates accurate gene abundances from dscRNA-seq data
期刊:Genome Biology
日期:2019年3月
作者及单位:Avi Srivastava & Stony Brook University
DOI:https://doi.org/10.1186/s13059-019-1670-y
github上最新版v1.10.1未提供二进制版本,源码编译非常复杂,通常会报错,所以不建议直接源码编译。可以选择 Salmon v1.10.0 版本,其提供的有二进制版本,安装起来非常方便
## 解压即可使用
wget -c https://github.com/COMBINE-lab/salmon/releases/download/v1.10.0/salmon-1.10.0_linux_x86_64.tar.gz
tar -xf salmon-1.10.0_linux_x86_64.tar.gz
##创建软链接(可选)
ln -s ~/software/salmon-latest_linux_x86_64/bin/salmon ~/software/bin/salmon
如果你想使用最新版,可以使用codna安装。这也是比较推荐的方法。
mamba create -n alevin
mamba activate alevin
mamba install salmon
当然,官方指导还提供了Docker安装,如果我们没有Docker权限,可以使用singularity替代
singularity pull docker://combinelab/salmon
Alevin是Salmon软件工具的一个组件,专门设计用于处理单细胞RNA测序数据。Alevin旨在为单细胞实验提供快速、准确的基因表达量估计。
salmon alevin -l ISR -1 cb.fastq.gz -2 reads.fastq.gz --chromium -i salmon_index_directory -p 10 -o alevin_output --tgMap txp2gene.tsv
# -l 建库类型,建议对Drop-seq 和 10X-V2都使用 "ISR"
# -1 CB+UMI 文件,可同时指定多个文件
# -2 Read序列文件
# --dropseq / --chromium / --chromiumV3 建库protocol
# -i 索引文件,由 salmon index 命令生成的参考基因组索引文件
# -p 指定线程。默认调用系统中所有可用的线程。但是建议使用10个线程,因为这在时间-内存测试可以在达到最佳均衡。
# -o 输出文件路径
# --tgMap 转录本到基因的注释文件,tsv文件(以制表符分割,没有标题,包含两列,第一列是转录本,第二列是相应的基因)
数据集来自小鼠的5个样品的10x技术单细胞转录组上游定量(文末赠送全套代码)
从GENCODE下载对应的参考基因组及注释文件:https://www.gencodegenes.org/mouse/
nohup wget -c https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M34/gencode.vM34.transcripts.fa.gz 1>fa.log 2>&1 &
wget -c https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M34/gencode.vM34.annotation.gtf.gz
28M 1月 11 21:33 gencode.vM34.annotation.gtf.gz
54M 1月 11 21:31 gencode.vM34.transcripts.fa.gz
nohup salmon index -i transcript_index -k 31 --gencode -p 10 -t gencode.vM34.transcripts.fa.gz 1>salmon.log 2>&1 &
-i #指定索引生成目录
-k #设置用于构建准索引的k-mer的长度,默认为31
-p #设置调用线程
-t #转录本的fasta格式文件
--gencode #此选项表明输入的fasta文件是GENCODE格式的,会在第一个`|`字符处切分转录本名称
##构建索引速度还是很快的
real 1m47.533s
user 6m28.436s
sys 0m5.453s
bioawk -c gff '$feature=="transcript" {print $group}' <(gunzip -c gencode.vM34.annotation.gtf.gz) | awk -F ' ' '{print substr($4,2,length($4)-3) "\t" substr($8,2,length($8)-3)}' > txp2gene_symbol.tsv
新建脚本文件 vim salmon_alvein.sh
#! /bin/bash -xe
#
index=~/test_data/test_alevin/transcript_index
tsv=~/test_data/test_alevin/txp2gene_symbol.tsv
salmon alevin -l ISR \
-1 ${1} \
-2 ${2} \
--chromium \
-i ${index} \
-p 4 \
-o ${3} \
--dumpMtx \
--dumpFeatures \
--tgMap ${tsv}
echo "salmon alevin run finised!"
--dumpMtx #将 基因-计数 矩阵从默认的二进制格式转换为更易于阅读和分析的mtx稀疏格式
--dumpFeatures #允许导出细胞条形码分类过程中使用的所有特征及其在每个细胞级别上的计数
更多参数详见:https://salmon.readthedocs.io/en/latest/alevin.html#single-cell-protocol-specific-notes
ls ~/test_data/raw/SRR*R1* |paste - <(ls /home/test_data/raw/SRR*R2*)|paste - <(ls ../raw/*gz|cut -d"_" -f 1 |sort -u|cut -d"/" -f 3 | cut -d "_" -f 1 ) > ../alevin_out/samplelist.txt
cat samplelist.txt |awk '{print "nohup bash salmon_alvein.sh " $0 " 1>"$3".log 2>&1 &"}' > alevin_run.sh
bash alevin_run.sh
quants_mat.gz
:压缩的计数矩阵,其中包含每个细胞中每个基因的计数。二进制格式,--dumpMtx
参数可使矩阵从默认的二进制格式转换为更易于阅读和分析的mtx稀疏格式。quants_mat_cols.txt
:矩阵的列标题,表示基因的ID。quants_mat_rows.txt
:矩阵的行索引,表示细胞条形码的ID。quants_tier_mat.gz
:矩阵的分层分类。分层分类(Tier categorization): Alevin将每个细胞中每个基因的估计计数值分类为三个层级。层级1包含所有reads都是唯一映射(mapping)的基因。层级2包含有模糊映射reads但也连接到唯一read证据的基因,这些证据可以由 EM 算法用来解析多映射读取。层级3包含没有唯一证据的基因,read计数是根据先验概率在这些基因之间的分布来计算的。
后续分析走Seurat流程,读取 quants_mat.mtx.gz
,quants_mat_rows.txt
, quants_mat_cols.txt
这三个文件即可
参考:
强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶:
https://mp.weixin.qq.com/s/E1LKT0LYd2K_6vfOhFAnQA