GBrowse安装使用常见问题

在GBrowse的安装使用过程中,遇到各样的问题是难免的,如何马上解决遇到的问题,是经验与能力的一种体现,而解决问题最为关键的是定位问题,是哪个地方引发的错误,按照这个思路,可以制定一个问题排查审查单,将问题细化分类,单遇到问题是可以对着一个个去检查排除,最终顺利解决问题。而不是想热锅上的蚂蚁,手足无措,四处求救,结果被搞的灰心丧气。解决问题在网上容易找到答案,定位问题就不那么容易了。

问题审查单

  • apache配置问题,对于CGI的配置
  • GBrowse conf配置问题
  • 文件权限问题
  • 数据库链接问题
  • GBrowse本身程序问题
  • 环境问题,主要指perl库文件,比如bioperl等,比如库升级
  • 数据格式问题
  • 字符编码问题

如果图没有办法显示出来,最可能的就是前四个其中的问题。要注意问题错误的细节,哪些都是解决问题的线索,如果破案一样。下面是我曾经遇到过得问题:

问题1 Error: Could not open use account database

解决这个问题花了我很长时间,当看到这个错误消息时,我最初看到的是“Could not open database”,看见数据库,就以为是数据链接的问题,认为是数据源配置的问题,于是摸索着找各种的错误的可能,最后重新审视,看见USE ACCOUNT,联系到GBrowse.conf配置文件中的一段:

####### User Account Registration Database ######
 # If no authentication plugin is defined, and
 # "user_accounts" is true, then GBrowse
 # will attempt to use its internal user accounts database
 # to authenticate and/or register users.
 user_accounts               = 1
 user_accounts_registration  = 1
 user_accounts_openid        = 1

将其设置为0,问题马上就解决了。

问题2  500 Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request. 500服务器错误,发生这类首要去查看apache的error日志,More information about this error may be available in the server error log. 一般错误的原因都是配置文件有错误引起的。比如数据库配置错误,比如error_log中显示下面错误:

Use of uninitialized value in join or string at /opt/ActivePerl-5.8/site/
lib/Bio/Graphics/Browser2/DataSource.pm line 921.
Unknown database defined for general at /opt/ActivePerl-5.8/site/
lib/Bio/Graphics/Browser2/DataSource.pm line 927.
Could not open database: Can't call method "new" on an undefined value at
/opt/ActivePerl-5.8/site/lib/Bio/Graphics/Browser2/DataBase.pm line 44.

这次我看到是Unknown database defined,Could not open database,也是马上想到的是数据库配置以及数据库的访问,反反复复的在追究是不是dsn配置问题,host、dababase、user、pass,尽管本地测试数据库都是正常访问,还是想着是不是这里的什么地方出了问题,真所谓绞尽脑汁,问题依然,你想着是这地方出问题,而问题却始终没有解决的时候,你真的很崩溃。而且明明同样的配置在其他服务器上没有发生这样的问题。最后检查配置文件的中,无意发现GBrowse.conf文件中,DATASOURCE DEFINITIONS中,path中将制定文件的名称写错了,1写成了3,并且这是第一个定义,而先前的服务器没有发现问题是因为其不是第一个,而且是逐步修改的,也有缓存。引用的配置文件写错了,你意识不到,问题越发难以定位。

问题3 feather图无法显示

