当前位置: 首页 > news >正文

【bioinfo】融合检测软件FusionMap分析流程和报告结果

文章目录

      • 写在前面
      • FusionMap融合检测原理
      • FusionMap与其他软比较
      • FusionMap分析流程
      • FusionMap结果文件说明
      • FusionMap mono CUP设置

图片来自Wikipedia-FusionGene
图片来源: https://en.wikipedia.org/wiki/Fusion_gene

写在前面

下面主要内容是关于RNA-seq数据分析融合,用到软件是FusionMap 【FusionMap参考文献】。

融合分析使用哪个软件,哪个软件表现较好,在Biostarts发现一个问答列举了一些软件(看这里),里面有STAR-Fusion, STAR-Fusion, deFuse, FusionCatcher等30多个融合分析软件,其中约20多个软件的文献发表于2011-2013年,FusionMap软件的文献也发表与2011年。还有几篇软件比较的文献,各分析软件的优劣文献中也会提,晚一些发表的文献也会与之前发表的软件作比较。

另外,FusionMap软件应该很早不再更新了,是在Oshell工具包中进行维护。
在这里插入图片描述

FusionMap融合检测原理

融合Reads:Seed readsRescued reads
在这里插入图片描述
融合方向:图来源
在这里插入图片描述

FusionMap与其他软比较

在这里插入图片描述
图片来源文献: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4797269/

上面表格红色标注是,相对FusionMap, 结果比FusionMap差的。从该文献给的上表中粗略看,FusionMap在三组和构造的数据集上表现还可以,而在乳腺癌和黑色素瘤的样本数据上表现较差,对它的综合评价属于中等程度,但它有个最大的好处,就是用C#编写,其运行速度较其他软件要快。

对于该软比较文献中,具体使用的是什么样的数据,各软件分析时使用的参数,比较的评分标准,可能对各个软件都会有影响。

FusionMap分析流程

软件分析流程pipline:图来源
在这里插入图片描述
融合检测流程:
FusionMap软件分析流程图
其中,序列比对是在GSNAP软件基础上进行了一些改进。介绍GSNAP

(1)分析流程配置oscript文件示例:

http://www.arrayserver.com/wiki/index.php?title=OmicScript_example_for_RNA-Seq_data_analysis_pipeline

(2)软件使用示例:

mono oshell.exe --runscript Base_Dir Script_path/buildIndex.oscript Temp_Dir Mono_Path

FusionMap结果文件说明

结果文件report:http://www.arrayserver.com/wiki/index.php?title=Fusion_SE_report

表头名称含义
FusionID融合ID信息,格式为: FUS_Start_END注[1]^{注[1]}[1]
Bam.UniqueCuttingPositionCountUniq read数,相当于Seed Reads+Rescued reads的去重
Bam.SeedCount如上图中,假设ααα就是一端softclip长度最小值,则SeedCount则为softclip长度>=α的Reads数。(如果值比较小,也可能根本比不上)目的是这些Reads可作为种子序列扩展成较长的融合序列,再将扩展的融合序列作为自构建ref,比较靠边缘的融合序列比对到自构建ref。如果是PE150bp,α=25α=25α=25,最多可扩展成125+125=250bp的融合序列
Bam.RescuedCount相当于softclip长度<α的reads数,通过SeedReads自构建的ref进行比对上的reads
Strand链方向
Chromosome1断点1染色体
Position1断点1位置
Chromosome2断点2染色体
Position2断点2位置
KnownGene1断点1基因
KnownTranscript1断点1转录本
KnownExonNumber1断点1外显子号
KnownTranscriptStrand1断点1基因链方向
KnownGene2断点2基因
KnownTranscript2断点2转录本
KnownExonNumber2断点2外显子号
KnownTranscriptStrand2断点2基因链方向
FusionJunctionSequence融合断点上下游(30bp)序列
FusionGene融合两端基因
SplicePattern融合剪接模式 [1]
SplicePatternClass融合剪接模式类型 [1]
FrameShift发生frameshift的格式 [2]
FrameShiftClassframeshift的类型 [2]
Distance融合断点间距离(不是同一染色体时为-1)
OnExonBoundary是否在Exon边界,None:两个断点都不在;Both:两个断点都在;Single:有一个断点在。
Filter可过滤信息,包括:InFamilyList(家族基因列表)/InBlackList(黑名单列表)

其中:

[1] SplicePatternClass包括:

  • CanonicalPatter[Major]: GT-AG SplicePattern
  • CanonicalPatter[Minor]: GC-AG and AT-AC SplicePattern
  • NonCanonicalPatter: all other detected di-nucleotides

[2] FrameShiftClass包括:

  • FrameShift:融合处发生了移码。
  • InFrame:融合处是整码(断点处基因的碱基是3的倍数)。

