From 45b23644dab3db6c7b365cd78c569aef957b0d2f Mon Sep 17 00:00:00 2001 From: natsukium Date: Thu, 4 Jul 2024 21:36:09 +0900 Subject: [PATCH 1/2] truvari: 4.1.0 -> 4.2.2 Diff: https://github.com/ACEnglish/truvari/compare/v4.1.0...v4.2.2 Changelog: https://github.com/ACEnglish/truvari/releases/tag/v4.2.2 --- pkgs/applications/science/biology/truvari/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/science/biology/truvari/default.nix b/pkgs/applications/science/biology/truvari/default.nix index 946f4be60632..3c523b21fc64 100644 --- a/pkgs/applications/science/biology/truvari/default.nix +++ b/pkgs/applications/science/biology/truvari/default.nix @@ -15,14 +15,14 @@ let }; in python3Packages.buildPythonApplication rec { pname = "truvari"; - version = "4.1.0"; + version = "4.2.2"; pyproject = true; src = fetchFromGitHub { owner = "ACEnglish"; repo = "truvari"; rev = "v${version}"; - hash = "sha256-HFVAv1TTL/nMjr62tQKhMdwh25P/y4nBGzSbxoJxMmo="; + hash = "sha256-SFBVatcVavBfQtFbBcXifBX3YnKsxJS669vCcyjsBA4="; }; postPatch = '' @@ -31,11 +31,11 @@ in python3Packages.buildPythonApplication rec { patchShebangs repo_utils/test_files ''; - nativeBuildInputs = [ + build-system = [ python3Packages.setuptools ]; - propagatedBuildInputs = with python3Packages; [ + dependencies = with python3Packages; [ pywfa rich edlib @@ -46,6 +46,7 @@ in python3Packages.buildPythonApplication rec { pytabix bwapy pandas + pyabpoa ]; makeWrapperArgs = [ From c4de28bc2d114c02250deb6bad52ca941ce21ac7 Mon Sep 17 00:00:00 2001 From: natsukium Date: Thu, 4 Jul 2024 22:45:43 +0900 Subject: [PATCH 2/2] abpoa: init at 1.5.1 https://github.com/yangao07/abPOA --- pkgs/by-name/ab/abpoa/package.nix | 102 ++++++++++++++++++++++++++ pkgs/by-name/ab/abpoa/simd-arch.patch | 27 +++++++ pkgs/top-level/python-packages.nix | 5 ++ 3 files changed, 134 insertions(+) create mode 100644 pkgs/by-name/ab/abpoa/package.nix create mode 100644 pkgs/by-name/ab/abpoa/simd-arch.patch diff --git a/pkgs/by-name/ab/abpoa/package.nix b/pkgs/by-name/ab/abpoa/package.nix new file mode 100644 index 000000000000..361f80a3b5e5 --- /dev/null +++ b/pkgs/by-name/ab/abpoa/package.nix @@ -0,0 +1,102 @@ +{ + lib, + stdenv, + fetchFromGitHub, + simde, + zlib, + enableSse4_1 ? stdenv.hostPlatform.sse4_1Support, + enableAvx ? stdenv.hostPlatform.avxSupport, + enablePython ? false, + python3Packages, + runCommand, + abpoa, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "${lib.optionalString enablePython "py"}abpoa"; + version = "1.5.1"; + + src = fetchFromGitHub { + owner = "yangao07"; + repo = "abPOA"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-nPMzkWkjUI+vZExNEvJa24KrR0pWGk89Mvp7TCyka/w="; + }; + + patches = [ ./simd-arch.patch ]; + + postPatch = '' + cp -r ${simde.src}/* include/simde + substituteInPlace Makefile \ + --replace-fail "-march=native" "" + ''; + + nativeBuildInputs = lib.optionals enablePython ( + with python3Packages; + [ + cython + pypaBuildHook + pypaInstallHook + pythonImportsCheckHook + setuptools + ] + ); + + buildFlags = lib.optionals stdenv.hostPlatform.isx86_64 [ + ( + if enableAvx then + "avx2=1" + else if enableSse4_1 then + "sse41=1" + else + "sse2=1" + ) + ]; + + env = lib.optionalAttrs enablePython ( + if enableAvx then + { "AVX2" = 1; } + else if enableSse4_1 then + { "SSE41" = 1; } + else + { "SSE2" = 1; } + ); + + buildInputs = [ zlib ]; + + installPhase = lib.optionalString (!enablePython) '' + runHook preInstall + + install -Dm755 ./bin/abpoa -t $out/bin + + runHook postInstall + ''; + + pythonImportsCheck = [ "pyabpoa" ]; + + doInstallCheck = enablePython; + + installCheckPhase = '' + runHook preInstallCheck + + python python/example.py + + runHook postInstallCheck + ''; + + passthru.tests = { + simple = runCommand "${finalAttrs.pname}-test" { } '' + ${lib.getExe abpoa} ${abpoa.src}/test_data/seq.fa > $out + ''; + }; + + meta = with lib; { + description = "SIMD-based C library for fast partial order alignment using adaptive band"; + homepage = "https://github.com/yangao07/abPOA"; + changelog = "https://github.com/yangao07/abPOA/releases/tag/${finalAttrs.src.rev}"; + license = licenses.mit; + maintainers = with maintainers; [ natsukium ]; + mainProgram = "abpoa"; + platforms = platforms.unix; + }; +}) diff --git a/pkgs/by-name/ab/abpoa/simd-arch.patch b/pkgs/by-name/ab/abpoa/simd-arch.patch new file mode 100644 index 000000000000..424a2a4711d5 --- /dev/null +++ b/pkgs/by-name/ab/abpoa/simd-arch.patch @@ -0,0 +1,27 @@ +diff --git a/setup.py b/setup.py +index 52c0e7e..f88ec08 100644 +--- a/setup.py ++++ b/setup.py +@@ -11,11 +11,12 @@ simde = ['-DUSE_SIMDE', '-DSIMDE_ENABLE_NATIVE_ALIASES'] + + if platform.system() == "Darwin": + # note: see https://github.com/pypa/wheel/issues/406 +- simd_flag = ['-march=native', '-D__AVX2__', '-mmacosx-version-min=10.9'] + if platform.machine() in ["aarch64", "arm64"]: ++ simd_flag = ['-march=armv8-a+simd', '-D__AVX2__', '-mmacosx-version-min=10.9'] + os.environ['_PYTHON_HOST_PLATFORM'] = "macosx-10.9-arm64" + os.environ['ARCHFLAGS'] = "-arch arm64" + else: ++ simd_flag = ['-msse2', '-mmacosx-version-min=10.9'] + os.environ['_PYTHON_HOST_PLATFORM'] = "macosx-10.9-x86_64" + os.environ['ARCHFLAGS'] = "-arch x86_64" + else: +@@ -24,7 +25,7 @@ else: + elif platform.machine() in ["aarch32"]: + simd_flag = ['-march=armv8-a+simd', '-mfpu=auto -D__AVX2__'] + else: +- simd_flag=['-march=native'] ++ simd_flag=[] + if os.getenv('SSE4', False): + simd_flag=['-msse4.1'] + elif os.getenv('SSE2', False): diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4837be366cb2..faede773664f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10041,6 +10041,11 @@ self: super: with self; { py65 = callPackage ../development/python-modules/py65 { }; + pyabpoa = toPythonModule (pkgs.abpoa.override { + enablePython = true; + python3Packages = self; + }); + pyaehw4a1 = callPackage ../development/python-modules/pyaehw4a1 { }; pyatag = callPackage ../development/python-modules/pyatag { };