Macos 无法在Mac OS X上安装bioperl

Macos 无法在Mac OS X上安装bioperl,macos,perl,bioinformatics,bioperl,Macos,Perl,Bioinformatics,Bioperl,我试图让biotools在我的Mac上运行,这样我就可以运行一些使用Bio::DB::Sam的Perl5代码,但我遇到了麻烦 Mac OS X 10.10.4 perl 5.18.2 按照安装说明升级了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::S

我试图让biotools在我的Mac上运行,这样我就可以运行一些使用Bio::DB::Sam的Perl5代码,但我遇到了麻烦

Mac OS X 10.10.4

perl 5.18.2

按照安装说明升级了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'

安装所有

'是否要运行需要通过internet连接到服务器的测试'=>'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.
在将bioperl live从GitHub sync'd克隆到修订版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中有一条规则看起来可能是这样?应该会产生一个。

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

对于构建模块,您使用的版本是正确的,但是如果您不知道正确的标志,则很难构建。我提供了一个解决方案来实现这一点,在这里我将展示一种更好的方法,即对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
最后一个命令将允许您安装Perl模块,而无需查找samtools的路径并提示您输入。请注意,Mac上可能不需要额外的CFLAGS参数,因此请先尝试不使用它。它在Linux上是必需的,而且由于模块占用了太多内存,您可能只在Linux机器上使用它。现在,安装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
或者cpan,如果你愿意的话。这应该会让你得到一个工作的Bio::DB::Sam。我不知道你想做什么,但我要提到的是,EBI的优秀员工已经开发了到htslib的绑定,该绑定基于Bio::DB::Sam模块中Lincoln Stein的XS代码。这确实是您应该使用的,因为上面提到的SAMtools版本非常旧,尚未开发。这是我的观点,也是一个警告,Bio::DB::Sam没有错

编辑:

您发现不使用系统Perl就可以更轻松地管理Perl,下面是一个解决方案。其他人可能会有他们喜欢的方法,但与cpanminus相结合将使这种类型的工作变得有趣,痛苦小得多,而且它们是受欢迎的选择。这将是我的第一步:设置perlbrew,安装perl5.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最近的更改意味着使用根目录/库是完全不稳定的。

您需要安装额外的可选模块来使用samtools。这就是可选模块Bio::DB::Sam消息的内容。在BioPerl的其余部分,您不需要它,因此它不是一个硬依赖项

对于,您需要模块根据其文档使用的最新版本。我下载了源代码并运行make。虽然有一些警告,但似乎有效。从你的问题来看,我认为你在这里没有问题

然后我安装了:

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

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

$ CFLAGS=... SAMTOOLS=... cpan 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
我打赌不会有像这样复杂的事情。您只需要一个可选模块。自述文件指出了人们可能遇到的一些问题,并提供了一些解决方法,但我没有遇到这些问题,我的设置与您的设置非常接近

请注意,这是一个安装非Perl samtools的Perl包,但它说它安装了0.1.19。也许这也行,但锡上不是这么说的。

$哪个perl。。。另外,不要弄乱perl系统。为自己安装一个并使用它。您需要安装哪个perl报告/usr/bin/perlYou。。。但是,正如我所说的,如果您构建自己的perl并使用它,您的境况会好得多
出于好奇,您为什么不能在数据所在的集群上使用它呢?移动这些巨大的,有时约100 GB的文件,并试图在你的个人电脑上做的工作将是缓慢的,并导致你其他头痛。我提供的答案将允许您以一种方式完成集群上的所有工作。为了回答您的最后一个问题,.so在Linux上,Mac上的库文件名为lilbbam.a编译samtools后您会看到这一点。为什么不只是cpan Bio::samtools?有什么奇怪的事情吗?@brian d foy这不起作用,因为这是samtools的XS接口,所以您需要用一个特定的标志编译该库,并设置如上所示的环境变量。@SES:什么不适用于cpan?您不会使用Perl模块安装程序来安装samtools。您可以使用它来安装Perl模块。如果有什么不起作用,我想修复它。我是cpan工具的作者。你没有在我希望有人使用它的地方使用它,所以我问这个工具是否有问题。奇怪的是,cpan可以使用一个Perl包来安装samtools-0.1.19。如果您有cpan工具的问题,而不是它应该为您做的事情,请让我们知道,以便我们可以修复它。祝你好运,至少可以说,你的回答令人困惑,因为你声称cpan或cpanm肯定无法在Linux上工作。我已经删除了我的评论,但我无法撤消我的投票。如果有第三个人来投票删除,该文件将被删除。如果发生这种情况,您可以标记它以引起版主的注意。我们不在Linux上。正如问题中所述,我们使用的是Mac OS X。出于好奇,我尝试在我的电脑上使用samtools 0.1.17构建模块。使用我更喜欢的cpanm和cpan,一切都像一个符咒。看不,Sinan说我的cpan工具在ArchLinux上做得很好,这与您所说的正好相反。@SES编译器标志是构建C库samtools的一部分。如果库构建正确,cpan和cpanm都可以工作。你告诉brian不能只使用cpan或cpanm。是哪一个?@SES。。。sooo,声称cpan或cpanm不起作用有什么意义?如果gcc需要一个特定的编译器标志,而不仅仅是Linux,那么就说出来,而不是说x或y不起作用。顺便说一句,请注意BioPerl没有通过Perl5.23.9的测试。。。但是,Bio::DB::Sam也可以在CentOS 7上使用cpan和cpanm进行良好的构建和安装。