Salmon-超快速、准确的基因丰度计算

news2024/10/7 12:26:19

文章目录

  • Salmon简介
  • 文章引用及适用物种
  • 获取转录组并建立索引
  • 比较salmon和coverm定量差异

Salmon简介

Salmon 是一款速度极快的程序,能从 RNA-seq 数据中生成高精度的转录本水平的量化估计值。Salmon 通过一系列不同的创新实现了其准确性和速度,包括使用选择性比对(准确的传统读段比对的但快速计算的替代方法)和大规模并行随机坍缩变异推断。因此,该工具用途广泛,能很好地融入许多不同的工作流程。例如,您可以选择使用我们的选择性比对算法,向 Salmon 提供原始测序读数,或者,如果更方便的话,您可以向 Salmon 提供常规比对(例如,用您最喜欢的比对器生成的与转录组比对的未排序 BAM 文件),Salmon 将使用同样快速、最先进的推断算法为您的实验估算转录本水平丰度。

  • salmon也可对核酸的contig序列索引,6G的参考基因组,双端60G fq文件耗时仅仅16m(150 core)
    在这里插入图片描述

文章引用及适用物种

Salmon于2017年在Nature Methods发表以来,Salmon provides fast and bias-aware quantification of transcript expression, Nature Methods, 2017已经被多次引用,其中包括在人、细菌及真菌等多个物种。

获取转录组并建立索引

为了量化转录本水平的丰度,Salmon需要目标转录组。 该转录组以多FASTA序列文件(可以是压缩的)的形式提供给Salmon,每个序列均是转录本。 在此示例中,我们将分析拟南芥的一些数据,因此我们将下载拟南芥转录组并为其编制索引。

  • 下载参考转录组
curl ftp://ftp.ensemblgenomes.org/pub/plants/release-28/fasta/arabidopsis_thaliana/cdna/Arabidopsis_thaliana.TAIR10.28.cdna.all.fa.gz -o athal.fa.gz

在这里插入图片描述

  • 构建index
    Next, we’re going to build an index on our transcriptome. The index is a structure that salmon uses to quasi-map RNA-seq reads during quantification. The index need only be constructed once per transcriptome, and it can then be reused to quantify many experiments. We use the index command of salmon to build our index:
salmon index -p 40 -t athal.fa.gz -i athal_index 

-t [ --transcripts ] arg Transcript fasta file.
-i [ --index ] arg salmon index.
-p [ --threads ] arg (=2) Number of threads to use during indexing.

耗时:1m35.946s
生成athal_index目录:
在这里插入图片描述

  • 注意:若构建index时不加--keepDuplicates,则会去掉一些重复的转录本,导致最后定量的转录本数量比输入的少,会在log日志记录这些信息
    see here
[2021-07-22 17:46:23.310] [jointLog] [warning] Removed 351 transcripts that were sequence duplicates of indexed transcripts.
[2021-07-22 17:46:23.310] [jointLog] [warning] If you wish to retain duplicate transcripts, please use the `--keepDuplicates` flag

去重复的转录本保存在duplicate_cluster.tsv,第一列是保存的转录本,第二列是去掉的重复片段,以下是一个例子,保留的是RWS.20.06_k141_357096_5,发现两条序列确实一样,可能是因为之前去冗余残留了极少量这类片段

>RWS.20.06_k141_357096_5        # 2137 # 2244 # 1 # ID=776723_5;partial=00;start_type=ATG;rbs_motif=AGGAG;rbs_spacer=5-10bp;gc_cont=0.630
MPEARQEHTTQRMSRVDTAWLRMDNDVNLMMIVGV*
>TGLI3.17_k141_676506_1 # 66 # 173 # -1 # ID=111959_1;partial=00;start_type=ATG;rbs_motif=AGGAG;rbs_spacer=5-10bp;gc_cont=0.639
MPEARQEHTTQRMSRVDTAWLRMDNDVNLMMIVGV*
  • 定量paired sequence
salmon quant -i athal_index -l A  -1 ${samp}_1.fastq.gz   -2 ${samp}_2.fastq.gz  -p 8  --validateMappings -o ${samp}_quant

参数解释:

-i: salmon index 
-l A: 告诉Salmon,它应该自动确定测序reads的库类型(例如,链状与非链状等)。(e.g. stranded vs. unstranded etc.). 
-1 and -2: 参数告诉salmon在哪里可以找到这个样本的左右读数(注意,salmon会直接接受gzipped FASTQ文件)
-p 8: threads 
-o: 输出目录
--validateMappings: [Quasi-mapping mode only] ,使用基于比对的核实。如果这个传递这个标志,标准映射将被验证以确保它们能产生一个合理的比对方式,然后再进一步用于量化

结果:
主要的输出文件(称为quant.sf)是相当不言自明的。例如,看一下quants/DRR016125/quant.sf中DRR016125样本的定量文件,你会看到一个简单的TSV格式文件,列出每个转录本的名称(Name)、长度(Length)、有效长度(EffectiveLength)(更多细节见文档),以及它在每百万转录本(TPM)中的丰度和源自该转录本的估计读数(NumReads)。
在这里插入图片描述

比较salmon和coverm定量差异

(salmon) [yutao@globin test]$ ll ../GGG_1134OTUs_prokka/ERR1201173_maxbin2_bin.0.ffn
-rw-r--r-- 1 yutao husn 5.6M Feb 28 23:44 ../GGG_1134OTUs_prokka/ERR1201173_maxbin2_bin.0.ffn
(salmon) [yutao@globin test]$ ll ../GGG_130samples_10k_fastq/ERR1201173_?.fastq
-rw-r--r-- 1 yutao husn 2.5M Feb  7 20:12 ../GGG_130samples_10k_fastq/ERR1201173_1.fastq
-rw-r--r-- 1 yutao husn 2.5M Feb  7 20:13 ../GGG_130samples_10k_fastq/ERR1201173_2.fastq

# coverm
(coverm) [yutao@globin test]$ time coverm contig -1 ../GGG_130samples_10k_fastq/ERR1201173_1.fastq  -2 ../GGG_130samples_10k_fastq/ERR1201173_2.fastq --reference ERR1201173_maxbin2_bin.0.ffn --methods count  --output-file ERR1201173_coverm_tpm.tsv --no-zeros
[2023-03-03T07:23:32Z INFO  coverm] CoverM version 0.6.1
[2023-03-03T07:23:32Z INFO  coverm] Writing output to file: ERR1201173_coverm_tpm.tsv
[2023-03-03T07:23:32Z INFO  coverm] Using min-covered-fraction 0%
[2023-03-03T07:23:32Z INFO  bird_tool_utils::external_command_checker] Found minimap2 version 2.17-r941
[2023-03-03T07:23:32Z INFO  bird_tool_utils::external_command_checker] Found samtools version 1.14
[2023-03-03T07:23:32Z INFO  coverm] Not pre-generating minimap2 index
[2023-03-03T07:23:33Z INFO  coverm::contig] In sample 'ERR1201173_maxbin2_bin.0.ffn/ERR1201173_1.fastq', found 3904 reads mapped out of 20000 total (19.52%)

# salmon
(salmon) [yutao@globin test]$ time salmon quant -i ERR1201173_maxbin2_bin.0_salmon/ -l A  -1 ../GGG_130samples_10k_fastq/ERR1201173_1.fastq   -2 ../GGG_130samples_10k_fastq/ERR1201173_2.fastq  -p 8  --validateMappings -o ERR1201173_salmon
(salmon) [yutao@globin test]$ time salmon quant -i ERR1201173_maxbin2_bin.0_salmon/ -l A  -1 ../GGG_130samples_10k_fastq/ERR1201173_1.fastq   -2 ../GGG_130samples_10k_fastq/ERR1201173_2.fastq  -p 8  --validateMappings -o ERR1201173_salmon
#  Mapping rate = 18.9%

# 比较(基于reads count)
# 1.coverm比salmon定量到更多序列(covem可能更灵敏)
(coverm) [yutao@globin test]$ awk '$5>0' ERR1201173_salmon/quant.sf |wc -l
1425
(coverm) [yutao@globin test]$ awk '$2>0' ERR1201173_coverm_tpm.tsv|wc -l
1905
# 每个序列平均丰度coverm更高
(coverm) [yutao@globin test]$ awk '{sum+=$2}END{print sum/NR}' ERR1201173_coverm_tpm.tsv
2.04934
(coverm) [yutao@globin test]$ awk '{sum+=$5}END{print sum/NR}' ERR1201173_salmon/quant.sf
0.303322

