Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

init MultiQC at 1.19 #284361

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
69 changes: 69 additions & 0 deletions pkgs/applications/science/biology/multiqc/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{ lib
, python3
, fetchFromGitHub
}:

python3.pkgs.buildPythonApplication rec {
pname = "multiqc";
version = "1.19";
pyproject = true;

src = fetchFromGitHub {
owner = "MultiQC";
repo = "MultiQC";
rev = "v${version}";
hash = "sha256-Vdp5Ev0gPuyLGFMCXK4Z8FNhkWXcU43/uHk+KiIoWIk=";
fetchSubmodules = true;
};

nativeBuildInputs = [
python3.pkgs.setuptools
python3.pkgs.wheel
];

propagatedBuildInputs = with python3.pkgs; [
importlib-metadata
matplotlib
networkx
numpy
click
coloredlogs
future
jinja2
markdown
packaging
pyyaml
requests
rich
rich-click
spectra
humanize
pyaml-env
];

pythonImportsCheck = [ "multiqc" ];

meta = with lib; {
description = "Aggregate results from bioinformatics analyses across many samples into a single report";
longDescription = ''
MultiQC is a tool to create a single report with interactive plots for multiple bioinformatics analyses across many samples.

Reports are generated by scanning given directories for recognised log files.
These are parsed and a single HTML report is generated summarising the statistics
for all logs found. MultiQC reports can describe multiple analysis steps and
large numbers of samples within a single plot, and multiple analysis tools making
it ideal for routine fast quality control.

A very large number of Bioinformatics tools are supported by MultiQC. Please see the MultiQC website for a [complete list](https://multiqc.info/modules/).
MultiQC can also easily parse data from custom scripts, if correctly formatted / configured - a feature called [Custom Content](https://multiqc.info/docs/custom_content/).

More modules are being written all of the time. Please suggest any ideas as a new
[issue](https://github.com/MultiQC/MultiQC/issues) _(please include example log files)_.
'';
homepage = "https://multiqc.info/";
changelog = "https://github.com/MultiQC/MultiQC/blob/${src.rev}/CHANGELOG.md";
license = licenses.gpl3Only;
maintainers = with maintainers; [ edmundmiller ];
mainProgram = "multiqc";
};
}
38 changes: 38 additions & 0 deletions pkgs/development/python-modules/pyaml-env/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, setuptools
, wheel
, pyyaml
}:

buildPythonPackage rec {
pname = "pyaml-env";
version = "1.2.1";
pyproject = true;

src = fetchFromGitHub {
owner = "mkaranasou";
repo = "pyaml_env";
rev = "v${version}";
hash = "sha256-xSu+dksSVugShJwOqedXBrXIKaH0G5JAsynauOuP3OA=";
};

nativeBuildInputs = [
setuptools
wheel
];

propagatedBuildInputs = [
pyyaml
];

pythonImportsCheck = [ "pyaml_env" ];

meta = with lib; {
description = "Parse YAML configuration with environment variables in Python";
homepage = "https://github.com/mkaranasou/pyaml_env";
license = licenses.mit;
maintainers = with maintainers; [ edmundmiller ];
};
}
38 changes: 38 additions & 0 deletions pkgs/development/python-modules/spectra/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, setuptools
, wheel
, colormath
}:

buildPythonPackage rec {
pname = "spectra";
version = "0.0.11";
pyproject = true;

src = fetchFromGitHub {
owner = "jsvine";
repo = "spectra";
rev = "v${version}";
hash = "sha256-4A2TWTxYqckJ3DX5cd2KN3KXcmO/lQdXmOEnGi76RsA=";
};

nativeBuildInputs = [
setuptools
wheel
];

propagatedBuildInputs = [
colormath
];

pythonImportsCheck = [ "spectra" ];

meta = with lib; {
description = "Easy color scales and color conversion for Python";
homepage = "https://github.com/jsvine/spectra";
license = licenses.mit;
maintainers = with maintainers; [ edmundmiller ];
};
}
2 changes: 2 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -42054,4 +42054,6 @@ with pkgs;
insulator2 = callPackage ../applications/misc/insulator2 {};

animdl = python3Packages.callPackage ../applications/video/animdl { };

multiqc = callPackage ../applications/science/biology/multiqc { };
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd use pkgs/by-name and avoid editing the way too large all-packages.nix.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nowadays by-name is mandatory

}
4 changes: 4 additions & 0 deletions pkgs/top-level/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10082,6 +10082,8 @@ self: super: with self; {

pyaml = callPackage ../development/python-modules/pyaml { };

pyaml-env = callPackage ../development/python-modules/pyaml-env { };

pyannotate = callPackage ../development/python-modules/pyannotate { };

pyarlo = callPackage ../development/python-modules/pyarlo { };
Expand Down Expand Up @@ -13554,6 +13556,8 @@ self: super: with self; {

speaklater3 = callPackage ../development/python-modules/speaklater3 { };

spectra = callPackage ../development/python-modules/spectra { };

spectral-cube = callPackage ../development/python-modules/spectral-cube { };

speechbrain = callPackage ../development/python-modules/speechbrain { };
Expand Down