安装Bio :: DB :: Sam perl模块

时间:2014-08-28 19:03:17

标签: perl module installation bioinformatics bioperl

我正在尝试在远程服务器上的主目录上安装perl模块Bio::DB::Sam

我下载了模块,解压缩了文件,并运行了:

perl Build.pl prefix=~/local

接下来会发生什么:

This module requires samtools 0.1.10 or higher (samtools.sourceforge.net).
Please enter the location of the bam.h and compiled libbam.a files: **/some_places/samtools-0.1.19**

Found /some_places/samtools-0.1.19/bam.h and /some_places/samtools-0.1.19/libbam.a.
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Bio-SamTools' version '1.39'

接下来当我尝试跑步时:

./Build

这就是我得到的:

  Building Bio-SamTools
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -o blib/arch/auto/Bio/DB/Sam/Sam.so lib/Bio/DB/Sam.o c_bin/bam2bedgraph.o -L/some_places/samtools-0.1.19 -lbam -lpthread -lz
/usr/bin/ld: /some_places/samtools-0.1.19/libbam.a(bgzf.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/some_places/samtools-0.1.19/libbam.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error building blib/arch/auto/Bio/DB/Sam/Sam.so from lib/Bio/DB/Sam.o c_bin/bam2bedgraph.o at ~/perl5/lib/perl5/ExtUtils/CBuilder/Base.pm line 323.

我确实谷歌了解了可能的解决方案并尝试了一对,但它们没有用,例如--enable-shared OR export CXXFLAGS="$CXXFLAGS -fPIC"

我已经在我的主目录中安装了Bioperl。

任何帮助都将不胜感激。

干杯

4 个答案:

答案 0 :(得分:7)

这是一个脚本,它将获取SAMtools源并对其进行编译,然后获取并编译Perl绑定。

wget http://sourceforge.net/projects/samtools/files/samtools/0.1.18/samtools-0.1.18.tar.bz2
tar xjf samtools-0.1.18.tar.bz2 && cd samtools-0.1.18
make CFLAGS=-fPIC
export SAMTOOLS=`pwd`
cpanm Bio::DB::Sam

您可能看到的部分问题是SAMtools项目最近经历了一些主要的代码重组(这自然使得很难使用外部语言绑定)。

答案 1 :(得分:1)

我通过使用-fPIC参数

重新设置samtools来修复此问题
make clean
make CXXFLAGS=-fPIC CFLAGS=-fPIC CPPFLAGS=-fPIC

然后使用cpan安装。

cpan[2]> install Bio::DB::Sam 

答案 2 :(得分:1)

[解决]

wget http://sourceforge.net/projects/samtools/files/samtools/0.1.18/samtools-0.1.18.tar.bz2

tar xjf samtools-0.1.18.tar.bz2 && cd samtools-0.1.18

make CFLAGS=-fPIC

在终端输入cpan并输入

install Bio::DB::Sam

小心点:

您无法使用以下命令:

perl -MCPAN -Mlocal :: lib -e' CPAN :: install(Bio :: DB :: Sam)'

您只能使用cpan然后使用

install Bio::DB::Sam

答案 3 :(得分:0)

我按照Bio-SamTools-1.43下面的README文件中的说明编辑samtools 0.1.17中的Makefile。然后,要安装,我用

perl -MCPAN -e shell 安装Bio :: DB :: Sam

自述文件:

这是SAMtools序列比对的Perl接口 接口。它仅适用于最高0.1.17的Samtools版本。确实如此 由于库中的重大更改,无法在1.0版或更高版本上运行 结构

有关samtools文档,请参阅http://samtools.sourceforge.net/

  • 一步安装

在此发行版的根目录中,您将找到该脚本 INSTALL.pl。运行此命令将下载此版本的最新版本 模块和SamTools进入一个临时目录,编译它们,测试和 安装。只需运行:

perl INSTALL.pl

  • 多步安装

更传统的安装需要您单独下载, 在一些可访问的内容中解压缩并编译SAMtools 0.1.10到0.1.17 目录。通常在samtools目录中键入“make” 工作。 SAMtools版本0.1.18及更高版本不适用于此 库。

然后将环境变量SAMTOOLS设置为指向此目录。

您还需要从CPAN安装Bio :: Perl。

现在运行:

perl Build.PL   。/建立   ./Build测试   (sudo)./Build install

故障:

如果在编译过程中遇到问题,则可能需要进行编辑 Build.PL使extra_compiler_flags与CFLAGS和DFLAGS匹配 Samtools Makefile中的设置。以下是一些常见问题:

  1. 构建此模块时,会出现如下错误: 当重定位R_X86_64_32对“本地符号”时不能使用 制作共享对象;用-fPIC重新编译
  2. 要解决此问题,请通过添加来编辑Samtools发行版中的Makefile “-fPIC”到CFLAGS系列。当你在这里时,你可能也希望 摆脱出现在下面的一堆未使用的变量警告 最新版本的gcc。修改后的CFLAGS将如下所示

    CFLAGS = -g -Wall -Wno-unused -Wno-unused-result -O2 -fPIC#-m64#-arch ppc

    然后在Samtools目录中执行“make clean; make”以重新编译 图书馆。在此之后,您应该能够在没有的情况下构建此模块 错误。

    1. 构建此模块时,会收到有关缺少数学的错误 库。
    2. 要解决此问题,请按照(1)中的配方进行操作,只是将-m64添加到CFLAGS即可 看起来像这样:

      CFLAGS = -g -Wall -O2 -fPIC#-m64#-arch ppc

      测试和贡献:

      您可以通过以下方式获取此模块的最新开发版本 它的GitHub站点位于https://github.com/GMOD/GBrowse-Adaptors。请 随时通过GitHub提交错误报告,补丁等。

      作者:

      Lincoln D. Stein

      版权所有(c)2009-2015安大略省癌症研究所

      该软件包及其附带的库是免费软件;您可以 根据艺术条款重新分配和/或修改它 许可证2.0,Apache 2.0许可证或GNU通用公共许可证 (版本1或更高版本)。有关完整的许可证文本,请参阅LICENSE。