aboutsummaryrefslogtreecommitdiff
path: root/biology
diff options
context:
space:
mode:
authorJason W. Bacon <jwb@FreeBSD.org>2019-08-13 15:30:21 +0000
committerJason W. Bacon <jwb@FreeBSD.org>2019-08-13 15:30:21 +0000
commitcdd2c0e9b9f34e168dabfc1b3654658dcaa1cdee (patch)
treea89cdbda6001bb8ea69b39a4b346b43e8dd5865e /biology
parent2a2e8da848dcdccb8f9505cf11e9d8c706fe06f9 (diff)
downloadports-cdd2c0e9b9f34e168dabfc1b3654658dcaa1cdee.tar.gz
ports-cdd2c0e9b9f34e168dabfc1b3654658dcaa1cdee.zip
biology/bolt-lmm: Upgrade to 2.3.4
Remove previously upstreamed patches New Makefile patch that preserves default behavior and should be palatable to upstream
Notes
Notes: svn path=/head/; revision=508832
Diffstat (limited to 'biology')
-rw-r--r--biology/bolt-lmm/Makefile19
-rw-r--r--biology/bolt-lmm/distinfo6
-rw-r--r--biology/bolt-lmm/files/patch-src_Jackknife.cpp13
-rw-r--r--biology/bolt-lmm/files/patch-src_LDscoreCalibration.cpp24
-rw-r--r--biology/bolt-lmm/files/patch-src_Makefile88
-rw-r--r--biology/bolt-lmm/files/patch-src_SnpData.cpp20
-rw-r--r--biology/bolt-lmm/files/patch-src_StatsUtils.cpp13
7 files changed, 63 insertions, 120 deletions
diff --git a/biology/bolt-lmm/Makefile b/biology/bolt-lmm/Makefile
index 1d9a822d9d11..616d24986b07 100644
--- a/biology/bolt-lmm/Makefile
+++ b/biology/bolt-lmm/Makefile
@@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= bolt-lmm
-DISTVERSION= 2.3.2
-PORTREVISION= 2
+DISTVERSION= 2.3.4
CATEGORIES= biology
MASTER_SITES= https://data.broadinstitute.org/alkesgroup/BOLT-LMM/downloads/
DISTNAME= BOLT-LMM_v${PORTVERSION}
@@ -21,11 +20,19 @@ LIB_DEPENDS= libnlopt.so:math/nlopt \
# both merely add a GCC requirement.
USES= compiler:gcc-c++11-lib gmake
-BUILD_WRKSRC= ${WRKDIR}/${DISTNAME}/src
-INSTALL_WRKSRC= ${WRKDIR}/${DISTNAME}/src
-CXXFLAGS_i386= -DUSE_SSE -msse -msse2
-CXXFLAGS_amd64= -DUSE_SSE
+BUILD_WRKSRC= ${WRKDIR}/${DISTNAME}/src
+INSTALL_WRKSRC= ${WRKDIR}/${DISTNAME}/src
+CXXFLAGS_i386= -DUSE_SSE -msse -msse2
+CXXFLAGS_amd64= -DUSE_SSE
CXXFLAGS_powerpc64= -DNO_WARN_X86_INTRINSICS -mvsx
+MAKE_ARGS= BOOST_INSTALL_DIR=${LOCALBASE} \
+ NLOPT_INSTALL_DIR=${LOCALBASE} \
+ ZLIB_STATIC_DIR=/usr/lib \
+ LIBSTDCXX_STATIC_DIR=/usr/lib \
+ GLIBC_STATIC_DIR=/usr/lib \
+ SSEFLAGS="" \
+ MEMCPY="" \
+ LLAPACK="-lopenblas -lgfortran"
PORTEXAMPLES= *
diff --git a/biology/bolt-lmm/distinfo b/biology/bolt-lmm/distinfo
index 18551a76e51a..618a36d60050 100644
--- a/biology/bolt-lmm/distinfo
+++ b/biology/bolt-lmm/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1558717810
-SHA256 (BOLT-LMM_v2.3.2.tar.gz) = ee505a04138f6c80bfefad4df4b81a2d07e72114dd8329d187c97543f5a0521f
-SIZE (BOLT-LMM_v2.3.2.tar.gz) = 335057533
+TIMESTAMP = 1565528176
+SHA256 (BOLT-LMM_v2.3.4.tar.gz) = 2477faff5028ff8fee5d8f4e6b0cab6d0752b268fd508fe64530a66807d9b0c0
+SIZE (BOLT-LMM_v2.3.4.tar.gz) = 335128004
diff --git a/biology/bolt-lmm/files/patch-src_Jackknife.cpp b/biology/bolt-lmm/files/patch-src_Jackknife.cpp
deleted file mode 100644
index 6d6a970889c3..000000000000
--- a/biology/bolt-lmm/files/patch-src_Jackknife.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- src/Jackknife.cpp.orig 2019-08-03 00:15:27 UTC
-+++ src/Jackknife.cpp
-@@ -28,8 +28,8 @@ namespace Jackknife {
- using std::make_pair;
-
- double stddev(const vector <double> &x, int n) {
-- for (int i = 0; i < n; i++) if (isnan(x[i])) return NAN;
-- for (int i = 0; i < n; i++) if (isinf(x[i])) return INFINITY;
-+ for (int i = 0; i < n; i++) if (std::isnan(x[i])) return NAN;
-+ for (int i = 0; i < n; i++) if (std::isinf(x[i])) return INFINITY;
- double s = 0.0, s2 = 0.0;
- for (int i = 0; i < n; i++) {
- s += x[i];
diff --git a/biology/bolt-lmm/files/patch-src_LDscoreCalibration.cpp b/biology/bolt-lmm/files/patch-src_LDscoreCalibration.cpp
deleted file mode 100644
index 51a1ef896340..000000000000
--- a/biology/bolt-lmm/files/patch-src_LDscoreCalibration.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
---- src/LDscoreCalibration.cpp.orig 2019-08-03 00:18:05 UTC
-+++ src/LDscoreCalibration.cpp
-@@ -201,8 +201,8 @@ namespace LDscoreCalibration {
- snps[m].MAF >= minMAF && // MAF threshold
- statsRef[m] > 0 && // ref stat available
- statsCur[m] > 0 && // cur stat available
-- !isnan(LDscores[m]) && // LD Score available
-- !isnan(LDscoresChip[m]); // LD Score weight available
-+ !std::isnan(LDscores[m]) && // LD Score available
-+ !std::isnan(LDscoresChip[m]); // LD Score weight available
-
- // perform outlier removal
- double outlierChisqThresh = std::max(MIN_OUTLIER_CHISQ_THRESH, N * outlierVarFracThresh);
-@@ -256,8 +256,8 @@ namespace LDscoreCalibration {
- maskSnps[m] =
- snps[m].MAF >= minMAF && // MAF threshold
- stats[m] > 0 && // stat available
-- !isnan(LDscores[m]) && // LD Score available
-- !isnan(LDscoresChip[m]); // LD Score weight available
-+ !std::isnan(LDscores[m]) && // LD Score available
-+ !std::isnan(LDscoresChip[m]); // LD Score weight available
-
- // perform outlier removal
- double outlierChisqThresh = std::max(MIN_OUTLIER_CHISQ_THRESH, N * outlierVarFracThresh);
diff --git a/biology/bolt-lmm/files/patch-src_Makefile b/biology/bolt-lmm/files/patch-src_Makefile
index 7cd1f25f5420..cf667e25edd4 100644
--- a/biology/bolt-lmm/files/patch-src_Makefile
+++ b/biology/bolt-lmm/files/patch-src_Makefile
@@ -1,21 +1,27 @@
---- src/Makefile.orig 2018-03-13 02:44:52 UTC
+--- src/Makefile.orig 2019-08-11 03:05:04 UTC
+++ src/Makefile
-@@ -1,29 +1,28 @@
+@@ -1,31 +1,35 @@
++
### modify these paths to local Boost and NLopt install directories
-BOOST_INSTALL_DIR = /home/pl88/boost_1_58_0/install
-NLOPT_INSTALL_DIR = /n/groups/price/poru/HSPH_SVN/src/BOLT-LMM/nlopt-2.4.2
-+BOOST_INSTALL_DIR ?= ${LOCALBASE}
-+# Redundant on FreeBSD NLOPT_INSTALL_DIR = /n/groups/price/poru/HSPH_SVN/src/BOLT-LMM/nlopt-2.4.2
++### by setting them in the environment or make command line args
++### which will override variables set with ?=
- INTELROOT = /n/groups/price/poru/external_software/intel_mkl_2018
- MKLROOT = ${INTELROOT}/mkl
+-INTELROOT = /n/groups/price/poru/external_software/intel_mkl_2019u4
+-MKLROOT = ${INTELROOT}/mkl
-ZLIB_STATIC_DIR = /n/groups/price/poru/external_software/zlib/zlib-1.2.11 # probably unnecessary on most systems
-LIBSTDCXX_STATIC_DIR = /n/groups/price/poru/external_software/libstdc++/usr/lib/gcc/x86_64-redhat-linux/4.8.5/
-GLIBC_STATIC_DIR = /home/pl88/glibc-static/usr/lib64
-+ZLIB_STATIC_DIR ?= /usr/lib
-+LIBSTDCXX_STATIC_DIR ?= /usr/lib
-+GLIBC_STATIC_DIR ?= /usr/lib
-
++BOOST_INSTALL_DIR ?= /home/pl88/boost_1_58_0/install
++NLOPT_INSTALL_DIR ?= /n/groups/price/poru/HSPH_SVN/src/BOLT-LMM/nlopt-2.4.2
+
++INTELROOT ?= /n/groups/price/poru/external_software/intel_mkl_2019u4
++MKLROOT ?= ${INTELROOT}/mkl
++ZLIB_STATIC_DIR ?= /n/groups/price/poru/external_software/zlib/zlib-1.2.11 # probably unnecessary on most systems
++LIBSTDCXX_STATIC_DIR ?= /n/groups/price/poru/external_software/libstdc++/usr/lib/gcc/x86_64-redhat-linux/4.8.5/
++GLIBC_STATIC_DIR ?= /home/pl88/glibc-static/usr/lib64
++
ifeq ($(strip ${linking}),)
linking = dynamic
endif
@@ -36,33 +42,25 @@
-CFLAGS += -msse -msse2
-CFLAGS += -DUSE_SSE -DMEASURE_DGEMM -DVERBOSE
-CFLAGS += -Wall
-+CXXFLAGS += -DMEASURE_DGEMM -DVERBOSE
-+CXXFLAGS += -Wall
-
++# Set SSEFLAGS to empty string in the env or make command line if building on
++# systems with no SSE such as PowerPC
++SSEFLAGS ?= -msse -msse2 -DUSE_SSE
++CXXFLAGS += ${SSEFLAGS} -DMEASURE_DGEMM -DVERBOSE -Wall
+-
# add Boost include and lib paths
-@@ -38,9 +37,9 @@ endif
- # add NLopt include and lib paths
- ifneq ($(strip ${NLOPT_INSTALL_DIR}),)
- CPATHS += -I${NLOPT_INSTALL_DIR}/api
-- LPATHS += -L${NLOPT_INSTALL_DIR}/.libs
-+ LPATHS += -L${NLOPT_INSTALL_DIR}/libs
- ifeq (${linking},dynamic)
-- LPATHS += -Wl,-rpath,${NLOPT_INSTALL_DIR}/.libs
-+ LPATHS += -Wl,-rpath,${NLOPT_INSTALL_DIR}/libs
- endif
- endif
-
-@@ -52,7 +51,7 @@ ifneq ($(strip ${ZLIB_STATIC_DIR}),)
+ ifneq ($(strip ${BOOST_INSTALL_DIR}),)
+ CPATHS += -I${BOOST_INSTALL_DIR}/include
+@@ -52,7 +56,7 @@ ifneq ($(strip ${ZLIB_STATIC_DIR}),)
endif
# add MKL paths (if not compiling with g++, i.e., compiling with icpc)
-ifneq (${CC},g++)
-+ifneq (${CXX},${CXX})
++ifeq (${CXX},icpc)
CPATHS += -I${MKLROOT}/include
- ifeq (${linking},dynamic)
- LPATHS += -L${MKLROOT}/lib/intel64 -Wl,-rpath,${MKLROOT}/lib/intel64 # for libmkl*
-@@ -61,28 +60,28 @@ ifneq (${CC},g++)
+ ifeq (${linking},static)
+ LPATHS += -L${INTELROOT}/lib/intel64 '-Wl,-rpath,$$ORIGIN/lib' # for libiomp5.so (now packaged with binary)
+@@ -65,34 +69,34 @@ ifneq (${CC},g++)
endif
# add flags for static linking; build LAPACK/MKL component of link line
@@ -70,10 +68,10 @@
- CFLAGS += -fopenmp
- LFLAGS += -fopenmp
- LLAPACK = -llapack -lgfortran
-+ifeq (${CXX},${CXX})
++ifneq (${CXX},icpc)
+ CXXFLAGS += -fopenmp
+ LDFLAGS += -fopenmp
-+ LLAPACK = -lopenblas -lgfortran
++ LLAPACK ?= -llapack -lgfortran
ifeq (${linking},static)
- LFLAGS += -static
+ LDFLAGS += -static
@@ -92,39 +90,47 @@
+ CXXFLAGS += -qopenmp
+ LDFLAGS += -qopenmp
+ CXXFLAGS += -Wunused-variable -Wpointer-arith -Wuninitialized -Wreturn-type -Wcheck -Wshadow
+ LIOMP5 = -liomp5
+ LDL = -ldl
ifeq (${linking},static)
- LFLAGS += -static
+ LDFLAGS += -static
LPATHS += -L${GLIBC_STATIC_DIR} -L${ZLIB_STATIC_DIR}
- LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a -Wl,--end-group
+ LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group
else ifeq (${linking},static-except-glibc)
- LFLAGS += -static-intel -static-libstdc++ -static-libgcc
+ LDFLAGS += -static-intel -static-libstdc++ -static-libgcc
LPATHS += -L${ZLIB_STATIC_DIR}
- LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a -Wl,--end-group
+ LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group
+ else ifeq (${linking},static-except-glibc-intel)
+- LFLAGS += -static-libstdc++ -static-libgcc
++ LDFLAGS += -static-libstdc++ -static-libgcc
+ LPATHS += -L${ZLIB_STATIC_DIR}
+ LLAPACK = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core
else
-@@ -95,7 +94,8 @@ else
+@@ -105,7 +109,7 @@ else
endif
# build link line (minus flags)
-LLIBS = -lboost_program_options -lboost_iostreams -lz -lnlopt
+LLIBS = -lnlopt -lboost_program_options -lboost_iostreams -lz
-+# LLIBS = /usr/local/lib/libboost_program_options.a -lnlopt -lboost_iostreams -lz
ifeq (${linking},static-except-glibc)
- L = -L${LIBSTDCXX_STATIC_DIR} ${LPATHS} -Wl,--wrap=memcpy -Wl,-Bstatic ${LLIBS} ${LLAPACK} -Wl,-Bdynamic -lpthread -lm
- else
-@@ -105,16 +105,18 @@ endif
+ L = -L${LIBSTDCXX_STATIC_DIR} ${LPATHS} -Wl,--wrap=memcpy -Wl,-Bstatic ${LLIBS} ${LLAPACK} -Wl,-Bdynamic ${LIOMP5} -lpthread -lm ${LDL}
+ else ifeq (${linking},static-except-glibc-intel)
+@@ -117,16 +121,20 @@ endif
T = bolt
-O = Bolt.o BoltParams.o BoltParEstCV.o BoltReml.o CovariateBasis.o DataMatrix.o FileUtils.o Jackknife.o LDscoreCalibration.o MapInterpolater.o MatrixUtils.o MemoryUtils.o NonlinearOptMulti.o NumericUtils.o PhenoBuilder.o RestrictSnpSet.o SnpData.o SnpInfo.o SpectrumTools.o StatsUtils.o StringUtils.o Timer.o memcpy.o
-+O = Bolt.o BoltParams.o BoltParEstCV.o BoltReml.o CovariateBasis.o DataMatrix.o FileUtils.o Jackknife.o LDscoreCalibration.o MapInterpolater.o MatrixUtils.o MemoryUtils.o NonlinearOptMulti.o NumericUtils.o PhenoBuilder.o RestrictSnpSet.o SnpData.o SnpInfo.o SpectrumTools.o StatsUtils.o StringUtils.o Timer.o
++# Set to empty string in env or make command line to use system memcpy
++MEMCPY ?= memcpy.o
++O = Bolt.o BoltParams.o BoltParEstCV.o BoltReml.o CovariateBasis.o DataMatrix.o FileUtils.o Jackknife.o LDscoreCalibration.o MapInterpolater.o MatrixUtils.o MemoryUtils.o NonlinearOptMulti.o NumericUtils.o PhenoBuilder.o RestrictSnpSet.o SnpData.o SnpInfo.o SpectrumTools.o StatsUtils.o StringUtils.o Timer.o ${MEMCPY}
OMAIN = BoltMain.o $O
-.PHONY: clean
+.PHONY: clean all
-+all: $T
++all: ${T}
+
%.o: %.cpp
- ${CC} ${CFLAGS} ${CPATHS} -o $@ -c $<
diff --git a/biology/bolt-lmm/files/patch-src_SnpData.cpp b/biology/bolt-lmm/files/patch-src_SnpData.cpp
deleted file mode 100644
index 5763ee62879c..000000000000
--- a/biology/bolt-lmm/files/patch-src_SnpData.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/SnpData.cpp.orig 2019-08-03 00:23:17 UTC
-+++ src/SnpData.cpp
-@@ -996,7 +996,7 @@ namespace LMM {
- for (int w = 0; w < W; w++)
- if (isProximal(m, mp, windows[w].first, windows[w].second)) {
- foundProximal = true;
-- if (!isnan(r2)) {
-+ if (!std::isnan(r2)) {
- for (int a = 0; a < A; a++) {
- double weight = pow((snps[mp].MAF * (1-snps[mp].MAF)), alphaMAFdeps[a]);
- LDscores[w*A+a] += weight * r2;
-@@ -1048,7 +1048,7 @@ namespace LMM {
- if (snps[mp].chrom != snps[m].chrom) {
- fillSnpRow(&mpRow[0], mp);
- double r2 = compute_r2(&mRow[0], &mpRow[0], Nstride);
-- if (!isnan(r2)) {
-+ if (!std::isnan(r2)) {
- totOffChrom_r2s += r2;
- numOffChrom_r2s++;
- }
diff --git a/biology/bolt-lmm/files/patch-src_StatsUtils.cpp b/biology/bolt-lmm/files/patch-src_StatsUtils.cpp
deleted file mode 100644
index 7e4e35d33963..000000000000
--- a/biology/bolt-lmm/files/patch-src_StatsUtils.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- src/StatsUtils.cpp.orig 2019-08-03 00:24:37 UTC
-+++ src/StatsUtils.cpp
-@@ -33,8 +33,8 @@ namespace StatsUtils {
- if (n <= 1) return NAN;
- double s = 0.0, s2 = 0.0;
- for (uint64 i = 0; i < n; i++) {
-- if (isnan(x[i])) return NAN;
-- if (isinf(x[i])) return INFINITY;
-+ if (std::isnan(x[i])) return NAN;
-+ if (std::isinf(x[i])) return INFINITY;
- s += x[i];
- s2 += x[i]*x[i];
- }