diff --git a/CHANGELOG.md b/CHANGELOG.md index f489730e..c26f48ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,12 @@ If MD5 sum is not listed for a certain release then it means that the container * Miscellaneous goes here +## [1.6.0] - 2023-10-20 + +### Added + +* Added `samtools` to `gwas.sif` container + ## [1.5.1] - 2023-10.20 ### Fixed diff --git a/docker/README.md b/docker/README.md index 7bc6e68f..8aa727d2 100644 --- a/docker/README.md +++ b/docker/README.md @@ -59,6 +59,7 @@ The detailed description of the available container [files](https://github.com/c | gwas.sif | plink2_avx2 | v2.00a3.6LM AVX2 Intel (24 Jan 2020) | [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html) | gwas.sif | PRSice_linux | 2.3.3 (2020-08-05) | [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html) | gwas.sif | regenie | v3.2.8 | [MIT/Boost](https://github.com/rgcgithub/regenie/blob/master/LICENSE) + | gwas.sif | samtools | v1.12 | [MIT/ExpatD](https://github.com/samtools/samtools/blob/develop/LICENSE) | gwas.sif | shapeit4.2 | v4.2.2 | [MIT](https://opensource.org/licenses/MIT) | gwas.sif | shapeit5 phase_rare | v5.1.1 | [MIT](https://opensource.org/licenses/MIT) | gwas.sif | shapeit5 phase_common | v5.1.1 | [MIT](https://opensource.org/licenses/MIT) diff --git a/docker/dockerfiles/gwas/Dockerfile b/docker/dockerfiles/gwas/Dockerfile index 3274a69a..1f974aef 100644 --- a/docker/dockerfiles/gwas/Dockerfile +++ b/docker/dockerfiles/gwas/Dockerfile @@ -170,4 +170,11 @@ COPY /scripts/install_duohmm.sh /tmp/duohmm/ RUN bash /tmp/duohmm/install_duohmm.sh && \ rm -rf /tmp/duohmm + +# samtools +WORKDIR /tmp/samtools +COPY /scripts/install_samtools.sh /tmp/samtools/ +RUN bash /tmp/samtools/install_samtools.sh && \ + rm -rf /tmp/samtools + WORKDIR /tools diff --git a/docker/scripts/apt_get_essential.sh b/docker/scripts/apt_get_essential.sh index fc085ad9..bd60584f 100644 --- a/docker/scripts/apt_get_essential.sh +++ b/docker/scripts/apt_get_essential.sh @@ -1,7 +1,7 @@ #!/bin/sh set -euo pipefail -apt-get update && apt-get install -y --no-install-recommends apt-utils=2.0.9 +apt-get update && apt-get install -y --no-install-recommends apt-utils=2.0.10 apt-get update && apt-get install -y --no-install-recommends ca-certificates=20230311ubuntu0.20.04.1 && \ update-ca-certificates @@ -12,27 +12,27 @@ apt-get update && apt-get install -y --no-install-recommends \ build-essential=12.8ubuntu1 \ bzip2=1.0.8-2 \ cmake=3.16.3-1ubuntu1.20.04.1 \ - curl=7.68.0-1ubuntu2.19 \ + curl=7.68.0-1ubuntu2.21 \ dos2unix=7.4.0-2 \ gfortran=4:9.3.0-1ubuntu2 \ git=1:2.25.1-1ubuntu3.11 \ less=551-1ubuntu0.1 \ libatlas-base-dev=3.10.3-8ubuntu7 \ - libcurl4-openssl-dev=7.68.0-1ubuntu2.19 \ + libcurl4-openssl-dev=7.68.0-1ubuntu2.21 \ libgomp1=10.5.0-1ubuntu1~20.04 \ - libgsl-dev=2.5+dfsg-6build1 \ + libgsl-dev=2.5+dfsg-6+deb10u1build0.20.04.1 \ libnss3=2:3.49.1-1ubuntu1.9 \ libpcre2-dev=10.34-7ubuntu0.1 \ libxt-dev=1:1.1.5-1 \ pandoc=2.5-3build2 \ pandoc-citeproc=0.15.0.1-1build4 \ parallel=20161222-1.1 \ - perl=5.30.0-9ubuntu0.4 \ + perl=5.30.0-9ubuntu0.5 \ pkg-config=0.29.1-0ubuntu4 \ - tar=1.30+dfsg-7ubuntu0.20.04.2 \ + tar=1.30+dfsg-7ubuntu0.20.04.4 \ tofrodos=1.7.13+ds-4 \ unzip=6.0-25ubuntu1.1 \ - vim=2:8.1.2269-1ubuntu5.17 \ + vim=2:8.1.2269-1ubuntu5.21 \ wget=1.20.3-1ubuntu2 \ zlib1g-dev=1:1.2.11.dfsg-2ubuntu1.5 \ && \ diff --git a/docker/scripts/install_samtools.sh b/docker/scripts/install_samtools.sh new file mode 100644 index 00000000..174adbea --- /dev/null +++ b/docker/scripts/install_samtools.sh @@ -0,0 +1,11 @@ +#!/bin/sh +set -euo pipefail + +# bcfools +git clone --depth 1 -b 1.12 https://github.com/samtools/samtools.git && \ +cd bcftools && \ + autoheader && \ + autoconf -Wno-syntax && \ + ./configure --with-htslib=/usr/ && \ + make -j12 && \ + make install diff --git a/tests/test_gwas.py b/tests/test_gwas.py index 8763c4d7..385caf55 100644 --- a/tests/test_gwas.py +++ b/tests/test_gwas.py @@ -151,6 +151,12 @@ def test_gwas_regenie(): assert out.returncode == 0 +def test_gwas_samtools(): + call = f'singularity run {pth} samtools --help' + out = subprocess.run(call.split(' ')) + assert out.returncode == 0 + + def test_gwas_shapeit4(): call = f'singularity run {pth} shapeit4.2 --help' out = subprocess.run(call.split(' ')) diff --git a/version/version.py b/version/version.py index 4857ae45..cbf56352 100644 --- a/version/version.py +++ b/version/version.py @@ -1,8 +1,8 @@ _MAJOR = "1" -_MINOR = "5" +_MINOR = "6" # On main and in a nightly release the patch should be one ahead of the last # released build. -_PATCH = "1" +_PATCH = "0" # This is mainly for nightly builds which have the suffix ".dev$DATE". See # https://semver.org/#is-v123-a-semantic-version for the semantics. _SUFFIX = ""