2023-09-27 monetdb-存储架构-记录

news2024/10/7 8:21:51

摘要:

2023-09-27 monetdb-存储架构-记录

存储架构

MonetDB SAM/BAM 模块支持两种类型的模式来存储 SAM/BAM 数据。使用顺序模式,所有对齐记录都可以轻松读取、解析并随后存储,与它们在 SAM/BAM 文件中的存储方式相当。使用成对模式,对齐记录对(由对齐记录中的信息确定)一起存储在单个数据库记录中。

元数据表

无论存储比对记录的数据库模式如何,SAM/BAM 文件的标头都存储在固定数量的元数据表中。它们的规格及关系如下图所示:

元数据表

表“bam.files”存储哪些BAM文件被加载到数据库中。

  • file_id:该表中的每个文件元组都包含一个唯一的文件ID,由BAM加载器在加载过程中分发;
  • file_location:SAM/BAM 文件在磁​​盘上的位置(从何处加载);
  • dbschema:使用的数据库存储模式,0为顺序模式,1为成对模式;
  • format_version:格式版本,存储在 SAM/BAM 标头中
  • sorting_order:该文件中的对齐记录是按哪个字段排序的;否则“未排序”。
  • comments:在文件头的 CO 标记内找到的注释。

数据库设计定义了额外的表来存储 SAM/BAM 文件头的其余部分,其中使用了一种非常简单的方法(例如,用于 SQ 的表“bam.sq”和用于 RG 头记录的表“bam.rg”)。有关这些字段的确切含义的更多信息,请参阅SAM规格。

对齐数据表

对于比对数据,数据库设计为已加载到数据库中的每个 SAM/BAM 文件定义一组单独的表。这种设计选择是为了加快对少量 SAM/BAM 文件的分析速度,因为这种情况在实践中经常发生。这种加速是通过不必在第一个分析步骤中过滤掉特定 BAM 文件的对齐数据来实现的。

将 SAM/BAM 对齐记录加载到数据库中时,您可以选择将这些数据存储在两组预定义的数据库表中,即顺序表集和成对表集。这些表集显示在下图中,适用于带有i 的BAM 文件。file_id

数据库设计使用每个对齐记录的虚拟偏移量作为主键。通过存储此虚拟偏移,可以使用 SAMtools 等轻松地在原始 SAM/BAM 文件中找到特定的对齐方式。

顺序模式

默认架构

顺序表集旨在从 SAM/BAM 文件中出现的比对数据进行直接映射。每个对齐字段都存储在数据库列中。此外,对齐数据中包含的额外信息被解析并存储在单独的表i中。alignments_extra_

成对模式

成对表集旨在减少对成对比对数据进行许多操作时的性能开销。在加载过程中,主要和次要比对对都会被自动识别并存储在适当的数据库表中。配对表中的列具有 或l前缀r( 除外qname,因为同一对中的两个对齐记录始终具有相同的QNAME)。带有l前缀的列存储来自其first segment标志设置为 1 的对齐记录的数据,并且带有前缀的列r这样做是为了与其对齐last segment标志设置为1。所有不能配对的比对都存储在未配对比对表中,该表与直接表集中的常规比对表具有相同的结构。

除了物理表之外,成对表集还定义了一些数据视图,这些视图也是自动创建的。这些视图提供了访问数据的方法,就像数据以顺序方式存储一样,例如,任何针对直接表集中的对齐表的查询都可以在i视图中触发。unpaired_all_alignments_

配对模式

在上图中,箭头用于指示在哪些物理表上定义了不同的视图。

注意:目前,如果要将 SAM/BAM 文件加载到成对模式中,文件必须按QNAME. 如果还不是这种情况,请先使用 SAMtools 对其进行排序,然后再尝试将其加载到数据库中。另一种方法是将文件加载到顺序模式中,将有序对齐写回 SAM 文件(请参阅SAM导出有关导出功能的更多信息),然后加载该 SAM 文件。但是,除非您已经将文件加载到顺序模式中,否则不建议这样做,因为这一系列操作通常比在插入文件之前使用 SAMtools 简单地对文件进行排序花费的时间更长。

参考:

Storage Schema | MonetDB Docs

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

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

相关文章

【计算机网络笔记六】应用层(三)HTTP 的 Cookie、缓存控制、代理服务、短连接和长连接

HTTP 的 Cookie HTTP 的 Cookie 机制要用到两个字段:响应头字段 Set-Cookie 和请求头字段 Cookie。 Cookie 可以设置多个 key-value 对, 响应头中可以设置多个 Set-Cookie 字段,请求头Cookie后面可以设置多个键值对,用分号隔开&a…

Linux工具(二)

前言:在Linux工具(一)中,我们学习了yum软件安装工具和vim文本编辑器工具,那么本次我们就再来介绍两种工具,分别是,编辑器gcc/g、项目自动化构建工具-make/Makefile ,接着我们再来写一…

【Linux进行时】环境变量and进程优先级

1.环境变量 ❓首先一个问题:我写的代码(这个代码很简单,不用管)编译之后运行的时候为什么要带./ ? 或者说我怎么才可以让我不用带./ ? 💡.代表当前文件下,/是文件分隔符,…

【re】BUUCTF [GXYCTF2019]luck_guy

题目&#xff1a;BUUCTF [GXYCTF2019]luck_guy 无壳&#xff0c;64位&#xff0c;ida打开找找找到get_flag()函数 for ( i 0; i < 4; i ){switch ( rand() % 200 ){case 1:puts("OK, its flag:");memset(s, 0, sizeof(s));strcat((char *)s, f1);strcat((char *…