FrameShift对应值的格式为: [0{0,1}1{0,1}2{0,1}->0{0,1}1{0,1}2{0,1}(python正则表达式,0{0,1}是指0字符出现0-1次)

  • (1)若值为->->0{0,1}1{0,1}2{0,1}0{0,1}1{0,1}2{0,1}->(例如,->0/->01/->012),可能是融合比对的位置两个断点或一端断点不在编码区?【InFrame
  • (2)若值为0->11->22->0(下图),表示两个基因融合后,没有发生移码【 InFrame
  • (3)若值为0->2/0->01->0/1->12->1/2->2,表示两个基因融合后,发生了移码 【FrameShift
  • (4)若值为->左端或右端有多种模式,例如02->2012->1。当多种模式都包含在情形(3)中,则为【FrameShift】,例如:0->02、01->0、02->2、1->01、12->1、2->12;当多种模式中至少有一种属于情形(2),则为【InFrame】,例如:0->012、0->01、01->01等。

图来源 也介绍了fusionMap检测融合:
在这里插入图片描述

推荐的过滤条件:图来源

SeedCount >= 3; SplicePatternClass =CanonicalPattern[Major] or CanonicalPattern[Minor] ; Filter=Empty
更严格的条件:FrameShiftClass=InFrame;OnExonBoundary=Both
在这里插入图片描述

单端/双端融合的基因表达结果:图来源(oscript配置中设定分析表达步骤)

在这里插入图片描述


FusionMap mono CUP设置

占用较高CPU问题,如何设置?【还不清楚】

  • FusionMap使用说明文档

  • 关于FusionMap的一些安装说明中提到控制文档示例中,有提到mono的一些参数设置:(但不知道在哪里设置该文件?)
    在这里插入图片描述

Mono的帮助文档中有相关参数:

参数说明
–aot
环境变量:
MONO_CPU_ARCH覆盖自动 CPU 检测机制。目前仅用于arm, eg:MONO_CPU_ARCH="armv4 thumb" mono ...
MONO_THREADS_PER_CPU一般线程池中的最大线程数将为 20 + (MONO_THREADS_PER_CPU * CPU 数)。此变量的默认值为 10
MONO_TLS_SESSION_CACHE_TIMEOUTSSL/TLS 会话缓存将保留其条目以避免客户端和服务器之间的新协商的时间(以秒为单位)。协商非常占用 CPU,因此特定于应用程序的自定义值可能证明对小型嵌入式系统有用。默认值为 180 秒。

其他参考:

  • github上mono相关问题MONO_THREADS_PER_CPU=100 参考
  • 在linux上使用mono跑c#的程序一定要特别注意,while(true)的问题(使用sleep)参考
  • 配置supervisor来管理mono程序 参考
  • https://www.mono-project.com/docs/
  • 融合发生机制及检测方法

http://www.lryc.cn/news/36234.html

相关文章:

  • C++基础了解-17-C++日期 时间
  • MOV压敏电阻的几种电路元件功能及不同优势讲解
  • uniapp+uniCloud实战项目报修小程序开发
  • 演唱会的火车票没了?Python实现12306查票以及zidong购票....
  • Linux发行版本与发行版的简单的介绍
  • 前后端分离项目学习-vue+springboot 博客
  • 关于指针运算的一道题
  • 【论文简述】Learning Optical Flow with Kernel Patch Attention(CVPR 2022)
  • Java学习-MySQL-列的数据类型
  • 终端配色-Docker容器终端
  • SQL基础培训04-插入数据
  • Apache HTTP Server <2.4.56 mod_proxy 模块存在请求走私漏洞(CVE-2023-25690)
  • SpringBoot 集成 elasticsearch 7.x和对应版本不一致异常信息处理
  • 求职季必看系列:Java如何高效面试?
  • 点云分割预研
  • 【数据结构】栈和队列 (栈 栈的概念结构 栈的实现 队列 队列的概念及结构 队列的实现 栈和队列面试题)
  • Moonbeam生态说|解读2023年Web3发展的前景和亮点
  • 【刷题笔记】--二分-P2440 木材加工
  • netstat 命令详解
  • 分布式 微服务
  • Day912.多环境配置隔离 -SpringBoot与K8s云原生微服务实践
  • Imx6ull交叉编译nginx
  • 阿里云短信验证
  • Excel常用可视化图表
  • 虹科分享 | 网络流量监控 | 数据包丢失101
  • 毕设常用模块之舵机介绍以及使用方法
  • 残酷现实:大部分的App小程序,日活<100
  • excel 一对多数据查询公式 经典用法
  • Zookeeper3.5.7版本——客户端命令行操作(节点删除与查看)
  • 一句话设计模式6:享元模式