CORNAS:一种快速简单鉴定无重复转录组差异基因的方法

简介: 还记得上次文章的最后提到CORNAS这种方法吗?最近刚好在Github上看到了这个项目,就花了点时间看了下文档感觉操作也比较简单,这里记录一下使用过程,大家共同学习一下。

还记得上次文章的最后提到CORNAS这种方法吗?最近刚好在Github上看到了这个项目,就花了点时间看了下文档感觉操作也比较简单,这里记录一下使用过程,大家共同学习一下。

介绍

该软件17年发表在BMC上,是一种快速贝叶斯方法,它可以根据样品的覆盖参数来估计真实基因计数的后验分布,从而提高计算差异表达基因的准确性,更多的原理大家可以去看文章或者中文解读

1b6d3aaf1f7dbc72fd583396cc22d72.png

下载

使用软件之前,我们最好先看下该软件Github中的Readme文件,看一下我们需要下载哪些东西并且怎么使用。下图第一段中内容可以得知CORNAS是用R语言写用来快速计算无重复转录组数据差异基因,我们可以直接命令行模式中运行R脚本,也可以在R语言编辑器(常用Rstudio)里运行,这个包包含了俩个主要文件:CORNAS.Rcornas.config。软件测试基于R版本3.0,运行基因列表数据也是基于mapping的原始数据,无需标准化。这里我们先将这个文件压缩包下载下来。

fb5c6102f34d18c4697b357df9579ab.png

使用方法

  1. 方法一 (Shell中运行):
Rscript CORNAS.R <config> <datatable>
  1. 方法二(Rstudio中运行)
source("/path/to/CORNAS.R")
 cornas("/path/to/config" , "/path/to/datatable")

根据方法二我们可以看出CORNAS软件其实是作者写的由一些函数构成的R脚本,并非是个R包,我们就先加载CONRNAS.R脚本中的函数,然后通过其中的cornas函数运行即可,核心参数为俩个文件:config配置文件和datatable数据文件。所以我们只要按照规定的文件格式将自己的文件整理一致就可以轻松使用了,还是蛮简单的。

CORNAS.R

082d0308da9b84ae82ba1d774f241b8.png

贴心的是作者在文档的example_run目录里准备了这俩个示例文件,我们在使用前可以先运行一下了解运行过程,之后再替换文件内容即可。 OK,我们先分别看下这几个文件的内容格式,然后运行一遍。

cb121deb7f706f273026ce4e213a9f8.png

  1. datatable数据文件
    文件有四列信息,第一列可以是基因/转录本的ID,第二列为对应的长度信息,第三列和第四列分别为没有重复的俩样本。注意文件不能包含标题行,而且第二列的长度信息可以不需要,文件分隔以Tab形式分隔。
    e89d2496a0d8e30bf5d25b8ad2a799e.png
  2. contig配置文件
    这个软件比较特别的地方就在于此,也是它的核心部分,我们需要简单配置一个文件,运行自己的数据时候只需要改动我圈出的部分即可,上面对应的数字代表所在的列数,而下面的每个样品的覆盖度
    关于覆盖度的概念,作者提到(The sequencing coverage is the number of total reads (observed counts) divided by the actual amount of fragments present in the PCR mix),意思即为样品存在的实际片段数量除以观察到的总数值,这里他提供了俩种选择:1. 如果你提前已经计算了样品A和B的覆盖度值,那就直接填写在配置文件中 ; 2. 如果没有这俩个样品的覆盖度也OK,这里程序会根据你datatable文件中每个样品的总reads量计算这个覆盖度的值。

除此之外,作者另外还有俩个可选的参数,我们可以增添到配置文件下方 (其实建议默认就好):

Alpha:如果你想改变alpha值从默认的99%。降低该参数的值可以增加鉴定差异表达基因的灵敏度,数量会变多。

Fold change:差异倍数,默认是1.5,降低该值也可以增加差异表达基因的数量。

a23f2f5d0cbdfc92a137b756ea04af7.png

运行

方式一

Linux中以命令行的模式运行

Rscript CORNAS.R cornas.config.test4 test4_kidneyliver_example.tab >cornas_test4_example2.out

方式二

Rstudio中运行

source("/path/to/CORNAS.R")
cornasExample1 <- cornas("cornas.config.test4" , "test4_kidneyliver_example.tab")

以上俩种方法根据个人运行环境自由选择,代码都很简单一行搞定,运行速度也非常快大概10几秒就可以了,我们现在直接看下结果文件都包含了哪些东东,也就是对应示例文件中的cornas_test4_example2.out文件。

f2493d39e3d19db49429c05dc41cbff.png

结果文件就是上图一排**************号下面的内容,上面内容就是你当时设置的参数及一些重要的值,我们重点看下面这些,从左到右有十列内容,重点其实为前4列的内容。

  1. Gene_Name = 输入文件的基因/转录本ID
  2. DEG_call = 通过设置阈值鉴定该基因是否为差异基因: 是 (Y) or 否 (N).
  3. Express_higher = 如果 DEG_call == Y, 显示哪个样品的表达量最高 (A or B), 否则为 "-".
  4. Fold_difference = 高表达的样品与另一样品之间的差异倍数fold difference/change.、
  5. A_O-count = 输入文件中样品A的表达量
  6. B_O-count = 输入文件中样品B的表达量
  7. A_T-lower = 样本A中真实计数后验分布的下界。
  8. A_T-upper = 样本A中真实计数后验分布的上界。
  9. B_T-lower = 样本B中真实计数后验分布的下界.
  10. B_T-upper = 样本B中真实计数后验分布的上界。
相关文章
|
2月前
|
数据可视化
单细胞转录组|scATAC-seq 数据整合
单细胞转录组|scATAC-seq 数据整合
55 0
|
4月前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
271 1
|
数据采集 存储 索引
转录组分析丨一套完整的操作流程简单案例(上)
转录组分析丨一套完整的操作流程简单案例
|
机器学习/深度学习 搜索推荐 Go
组学生信| Front Immunol |基于血清蛋白质组早期诊断标志筛选的简单套路
组学生信| Front Immunol |基于血清蛋白质组早期诊断标志筛选的简单套路
61 0
|
数据挖掘 Go
文献丨转录组分析流程和常用软件
文献丨转录组分析流程和常用软件
|
人工智能 自然语言处理 Python
ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型
ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型
ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型
|
数据挖掘 Go
文献丨群体转录组分析锁定关键转录因子
文献丨群体转录组分析锁定关键转录因子
|
Go 索引 Perl
转录组分析丨一套完整的操作流程简单案例(下)
转录组分析丨一套完整的操作流程简单案例(下)
|
Linux Windows Perl
没有生物学重复的转录组数据怎么进行差异分析?
设置生物学重复这个环节也是你实验设计很重要的一part,设置的好对你下游分析也有利,通常我们做转录组测序,需要的样本量每组至少为3个生物学重复,这个处理起来就很合理,并且现在流行的差异分析软件DEseq2,limma,edgeR等等都是针对有重复的数据去做的,但有时候会不幸碰到样品测序失败不能用,导致每组就给你剩一个重复时候该怎么办,之前我有批数据就是这样,但是办法总比困难多不能放过任何实验数据,搜了搜其实还是有一些方法可以去解决的,在这里介绍下我搜到的几种方法。
954 0
|
存储 移动开发 Python
从Scanpy的Anndata对象提取信息(适用于单细胞转录组且涉及h5文件读写)
从Scanpy的Anndata对象提取信息(适用于单细胞转录组且涉及h5文件读写)