Database design 遗传变异关系数据库

Database design 遗传变异关系数据库,database-design,bioinformatics,django-database,Database Design,Bioinformatics,Django Database,我试图在我所在机构的数据库中表示遗传变异数据。我们发现了与之相关的遗传变异,包括参考等位基因、突变等位基因、染色体、位置、名称、可能的影响、基因、基因中的位置等 虽然它不是必要的,因为问题上下文有时是有用的,但我将使用django构建它,db后端将是PostgreSQL或MySQL(这里也欢迎关于选择的建议,尽管不是问题的主要焦点) 为了正确地表示这些信息,我开始设计一个关系数据库。然而,我在定义最有效的结构时遇到了问题。 我可以这样陈述: 变异属于多对一关系中的基因。i、 一个基因可以有许多变

我试图在我所在机构的数据库中表示遗传变异数据。我们发现了与之相关的遗传变异,包括参考等位基因、突变等位基因、染色体、位置、名称、可能的影响、基因、基因中的位置等

虽然它不是必要的,因为问题上下文有时是有用的,但我将使用django构建它,db后端将是PostgreSQL或MySQL(这里也欢迎关于选择的建议,尽管不是问题的主要焦点)

为了正确地表示这些信息,我开始设计一个关系数据库。然而,我在定义最有效的结构时遇到了问题。 我可以这样陈述:

变异属于多对一关系中的基因。i、 一个基因可以有许多变体,但一个变体通常不能跨越多个基因。(然而,有时这可能发生在大型CNV或两个基因重叠的情况下,因此可能是多对多关系?)

变异也在个体中发现。个体具有基因型,这只是该变异的各种等位基因组合的两个副本。我根本不确定最好的方法是什么,也许是变异和个体的联合主键,并将基因型记录为变异等位基因的数量(例如0,1,2)

因此,我的问题是(对不起所有的前言和bio talk),我们认为什么样的方式才是最好的,或者对这三件事有更好的设计: 变异——我想存储的主要信息,基因和个体——对于任何下游分析都是必不可少的


任何建议都将不胜感激。再次为这个问题的短暂性感到抱歉。

好吧,我对基因一无所知,也不会说生物术语。然而,我从你的问题和维基百科中收集了一些观点,并得出了这个结论。主要作为建模练习,使用FCO方法。所以这里有一些陈述,你应该能够标记每一个为真或假

  • 基因是一些DNA片段的名称
  • 基因染色体上占据一个给定的位置
  • 染色体是包含许多基因的单个卷曲DNA片段
  • 等位基因是单个基因的多种替代形式之一
  • 等位基因是一种基因
  • 变体是一种DNA序列
  • 变异跨越基因
  • 变异跨越等位基因
  • 基因型是两个等位基因副本
  • 表型是人的可观察特征
  • 基因型影响表型
  • 一个表型可受许多基因型的影响
  • 一个基因型可能影响许多表型
  • 有许多基因型
  • 具有许多观察到的表型
  • 变体可以在人中发现


您是否意识到这不是一个微不足道的问题?几个问题:1)您是否有尚未注释的“样本”?2) 您是否有尚未分类为任何基因型的“人”?3) 你真的要储存DNA序列,还是只储存“抽象”基因型(比如:“有B型蝗虫”)我知道这是个难题。按顺序回答您的问题1)变体将在插入数据库之前进行注释,但在首次插入后,将发布可能包含新注释以及新变体、基因和个体的成批数据。2) 不是每个人都有一个基因型,即使所有的序列分析都完成了,而且3)DNA序列不需要存储。在biostar上发布的感谢信:@DavyKavanagh;我想向您介绍一种信息建模,通常称为
事实类型建模
(FCO_IM,ORM)。这种方法允许建模者与主题专家密切合作,用自然语言进行交流。问题领域(话语的宇宙,UoD)以一系列简单的事实(命题)呈现,每个事实(命题)都可以由专家标记为真或假。一旦完成,该模型将生成句子返回给主题专家进行评估。无论如何。。请看这里(续…),当最终使用模型时,该工具将从中生成表(ER)或类(UML)。很酷。非常感谢你。你几乎所有的基本假设都是对的。我不会把等位基因称为基因,变异也不会跨越等位基因。但是说真的,伙计。。。对你在这里的努力说不出话来!