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中真实计数后验分布的上界。
相关文章
|
存储 缓存 固态存储
服务器高效硬盘还是要SSD固态硬盘?
服务器高效硬盘还是要SSD固态硬盘? 数据库放在 WDC WD3000BLFS (1万转) 跟放在 INTEL SSDSA2BW080G3   上的速度,有质的飞跃,不是同一个数量级的。 数据库必须得放到SSD上。
9629 0
重置SQLSERVER表的自增列,让自增列重新计数
重置SQLSERVER表的自增列,让自增列重新计数
434 0
conda常用操作和配置镜像源
conda常用操作和配置镜像源
30859 0
|
安全 Linux 编译器
探索Linux内核的奥秘:从零构建操作系统####
本文旨在通过深入浅出的方式,带领读者踏上一段从零开始构建简化版Linux操作系统的旅程。我们将避开复杂的技术细节,以通俗易懂的语言,逐步揭开Linux内核的神秘面纱,探讨其工作原理、核心组件及如何通过实践加深理解。这既是一次对操作系统原理的深刻洞察,也是一场激发创新思维与实践能力的冒险。 ####
|
SQL Java 数据库连接
MyBatis-Plus快速入门:从安装到第一个Demo
本文将带你从零开始,快速入门 MyBatis-Plus。我们将首先介绍如何安装和配置 MyBatis-Plus,然后通过一个简单的示例演示如何使用它进行数据操作。无论你是 MyBatis 的新手还是希望提升开发效率的老手,本文都将为你提供清晰的指导和实用的技巧。
2831 0
MyBatis-Plus快速入门:从安装到第一个Demo
anaconda下载安装,镜像源配置修改及虚拟环境的创建
这篇文章介绍了Anaconda的下载安装过程,包括Anaconda的简介、安装步骤、配置修改、创建虚拟环境以及一些常用命令的使用方法。文章还提供了如何修改conda的镜像源为国内镜像源以加速下载的步骤。
anaconda下载安装,镜像源配置修改及虚拟环境的创建
|
人工智能 文字识别 自然语言处理
『GitHub项目圈选12』推荐5款本周 深受追捧 的AI开源项目
『GitHub项目圈选12』推荐5款本周 深受追捧 的AI开源项目
1724 1
|
Linux Windows Perl
没有生物学重复的转录组数据怎么进行差异分析?
设置生物学重复这个环节也是你实验设计很重要的一part,设置的好对你下游分析也有利,通常我们做转录组测序,需要的样本量每组至少为3个生物学重复,这个处理起来就很合理,并且现在流行的差异分析软件DEseq2,limma,edgeR等等都是针对有重复的数据去做的,但有时候会不幸碰到样品测序失败不能用,导致每组就给你剩一个重复时候该怎么办,之前我有批数据就是这样,但是办法总比困难多不能放过任何实验数据,搜了搜其实还是有一些方法可以去解决的,在这里介绍下我搜到的几种方法。
1837 0
|
Web App开发 算法
软件破解初级实例教程(附工具附图)
最近在群里总是看到很多新朋友在问: 1、“新手怎么学破解啊?”(这是标准的伸手党,baidu google其实很好用) 2、“哎呀XX大牛,我什么基础都没有啊我不会汇编,不会C更不会C++还不会…………总之高手会的我都不会,我能学么?”(明确的告诉你,你能!你不和唐僧一样罗嗦的话你一定能。
11694 1