nixos/homer: init (#368594)
[NixPkgs.git] / pkgs / by-name / fa / fastqc / package.nix
blob13c76f5b3bfef7feed0a49b63957161767472643
2   lib,
3   stdenv,
4   fetchzip,
5   jre,
6   perl,
7   makeWrapper,
8   imagemagick,
9   makeDesktopItem,
10   copyDesktopItems,
11   desktopToDarwinBundle,
12   testers,
15 stdenv.mkDerivation (finalAttrs: {
16   pname = "fastqc";
17   version = "0.12.1";
19   src = fetchzip {
20     url = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v${finalAttrs.version}.zip";
21     hash = "sha256-TenRG2x8ivJ2HM2ZpLaJShp0yI0Qc6K5lW5/NJFAa1I";
22   };
24   dontBuild = true;
26   nativeBuildInputs =
27     [
28       makeWrapper
29       imagemagick
30     ]
31     ++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems # postInstallHook
32     ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; # fixupOutputHook
33   buildInputs = [
34     jre
35     perl
36   ];
38   desktopItem = (
39     makeDesktopItem {
40       name = "FastQC";
41       exec = "fastqc";
42       icon = "fastqc";
43       desktopName = "FastQC";
44       comment = finalAttrs.meta.description;
45       categories = [ "Science" ];
46     }
47   );
48   desktopItems = [ finalAttrs.desktopItem ];
50   installPhase = ''
51     runHook preInstall
53     mkdir -p $out/{bin,FastQC}
54     cp -r $src/* $out/FastQC
56     # Create desktop item
57     mkdir -p $out/share/{applications,icons}
58     # Freedesktop doesn't support windows ICO files. Use imagemagick to convert it to PNG
59     convert $out/FastQC/fastqc_icon.ico $out/share/icons/fastqc.png
61     runHook postInstall
62   '';
64   preFixup = ''
65     makeWrapper $out/FastQC/fastqc $out/bin/fastqc --prefix PATH : ${jre}/bin
66   '';
68   passthru.tests.version = testers.testVersion {
69     package = finalAttrs.finalPackage;
70     version = "v${finalAttrs.version}";
71   };
73   meta = {
74     description = "A quality control application for high throughput sequence data";
75     longDescription = ''
76       FastQC aims to provide a simple way to do some quality control checks on raw sequence data coming from high throughput sequencing pipelines. It provides a modular set of analyses which you can use to give a quick impression of whether your data has any problems of which you should be aware before doing any further analysis.
78       The main functions of FastQC are
80       - Import of data from BAM, SAM or FastQ files (any variant)
81       - Providing a quick overview to tell you in which areas there may be problems
82       - Summary graphs and tables to quickly assess your data
83       - Export of results to an HTML based permanent report
84       - Offline operation to allow automated generation of reports without running the interactive application
85     '';
86     homepage = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/";
87     sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
88     license = with lib.licenses; [
89       gpl3Plus
90       asl20
91     ];
92     maintainers = [ lib.maintainers.dflores ];
93     mainProgram = "fastqc";
94     platforms = lib.platforms.unix;
95   };