Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jan 2024 15:20:37 GMT
From:      "Jason W. Bacon" <jwb@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: fabf2f6b2fbf - main - biology/py-macs3: Peak caller for TF binding sites
Message-ID:  <202401101520.40AFKb9W042873@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jwb:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fabf2f6b2fbf0e0eeabffa05efb9135208244601

commit fabf2f6b2fbf0e0eeabffa05efb9135208244601
Author:     Jason W. Bacon <jwb@FreeBSD.org>
AuthorDate: 2024-01-10 15:19:56 +0000
Commit:     Jason W. Bacon <jwb@FreeBSD.org>
CommitDate: 2024-01-10 15:19:56 +0000

    biology/py-macs3: Peak caller for TF binding sites
    
    MACS (Model-based Analysis of ChIP-Seq) is a tool for identifying
    transcription factor (TF) binding sites.   Such sites are generated
    by CHiP-Seq (CHromatin immuno-Precipitation sequencing) and ATAC-Seq
    (Assay for Transposase Accessible Chromatin Sequencing).  MACS
    identifies "peaks" in the genome sequence, which are areas enriched
    in bound TFs or accessible chromatin.
---
 biology/Makefile                                   |  1 +
 biology/py-macs3/Makefile                          | 49 ++++++++++++++++++++++
 biology/py-macs3/distinfo                          |  3 ++
 .../py-macs3/files/patch-MACS3_fermi-lite_ksw.c    | 11 +++++
 biology/py-macs3/files/patch-pyproject.toml        |  6 +++
 biology/py-macs3/files/patch-requirements.txt      |  8 ++++
 biology/py-macs3/files/patch-setup.py              | 20 +++++++++
 biology/py-macs3/pkg-descr                         |  6 +++
 8 files changed, 104 insertions(+)

diff --git a/biology/Makefile b/biology/Makefile
index 6f35c5481dc7..11fc752f7b4c 100644
--- a/biology/Makefile
+++ b/biology/Makefile
@@ -179,6 +179,7 @@
     SUBDIR += py-libsedml
     SUBDIR += py-loompy
     SUBDIR += py-macs2
+    SUBDIR += py-macs3
     SUBDIR += py-mrcfile
     SUBDIR += py-multiqc
     SUBDIR += py-ont-fast5-api
