diff --git a/recipes/eagle2/0001-Use-CXX-and-flags.patch b/recipes/eagle2/0001-Use-CXX-and-flags.patch new file mode 100644 index 0000000000000..ffe333a43d662 --- /dev/null +++ b/recipes/eagle2/0001-Use-CXX-and-flags.patch @@ -0,0 +1,5 @@ +--- src/Makefile ++++ src/Makefile +@@ -1,99 +1,99 @@ +-O = DipTreePBWT.o Eagle.o EagleImpMiss.o EagleParams.o EaglePBWT.o FileUtils.o GenoData.o HapHedge.o MapInterpolater.o MemoryUtils.o NumericUtils.o StaticMultimap.o StringUtils.o SyncedVcfData.o Timer.o memcpy.o ++O = DipTreePBWT.o Eagle.o EagleImpMiss.o EagleParams.o EaglePBWT.o FileUtils.o GenoData.o HapHedge.o MapInterpolater.o MemoryUtils.o NumericUtils.o StaticMultimap.o StringUtils.o SyncedVcfData.o Timer.o diff --git a/recipes/eagle2/build.sh b/recipes/eagle2/build.sh new file mode 100644 index 0000000000000..73c8f41b3773f --- /dev/null +++ b/recipes/eagle2/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -euo pipefail + +echo "Building Eagle2 version ${PKG_VERSION}" + +cd src || exit 1 + +sed -i.bak 's/memcpy.o//g' Makefile + +# Set up environment variables for building +export BOOST_INSTALL_DIR=$PREFIX +export HTSLIB_DIR=$PREFIX/lib +export BLAS_DIR=$PREFIX/lib +export ZLIB_STATIC_DIR=$PREFIX/lib + +# Run make +make CC=${CXX} \ + -e -j ${CPU_COUNT} \ + CFLAGS="$CXXFLAGS -Wno-unused-result -std=c++11" \ + BOOST_INSTALL_DIR=$BOOST_INSTALL_DIR \ + HTSLIB_DIR=$HTSLIB_DIR \ + BLAS_DIR=$BLAS_DIR \ + ZLIB_STATIC_DIR=$ZLIB_STATIC_DIR \ + LIBSTDCXX_STATIC_DIR=${PREFIX}/lib \ + linking=dynamic + +echo "Installing Eagle2..." +mkdir -p "${PREFIX}/bin" +install -m 755 eagle "${PREFIX}/bin/" +echo "Eagle2 installation completed successfully" + +cd .. || exit 1 \ No newline at end of file diff --git a/recipes/eagle2/meta.yaml b/recipes/eagle2/meta.yaml new file mode 100644 index 0000000000000..84092b0410a33 --- /dev/null +++ b/recipes/eagle2/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "2.4.1" %} + +package: + name: eagle2 + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('eagle2', max_pin='x.x.x') }} + +source: + url: https://github.com/poruloh/Eagle/archive/refs/tags/v{{ version }}.tar.gz + sha256: 85804bfe972186ccb66e602856d6e04044302e5c0dbf9309849b0cde981e3432 + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - htslib >=1.9 + - bzip2 + - zlib + - boost-cpp >=1.58 + - openblas >=0.2.19 + run: + - {{ pin_compatible('bzip2') }} + - {{ pin_compatible('zlib') }} + - {{ pin_compatible('boost-cpp') }} + - {{ pin_compatible('openblas') }} + + +test: + commands: + - eagle -h + +about: + home: https://github.com/poruloh/Eagle + license: GPL-3.0-or-later + summary: The Eagle software estimates haplotype phase either within a genotyped cohort or using a phased reference panel. + description: + Eagle2 is now the default phasing method used by the Sanger and Michigan imputation servers and uses a new + very fast HMM-based algorithm that improves speed and accuracy over existing methods via two key ideas; + a new data structure based on the positional Burrows-Wheeler transform and a rapid search algorithm that + explores only the most relevant paths through the HMM. Compared to the Eagle1 algorithm, Eagle2 has similar + speed but much greater accuracy at sample sizes <50,000; as such, we have made the Eagle2 algorithm the default option. + (The Eagle1 algorithm can be accessed via the --v1 flag.) Eagle v2.3+ supports phasing sequence data with or without + a reference and also supports phasing chrX. \ No newline at end of file