Установка модуля Perl Bio::DB::Sam

Я пытаюсь установить модуль 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.

Я сделал Google возможные решения и попробовал пару, но они не работали, например --enable-shared OR export CXXFLAGS="$CXXFLAGS -fPIC",

У меня уже есть установленный Bioperl в моем домашнем каталоге.

Любая помощь будет оценена.

ура

4 ответа

Вот скрипт, который извлечет исходный код 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 недавно претерпел серьезную реорганизацию кода (и это, естественно, затруднило работу с привязками внешних языков).

Я исправил эту проблему, переделав samtools с параметром -fPIC

make clean
make CXXFLAGS=-fPIC CFLAGS=-fPIC CPPFLAGS=-fPIC

затем устанавливается с помощью cpan.

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

[Решаемые]

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

Я следовал инструкциям из файла README ниже Bio-SamTools-1.43, чтобы отредактировать Makefile в samtools 0.1.17. Затем для установки я использовал

perl -MCPAN -e установка оболочки Bio::DB::Sam

ПРОЧТИ МЕНЯ:

Это Perl-интерфейс для интерфейса выравнивания последовательностей SAMtools. Он работает ТОЛЬКО на версиях Samtools до 0.1.17. Он не работает в версии 1.0 или выше из-за серьезных изменений в структуре библиотеки.

См. http://samtools.sourceforge.net/ для документации samtools.

  • ОДНОСТЕПНАЯ УСТАНОВКА

В корневом каталоге этого дистрибутива вы найдете скрипт INSTALL.pl. Запуск этого позволит загрузить последние версии этого модуля и SamTools во временный каталог, скомпилировать их, протестировать и установить. Просто запустите:

Perl INSTALL.pl

  • МНОГОЭТАПНАЯ УСТАНОВКА

Для более традиционной установки требуется отдельно загрузить, распаковать и скомпилировать SAMtools 0.1.10 - 0.1.17 в некотором доступном каталоге. Ввод команды "make" в каталоге samtools обычно работает. SAMtools версии 0.1.18 и выше не работают с этой библиотекой.

Затем установите переменную среды SAMTOOLS, чтобы она указывала на этот каталог.

Вам также нужно будет установить Bio::Perl из CPAN.

Теперь запустите:

Perl Build.PL ./Build ./Build test (sudo) ./Build install

ПОИСК ПРОБЛЕМЫ:

Если у вас возникнут проблемы во время компиляции, вам может потребоваться отредактировать Build.PL так, чтобы extra_compiler_flags соответствовал настройкам CFLAGS и DFLAGS в Makefile Samtools. Вот некоторые общие проблемы:

  1. При создании этого модуля вы получаете сообщение об ошибке, подобное следующему: перемещение R_X86_64_32 против `локального символа 'не может быть использовано при создании общего объекта; перекомпилировать с -fPIC

Чтобы исправить это, отредактируйте Makefile в дистрибутиве Samtools, добавив "-fPIC" в строку CFLAGS. Пока вы работаете над этим, вы можете также избавиться от множества неиспользуемых предупреждений о переменных, которые появляются в последних версиях gcc. Модифицированные CFLAGS будут выглядеть так

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

Затем выполните команду "make clean; make" в каталоге Samtools, чтобы перекомпилировать библиотеку. После этого вы сможете собрать этот модуль без ошибок.

  1. При создании этого модуля вы получаете сообщение об отсутствующей математической библиотеке.

Чтобы это исправить, следуйте рецепту в (1) за исключением добавления -m64 к CFLAGS, чтобы он выглядел так:

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

ИСПЫТАНИЯ И ВЗНОСЫ:

Вы можете получить самую последнюю версию этого модуля для разработки через сайт GitHub по адресу https://github.com/GMOD/GBrowse-Adaptors. Пожалуйста, не стесняйтесь отправлять отчеты об ошибках, патчи и т. Д. Через GitHub.

АВТОР:

Линкольн Д. Стейн

Copyright (c) 2009-2015 Институт онкологических исследований в Онтарио

Этот пакет и сопровождающие его библиотеки являются свободным программным обеспечением; Вы можете распространять его и / или изменять его в соответствии с условиями Artistic License 2.0, Apache 2.0 License или GNU General Public License (версия 1 или выше). Обратитесь к ЛИЦЕНЗИИ для полного текста лицензии.

Другие вопросы по тегам