# 2.定量最大的序列二者基本一致
(coverm) [yutao@globin test]$ sort -k2 -nr ERR1201173_coverm_tpm.tsv|head
CMLNLAJI_01761  36
CMLNLAJI_03398  23
CMLNLAJI_00817  17
CMLNLAJI_03401  16
CMLNLAJI_03403  11
CMLNLAJI_05922  10
CMLNLAJI_05660  10
CMLNLAJI_00085  10
CMLNLAJI_03402  9
CMLNLAJI_03067  9
(coverm) [yutao@globin test]$ sort -k5 -nr ERR1201173_salmon/quant.sf |head
CMLNLAJI_01761  924     526.586 4518.043434     18.000
CMLNLAJI_03398  1542    1144.360        1386.006957     12.000
CMLNLAJI_00817  396     65.543  24199.067240    12.000
CMLNLAJI_03401  1284    886.360 1192.962147     8.000
CMLNLAJI_03403  609     216.428 4274.954676     7.000
CMLNLAJI_03402  528     146.759 5403.730684     6.000
CMLNLAJI_05922  1500    1102.360        599.505802      5.000
CMLNLAJI_05660  2899    2501.360        264.204769      5.000
CMLNLAJI_03067  1428    1030.360        641.398359      5.000
CMLNLAJI_00085  4419    4021.360        164.340235      5.000

# tpm比较:salmon定量的更大(大概大10倍)
(coverm) [yutao@globin test]$ sort -k4 -nr ERR1201173_salmon/quant.sf |head
CMLNLAJI_00817  396     65.543  24199.067240    12.000
CMLNLAJI_04753  117     10.074  13120.238381    1.000
CMLNLAJI_03636  120     13.074  10109.645579    1.000
CMLNLAJI_03582  336     45.517  8711.538955     3.000
CMLNLAJI_01682  198     32.678  8089.537307     2.000
CMLNLAJI_06231  258     38.674  6835.329307     2.000
CMLNLAJI_01988  273     40.469  6532.134741     2.000
CMLNLAJI_02618  231     42.394  6235.487025     2.000
CMLNLAJI_03253  291     43.659  6054.827349     2.000
CMLNLAJI_03808  297     45.390  5823.973634     2.000
(coverm) [yutao@globin test]$ sort -k2 -nr ERR1201173_coverm_tpm.tsv|head
CMLNLAJI_00817  9356.189
CMLNLAJI_01761  8491.334
CMLNLAJI_00818  6918.8647
CMLNLAJI_00737  6054.0054
CMLNLAJI_03403  3936.5942
CMLNLAJI_03402  3714.958
CMLNLAJI_03398  3250.789
CMLNLAJI_04876  3228.8027
CMLNLAJI_05910  2985.5366
CMLNLAJI_05661  2945.1917

参考
Salmon provides fast and bias-aware quantification of transcript expression, Nature Methods, 2017
Salmon github
Salmon tutorial

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1221305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法竞赛备赛进阶之状态机模型训练

目录 1.大盗阿福 2.股票买卖IV 3.股票买卖V 4.设计密码 算法状态机(ASM)图是一种描述时序数字系统控制过程的算法流程图,其结构形式类似于计算机中的程序流程图。 ASM图是用一些特定符号按规定的连接方式来描述数字系统的功能。应用ASM图…

分形图案是什么?fpmarkets这样进入市场

