我想为我工作的实验室创建一个带有网络前端的 rRNA 序列数据库。在生物学中,使用 BLAST 和 HMMER 等比对算法搜索大量序列似乎很常见,所以我想知道是否有是否有任何现有的 php/python/rails 项目允许使用网站搜索表单轻松创建通用序列数据库?
10 回答
http://gmod.org/有点少一些准系统 - 最简单的安装应该给你一个爆炸形式和一个“序列浏览器”界面。不知道有没有hmmer表格...
(扩展得很好——从一个简单的 sqlite 到一个真正的数据库)
或者,您可能想查看银河服务器。http://main.g2.bx.psu.edu/
它的第一个目标是让非计算人员可以轻松地进行复杂的基因组查询,但我不知道它是否具有开箱即用的效果
干杯,扬尼克
UPDATE - Inspired in part by this post, we are developing a simple local blast server as an easy-to-deploy alternative to wwwblast. Work in progress at http://www.sequenceserver.com. A demo server lets you BLAST ant genomes.
还有一个简单的 CGI 前端随 NCBI BLAST 包一起分发。你可以从他们的 FTP 站点下载它,这里是:
我强烈建议联系生物信息学社区。最重要的是设计数据库并确定其用途。你在标题中提到了 DNA,但在正文中提到了 rRNA——这些是完全不同的东西。如果这只是一个错字,那很好 - 但如果你不理解其中的区别,那么请与社区中的人交谈。
由于我参与了社区,您可能想联系 MyExperiment 社区 ( http://en.wikipedia.org/wiki/MyExperiment ) 并在需要时提及我的名字。你会发现很多友好的人和帮助。
更新我刚刚注意到你来自曼彻斯特,那是 MyExperiment 的中心,所以它确实是显而易见的起点!
这不是您所说的任何一种语言,但有 BioPERL,它是专门为 DNA 和 RNA 以及其他酸和蛋白质碱基“编程”而设计的功能集合
在 CPAN.org 中查找
Galaxy:Galaxy 不是一个数据库,它是一个网站,其中包含处理来自各种基因组的(主要是 DNA)序列的工具。Galaxy 与 UCSC 基因组浏览器序列、工具和文件格式紧密相连。因此,如果您想创建一个全新序列的数据库,galaxy 不适合您。它也不包括任何 BLAST 服务器。如果你想创建一个序列数据库,作为 GMOD 的一部分的 CHADO 很接近,但我宁愿开始使用文本文件来开始,请参阅我上面的帖子。
关于 GMOD:我相对确定 GMOD 对您的应用程序来说完全是矫枉过正。GMOD 不是服务器,它是工具的集合,数据库模式 (CHADO) 就是其中之一,而 Chado 并不是真正适合大多数拥有序列和 ID 的人。BioMart 也不是服务器,它是一个允许模型数据库去规范化的工具,能够足够快地运行全基因组查询。其中一个 BioMart 客户端 (MartView) 以 Web 界面形式提供。你现在肯定不想使用 Biomart,但我可以通过电子邮件详细解释。我的印象是您首先需要一个基于 Web 的 BLAST 客户端才能开始使用。
也许你可以看看Plone4Bio。
Plone 是一个用 python 编写的扩展内容管理引擎,具有很多功能和易于使用的应用程序,因此您可以使用论坛、新闻产品等模块的集合来创建您的网站......(我知道你知道这已经是,但这只是为了提供一些背景知识)。
Plone4Bio旨在为生物信息学提供一些plone应用程序......我不知道这个项目有多先进,我还没有使用它,但看起来至少你有一个序列对象和一些可视化它的应用程序,可能还有一些应用程序来搜索它们。(ps 他们在 uniprot 使用它——查看任何膜蛋白的“第三方数据”部分)
我不知道任何其他针对生物信息学的 CMS 应用程序,但也许您也可以轻松地用 django 实现一些东西,而无需太多努力。
不知道信息将以什么格式存储,或者 DNA 序列如何显示(它只是一个长字符串吗?),您可能只需将每个 DNA 序列插入 MySQL 数据库,然后执行简单的查询,如:
SELECT * FROM `dna_table` WHERE `sequence` = $sequence;
确保使用转义字符串或参数化查询(以防止 SQL 注入),但除此之外,这听起来像是一个非常简单的 DB 程序,不应该超过 100 行代码。
我同意:您应该将您的问题发布到 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 注入非常不可能......
我认为这是一个过早优化已经足够邪恶的例子,从某种意义上说,你可以浪费大量时间来设计一个对于简单任务来说过于复杂的系统。本着敏捷编程的精神,如果你喜欢软件工程的流行语,你可以简单地将一些东西组合在一起,然后在考虑架构之前在你的用户身上尝试。