前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Alevin — 更快的单细胞定量

Alevin — 更快的单细胞定量

作者头像
生信菜鸟团
发布2024-04-18 19:54:25
1060
发布2024-04-18 19:54:25
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团

工欲善其事必先利其器

1Alevin

Alevin 是一个专为单细胞RNA测序(scRNA-seq)数据设计的软件工具,它是Salmon软件的一个组成部分,由Rob Patro及其研究团队开发。其具有以下特性

  1. 快速准确的细胞分配和表达量估计: Alevin使用了先进的算法来对单细胞测序数据进行预处理、错误校正和表达量估计。这包括从原始的读取数据中准确识别和量化细胞特异性表达模式。
  2. 端到端处理流程: Alevin提供了一个从读取数据到细胞-基因表达矩阵的一体化解决方案,极大简化了单细胞数据的预处理步骤。
  3. 高效的内存和时间性能: 通过优化数据结构和算法,Alevin能够在保持高准确度的同时,显著降低内存使用和加快数据处理速度。
  4. 兼容性和可扩展性: Alevin能够处理多种单细胞测序技术产生的数据,目前支持 10x Genomics、Drop-seq、inDrop V2、CELSeq 1/2、Quartz-Seq2、 sci-RNA-seq3 测序数据。此外,它可以输出多种格式的结果,方便与后续分析工具如Seurat或Scanpy进行集成。
  5. 开源和社区支持: Alevin是开源软件,可供广大研究者和开发者使用和修改。

官方文档:

  • https://salmon.readthedocs.io/en/latest/alevin.html

github:

  • https://github.com/COMBINE-lab/salmon?tab=readme-ov-file

2发表文章

题目: 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

3如何安装

二进制版本

github上最新版v1.10.1未提供二进制版本,源码编译非常复杂,通常会报错,所以不建议直接源码编译。可以选择 Salmon v1.10.0 版本,其提供的有二进制版本,安装起来非常方便

代码语言:javascript
复制
## 解压即可使用
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

conda 安装

如果你想使用最新版,可以使用codna安装。这也是比较推荐的方法。

代码语言:javascript
复制
mamba create -n alevin
mamba activate alevin
mamba install salmon

singularity 容器调用

当然,官方指导还提供了Docker安装,如果我们没有Docker权限,可以使用singularity替代

代码语言:javascript
复制
singularity pull docker://combinelab/salmon

4功能简述

Alevin是Salmon软件工具的一个组件,专门设计用于处理单细胞RNA测序数据。Alevin旨在为单细胞实验提供快速、准确的基因表达量估计。

5最小化使用

代码语言:javascript
复制
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文件(以制表符分割,没有标题,包含两列,第一列是转录本,第二列是相应的基因)

6实例演示

数据集来自小鼠的5个样品的10x技术单细胞转录组上游定量(文末赠送全套代码)

下载对应的转录本序列及注释文件

从GENCODE下载对应的参考基因组及注释文件:https://www.gencodegenes.org/mouse/

代码语言:javascript
复制
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

构建索引

代码语言:javascript
复制
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

生成ENST与Gene Symbol对应的tsv文件

代码语言:javascript
复制
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

代码语言:javascript
复制
#! /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

批量提交运行

代码语言:javascript
复制
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.gzquants_mat_rows.txtquants_mat_cols.txt 这三个文件即可

参考:

  • https://salmon.readthedocs.io/en/latest/alevin.html#single-cell-protocol-specific-notes
  • https://www.jianshu.com/p/8de246673c85
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-16,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1Alevin
  • 2发表文章
  • 3如何安装
    • 二进制版本
      • conda 安装
        • singularity 容器调用
        • 4功能简述
        • 5最小化使用
        • 6实例演示
          • 下载对应的转录本序列及注释文件
            • 构建索引
              • 生成ENST与Gene Symbol对应的tsv文件
                • 定量脚本
                  • 批量提交运行
                    • 输出结果
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                    http://www.vxiaotou.com