分形图案的构造相对简单。市场在某个时间段内,会呈现单向的变动,要么持续上涨,要么持续下跌。观察这种趋势,并预测市场将呈现上涨态势后,过了一段时间,当所有有意向的买家都已经完成购买行为(即在价格上涨过…

Mysql数据库 16.SQL语言 数据库事务

一、数据库事务 数据库事务介绍——要么全部成功要么全部失败 我们把完成特定的业务的多个数据库DML操作步骤称之为一个事务 事务——就是完成同一个业务的多个DML操作 例: 数据库事务四大特性 原子性(A):一个事务中的多个D…

【java学习—十五】经典例题:生产者/消费者问题(7)

文章目录 1. 题目2. 答案 1. 题目 生产者 (Productor) 将产品交给店员 (Clerk) ,而消费者 (Customer)从店员处取走产品,店员一次只能持有固定数量的产品 ( 比如 4 ),如果生产者试图生产更多的产品,店员会叫生产者停一下…

2023年腾讯云服务器限时特惠,2023年腾讯云服务器最新优惠汇总

亲爱的朋友们,如果你正在考虑购买腾讯云服务器,那么你一定需要了解近期腾讯云服务器的限时特惠活动。本文将为你提供2023年腾讯云服务器的最新优惠汇总,并详细介绍几款值得购买的优惠云服务器。 首先为大家介绍的是轻量2核2G3M服务器&#x…

【Python入门五】第三方库(包)介绍

Python第三方库/包介绍 前言安装方法 2 数据分析和处理netCDF4numpyxarray 3参考 前言 Python 的库分为2类。 标准库:不需要安装,需要导入。第三库:需要安装、需要导入。 Python的标准库中提供了许多有用的模块和功能,如字符串…

千梦网创:实现自动化“挂机躺盈”的三种方法

在互联网众多行业中,有很多人一直在寻找所谓的“挂机躺盈”的项目,在理财领域这种收入被称为“被动收入”。 天上不会掉馅饼这是一句讲烂掉的话了,躺在家里吃白食等着钱进账是一件不可能的事情。 然而如果你看到身边有“被动收入”的例子&a…

【深度学习】pytorch快速得到mobilenet_v2 pth 和onnx

在linux执行这个程序: import torch import torch.onnx from torchvision import transforms, models from PIL import Image import os# Load MobileNetV2 model model models.mobilenet_v2(pretrainedTrue) model.eval()# Download an example image from the P…

牛客——OR36 链表的回文结构(C语言,配图,快慢指针)

本题是没有对C的支持的,但因为Cpp支持C,所以这里就用C写了,可以面向更多用户 链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 思路一:链表翻转 简单的想想整形我们怎么比较,就是将整形A 依次取尾,放到整形…

C语言之深入指针(三)(详细教程)

C语言之深入指针 在学习这篇博客之前建议先看看这篇博客C语言之深入指针(二) 里面详细介绍了指针的 传值调用和传址调用数组名的理解使用指针访问数组⼀维数组传参的本质 文章目录 C语言之深入指针1 二级指针1.1 二级指针的介绍1.2 二级指针的使用 2 指…

Redis持久化策略之RDB与AOF

文章目录 1.RDB1)基本介绍2)自动触发3)手动触发4)RDB文件5)优点缺点 2.AOF1)基本介绍2)使用方式3)工作流程4)重写机制5)AOF文件6)优点缺点 3.RDB AOF 我们都知道,redis 是一个基于内存的数据库。基于内存的好处是访问速度快,缺点是“不持久”——当数据…

响应数据web

get请求 package com.example.demo.controller.poio;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.*;//字符串格式返回 RestController public class ResponseBody {Req…

使用FFmpeg合并多个ts视频文件转为mp4格式

前言 爬取完视频发现都是ts文件,而且都是几百KB的视频片段,.ts 全名叫:MPEG Transport Stream,它是一个万能的多媒体容器,可以装下音频、视频、字幕。有时我们需要将.ts文件转换为其他更加广泛被支持的格式&#xff0…

基于Vue+SpringBoot的海南旅游景点推荐系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

pytorch单精度、半精度、混合精度、单卡、多卡(DP / DDP)、FSDP、DeepSpeed模型训练

pytorch单精度、半精度、混合精度、单卡、多卡(DP / DDP)、FSDP、DeepSpeed(环境没搞起来)模型训练代码,并对比不同方法的训练速度以及GPU内存的使用 代码:pytorch_model_train FairScale(你真…

前端调取摄像头并实现拍照功能

前言 最近接到的一个需求十分有意思,设计整体实现了前端仿 微信扫一扫 的功能。整理了一下思路,做一个分享。 tips: 如果想要实现完整扫一扫的功能,你需要掌握一些前置知识,这次我们先讲如何实现拍照并且保存的功能。 一. windo…

Diffusion Models CLIP

Introduction to Diffusion Models 生成模型 主要指的是无监督学习中的生成模型,在无监督学习中的主要任务是让机器学习给定的样本,然后生成一些新的东西出来。比如:给机器看一些图片,能够生成一些新的图片出来,给机器…

element el-date-picker报错Prop being mutated:“placement“快速解决方式

报错信息 Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “placement” 报错版本 element-ui 2.15.6 和 2.15…

干扰项目成本估算精准度的5大因素

干扰项目成本估算精准度的因素有很多,这些因素可能导致成本估算的不准确性,增加成本偏差和额外的成本投入,从而对项目的进度和预算产生影响。因此,在进行项目成本估算时,需要充分考虑这些因素,并采取相应的…

NFS共享

目录 三种存储类型 作用: FTP文本传输协议 原理 FTP服务状态码 用户认证 常见FTP相关软件 vsftpd 软件介绍 用户和其共享目录 基础操作 安装服务端 客户端连接服务端 登录成功 匿名用户登录 1.服务端配置 2.客户端配置 3.服务端查看 匿名用户下载 删除…