nixpkgs/pkgs/by-name/ve/vep/package.nix
Winter a19cd4ffb1 Revert "treewide: replace rev with tag"
This reverts commit 65a333600d5c88a98d674f637d092807cfc12253.

This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.

It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).

A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.

[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e4587d75882aebc21a04bee960418f8ce9
2025-04-08 02:57:25 -04:00

135 lines
3.6 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 its 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;
};
}