2014-08-28 16 views
6

Sto tentando di installare un modulo perl Bio::DB::Sam sulla mia directory home su un server remoto.Installazione del modulo Bio :: DB :: Sam perl

Ho scaricato il modulo, estratti i file, e corse:

perl Build.pl prefix=~/local 

questo è ciò che succede dopo:

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' 

Avanti quando provo a fare funzionare:

./Build 

questo è quello che ottengo:

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. 

Ho fatto a google le soluzioni possibili e ho provato un paio, ma non hanno funzionato, ad es. --enable-shared OR export CXXFLAGS="$CXXFLAGS -fPIC".

Ho già installato Bioperl nella mia home directory.

Qualsiasi aiuto sarebbe apprezzato.

Acclamazioni

+0

Hai mandato un'email all'autore di samtools per chiedere assistenza? –

+0

No, non l'ho ancora fatto. Al momento, sto cercando di ricompilare la versione di samtools dalla nostra parte usando -fPIC per vedere se continuo a vedere lo stesso problema durante l'installazione di Bio :: DB :: Sam. – Nikleotide

+0

Questo è abbastanza comune, nella mia esperienza. Devi 'make clean' nella directory samtools, quindi modifica il Makefile nella dist samtools per aggiungere" -fPIC "ai CFLAGS. Successivamente, puoi provare a creare Bio-SamTools. – SES

risposta

6

Ecco uno script che prendere la fonte SAMtools e compilarlo, poi prendere e compilare le associazioni 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 

Parte del problema che si stava vedendo probabile è che il progetto è stato recentemente sottoposto SAMtools qualche profonda riorganizzazione del codice (e questo, naturalmente, ha reso difficile lavorare con binding di linguaggio esterni).

+0

Grazie SES, darò una prova e ti terrò informato su come ha funzionato. Un'ultima domanda però, se voglio installarla nella mia home directory, devo fare qualcosa di diverso dal definire il prefisso = ~/someplaces durante l'installazione di samtools? – Nikleotide

+0

@Nikleotide, è inoltre necessario assicurarsi che la variabile env SAMTOOLS punti alla posizione corretta della directory samtools prima di creare Bio-SamTools (se non si costruisce in modo interattivo e specificandolo esplicitamente). Spero possa aiutare. – SES

+0

Grazie SES. Devo metterlo in attesa per un paio di giorni perché è venuto fuori qualcosa di urgente. Prenderò questo e ti farò sapere i miei progressi .. Grazie per l'aiuto e il tempo dedicato. – Nikleotide

1

Ho risolto questo problema rifacimento samtools con il parametro -fPIC

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

poi installato usando CPAN.

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

[Risolto]

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 

immettere cpan nel terminale e digitare

install Bio::DB::Sam 

essere attentamente:

Non è possibile utilizzare il seguente comando:

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

È possibile utilizzare solo CPAN e quindi utilizzare

install Bio::DB::Sam 
0

I ho seguito le istruzioni dal file README in basso di Bio-SamTools-1.43 per modificare il Makefile in samtools 0.1.17.Poi, per installare, ho usato

perl -MCPAN -e shell installare Bio :: DB :: Sam

README:

Questa è un'interfaccia Perl per l'allineamento di interfaccia sequenza di SAMtools . Funziona SOLO su versioni di Samtools fino a 0.1.17. Lo standard non funziona sulla versione 1.0 o successiva a causa di modifiche importanti nella struttura della libreria .

Vedere http://samtools.sourceforge.net/ per la documentazione samtools.

  • ONE-STEP INSTALLAZIONE

Nella directory principale di questa distribuzione si trova lo script INSTALL.pl. L'esecuzione di questo download delle versioni più recenti di questo modulo e di SamTools in una directory temporanea, la loro compilazione, il test e l'installazione di . Basta eseguire:

perl INSTALL.pl

  • INSTALLAZIONE MULTI-STEP

Il più tradizionale di installazione richiede di scaricare separatamente, scompattare e compilare SAMtools 0.1.10 attraverso 0.1.17 in qualche directory accessibile . Digitando "make" nella directory samtools userai solitamente il lavoro . Le versioni di SAMtools 0.1.18 e successive non funzionano con questa libreria .

Quindi impostare la variabile di ambiente SAMTOOLS in modo che punti a questa directory.

Sarà inoltre necessario installare Bio :: Perl da CPAN.

Ora gestita:

perl Build.PL ./Build ./Build prova (sudo) ./Build install

GUASTI:

In caso di problemi durante la compilazione, è potrebbe essere necessario modificare Build.PL in modo che extra_compiler_flags corrisponda alle impostazioni CFLAGS e DFLAGS nel Makefile Samtools. Qui ci sono alcuni problemi comuni:

  1. Quando si costruisce questo modulo, si ottiene un errore simile al seguente: delocalizzazione R_X86_64_32 contro `un simbolo locale' non può essere utilizzato quando fare un oggetto condiviso; ricompilare con -fPIC

Per risolvere questo problema, modificare il Makefile nella distribuzione Samtools aggiungendo "-fPIC" alla linea CFLAGS. Mentre ci sei, potresti anche voler sbarazzarti di una serie di avvertimenti variabili non utilizzati che appaiono sotto le versioni recenti di gcc .Le CFLAGS modificato sarà del tipo questa

CFLAGS = -g -Wall -Wno-inutilizzato -Wno-inutilizzato-risultato -O2 -fPIC# -m64 # -arch ppc

Poi fare "make clean; make" nella directory Samtools per ricompilare la libreria . Dopodiché dovresti essere in grado di creare questo modulo senza errori .

  1. Quando si crea questo modulo, si riceve un errore su una libreria matematica mancante .

Per risolvere questo problema, seguire la ricetta in (1) ad eccezione aggiungere -m64 per CFLAGS in modo che assomiglia a questo:

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

TEST E CONTRIBUIRE:

È possibile ottenere la versione di sviluppo più recente di questo modulo tramite il suo sito GitHub a https://github.com/GMOD/GBrowse-Adaptors. Per favore, sentiti libero di inviare segnalazioni di bug, patch, ecc. Via GitHub.

AUTORE:

Lincoln D. Stein

Copyright (c) 2009-2015 Ontario Institute for Cancer Research

Questo pacchetto e le sue librerie di accompagnamento sono software libero; puoi ridistribuirlo e/o modificarlo secondo i termini della Licenza Artistica 2.0, della Licenza Apache 2.0 o della Licenza Pubblica Generale GNU (versione 1 o successiva). Fare riferimento a LICENZA per il testo completo della licenza.