diff --git a/biology/py-macs3/Makefile b/biology/py-macs3/Makefile
new file mode 100644
index 000000000000..d2cad2892df4
--- /dev/null
+++ b/biology/py-macs3/Makefile
@@ -0,0 +1,49 @@
+PORTNAME=		MACS3
+DISTVERSIONPREFIX=	v
+DISTVERSION=		3.0.0
+CATEGORIES=		biology python
+PKGNAMEPREFIX=		${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	jwb@FreeBSD.org
+COMMENT=	Peak caller aimed at transcription factor binding sites
+WWW=		https://github.com/taoliu/MACS
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \
+		${PYNUMPY} \
+		simde>0:devel/simde \
+		${PYTHON_PKGNAMEPREFIX}cykhash>0:devel/py-cykhash@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hmmlearn>0:math/py-hmmlearn@${PY_FLAVOR}
+RUN_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}cykhash>0:devel/py-cykhash@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hmmlearn>0:math/py-hmmlearn@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \
+		bash:shells/bash
+
+USES=		localbase perl5 python shebangfix
+USE_GITHUB=	yes
+USE_PERL5=	test
+USE_PYTHON=	autoplist concurrent cython pep517
+
+GH_ACCOUNT=	macs3-project
+GH_PROJECT=	MACS
+SHEBANG_FILES=	test/cmdlinetest* test/prockreport test/*.py test/pyprofile*
+
+.include <bsd.port.options.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302509
+IGNORE=		does not run properly on FreeBSD 13.2 and earlier due to use of dynamically loaded libc by py-threadpoolctl.  Please upgrade to a newer FreeBSD or use py-macs2 instead.  See PR 276231
+.endif
+
+post-stage:
+	${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/MACS3/*/*.so
+
+# FIXME: Some tests fail due to a py-threadpoolctl issue
+# https://github.com/joblib/threadpoolctl/pull/148
+do-test: deinstall install
+	@${RM} -rf ${WRKSRC}/temp
+	@cd ${WRKSRC}/test && ./cmdlinetest tag
+
+.include <bsd.port.mk>
diff --git a/biology/py-macs3/distinfo b/biology/py-macs3/distinfo
new file mode 100644
index 000000000000..757e9bbaf640
--- /dev/null
+++ b/biology/py-macs3/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1703890666
+SHA256 (macs3-project-MACS-v3.0.0_GH0.tar.gz) = faa7ec2ea1f47b8c4cd747f00f2754d0e40051fe44d81d229d0111e3dad34a1d
+SIZE (macs3-project-MACS-v3.0.0_GH0.tar.gz) = 197389439
diff --git a/biology/py-macs3/files/patch-MACS3_fermi-lite_ksw.c b/biology/py-macs3/files/patch-MACS3_fermi-lite_ksw.c
new file mode 100644
index 000000000000..d66d83f33606
--- /dev/null
+++ b/biology/py-macs3/files/patch-MACS3_fermi-lite_ksw.c
@@ -0,0 +1,11 @@
+--- MACS3/fermi-lite/ksw.c.orig	2023-11-15 16:09:23 UTC
++++ MACS3/fermi-lite/ksw.c
+@@ -28,7 +28,7 @@
+ 
+ /* I modified this according to https://github.com/lh3/bwa/pull/283/*/
+ #ifdef USE_SIMDE
+-#include "lib/x86/sse2.h"
++#include <simde/x86/sse2.h>
+ #else
+ #include <emmintrin.h>
+ #endif
diff --git a/biology/py-macs3/files/patch-pyproject.toml b/biology/py-macs3/files/patch-pyproject.toml
new file mode 100644
index 000000000000..cf54cae8892f
--- /dev/null
+++ b/biology/py-macs3/files/patch-pyproject.toml
@@ -0,0 +1,6 @@
+--- pyproject.toml.orig	2024-01-06 15:00:01 UTC
++++ pyproject.toml
+@@ -1,2 +1,2 @@
+ [build-system]
+-requires=['setuptools>=60.0', 'numpy>=1.19', 'cykhash>=2.0,<3.0', 'Cython~=3.0', 'hmmlearn>=0.3']
++requires=['setuptools>=60.0', 'numpy>=1.19', 'cykhash>=2.0,<3.0', 'Cython>=0', 'hmmlearn>=0.3']
diff --git a/biology/py-macs3/files/patch-requirements.txt b/biology/py-macs3/files/patch-requirements.txt
new file mode 100644
index 000000000000..0c8106f79680
--- /dev/null
+++ b/biology/py-macs3/files/patch-requirements.txt
@@ -0,0 +1,8 @@
+--- requirements.txt.orig	2024-01-06 14:55:53 UTC
++++ requirements.txt
+@@ -1,4 +1,4 @@
+-Cython~=3.0
++Cython>=0
+ numpy>=1.19
+ hmmlearn>=0.3
+ cykhash>=2.0,<3.0 
diff --git a/biology/py-macs3/files/patch-setup.py b/biology/py-macs3/files/patch-setup.py
new file mode 100644
index 000000000000..58dde13ba2c2
--- /dev/null
+++ b/biology/py-macs3/files/patch-setup.py
@@ -0,0 +1,20 @@
+--- setup.py.orig	2023-11-15 16:09:23 UTC
++++ setup.py
+@@ -40,7 +40,7 @@ classifiers =[\
+ install_requires = [ "numpy>=1.19",
+                      "hmmlearn>=0.3",
+                      "cykhash>=2.0,<3.0",
+-                     "Cython~=3.0" ]
++                     "Cython>=0" ]
+ 
+ tests_requires = [ 'pytest' ]
+ 
+@@ -70,7 +70,7 @@ def main():
+ 
+     if not clang:
+         try:
+-            gcc_version_check = subprocess.check_output( ["gcc", "--version"], universal_newlines=True)
++            gcc_version_check = subprocess.check_output( ["cc", "--version"], universal_newlines=True)
+             if gcc_version_check.find("clang") != -1:
+                 clang = True
+             else:
diff --git a/biology/py-macs3/pkg-descr b/biology/py-macs3/pkg-descr
new file mode 100644
index 000000000000..7e901a88e5ea
--- /dev/null
+++ b/biology/py-macs3/pkg-descr
@@ -0,0 +1,6 @@
+MACS (Model-based Analysis of ChIP-Seq) is a tool for identifying
+transcription factor (TF) binding sites.   Such sites are generated
+by CHiP-Seq (CHromatin immuno-Precipitation sequencing) and ATAC-Seq
+(Assay for Transposase Accessible Chromatin Sequencing).  MACS
+identifies "peaks" in the genome sequence, which are areas enriched
+in bound TFs or accessible chromatin.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202401101520.40AFKb9W042873>