2

Bio::DB::Sam を使用する Perl5 コードを実行できるように、Mac で biotools を動作させようとしていますが、うまくいきません。

  • マック OS X 10.10.4

  • パール5.18.2

  • INSTALL の指示に従ってアップグレードされた CPAN

  • 「brew install expat」は、expat-2.1.0_1 が既にインストールされていることを教えてくれます

  • 「sudo perl -MCPAN -e シェル」

  • 「CJFIELDS/BioPerl-1.6.924.tar.gz をインストール」

  • 「Bio::DB::GFF または Bio::DB::SeqFeature::Store ライブ データベース テストを実行しますか?」=>「ん」

  • すべてインストール

  • 'インターネット経由のサーバーへの接続を必要とするテストを実行しますか' => '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

このビルドでは、samtools-0.1.18 Makefile に .so ファイルを生成する必要があるように見える (おそらく?) ルールがあるにもかかわらず、「.so」ファイルが生成されませんでした

4

2 に答える 2

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 もインストールされました。

いくつかの環境変数が必要な場合は、コマンドの 1 回限りの実行用にそれらを設定できます。

$ 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

SES の回答のように複雑なことはないと思います。オプションのモジュールが必要なだけです。Bio::DB::SamREADMEには、人々が抱える可能性のあるいくつかの問題が記載されており、回避策が提供されていますが、私はこれらの問題に遭遇しておらず、私のセットアップはあなたのものに近いものです。

Alien::SamToolsはPerl 以外の samtools をインストールする Perl パッケージですが、0.1.19 をインストールすると表示されていることに注意してください。それもうまくいくかもしれませんが、それはBio::DB::Samがブリキで言っていることではありません。

于 2016-03-24T18:16:37.313 に答える
2

モジュール Bio::DB::Sam は、 htslibに依存していない古いバージョンの 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`

最後のコマンドを使用すると、samtools への PATH を探したりプロンプトを表示したりすることなく、Perl モジュールをインストールできます。追加の CFLAGS 引数は Mac では必要ない場合があるので、最初はそれなしで試してください。これは Linux で必要です。モジュールは非常に多くのメモリを使用するため、Linux マシンでのみ使用する可能性があります。次に、Perl モジュールをインストールします。

cpanm Bio::DB::Sam

または必要cpanに応じて。これで Bio::DB::Sam が動作するはずです。あなたが何をしようとしているのかはわかりませんが、EBI の優秀な人々が、Bio::DB::Sam の Lincoln Stein の XS コードに基づいて、Bio::DB::HTSと呼ばれる htslib へのバインディングを開発したことを言及します。モジュール。上記の SAMtools のバージョンは非常に古く、開発されていないため、これを実際に使用する必要があります。それは私の意見であり、警告の言葉ですが、Bio::DB::Sam には何の問題もありません。

編集:

「システム」Perl を使用せずに Perl を管理する方が簡単であることがわかります。ここに 1 つの解決策があります。他の人には好みの方法があるかもしれませんが、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 の変更により、ルート ディレクトリ/ライブラリの操作が完全に不安定になるため、これは良い考えです。

于 2016-03-19T00:46:39.800 に答える