使用CIRI识别环状RNA

2024-01-14 04:10
文章标签 使用 识别 环状 rna ciri

本文主要是介绍使用CIRI识别环状RNA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注”生信修炼手册”!

在最初的环状RNA研究中,认为环状RNA都是由exon通过反向剪切构成的,称之为exonic circRNA,只有这样的环状RNA能够由PCR反应验证出来的。

CIRI是一款环状RNA检测软件,通过该软件的预测结果,学者第一次用实验验证出了intronic circRNA和intergenic circRNA。该软件操作简便,准确度高,是非常流行的一款环状RNA检测软件。

该软件至少需要两个输入文件,基因组的fasta序列和测序数据比对产生的sam文件,需要注意的是,输入的sam文件必须是由bwa-mem算法比对产生的 。分析的pipeline示意如下

对于输入的sam文件,需要经过两次扫描,在第一次扫描时,根据双端数据的比对情况筛选候选的环状RNA,这一步通过判断SAM文件中CIGAR那一列的值来实现,本质上是检测覆盖环状RNA连接点处的junction reads,根据测序读长和连接点处包含的基因组区域的特征,分成以下3种模型

图A表示junction read只覆盖了起始外显子和终止外显子的部分序列,这两部分reads在基因组上的比对位置是相反的,绝大部分的环状RNA都符合这种模型。

图B表示junction read除了覆盖了起始外显子和终止外显子的两部分序列外,还覆盖了中间的一个外显子的部分序列,这种情况下reads可以分成3个部分比对到基因组上。

图C表示junction read除了覆盖了整个环状RNA外,还重复又读了一部分序列,这个只有当环状RNA的序列长度小于测序读长时才可能出现。

该软件将以上3种模型定义为paired chiastic clipping signals,简称PCC信号,如果一条reads比对情况符合以上任意一种,就认为该reads是一条环状RNA的junction reads。

为了提高准确性,识别到junciton reads之后,还会结合双端序列比对的质量paired end mapping即PEM和GT-AG保守的剪切位点进行过滤,示意图如下

只保留比对质量较高,且头尾符合AG-GT剪切信号的junciton reads进入下游分析,在第二次扫描SAM文件的过程中,通过动态规划算法给出最终的环状RNA预测结果,如果提供了GTF文件,还会对环状RNA进行注释。

该软件的使用步骤如下

1. bwa比对参考基因组

代码如下

bwa mem \
-T 19 \
-t 5 hg19_index \
R1.fastq.gz R2.fastq.gz \
> align.sam
2. 运行CIRI
CIRI2.pl  \
-T 20 \
-F hg19.fa \
-A hg19.gtf \
-I align.sam \
-O circRNA.xls

输出结果如下所示

在后续验证时,可以挑选表达量较高的来验证,在软件对应的文章中,挑选了junction reads数大于5的环状RNA来进行验证。

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

这篇关于使用CIRI识别环状RNA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/603904

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND