EnsEMBL Perl API简介
取自 PerlChina.org - wiki
EnsEMBL Perl API简介
- 原 名:EnsEMBL Perl API简介
- 作 者:Phil-
- 发 表:2007-7-17
- 审 校:
- 出 处:PerlChina.org
如对本文有任何意见,欢迎到讨论页留言,Emailing to me is also welcome
目录 |
[编辑] EnsEMBL 简介
[编辑] 主办机构
EnsEMBL是由Sanger中心和EMBL-EBL共同维护的基因组注释系统。该项目的主要组织者就是BioPerl的元老Ewan Birney
[编辑] 目标
EnsEMBL力图实现以下目标:
- 准确的基因组自动注释
- 基于注释信息的全面分析
- 向全世界公开发布注释与分析结果
- 以开源合作的方式开发注释与分析所需要的软件(因为是E.B.在管,这里说的软件当然主要是基于Perl/BioPerl。另外这里说的软件仅能用于以EnsEMBL database格式存储的基因组信息)
[编辑] EnsEMBL Perl API 概述
[编辑] EnsEMBL Core
用于组织和分析:
- 基因组的原始序列
- 染色体名字等最高级的注释(Top-level annotation)
- Gene,Transcript(mRNA/ncRNA等),Translation(peptide)的注释
- microarray(芯片)探针对应的基因组位置的信息
- 其它外部注释信息的链接(例如GO)
[编辑] EnsEMBL Compara
用于组织和分析:
- 物种间的局部多序列比对结果
- 共线性区(Synteny Region)的注释
- 旁系同源(Paralogue)/直系同源(Orthologue)基因的注释
- 蛋白家族的定义
[编辑] EnsEMBL Variation
用于组织和分析:
- SNP(单核甘酸多态)/in-del/CNV等形式的variation注释
- 群体/基因型/等位基因状态
- 连锁不平衡信息
[编辑] EnsEMBL EST
软件上是和EnsEMBL Core一样的,只是数据不一样
[编辑] EnsEMBL Perl API 安装
[编辑] 安装BioPerl
$ cvs -d :pserver:cvs@code.open-bio.org:/home/repository/bioperl login
Logging in to :pserver:cvs@code.open-bio.org:2401/home/repository/bioperl
CVS password: cvs
$ cvs -d :pserver:cvs@code.open-bio.org:/home/repository/bioperl checkout -r bioperl-release-1-2-3 bioperl-live
另外数据库(一般是MySQL)也是必需的
[编辑] 安装EnsEMBL的模块
文件会被安装到当前目录下
$ cvs -d :pserver:cvsuser@cvs.sanger.ac.uk:/cvsroot/ensembl login
Logging in to :pserver:cvsuser@cvs.sanger.ac.uk:2401/cvsroot/ensembl
CVS password: CVSUSER
$ cvs -d :pserver:cvsuser@cvs.sanger.ac.uk:/cvsroot/ensembl checkout -r branch-ensembl-45 ensembl
上面最后一行安装的是EnsEMBL Core,若需要安装EnsEMBL Variation,则需将最后的ensembl换成ensembl-variation,即:
$ cvs -d :pserver:cvsuser@cvs.sanger.ac.uk:/cvsroot/ensembl checkout -r branch-ensembl-45 ensembl-variation
[编辑] 设置环境变量
目的是让Perl可以找到相关模块:
PERL5LIB=${PERL5LIB}:/path/to/BioPerl/modules
PERL5LIB=${PERL5LIB}:/path/to/ensembl-core/modules
PERL5LIB=${PERL5LIB}:/path/to/ensembl-variation/modules
PERL5LIB=${PERL5LIB}:/path/to/ensembl-compara/modules
export PERL5LIB
请把"/path/to/BioPerl/modules"换成BioPerl模块实际安装的目录。同理,后面的"/path/to/ensembl-core/modules"等,也应该换成EnsEMBL模块实际安装的目录。
[编辑] 下载EnsEMBL数据库
该步不是必须的,本地化与否的优劣,请大家自己考虑。
请到EnsEMBL的FTP下载mysql数据库文件并导入本地mysql数据库,即可在本地使用EnsEMBL的数据。
注意:数据库很大,特别是EnsEMBL Compara。
[编辑] EnsEMBL Perl API 更新
EnsEMBL的数据和API的版本是一一对应的,数据更新过之后必须更新对应的API。用CVS可以很方便地更新,只需在模块安装的目录下运行:
cvs -q update -d -P -r branch-ensembl-45
[编辑] EnsEMBL Perl API 基本用法
要使用EnsEMBL的数据库,首先需要链接上数据库,由于EnsEMBL定义了很多对象及其Adaptor,所以提供了统一的Bio::EnsEMBL::Registry模块来方便地获取这些Adaptor(曾几何时,要自己建DBAdaptor,然后再建对象的Adaptor),同时可以避免建立多余的DBAdaptor。
- 获取预设的数据库连接
use Bio::EnsEMBL::Registry;
my $registry = 'Bio::EnsEMBL::Registry';
$registry->load_registry_from_db(-host => 'ensembldb.ensembl.org',-user => 'anonymous');
- 获取您所需要的注释信息
上面提到的所有注释信息都可以经由对应的对象的Adaptor获得,例如Gene:
my $gene_adaptor = $registry->get_adaptor( 'Human', 'Core', 'Gene' ); #获得GeneAdaptor对象,可用于读取人的EnsEMBL Core数据库内的信息
my $gene = $gene_adaptor->fetch_by_stable_id("ENSG00000099889"); #获得一个基因序列及其他注释信息
又例如基因组片段(Slice):
my $slice_adaptor = $registry->get_adaptor("Human","Core","Slice");
my $slice = $slice_adaptor->fetch_by_region("chromosome","14","5623425","5673425"); # 获得基因组上的一段序列
上面提到的基因组片段(Slice)还可以结合其他Adaptor,查找该片段上的任何注释信息(基因、Exon、多态、芯片探针、等等等等……)。
[编辑] 可以使用EnsEMBL的物种
目前只有部分物种有EnsEMBL化的注释系统:
- 来自EnsEMBL
Human 人 / Mouse 小鼠 / Zebrafish 斑马鱼 / C.elegans 秀丽隐杆线虫 / Cat 猫 / Chicken 鸡 / Chimpanzee 黑猩猩 / Cow 牛 / Dog 狗 / Elephant 象 / Fruitfly 果蝇 / Platypus 鸭嘴兽 / Rabbit 兔 / Rat 大鼠 / S.cerevisiae 酵母 , 等等(主要是动物)
- 来自Gramene
Oryza sativa 栽培稻 / Oryza rufipogon 野生稻 / Zea mays 玉米 / Arabidopsis thaliana 拟南芥
更多的帮助信息请参考EnsEMBL上的介绍(这也是本文的主要参考资料)
