组学数据仓库初学者指南

Beginner guide to omics data warehousing

本人从事生物科学领域工作,主要从事数据分析工作。最近,由于对来自同一组 individuals/patients/animals.

的各种生物样本使用多种分析技术(大多数是“组学”类型),数字在增长,事情变得越来越复杂。

我想实现一种更好的本地存储数据和元数据的方法(这里我指的元数据是关于 individuals/patients/animals 的一般数据,但也指关于所用仪器的元数据在分析中)这也将允许我执行荟萃分析(主要使用 R,但我希望有一个也可以与 SPSS 一起使用的解决方案)。我正在寻找一些指南来学习构建、管理和使用数据库的基础知识,最适合生物学和“组学”应用。

我可以用下图总结我的情况

总而言之,对于同一组样本(个人 - S1 到 Sn),这将是数据库中的主要条目,我们可以执行一系列实验分析,每个分析通常都会产生一些数字数据以类似 csv 的格式组织,具有相同的 ID,并附有一些关于分析的元数据(使用的仪器和类似仪器)。在数据库中创建新条目通常是通过批量上传这些 csv 文件。

基本上,我想在一个地方收集和连接所有内容,而不是为每个项目创建一个文件夹,以及相关的 R 脚本和原始数据。然后,我将从 R 的通用数据库中检索与某个项目相关的数据,并执行一组分析。截至目前,我对本地解决方案很感兴趣,但我想保留最终的远程访问倾向

我没有数据库方面的背景,所以我愿意接受任何更适合我需要的解决方案。例如,我读到有关系数据库和图形数据库(我确实有一些本体经验)并且无法决定哪个更好。来自处理过类似问题的用户的任何“摘要”一般信息来源、任何初学者提示或任何关于最佳解决方案的建议,对我尝试和开始某些事情都会有很大的帮助。

实际上,我不同意批评这个问题的评论者,尽管我同意它不是特定于 R 或与 R 相关的编程。也许我只是同情,因为我也处于类似的境地。 BioStars 是提出此类问题的更好场所。

话说,我也是在学术界工作的,我也遇到了类似的问题。我的圈子里没有人给出很好的答案。

从你的图表来看,你似乎对关系数据库有所了解,这很好。如果您不熟悉类似 sql 的语法或关系数据库的概念,那么一定要从这里开始。关于如何学习这些,我没有很好的建议——我在大学里有一个关于 mysql 的 class,然后开始使用 sqlite 和 postgresql靠我自己。我非常感谢 mysql class,所以如果你觉得自己不太了解 sql 类语法或关系数据库主题,也许你可以找到一个在线课程(或参加一个在你的大学,如果你在学校)。

特别是在 R 中,我会开始阅读有关从 R/Rstudio

连接到数据库的内容

https://db.rstudio.com/

我主要通过 RPostgresql 包使用它,我认为它是 DBI 包的扩展。

如果您还没有使用 tidyverse 包,显然会感到很舒服。这是一个很好的资源:

https://r4ds.had.co.nz/

由于我们讨论的是 Hadley Wickham 的主题,并且由于 Hadley Wickam 的主题与 R 和 R 编程有关,所以我不介意说你也应该阅读这篇文章:

https://vita.had.co.nz/papers/tidy-data.pdf

您需要学习一些有关服务器的基础知识。我知道您对在本地执行此操作特别感兴趣,但我怀疑总有一天您需要能够在本地和远程进行托管。至少,这是我的经验。在任何情况下,您都应该在本地计算机上使用 linux(我希望这不是一个有争议的声明),这实际上意味着处理本地数据库与远程处理数据库或多或少相同(减去一些安全问题)。我发现 Nginx 比 Apache 更容易,但这可能是个人喜好问题。当我需要 public 服务器时,我会使用 Amazon AWS,但如果你的大学有托管服务,你可以进行价格比较。根据我的经验,AWS 更便宜也更容易。为了管理服务数据库,我使用 Django,它是一个 python 包。如果您选择构建一个 django 管理的数据库,我建议使用这个 cookiecutter(一个 python 包模板):

https://github.com/agconti/cookiecutter-django-rest

最后,下面发布了一个 link 到我管理数据的当前活动项目的 django 数据库框架。我打算将另一个 link 包含到我也在搞乱的 R 包中,这意味着吸收一些数据库数据,对其进行处理,然后将其吐出。后者正在大量开发中。它不处于可共享状态,但它会帮助我看到这样的东西,我想,当我开始问与你类似的问题时,所以我将把它包括在内。

https://github.com/BrentLab/S288CR64_database

https://github.com/cmatKhan/brentlabRnaSeqTools

如果您有与基因组学数据管理相关的问题,请随时通过我的电子邮件提问。您会在 github.

上找到它