Mysql基础【操作数据库表】

一、数据库相关概念&#x1f353; 数据库: 存储数据的仓库&#xff0c;数据是有组织的进行存储,英文&#xff1a;DataBase&#xff0c;简称 DB 存储和管理数据的仓库其本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 数据库管理系统&#xff1a;管理数据库的大型软…

常用黑客指令【建议收藏】

系统信息 arch #显示机器的处理器架构(1) uname -m #显示机器的处理器架构(2) uname -r #显示正在使用的内核版本 dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda #罗列一个磁盘的架构特性 hdparm -tT /dev/sda #在磁盘上执行测试…

【算法系列篇】与链表相关的算法

文章目录 前言1. 两数相加1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 两两交换链表中的节点2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 重排链表3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 合并 k 个升序链表4.1 题目要求4.2.1 做题思路一4.3.1 方法一Java代码实现4.2…

将yolo格式数据集转换为VOC格式

将yolo格式数据集转换为VOC格式 背景代码 由于需要切分图象&#xff0c;将yolo转换为voc格式好处理一些 背景 代码 import xml.dom.minidom import glob from PIL import Image from math import ceil import shutil import osyolo_file rE://黄花标注//glass//train//split…

Ubuntu 23.10 支持基于 TPM 的全磁盘加密

导读即将发布的 Ubuntu23.10 增加了一项实验性功能 —— 初步支持基于 TPM 的全磁盘加密。该功能利用系统的可信平台模块 (TPM)&#xff0c;缺点是这种额外的安全性依赖于 Snaps&#xff0c;包括内核和 GRUB 引导加载器。 Ubuntu 开发商 Canonical 公司表示&#xff0c;Ubuntu…

字节一面:说说HTTP 常见的状态码有哪些,适用场景?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;我们经常与网路请求打交道&#xff0c;与http打交道&#xff0c;也会根据返回的状态码来做出不同逻辑判断&#xff0c;所以作为一个前端工程师必须要深入掌握这个知识点&am…

B2901A 是德科技keysight精密型电源

181/2461/8938Agilent B2901A精密源/测量单元(SMU)是一款单通道、紧凑且经济高效的台式SMU&#xff0c;能够采集和测量电压和电流。它功能多样&#xff0c;可以轻松、高精度地执行I/V(电流与电压)测量。四象限源和测量功能的集成使I/V测量简单易行&#xff0c;无需配置多种仪器…

​我读《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

​我读《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书 ​我读《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

系统工程知识体系(SEBoK)

介绍 《系统工程知识体系》&#xff08;SEBoK&#xff09;是以一种理念设计的&#xff0c;即如果工程师有一个实时更新、实用的指南&#xff0c;他们就能做出更优秀的工作。如果你以前没有使用过这个资源&#xff0c;也没有关系&#xff1b;因为已经有一个完整的指南供你参考&…

表白墙案例(前端,Java,Mysql)

项目展示&#xff1a; 在输入框中输入内容&#xff0c;点击提交&#xff0c;便会在下面以字符串的形式展示出来&#xff0c;并且会将数据保存到数据库中 即使服务器重启&#xff0c;下次再打开表白墙页面&#xff0c;也能够从数据库中获取到之前的数据 使用到的相关技术 前端(…

网页标签在html中的显示+单标记换行操作

1&#xff0c;网页标签在html中的显示 我们在html的编写过程&#xff0c;经常会遇到设置网页title标签的问题&#xff0c;例如百度标签&#xff1b; 我们使用title来满足要求&#xff1b; <html><head><title>百度一下&#xff0c;你就知道</title>即…

C++单例模式终极指南,深度解析不同应用场景,学单例这一篇就够了

&#x1f4cb; 前言 &#x1f5b1; 博客主页&#xff1a;在下马农的碎碎念&#x1f917; 欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;✍ 本文由在下马农原创&#xff0c;首发于CSDN&#x1f4c6; 首发时间&#xff1a;2023/8/25&#x1f4c5; 最近更新时…

引入嵌入和向量搜索时的三个错误

将非结构化数据表示为嵌入向量以及使用向量搜索进行基于嵌入的检索 (embedding-based retrieval - EBR) 比以往任何时候都更加流行。 嵌入到底是什么&#xff1f; Roy Keyes 在《嵌入的最短定义&#xff1f;》中对此进行了很好的解释。 嵌入是学习的转换&#xff0c;使数据更有…

C语言环境搭建(Win)

一、C语言简介 1、 C语言简介 C语言是一门通用的、面向过程式的编译型语言&#xff0c;它的运行速度极快&#xff0c;仅次于汇编语言。 C语言是计算机产业的核心程序设计语言&#xff0c;操作系统、硬件驱动、关键组件、数据库等都离不开C语言&#xff0c;广泛应用于底层开发。…

10CQRS

本系列包含以下文章&#xff1a; DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务领域事件CQRS&#xff08;本文&#xff09; 案例项目介绍 # 既然DDD是“领域”驱动&#xff0c;那么我们便不能抛开业务而只讲技术&…

SigFit—光-机-热耦合分析工具

美国Sigmadyne公司的SigFit软件是光机热耦合分析工具&#xff0c;可以将有限元分析得到的光学表面变形等结果文件通过多项式拟合或插值转化为光学分析软件的输入文件&#xff0c;还可实现动态响应分析、光程差分析、设计优化、主动控制/自适应控制光学系统的促动器布局及优化等…