【问题标题】:Are there any existing solutions for creating a generic DNA sequence database with a website front end?是否有任何现有的解决方案可以使用网站前端创建通用 DNA 序列数据库?
【发布时间】:2023-03-20 07:10:01
【问题描述】:

我想为我工作的实验室创建一个带有网络前端的 rRNA 序列数据库。在生物学中,使用 BLAST 和 HMMER 等比对算法搜索大量序列似乎很常见,所以我想知道是否有任何现有的 php/python/rails 项目可以使用网站搜索表单轻松创建通用序列数据库?

更新GMOD 是我正在寻找的服务器类型。还建议我查看BioMart,它看起来也有类似的功能。

【问题讨论】:

  • 如果您只需要一个允许人们 BLAST 和下载序列的 Web 界面,请查看 sequenceserver.com(我是作者之一)。

标签: database search web bioinformatics dna-sequence


【解决方案1】:

这不是您所说的任何一种语言,但有 BioPERL,它是专门为 DNA 和 RNA 以及其他酸和蛋白质碱基“编程”而设计的功能集合

在 CPAN.org 中查找它

【讨论】:

  • 是否也允许创建 Web 前端? Perl 不是我熟悉的语言。
  • 你可以用 perl 做 Web 前端。事实上,我用 3 年时间用 PERL 开发了一个网站。我相信 PHP 在某种程度上是从 PERL 中衍生出来的。我听说语法很相似
  • 事实上,我可能要补充一点,与任何其他 BioInformatic API 相比,BioPERL 是如此先进,以至于学习 PERL 的时间将比您用其他语言构建库所需的时间短得多。对于 PERL 中的 HTML 渲染,您可以在 CPAN 中查找 HTML::Template。它将帮助您使用诸如循环之类的编程编译指示创建 HTML,如果 CPAN 实际上是任何人都可以下载的 Perl 代码的存储库。您几乎可以找到任何东西,HTML 渲染、PDF 创建等等。
【解决方案2】:

不知道信息将以什么格式存储,或者 DNA 序列如何显示(它只是一个长字符串吗?),您可能只需将每个 DNA 序列插入 MySQL 数据库并然后执行一个简单的查询,例如:

SELECT * FROM `dna_table` WHERE `sequence` = $sequence;

确保使用转义字符串或参数化查询(以防止 SQL 注入),但除此之外,这听起来像是一个非常简单的 DB 程序,代码不应超过 100 行。

【讨论】:

  • 序列可能会存储为 FASTA,我还希望能够通过网络表单使用 BLAST 查询数据库。
  • 使用 DNA 序列比正常的字符串搜索要复杂得多。您必须检查不匹配、剪断、内含子-外含子、选择性剪接等...
  • 这就是我说我不确定的原因。我只是想举例说明如何根据搜索短语查询数据库,以防他甚至不知道。但无论如何,是的,我认为它可能比这更深入。
  • 嘿。谁会想到寻找 DNA 会很复杂? :) 它只有四个氨基酸 A,C,G,T ,所以它是一个由 4 个不同字符组成的字符串。然而,由于某些地方可能与不同的个体不同(因此我们都是相同的),它们也具有组合特征来说明 A 或 C、A 或 G、A 或 C 或 T,……直到 A 或 C 或G 或 T. IE 在搜索例如 AAAGTCTGA 时,实际上您必须搜索它,加上“组合字符”的所有组合,通常,您希望包含不匹配(最多 1 或 2 个,因为您永远不会看到结尾你搜索)。
  • A、C、G、T 不是氨基酸,而是核苷酸;-)
【解决方案3】:

这可能有点矫枉过正,但是.... ncbi 有很多可用的软件。 Link.

特别是this

【讨论】:

  • 基因组工作台看起来很有用,谢谢。我认为它不能用于创建 Web 前端,但可以吗?
【解决方案4】:

我强烈建议您联系生物信息学社区。最重要的是设计数据库并确定其用途。你在标题中提到了 DNA,但在正文中提到了 rRNA——这些是完全不同的东西。如果这只是一个错字,很好 - 但如果您不了解其中的区别,请与社区中的人交谈。

