mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-31 17:23:34 +00:00
vep: init at 110 (#283317)
This commit is contained in:
commit
c105d9b506
134
pkgs/by-name/ve/vep/package.nix
Normal file
134
pkgs/by-name/ve/vep/package.nix
Normal file
@ -0,0 +1,134 @@
|
||||
# Instructions:http://www.ensembl.org/info/docs/api/api_installation.html,
|
||||
# Do not use https://github.com/Ensembl/ensembl-vep/archive/release/${version}.zip
|
||||
# We cannot use INSTALL.pl but it’s not that bad:install the dependencies and copies the .pm files should be ok
|
||||
{
|
||||
lib,
|
||||
htslib,
|
||||
perlPackages,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
perl,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "110";
|
||||
customInstallPhase = ''
|
||||
mkdir -p $out/${perl.libPrefix}/${perl.version}/
|
||||
tests=$(find modules/ -mindepth 1 -maxdepth 1 -type d | grep -v t)
|
||||
cp -r $tests $out/${perl.libPrefix}/${perl.version}/
|
||||
'';
|
||||
|
||||
ensemblGit =
|
||||
name: sha256:
|
||||
# Copy modules directly
|
||||
stdenv.mkDerivation {
|
||||
inherit name version;
|
||||
src = fetchFromGitHub {
|
||||
inherit sha256 version;
|
||||
owner = "Ensembl";
|
||||
repo = name;
|
||||
rev = "release/${version}";
|
||||
};
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
${customInstallPhase}
|
||||
|
||||
runHook postInstall'';
|
||||
};
|
||||
|
||||
vepPlugins = fetchFromGitHub {
|
||||
owner = "Ensembl";
|
||||
repo = "VEP_plugins";
|
||||
rev = "8f271c4848338dc7d504881ff71fdf2892c3d096";
|
||||
sha256 = "sha256-LbaXwLFDP3m1QhRHwO9uh36BEFHE2NzL4xdxTb7/S5Q=";
|
||||
};
|
||||
|
||||
# Install ensembl-xs, faster run using re-implementation in C of some of the Perl subroutines
|
||||
ensembl-xs = perlPackages.buildPerlPackage rec {
|
||||
pname = "ensembl-xs";
|
||||
version = "2.3.2";
|
||||
src = fetchFromGitHub {
|
||||
inherit version;
|
||||
owner = "Ensembl";
|
||||
repo = "ensembl-xs";
|
||||
rev = version;
|
||||
sha256 = "1qqnski532f4bz32wxbqd9w1sz40rjh81ipp9p02k3rlaf1gp1fa";
|
||||
};
|
||||
# PREFIX is important
|
||||
configurePhase = ''
|
||||
perl Makefile.PL PREFIX=$out INSTALLDIRS=site
|
||||
'';
|
||||
# Test do not work -- wrong include path
|
||||
doCheck = false;
|
||||
};
|
||||
|
||||
# it contains compiled versions of certain key subroutines used in VEP
|
||||
ensembl = ensemblGit "ensembl" "sha256-ZhI4VNxIY+53RX2uYRNlFeo/ydAmlwGx00WDXaxv6h4=";
|
||||
ensembl-io = ensemblGit "ensembl-io" "sha256-r3RvN5U2kcyghoKM0XuiBRe54t1U4FaZ0QEeYIFiG0w=";
|
||||
ensembl-variation = ensemblGit "ensembl-variation" "sha256-UjrLHF9EqI+Mp+SZR4sLNZUCGiA/UYhoFWtpwiKF8tM=";
|
||||
ensembl-funcgen = ensemblGit "ensembl-funcgen" "sha256-a9hxLBoXJsF5JWuRdpyOac1u033M8ivEjEQecuncghs=";
|
||||
in
|
||||
perlPackages.buildPerlModule rec {
|
||||
inherit version;
|
||||
pname = "vep";
|
||||
buildInputs =
|
||||
(with perlPackages; [
|
||||
ArchiveZip
|
||||
BioBigFile
|
||||
BioDBHTS
|
||||
BioExtAlign
|
||||
BioPerl
|
||||
DBI
|
||||
DBDmysql
|
||||
LWP
|
||||
JSON
|
||||
])
|
||||
++ [
|
||||
ensembl-xs
|
||||
ensembl
|
||||
ensembl-funcgen
|
||||
ensembl-io
|
||||
ensembl-variation
|
||||
];
|
||||
propagatedBuildInputs = [ htslib ];
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ensembl";
|
||||
repo = "ensembl-${pname}";
|
||||
rev = "release/${version}";
|
||||
sha256 = "sha256-6lRdWV2ispl+mpBhkZez/d9PxOw1fkNUWeG8mUIqBJc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
install -D -m755 filter_vep vep $out/bin/
|
||||
|
||||
wrapProgram $out/bin/vep \
|
||||
--prefix PERL5LIB : $out/${perl.libPrefix}/${perl.version}/ \
|
||||
--add-flags "--dir_plugins ${vepPlugins}"
|
||||
|
||||
wrapProgram $out/bin/filter_vep \
|
||||
--prefix PERL5LIB : $out/${perl.libPrefix}/${perl.version}/
|
||||
${customInstallPhase}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.ensembl.org/info/docs/tools/vep/index.html";
|
||||
description = "Annotate genetics variants based on genes, transcripts, and protein sequence, as well as regulatory regions";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "vep";
|
||||
maintainers = with lib.maintainers; [ apraga ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user