Skip to content

Commit

Permalink
Update MuSE to latest version 2.1.2 (bioconda#47957)
Browse files Browse the repository at this point in the history
* update version, change build number, change to sha256

* add run_exports

* edit sha256

* clean up recipe

* re-trigger CI

* edit typo

* add C compiler and openmp

* add bzip2

* add xz

* add make flags

* add libcurl

* edit build.sh

* Pass the C++ env vars

* Patch install_muse.sh

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>

* add build reqs

* move boost-cpp, htslib, and gperftools

* add missing deps

* edit dependencies

* update to 2.1.1

* fix patch

* coderabbit suggestions

* update to 2.1.2

* add makefile patch

* change to inc

* add debug statements

* edit patch

* Update build.sh

* edit build.sh

* edit build.sh

* Update fix-install_muse.sh.patch

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* edit build.sh

* clean up recipe

* edit makefile.patch

* add patch

* edit patches

* add -ldl

* edit build.sh

* edit build.sh

* skip osx x86_64 for now

---------

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Co-authored-by: Joshua Zhuang <[email protected]>
Co-authored-by: mencian <[email protected]>
Co-authored-by: Martin Grigorov <[email protected]>
Co-authored-by: Martin Tzvetanov Grigorov <[email protected]>
Co-authored-by: Ramprasad Neethiraj <[email protected]>
  • Loading branch information
6 people authored Nov 14, 2024
1 parent bda9210 commit c7ec561
Show file tree
Hide file tree
Showing 5 changed files with 204 additions and 23 deletions.
51 changes: 51 additions & 0 deletions recipes/muse/0001-Makefile.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
diff --git a/Makefile b/Makefile
index 5edd6e1..78d946c 100755
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
-CPP := g++
-CC := gcc
-LINK := g++
+CPP := ${CXX}
+CC := ${CC}
+LINK := ${CXX}
mkfile_dir := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))

