无法在Mac OS X上安装bioperl

时间:2016-03-18 15:25:48

标签: macos perl bioinformatics bioperl

我正在尝试让我的Mac上的biotool工作,以便我可以运行一些使用Bio :: DB :: Sam的Perl5代码,但是我受到了阻碍。

  • Mac OS X 10.10.4

  • perl 5.18.2

  • 按照INSTALL说明升级CPAN

  • 'brew install expat'告诉我expat-2.1.0_1已经安装

  • 'sudo perl -MCPAN -e shell'

  • '安装CJFIELDS / BioPerl-1.6.924.tar.gz'

  • '你想运行Bio :: DB :: GFF还是Bio :: DB :: SeqFeature :: Store实时数据库测试?' => 'n' 个

  • 全部安装

  • '您是否要运行需要连接到互联网服务器的测试'=> 'n' 个

最终获得(删除了一些行):

Running Build test
t/Align/AlignStats.t ................... ok     
t/Align/AlignUtil.t .................... ok     
t/Align/Graphics.t ..................... skipped: The optional module GD (or dependencies thereof) was not installed
...
t/AlignIO/msf.t ........................ ok   
t/AlignIO/nexml.t ...................... skipped: The optional module Bio::Phylo (or dependencies thereof) was not installed
t/AlignIO/nexus.t ...................... ok     
...
t/Assembly/ContigSpectrum.t ............ ok       
t/Assembly/IO/bowtie.t ................. skipped: The optional module Bio::DB::Sam (or dependencies thereof) was not installed
t/Assembly/IO/sam.t .................... skipped: The optional module Bio::DB::Sam (or dependencies thereof) was not installed
t/Assembly/core.t ...................... ok       
t/Cluster/UniGene.t .................... ok   

然后,我测试:

perl -e "use Bio::DB::Sam;"

并获得:

Can't locate Bio/DB/Sam.pm in @INC (you may need to install the Bio::DB::Sam module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

当从GitHub克隆bioperl-live(同步到修订版73c446c69a77)并尝试以这种方式安装时,我得到相同的结果。

请注意,我已经安装了samtools 0.1.18(以匹配我们群集上的版本):

  • 下载.tar.gz

  • 正在运行'make'

  • 将'samtools','bcftools / bcftools'和'misc / *。pl'复制到〜/ debarcer-packages / bin,这是我的路径

之后,我明白了:

$ which samtools
/Users/gvwilson/debarcer-packages/bin/samtools

这个版本确实生成'.so'文件,即使samtools-0.1.18 Makefile中有一个看起来像它的规则(也许?)应该生成一个。< / p>

2 个答案:

答案 0 :(得分:2)

Bio :: DB :: Sam模块提供了对不依赖htslib的旧版samtools的绑定。这一点很重要,因为使用samtools或其他对齐器生成的SAM / BAM文件可能会遇到问题,因为大多数工具最近都使用htslib。

对于构建模块,您使用的是正确的版本,但如果您不知道正确的标记,则很难构建。我previously提供了一个解决方案来实现这一点,我将在这里展示更好的方法(只需使用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`

最后一个命令将允许您安装Perl模块,而不查找samtools的PATH并提示它。请注意,您的Mac上可能不需要额外的CFLAGS参数,因此请先尝试不使用它。它在Linux上是必需的,并且由于该模块使用了如此多的内存,因此您可能只在Linux机器上使用它。现在,安装Perl模块。

cpanm Bio::DB::Sam
如果您愿意,可以

cpan。这应该让你工作Bio :: DB :: Sam。我不知道你要做什么,但我会提到EBI的优秀人员根据Lincoln Stein在Bio :: DB :: Sam模块中的XS代码,开发了一个名为Bio::DB::HTS的htslib绑定。这真的是你应该使用的,因为上面提到的SAMtools的版本真的很旧而且没有开发。这是我的意见和谨慎,但Bio :: DB :: Sam没有错。

编辑:

您发现在不使用“系统”Perl的情况下管理Perl更容易,这是一个解决方案。其他人可能有他们喜欢的方法,但perlbrew(与cpanminus结合)将使这种类型的工作变得有趣而且更少痛苦(并且它们是受欢迎的选择)。这将是我的第一步:设置perlbrew,安装Perl 5.22,然后安装cpanminus。这可能听起来很有挑战性,但它只是一些命令。有点像:

curl -L http://install.perlbrew.pl | bash
source ~/perl5/perlbrew/etc/bashrc
perlbrew install perl-5.22.1
perlbrew switch perl-5.22.1
perlbrew install-cpanm

应该做的伎俩。这将给你一个屁股Perl与你的“系统”Perl不具备的一些很好的功能。这是一个好主意,因为使用/ usr / bin / perl需要sudo,它涉及到可能导致问题的系统库的混乱,而最近的Apple更改意味着使用根目录/库完全不稳定。

答案 1 :(得分:2)

您需要安装其他(可选)模块才能使用samtools。那就是The optional module Bio::DB::Sam消息。你不需要它用于BioPerl的其余部分,所以它不是一个很难的依赖。

对于Bio::DB::Sam,您需要samtools-0.1.17(模块根据其文档使用的最新版本)。我下载了源代码并运行make。有一些警告,但它似乎工作。从你的问题来看,我认为你没有问题。

然后我安装了Bio::DB::Sam

 $ cpan Bio::DB::Sam

有一些编译器警告,但模块通过了测试并安装。 cpan命令也处理依赖关系,所以它也为我安装了BioPerl。

如果您需要一些环境变量,可以将它们设置为一次性运行命令:

$ CFLAGS=... SAMTOOLS=... cpan Bio::DB::Sam

请注意,安装Bio::DB::Sam会提示我输入samtools的位置。我在构建目录中指出了它:

$ cpan5.22.0 Bio::DB::Sam
Running install for module 'Bio::DB::Sam'
Configuring L/LD/LDS/Bio-SamTools-1.43.tar.gz with Build.PL
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: /Users/brian/Downloads/samtools-0.1.17

我认为没有像the answer SES gave那样复杂的东西。你只需要一个可选模块。 Bio::DB::Sam README 注意到人们可能遇到的一些问题并提供了解决方法,但我没有遇到这些问题而且我的设置与您的设置很接近。

请注意,Alien::SamTools是一个安装非Perl samtools的Perl软件包,但它表示安装了0.1.19。也许这也有效,但这不是Bio::DB::Sam在锡上所说的。