2

I trying to get set up with Variant Effect Predictor (VEP) on the command line. I'm following the setup tutorial but I'm encountering some errors around dependencies. I'm also quite new to the command line so if anyone is able to break down the solution too then I'd be very grateful. Thanks!

Tutorial: https://www.ensembl.org/info/docs/tools/vep/script/vep_tutorial.html

VEP requirements: http://www.ensembl.org/info/docs/tools/vep/script/vep_download.html#requirements

I also have Perl v5.32.1.

What I've done:

I installed dependencies (listed in the requirements page) with the following commands:

 - sudo -s cpanm DBI
 - sudo -s cpanm Archive::Zip
 - sudo -s cpanm DBD::mysql

For DBD:mysql, I got the follwoing message:

--> Working on DBD::mysql
Fetching http://www.cpan.org/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz ... OK
Configuring DBD-mysql-4.050 ... N/A
! Configure failed for DBD-mysql-4.050. See /root/.cpanm/work/1626111140.5937/build.log for details.

Trying it out anyway, I ran perl INSTALL.pl (from the tutorial page) and got the message below. I would like VEP to run in online mode too if possible.

`WARNING: DBD::mysql module not found. VEP can only run in offline (--offline) mode without DBD::mysql installed

http://www.ensembl.org/info/docs/tools/vep/script/vep_download.html#requirements

Hello! This installer is configured to install v104 of the Ensembl API for use by the VEP.
It will not affect any existing installations of the Ensembl API that you may have.

It will also download and install cache files from Ensembl's FTP server.

Checking for installed versions of the Ensembl API...done

Setting up directories
Destination directory ./Bio already exists.
Do you want to overwrite it (if updating VEP this is probably OK) (y/n)? y
 - fetching BioPerl
 - unpacking ./Bio/tmp/release-1-6-924.zip
ERROR: Unable to unpack file ./Bio/tmp/release-1-6-924.zip without Archive::Extract or tar/unzip/gzip`
user438383
  • 5,716
  • 8
  • 28
  • 43
Jepson
  • 47
  • 1
  • 6
  • 1
    You didn't show what error happened. Best guess: DBD::mysql failed to install because it couldn't find the mysql library *including* the header files (packages libmysqlclient and libmysqlclient-dev?) – ikegami Jul 12 '21 at 23:33
  • As for the second problem, it looks like you might also need to install Archive::Extract – ikegami Jul 12 '21 at 23:36
  • @ikegami, sorry for the late reply but thanks for your help. I needed to install libmysqlclient and libmysqlclient-dev first. – Jepson Jul 16 '21 at 16:11

1 Answers1

1

You show us this error:

Configure failed for DBD-mysql-4.050. See /root/.cpanm/work/1626111140.5937/build.log for details.

So looking in there will give you more clues about what the problems are. Without that, we can only guess.

But we can make educated guesses. The DBD::mysql distribution comes with a file called DBD::mysql::INSTALL which will talk you through some of the problems you'll find while installing this module.

It's important to note that DBD::mysql is a wrapper around MySQL's client libraries. They are written in C, so you'll need a C compiler installed in order to build DBD::mysql. You'll also need the client libraries and the development versions of the client libraries (for the C header files that you'll need to compile the module). On Ubuntu, those packages are called "libmysqlclient" and "libmysqlclient-dev". If you don't have a C compiler, then you'll want to install "gcc" too.

But this is all getting a bit complicated. There's another, simpler, approach. If you're using the system version of Perl (the version that was installed as part of the operating system and probably lives in /usr/bin/perl) then I'd recommend using the pre-build Ubuntu version of the package, which you can install by running:

$ sudo apt-get install libdbd-mysql-perl

Installing that version uses the OS's own package manager, and the package manager knows which other packages are needed in order for it to work - so it will install those as well.

People will probably complain that you're better off installing the modules from CPAN as it gives you more flexibility and allows you to use more up-to-date packages than the versions from your OS repos. And they're right. But, honestly, if you're a non-Perl programmer who just wants to get an application up and running, this is by far the simplest approach.

(But, as I said above, this is all guesswork as you haven't shared the most important errors with us.)

Dave Cross
  • 68,119
  • 3
  • 51
  • 97
  • Re "*People will probably complain that you're better off installing the modules from CPAN*", Quite the opposite. For the system Perl, it's best to use the system package manager. If you want to use `cpan`, best to install your own `perl` – ikegami Jul 16 '21 at 16:14