由于我参与了社区,您可能想联系 MyExperiment 社区 (http://en.wikipedia.org/wiki/MyExperiment) 并在需要时提及我的名字。你会找到很多友好的人和帮助。

更新我刚刚注意到你来自曼彻斯特,那里是 MyExperiment 的中心,所以它确实是显而易见的起点!

【讨论】:

  • 嗨,彼得。我的意思是写一个通用核酸数据库,无论是 RNA 还是 DNA,都可以通过 BLAST 网络表单访问。我查看了 myExperiment,这似乎专注于 Taverna 工作流程而不是 Web 前端。
  • Taverna 是基于访问 WebServices 的。我知道这些不是网络前端,但它们可能是正确的方法。在任何情况下,您都会被告知最好的继续方式
【解决方案5】:

http://gmod.org/ 是少一点的准系统——最简单的安装应该给你一个爆炸形式和一个“序列浏览器”界面。 不知道有没有hmmer form...

(可以很好地扩展 - 从简单的 sqlite 到真正的数据库)

或者,您可能想查看银河服务器。 http://main.g2.bx.psu.edu/
它的第一个目标是让非计算人员可以轻松地进行复杂的基因组查询,但我不知道它是否具有开箱即用的爆炸性

干杯, 亚尼克


更新 - 部分受到这篇文章的启发,我们正在开发一个 simple local blast server 作为易于部署的 alternative to wwwblasthttp://www.sequenceserver.com 的工作正在进行中。演示服务器让您BLAST ant genomes

【讨论】:

  • 谢谢,这正是我正在寻找的东西。我可以在服务器上安装并运行的东西。
【解决方案6】:

我同意:您应该将您的问题发布到 bbb@bioinformatics.org 或 bioperl 邮件列表。

“使用网站搜索表单轻松创建通用序列数据库”这个问题似乎过于笼统。序列数据库是 (id, sequence) 的列表,它本身不需要任何工具支持。至少我看不出有什么理由让你需要一个工具。

我认为您的问题是:是否有可以在本地安装的 BLAST 客户端作为网络表单?有一些:尽管我从未运行过 PLAN,但它可能值得一试。 BioPerl 具有用于独立 BLAST 执行的对象 (http://doc.bioperl.org/releases/bioperl-1.0/Bio/Tools/Run/StandAloneBlast.html),并且可以以图形方式显示结果。 Debian/Ubuntu Med 有 ncbi-tools-bin 和 ncbi-rrna-data 可以在几秒钟内安装必要的工具和数据库。

与其考虑工具支持,我更愿意将一个 10 行 CGI 脚本与输入序列一起执行到您拥有的 Fasta 文件上,然后查看用户是否对此不满意。

关注编程语言:如果您愿意,可以使用 shell 脚本 (*) 执行此操作。这甚至可能比在 stackoverflow 上发帖花费的时间更少...... ;-)

(*) 偏执的计算机科学同事请注意:这将是生物学家的内部应用程序,他们不知道操作系统和运算符重载之间的区别,因此 sql 注入非常不可能......

我认为这是一个过早优化已经够邪恶的例子,从某种意义上说,你可以浪费大量时间来设计一个对于简单任务来说过于复杂的系统。本着敏捷编程的精神,如果您喜欢软件工程流行语,您可以简单地将一些东西组合在一起,然后在考虑架构之前在您的用户身上尝试。

【讨论】:

    【解决方案7】:

    关于 GMOD:我相对肯定 GMOD 对于您的应用程序来说完全是多余的。 GMOD 不是服务器,它是工具的集合,数据库模式 (CHADO) 就是其中之一,而 Chado 并不真正适合大多数拥有序列和 ID 的人。 BioMart 也不是服务器,它是一个允许模型数据库去规范化的工具,能够足够快地运行全基因组查询。其中一个 BioMart 客户端 (MartView) 以 Web 界面形式提供。你现在肯定不想使用 Biomart,但我可以通过电子邮件详细解释。 我的印象是,您首先需要一个基于 Web 的 BLAST 客户端。

    【讨论】:

      【解决方案8】:

      Galaxy:Galaxy 不是一个数据库,它是一个网站,其中包含处理来自各种基因组(主要是 DNA)序列的工具。 Galaxy 与 UCSC 基因组浏览器序列、工具和文件格式紧密相连。因此,如果您想创建一个全新序列的数据库,galaxy 不适合您。它也不包括任何 BLAST 服务器。如果你想创建一个序列数据库,CHADO 作为 GMOD 的一部分就很接近了,但我宁愿开始使用文本文件来开始,请参阅我上面的帖子。

      【讨论】:

        【解决方案9】:

        还有一个简单的 CGI 前端随 NCBI BLAST 包一起分发。你可以从他们的 FTP 站点下载它,这里是:

        ftp://ftp.ncbi.nih.gov/

        【讨论】:

          【解决方案10】:

          也许你可以看看Plone4Bio

          Plone 是一个用 python 编写的扩展内容管理引擎,具有许多功能和易于使用的应用程序,因此您可以使用论坛、新闻产品等模块的集合来创建您的网站......(我知道你已经知道了,但这只是提供一些背景知识)。

          Plone4Bio旨在为生物信息学提供一些plone应用程序...我不知道该项目有多先进,我还没有使用它,但看起来至少你有一个序列对象和一些用于可视化它的应用程序,可能还有一些用于搜索它们的应用程序。 (附言他们在 uniprot 使用它 - 查看任何膜蛋白的“第三方数据”部分)

          我不知道任何其他针对生物信息学的 CMS 应用程序,但也许您也可以使用 django 轻松实现某些东西,而无需太多努力。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-08-21
            • 2011-09-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-21
            • 1970-01-01
            相关资源
            最近更新 更多