aboutsummaryrefslogtreecommitdiff
path: root/biology
diff options
context:
space:
mode:
authorJason W. Bacon <jwb@FreeBSD.org>2024-01-10 15:19:56 +0000
committerJason W. Bacon <jwb@FreeBSD.org>2024-01-10 15:19:56 +0000
commitfabf2f6b2fbf0e0eeabffa05efb9135208244601 (patch)
tree1b2a99eab1644a721a19e471c4f3656223c9e934 /biology
parent8233b2c1a93d4c4765317dea3a3273ac74cea98e (diff)
downloadports-fabf2f6b2fbf0e0eeabffa05efb9135208244601.tar.gz
ports-fabf2f6b2fbf0e0eeabffa05efb9135208244601.zip
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.
Diffstat (limited to 'biology')
-rw-r--r--biology/Makefile1
-rw-r--r--biology/py-macs3/Makefile49
-rw-r--r--biology/py-macs3/distinfo3
-rw-r--r--biology/py-macs3/files/patch-MACS3_fermi-lite_ksw.c11
-rw-r--r--biology/py-macs3/files/patch-pyproject.toml6
-rw-r--r--biology/py-macs3/files/patch-requirements.txt8
-rw-r--r--biology/py-macs3/files/patch-setup.py20
-rw-r--r--biology/py-macs3/pkg-descr6
8 files changed, 104 insertions, 0 deletions
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.