aboutsummaryrefslogtreecommitdiff
path: root/tools/aa-app.nix
blob: 4b782b3de2e91e60a5cf809483e89181a8f414fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{
  stdenv,
  fetchurl,
  fetchFromGitHub,
  python3,
}: let
  python = python3.withPackages (pkgs:
    with pkgs; [
      numpy
      scipy
      pysam
      matplotlib
      future
      (mosek pkgs)
    ]);

  mosek = assert stdenv.system == "x86_64-linux";
    pkgs:
      pkgs.buildPythonPackage {
        pname = "mosek";
        version = "8.1.0.83";
        src = fetchurl {
          url = "https://download.mosek.com/stable/8.1.0.83/mosektoolslinux64x86.tar.bz2";
          sha256 = "sha256-d/S/IalmQwizWYZ89ZskUoVAaXWYszuw7w+w0Vp+13k";
        };
        doCheck = false;
        preBuild = ''
          cd 8/tools/platform/linux64x86/python/3/
        '';
        propagatedBuildInputs = with pkgs; [numpy];
        postInstall = ''
          find $out -name lib\*.so\* -print0 | xargs -0 \
            patchelf --add-rpath ${stdenv.cc.cc.lib}/lib
        '';
      };
in
  stdenv.mkDerivation rec {
    pname = "AmpliconArchitect";
    version = "1.3";

    src = fetchFromGitHub {
      owner = "virajbdeshpande";
      repo = pname;
      rev = "40da8520a953810ad43e5a6fdf4aba7449d7f5e0";
      sha256 = "sha256-4SAOpdjXiZFTfpD6WpLfs2zDyGT2hcWabl+sUjboBpc=";
    };

    doBuild = false;
    installPhase = ''
      mkdir -p $out/libexec
      cp -r src $out/libexec/aa
      mkdir $out/bin
      ln -s $out/libexec/aa/{AmpliconArchitect,amplified_intervals,ref_util,downsample}.py $out/bin
    '';

    buildInputs = [python];
  }