Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 stdenv,
4 boost,
5 bzip2,
6 cereal_1_3_2,
7 cmake,
8 curl,
9 fetchFromGitHub,
10 icu,
11 jemalloc,
12 libgff,
13 libiconv,
14 libstaden-read,
15 pkg-config,
16 tbb_2021,
17 xz,
18 zlib,
19}:
20
21stdenv.mkDerivation (finalAttrs: {
22 pname = "salmon";
23 version = "1.10.3";
24
25 pufferFishSrc = fetchFromGitHub {
26 owner = "COMBINE-lab";
27 repo = "pufferfish";
28 rev = "salmon-v${finalAttrs.version}";
29 hash = "sha256-g4pfNuc620WQ7UDv8PQHVbbTVt78aGVqcHHMszmBIkA=";
30 };
31
32 src = fetchFromGitHub {
33 owner = "COMBINE-lab";
34 repo = "salmon";
35 rev = "v${finalAttrs.version}";
36 hash = "sha256-HGcDqu0XzgrU3erHavigXCoj3VKk82ixMLY10Kk9MW4=";
37 };
38
39 patches = [
40 # Use pufferfish source fetched by nix
41 ./fetch-pufferfish.patch
42 ];
43
44 postPatch = "patchShebangs .";
45
46 buildInputs = [
47 (boost.override {
48 enableShared = false;
49 enabledStatic = true;
50 })
51 bzip2
52 cereal_1_3_2
53 curl
54 icu
55 jemalloc
56 libgff
57 libstaden-read
58 tbb_2021
59 xz
60 zlib
61 ]
62 ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
63
64 nativeBuildInputs = [
65 cmake
66 pkg-config
67 ];
68
69 strictDeps = true;
70
71 meta = {
72 description = "Tool for quantifying the expression of transcripts using RNA-seq data";
73 mainProgram = "salmon";
74 longDescription = ''
75 Salmon is a tool for quantifying the expression of transcripts
76 using RNA-seq data. Salmon uses new algorithms (specifically,
77 coupling the concept of quasi-mapping with a two-phase inference
78 procedure) to provide accurate expression estimates very quickly
79 and while using little memory. Salmon performs its inference using
80 an expressive and realistic model of RNA-seq data that takes into
81 account experimental attributes and biases commonly observed in
82 real RNA-seq data.
83 '';
84 homepage = "https://combine-lab.github.io/salmon";
85 downloadPage = "https://github.com/COMBINE-lab/salmon/releases";
86 changelog = "https://github.com/COMBINE-lab/salmon/releases/tag/" + "v${finalAttrs.version}";
87 license = lib.licenses.gpl3Only;
88 platforms = lib.platforms.all;
89 maintainers = [ lib.maintainers.kupac ];
90 };
91})