CSOURCES= $(wildcard src/*.c)
@@ -11,12 +11,12 @@ COMMONOBJS= lib/libhts.a lib/libboost_iostreams.a lib/libtcmalloc_minimal.a
Warnings=-Wreturn-type -Warray-bounds -Wmaybe-uninitialized -Waddress
WarningsAsErrors=$(Warnings) -Werror=return-type -Werror=array-bounds -Werror=address
CFLAGS= $(WarningsAsErrors) -Wno-unused-function
-CPPFLAGS= $(WarningsAsErrors) -Wno-unused-function -std=c++11
+CPPFLAGS= $(WarningsAsErrors) -Wno-unused-function -std=c++14

RELEASE_FLAGS= -O3 -g

# Includes
-INCLUDES = -Iinc/
+INCLUDES += -Iinc/ -Iinc/htslib -I$(PREFIX)/include
#
# Common flags
COMMONFLAGS += $(INCLUDES)
@@ -24,7 +24,7 @@ COMMONFLAGS += $(INCLUDES)
CXXFLAGS += $(COMMONFLAGS)
CFLAGS += $(COMMONFLAGS)
CPPFLAGS += $(COMMONFLAGS)
-COMMONLIBS= -Llib/ -lz -lm -lpthread -lbz2 -lcurl -lcrypto -llzma -fopenmp
+COMMONLIBS += -Llib/ -lz -lm -lpthread -lbz2 -lcurl -lcrypto -llzma -lhts -ldl -fopenmp -L${PREFIX}/lib

#LIBS += $(COMMONLIBS) -ltcmalloc
LIBS += $(COMMONLIBS)
@@ -38,10 +38,10 @@ all: $(TARGET)
.SUFFIXES: .c .cpp .o

%.c.o: %.c
- $(CC) $(CFLAGS) $(RELEASE_FLAGS) -c $< -o $@
+ $(CC) $(CFLAGS) $(RELEASE_FLAGS) $(INCLUDES) $(LIBS) -c $< -o $@

%.cpp.o: %.cpp
- $(CPP) $(CPPFLAGS) $(RELEASE_FLAGS) $(OPENMP) -c $< -o $@
+ $(CPP) $(CPPFLAGS) $(RELEASE_FLAGS) $(OPENMP) $(INCLUDES) $(LIBS) -c $< -o $@

$(TARGET): $(OBJS) Makefile
$(LINKLINE)
7 changes: 0 additions & 7 deletions recipes/muse/0001-add-LDFLAGS.patch

This file was deleted.

31 changes: 27 additions & 4 deletions recipes/muse/build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
#!/usr/bin/env bash
#!/bin/bash
set -euo pipefail

make CPP="${CXX}" CPPFLAGS="${CXXFLAGS}"
export LIBPATH="-L${PREFIX}/lib"
export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib"
export CFLAGS="${CFLAGS} -O3"

mkdir -p "${PREFIX}/bin"
cp MuSE "${PREFIX}/bin/"
rm -rf boost_1_70_0/

if [[ `uname` == "Darwin" ]]; then
ln -sf ${CC} ${PREFIX}/bin/clang
ln -sf ${CXX} ${PREFIX}/bin/clang++
else
ln -sf ${CC} ${PREFIX}/bin/gcc
ln -sf ${CXX} ${PREFIX}/bin/g++
fi

./install_muse.sh

if [[ `uname` == "Darwin" ]]; then
rm -rf ${PREFIX}/bin/clang
rm -rf ${PREFIX}/bin/clang++
else
rm -rf ${PREFIX}/bin/gcc
rm -rf ${PREFIX}/bin/g++
fi

install -d "${PREFIX}/bin"
install -v -m 0755 MuSE "${PREFIX}/bin"
84 changes: 84 additions & 0 deletions recipes/muse/fix-install_muse.sh.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
diff --git a/install_muse.sh b/install_muse.sh
index 7bc2153..f8ab6e3 100755
--- a/install_muse.sh
+++ b/install_muse.sh
@@ -4,13 +4,21 @@ make clean

mkdir -p lib

+if [[ `uname` == "Darwin" ]]; then
+ export TOOL=clang
+else
+ export TOOL=gcc
+fi
+
# compile boost library
-cd boost_1_70_0/
-./bootstrap.sh
+cd boost-1.86.0/
+./bootstrap.sh --with-toolset="${TOOL}" --prefix="${PREFIX}"
./b2 --clean
-./b2
+./b2 toolset="${TOOL}" --layout=system link=static \
+ threading=multi strip=on include="${PREFIX}/include" \
+ variant=release address-model=64 install

-cp stage/lib/libboost_iostreams.a ../lib/
+cp -f ${PREFIX}/lib/libboost_iostreams.a ../lib/
cd ..

# compile libtcmalloc
@@ -22,12 +30,12 @@ fi

git clone https://github.com/gperftools/gperftools.git
cd gperftools
-git checkout gperftools-2.9.1
+git checkout gperftools-2.16
./autogen.sh
-./configure --libdir="$PWD"
-make -j4
+./configure --libdir="${PWD}" --prefix="${PREFIX}"
+make -j${CPU_COUNT}
make install
-cp libtcmalloc_minimal.a ../lib/
+cp -f libtcmalloc_minimal.a ../lib/
cd ..

# combine htslib
@@ -42,27 +50,15 @@ cd htslib
git checkout 1.9
#git submodule update --init --recursive
autoreconf -i
-./configure
-make -j4
-cp libhts.a ../lib/
+./configure --enable-libcurl --enable-plugins \
+ LDFLAGS="-L${PREFIX}/lib -Wl,-R${PREFIX}/lib" \
+ CPPFLAGS="-I${PREFIX}/include"
+make -j${CPU_COUNT}
+cp -f libhts.a ../lib/

cd ..

-make
-
-#clean htslib and gperftools and boost libraries
-rm -r boost_1_70_0/stage
-
-chmod -R 755 gperftools
-rm -r gperftools
-
-chmod -R 755 htslib
-rm -r htslib
-
-
-
-
-
-
-
-
+CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" \
+ CC="${CC}" CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" \
+ LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" \
+ make -j"${CPU_COUNT}"
54 changes: 42 additions & 12 deletions recipes/muse/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,61 @@
{% set name = "MuSE" %}
{% set version = "2.1.2" %}
{% set sha256 = "48df7ec3f64244400243163b48eb658105854b7b0d6287af98242dd89f396f59" %}

package:
name: muse
version: 1.0.rc
name: {{ name|lower }}
version: {{ version }}

source:
md5: c63fdb48c041f6f9545879f1a7e4da58
url: https://github.com/danielfan/MuSE/archive/v1.0-rc.tar.gz
- url: https://github.com/wwylab/MuSE/archive/refs/tags/v{{ version }}.tar.gz
sha256: {{ sha256 }}
patches:
- 0001-add-LDFLAGS.patch
- 0001-Makefile.patch
- fix-install_muse.sh.patch
- url: https://github.com/boostorg/boost/releases/download/boost-1.86.0/boost-1.86.0-b2-nodocs.tar.gz
sha256: 2128a4c96862b5c0970c1e34d76b1d57e4a1016b80df85ad39667f30b1deba26
folder: boost-1.86.0

build:
number: 8
number: 0
skip: True # [osx]
run_exports:
- {{ pin_subpackage('muse', max_pin="x") }}

requirements:
build:
- make
- {{ compiler('cxx') }}
- {{ compiler('c') }}
- make
- autoconf
- automake
- libtool
host:
- llvm-openmp # [osx]
- libgomp # [linux]
- libcurl
- icu
- bzip2
- xz
- zlib
run:
- zlib
- llvm-openmp # [osx]
- libgomp # [linux]

test:
commands:
- MuSE 2>&1 | grep Version > /dev/null
- "MuSE 2>&1 | grep Version > /dev/null"

about:
home: "http://bioinformatics.mdanderson.org/main/MuSE"
license: "https://github.com/danielfan/MuSE/blob/master/LICENSE"
summary: Somatic point mutation caller
home: "https://github.com/wwylab/MuSE"
license: "GPL-2.0-or-later"
license_family: GPL
license_file: "LICENSE"
summary: "An accurate and ultra-fast somatic point mutation calling tool for whole-genome sequencing (WGS) and whole-exome sequencing (WES) data from heterogeneous tumor samples."
doc_url: "https://bioinformatics.mdanderson.org/public-software/muse"
dev_url: "https://github.com/wwylab/MuSE"

extra:
identifiers:
- doi:10.1101/gr.278456.123
- doi:10.1186/s13059-016-1029-6

0 comments on commit c7ec561

Please sign in to comment.