正则表达式示例应用程序 — DNA 分析
正则表达式示例应用程序 — DNA 分析
日期:2004 年 12 月 1 日 目录
简介 应用程序概述 所需软件 术语 配置应用程序 运行应用程序 示例应用程序文件 故障诊断 其他参考资料
简介
先决条件
要了解该示例应用程序,用户应掌握以下方面的知识:
技术概述
正则表达式是用于描述和处理文本数据的一个强大工具。多种编程语言和脚本语言均支持该种表达式,而且现在 Oracle 数据库 10g SQL 和 PL/SQL 也提供对它的支持。由于正则表达式允许编程人员根据模式处理文本,因此极其有用。它们被认为是在所有处理文本数据的应用程序中执行诸如字符搜索、处理、验证和格式化之类操作的最高级方式。此外,它们还在生物信息学中用来帮助识别 DNA 和蛋白质序列。语言学家使用正则表达式来帮助研究自然语言。在 Oracle 数据库中为 SQL 和 PL/SQL 引入的本地正则表达式支持通过在查询、数据定义和字符串处理中提供表达能力根本改变了在数据库内搜索和处理文本的能力。
应用程序概述
该应用程序使用正则表达式从 SGD 数据库中提取和分析 DNA 数据。SGD(酵母基因组数据库)是酵母(一般称为发面酵母或芽殖酵母)的分子生物和基因组的一个科学数据库。给定一个地区,您可以从站点查询该数据库来获得酵母基因序列。本示例使用正则表达式从原始 HTTP 数据中分析输出,并将 DNA 序列存储在数据库中。您可以进一步运行正则表达式查询从数据库中识别特定的模式。 “正则表达式”是表示一个或多个字符串的一组字符。为了在给定的记录(如 DNA 或蛋白质)中确定特定模式是否存在,我们构建了一个表示该模式的正则表达式。例如,模式“GGATGA”代表 DNA 序列“GGATGA”而非其他序列。正则表达式“GAA[ACGT]{4}TTC”代表 GAAACGTTTC、GAAAAAATTC 等。这里 [ACGT]{4} 意味着该序列可能包含这些字符的任意组合,甚至四个全部为相同字符。从这些例子中您可以观察到某些正则表达式字符仅匹配一个字符(例如 G 仅代表 Guanine),而另一些正则表达式字符可以匹配多个字符。这里蕴涵了正则表达式搜索的强大功能。使用相当少的符号,您就可以在一次搜索中指定要搜索的许多不同模式。
示例应用程序使用 DNASEQ 函数连接到 SGD 数据库并检索 HTTP 流数据。然后使用正则表达式分析该流,并消除控制字符,从而仅提取 DNA 序列。进一步对 DNA 序列进行处理,检查给定的序列是否包含酶切图谱,并列出它们在序列中第一次出现的位置。
所需软件
以下是配置和运行此示例应用程序所需的软件。
术语
术语
定义
<SAMPLE_HOME>
该示例所解压缩在的目录
配置应用程序
解压缩下载的 RegExpDNASample.zip 文件。将文件内容解压缩到 <SAMPLE_HOME> 目录中。 这将创建 RegExpDNASample 文件夹 (包括所有文件和文件夹)。
打开命令提示符并通过执行以下命令转至 <SAMPLE_HOME>/REGEXPDNASample /src 文件夹: cd <SAMPLE_HOME>/REGEXPDNASample /src
打开 SQL 提示符。以 SCOTT/TIGER 进行连接,然后从 <SAMPLE_HOME>/REGEXPDNASample /src 文件夹中运行 config.sql 脚本。这将为该应用程序创建必要的数据库对象(表、函数)。 例如, SQL> @config.sql
运行应用程序
可以按以下方式运行该应用程序。
从 SQL 提示符下,通过执行以下命令来运行 dna_analysis.sql 文件 SQL> @dna_analysis.sql 为“region”输入值(对于示例区域,请参考下表)。该 PL/SQL 程序块执行 DNASEQ 函数,该函数将连接 http://www.yeastgenome.org 网站并提取 DNA 序列。然后将该序列存储在 DNA_DB 表中。该 PL/SQL 程序块还将搜索特定的酶切图谱,并输出它们在被提取 DNA 序列中第一次出现的位置。 注意: 您可以输入以下区域中的任意一个进行分析。
YMR317W
YMR010W
YBL016W
YBR077C
YAL004W
下面是在分析中使用的一些酶名称以及它们的识别模式
酶名称
识别模式
等价的 Oracle 正则表达式模式
EcoRI
GAATTC
GAATTC
BamHI
GGATCC
GGATCC
HindII
GTYRAC
GT[CT]{1}[GA]{1}AC
Ama87I
CYCGRG
C[CT]{1}CG[GA]{1}G
Asp700I
GAANNNNTTC
GAA[ACGT]{4}TTC
如果您遇到了任何问题,请参考故障诊断 部分。
或者,如果您在与网站连接时遇到了问题,可以运行 search_localdb.sql。这将在本地存储的数据库中搜索酶站点。 例如, SQL>@ search_localdb.sql
示例应用程序文件
该部分将以表格形式提供示例应用程序文件及其相应的目录位置以及各文件在应用程序总体方案中所起的作用。
目录
文件
说明
RegExpDNASample \doc
readme.html
本文件
RegExpDNASample \src
config.sql
该 SQL 文件用于配置该示例。这将创建必要的表和函数
RegExpDNA Sample\src
dnaseq.sql
创建 DNASEQ 函数的文件
RegExpDNA Sample\src
dna_analysis.sql
该 PL/SQL 代码执行 DNASEQ 存储过程,并在检索到的序列上运行正则表达式搜索。
RegExpDNA Sample\src
search_localdb.sql
该文件运行 SQL 脚本在本地存储的数据中搜索模式。
故障诊断
在运行 dna_analysis.sql 文件时,如果您装有防火墙,则可能遇到“ORA-29273:HTTP request failed”错误。 要解决这个问题,请打开 dnaseq.sql 文件,搜索 UTL_HTTP.SET_PROXY,不要注释包含 UTL_HTTP.SET_PROXY 的行,编辑设置,将“www.yourproxy.com”替换为正确的代理服务器地址。
其他参考资料
请在此处 输入您对该示例应用程序的意见。