waagent: 2.11.1.12 -> 2.12.0.2 (#357728)
[NixPkgs.git] / pkgs / by-name / bo / bowtie2 / package.nix
blob2a1358f2e5b77fd57c304f0e054bbe3fd8f15157
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , perl
6 , python3
7 , tbb
8 , zlib
9 , runCommand
10 , bowtie2
13 stdenv.mkDerivation (finalAttrs: {
14   pname = "bowtie2";
15   version = "2.5.4";
17   src = fetchFromGitHub {
18     owner = "BenLangmead";
19     repo = "bowtie2";
20     rev = "refs/tags/v${finalAttrs.version}";
21     fetchSubmodules = true;
22     hash = "sha256-ZbmVOItfAgKdsMrvQIXgKiPtoQJZYfGblCGDoNPjvTU=";
23   };
25   # because of this flag, gcc on aarch64 cannot find the Threads
26   # Could NOT find Threads (missing: Threads_FOUND)
27   # TODO: check with other distros and report upstream
28   postPatch = ''
29     substituteInPlace CMakeLists.txt \
30       --replace "-m64" ""
31   '';
33   nativeBuildInputs = [ cmake ];
35   buildInputs = [ tbb zlib python3 perl ];
37   cmakeFlags = lib.optional (!stdenv.hostPlatform.isx86) ["-DCMAKE_CXX_FLAGS=-I${finalAttrs.src}/third_party"];
39   # ctest fails because of missing dependencies between tests
40   doCheck = false;
42   passthru.tests = {
43     ctest = runCommand "${finalAttrs.pname}-test" { } ''
44       mkdir $out
45       ${lib.getExe bowtie2} -x ${finalAttrs.src}/example/index/lambda_virus ${finalAttrs.src}/example/reads/longreads.fq -u 10
46       ${bowtie2}/bin/bowtie2-build-s -c GGGCGGCGACCTCGCGGGTTTTCGCTA $out/small
47       ${bowtie2}/bin/bowtie2-inspect-s $out/small
48       ${bowtie2}/bin/bowtie2-build-l -c GGGCGGCGACCTCGCGGGTTTTCGCTA $out/large
49       ${bowtie2}/bin/bowtie2-inspect-l $out/large
50     '';
51   };
53   meta = with lib; {
54     description = "Ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
55     license = licenses.gpl3Plus;
56     homepage = "http://bowtie-bio.sf.net/bowtie2";
57     changelog = "https://github.com/BenLangmead/bowtie2/releases/tag/${lib.removePrefix "refs/tags/" finalAttrs.src.rev}";
58     maintainers = with maintainers; [ rybern ];
59     platforms = platforms.all;
60     mainProgram = "bowtie2";
61   };