再次安装又遇到新的问题,页面可以显示,就是feather图无法显示,Apache日志报告:
File does not exist: /home/jszhang/httpd/htdocs/gbrowse2/i,
Bio/Graphics/Browser2/Render.pm许多方法报告错误,但是没有说明具体原因。
这是我当时记录的,错误解决过程:

  • 1、网上搜索无果,没有类似错误的报告
  • 2、怀疑是bioperl,bio::Graphics,没有安装好,以至于图画不出来,于是重新安装
  • 3、检查tmp/images, 发现有图像文件生成,查看画图正常
  • 4、配置文件检查,包括httpd.conf 以及Gbrows的配置文件,没有问题,问题依然
  • 5、检查文件权限,包括tmp,htdocs/gbrowse2等,增加权限问题依然
  • 6、编译安装mod_perl, 问题依然
  • 7、查看页面访问图片的路径为/gbrowse2/i/***.png, 查看其他GBrowse正常安装的文件系统,确实存在i路径,并且可以访问到各个文件,而这里文件目录中没有i,检查正常的i为一个链接,链接到tmp/images目录,手动创建该链接ln -s $HOME/httpd/tmp/images i,刷新网页,访问正常。

花了很多的精力,问题解决了,问题可能是GBrowse安装的时候,创建链接的命令没有正常执行,而要定位问题,需要对GBrowse2的原理有个了解。冷静下来去分析,而不是像个无头苍蝇一样乱撞,就如同前6个步骤中的一样。反思:

  • 什么时候引发的错误,使用root编译安装好,应该马上修改htdoc/gbrows2, dababases等文件的访问权限
  • 坚决按步骤进行安装,bioperl bio::Graphics 编译Gbrows2
  • 修改文件权限,包括tmp、databases、htdoc/gbrowse
  • 修改配置文件
  • 冷静的名对错误,CGI是否执行、数据库读取问题、临时文件创建问题等等。

问题4 rendering error track + 中文乱码

大半年没有接触了,项目需要更新数据,于是又启动测试库,发现原来正常的访问的系统,现在却发生了异常:

查看页面编码:GB2312,再一个就是图没有画出来,报告错误:

 rendering error track: Undefined subroutine CGI::request_uri at /usr/lib
/perl5/site_perl/5.8.5/i386-linux-thread-multi/Bio/Graphics/Browser2/Render.pm line 3536.

未定义的子程序:CGI::request_uri,span 搜寻,只找到了CGI,重新安装了CGI。问题依然。问题产生的原因,支持环境破坏,本来系统是可以用的,而所在服务器是测试服务器,经常安装不同的软件。于是重新对GBrowse进行安装,ok,又看到了那个熟悉的页面。

问题5 有一个数据库配置引起的错误

由内存切换到mysql数据库的时候,报告错误:

Could not open database: Can't locate Bio/DB/SeqFeature/Store/dbi/mysql.pm in @INC

使用bp_seqfeature_load.pl -a DBI::mysql -d * -u * -p * *.gff3 可以正常导入数据,说明安装没有问题,数据库没有问题,做了很多的尝试,问题仍然没有解决。但是通过脚本,

  my $db = Bio::DB::SeqFeature::Store->new( -adaptor => 'DBI::mysql',
                                            -dsn     => 'dbi:mysql:gb',
                                            -user    => 'gb',
                                            -pass    => 'gb',
                                            -create  => 1 );

可以通过测试,最后对照这个测试用例,来写配置,发现了问题,原来是-adaptor 配置写错了,写成了dbi::mysql, 而应该是DBI::mysql,这样回来再看报告的错误,文件找不到就正常了,我检查这个错误的时候没有注意大小写,有DBI这个目录,但是没有dbi目录,而原来copy的配置是版本1中,关于Bio::DB::GFF的,还是有区别的:

db_adaptor = Bio::DB::GFF
db_args    = -adaptor dbi::mysql
             -dsn       dbi:mysql:database=yeast;host=localhost
             -user      gbrows
             -pass      gbrows

问题6中文操作系统,浏览界面显示的繁体中文

根据操作系统的语言自动选择语言包,可能是判别出问题了,查看了语言包,包括zh.pm, zh_cn.pm,其中zh.pm为繁体,zh_cn.pm为简体中文,目前解决的方法就是将zh_cn.pm重命名为zh.pm,可能引起的问就是台湾不能看到自己的繁体了。

图像以及数据上的问题,也遇到很多,但至少还能看见点东西,感觉是不断优化的过程,许多问题没有记录下来,比如频率图方面、数据处理方面。不同的地方,不同的时间你会遇到不同的问题。能不能快速的解决问题,那是你的水平体现,你呢,遇到过什么疑难的问题吗?

新书推荐

 » 转载文章请注明,转载自:博耘生物 » 《GBrowse安装使用常见问题》
 » 原文链接:http://boyun.sh.cn/bio/?p=1777

3 thoughts on “GBrowse安装使用常见问题

  1. 您好!是这样的,我在安装使用GBrowse的时候遇到了问题,纠结了很久没有解决。我安装是的 GBrowse2的版本,安装以后,自带的测试数据可以成功运行。用bp_seqfeature_load.pl命令将从FlyBase下载的gff格式数据库导入MySQL之后也可以正常显示。后来又用bp_genbank2gff3.pl -s 的命令格式化按蚊的genbank数据,并用bp_seqfeature_load.pl把得到的gff数据导入了MySQL数据库,页面报错为 Configuration error: Chromosome/contig not found!
    Apache的错误日志显示如下:
    [Fri Dec 16 15:48:39 2011] [error] [client 127.0.0.1] Use of uninitialized value in subtraction (-) at /usr/local/lib/perl/5.10.1/Bio/Graphics/Browser2/Render.pm line 871.
    [Fri Dec 16 15:48:39 2011] [error] [client 127.0.0.1] Use of uninitialized value in subtraction (-) at /usr/local/lib/perl/5.10.1/Bio/Graphics/Browser2/Render.pm line 871.
    [Fri Dec 16 15:48:39 2011] [error] [client 127.0.0.1] Use of uninitialized value $i in pattern match (m//) at /usr/local/lib/perl/5.10.1/Bio/Graphics/Browser2/DataSource.pm line 318.
    [Fri Dec 16 15:48:39 2011] [error] [client 127.0.0.1] Use of uninitialized value $i in pattern match (m//) at /usr/local/lib/perl/5.10.1/Bio/Graphics/Browser2/DataSource.pm line 318.

    我查看了MySQL的表结构,发现导入按蚊数据后生成的表中,name中只有一条数据记录,为
    id name display_name
    1 3L 1

    不知道您是不是可以帮忙分析一下错误所在,感激不尽!

    • 首先确认你的GBrowse、bioperl版本是不是最新的,如果不是最新的,更新一下,然后再试一下。把转换的GFF格式的前面几行贴一下,看看GFF文件的内容,比较容易发现问题。从报告的错误来看,应该再确认locationlist表。

  2. 老师您好,我按gbrowse的示例教程都装好之后,打开http://localhost/cgi-bin/gb2/gbrowse/volvox但是显示Not Found,这是哪里出问题了?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请启用Javascript,以完成验证!