aboutsummaryrefslogtreecommitdiff
path: root/academic
diff options
context:
space:
mode:
authorRob van Nues <sborg63@disroot.org>2018-12-31 08:30:54 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2019-01-05 07:49:17 +0700
commit01f09cbeec562d978f78f636e1eeed9c0d6e50c8 (patch)
treee4d1c5839ea023b936d04ae504cbead784a23e6b /academic
parentcc1fa6dad0a542868d3db4dd8c529dc19f7626c8 (diff)
academic/samtools: Updated for version 1.9 + new maintainer.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'academic')
-rw-r--r--academic/samtools/README29
-rw-r--r--academic/samtools/References5
-rw-r--r--academic/samtools/samtools.SlackBuild102
-rw-r--r--academic/samtools/samtools.info14
-rw-r--r--academic/samtools/slack-desc16
5 files changed, 69 insertions, 97 deletions
diff --git a/academic/samtools/README b/academic/samtools/README
index 0203586f94268..ea600cbe26186 100644
--- a/academic/samtools/README
+++ b/academic/samtools/README
@@ -1,22 +1,11 @@
-SAM (Sequence Alignment/Map) format is a generic format for storing
-large nucleotide sequence alignments. SAM aims to be a format that:
+Prior to the introduction of HTSlib, SAMtools and BCFtools were distributed
+in a single samtools-0.1.x package.
+This old version remains available from SBo as samtools-legacy
-- Is flexible enough to store all the alignment information generated
- by various alignment programs
-- Is simple enough to be easily generated by alignment programs or
- converted from existing alignment formats
-- Is compact in file size
-- Allows most of operations on the alignment to work on a stream
- without loading the whole alignment into memory
-- Allows the file to be indexed by genomic position to efficiently
- retrieve all reads aligning to a locus.
+Samtools is now distributed as an individual package.
+Installation is set up so that the code uses an external HTSlib (also at SBo).
+Although deprecated upstream, in the case that people need parts of samtools-legacy
+(e.g header files or libbam) these can be installed from this package by modifying
+the samtools.Slackbuild.
-SAM Tools provide various utilities for manipulating alignments in the
-SAM format, including sorting, merging, indexing and generating
-alignments in a per-position format.
-
-Publication:
-Li H.*, Handsaker B.*, Wysoker A., Fennell T., Ruan J., Homer N.,
-Marth G., Abecasis G., Durbin R. and 1000 Genome Project Data
-Processing Subgroup (2009) The Sequence alignment/map (SAM) format and
-SAMtools. Bioinformatics, 25, 2078-9. [PMID: 19505943]
+Note that the sam.h of htslib differs from sam.h coming with samtools.
diff --git a/academic/samtools/References b/academic/samtools/References
deleted file mode 100644
index 1cc4af9500b22..0000000000000
--- a/academic/samtools/References
+++ /dev/null
@@ -1,5 +0,0 @@
-Publication:
-Li H.*, Handsaker B.*, Wysoker A., Fennell T., Ruan J., Homer N.,
-Marth G., Abecasis G., Durbin R. and 1000 Genome Project Data
-Processing Subgroup (2009) The Sequence alignment/map (SAM) format and
-SAMtools. Bioinformatics, 25, 2078-9. [PMID: 19505943]
diff --git a/academic/samtools/samtools.SlackBuild b/academic/samtools/samtools.SlackBuild
index 02dff9fbbe507..daa7e87dafc0c 100644
--- a/academic/samtools/samtools.SlackBuild
+++ b/academic/samtools/samtools.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for samtools
# Copyright 2013-2016 Petar Petrov slackalaxy@gmail.com
-# All rights reserved.
+# Copyright 2017-2018 Rob van Nues # All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
@@ -22,17 +22,26 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# With help about the install paths from Arch Linux AUR:
-# https://aur.archlinux.org/packages/sa/samtools/PKGBUILD
-
-PRGNAM=samtools
-VERSION=${VERSION:-0.1.19}
+PRGNAM=samtools
+VERSION=${VERSION:-1.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+# Some applications still rely on the legacy samtools API instead of using htslib
+# exclusively, in that case, install the headers in /usr/include/bam and the static
+# libbam library as well by declaring (uncommenting):
+#SAMLIB="yes"
+# and commenting out:
+SAMLIB="no"
+
+# WARNING: this package and htslib both provide a "sam.h" that aren't actually
+# compatible with each other. Be extra careful about which file you're actually
+# #including when using either of these packages for development work.
+
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -43,8 +52,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -58,7 +67,6 @@ else
fi
set -e
-
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
@@ -70,51 +78,23 @@ find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Use our CFLAGS/CXXFLAGS
-sed -i "/^C.*.*FLAGS/s/=/+=/" Makefile
+# force linking to installed htslib
+rm -r htslib-$VERSION
CFLAGS="$SLKCFLAGS" \
-make
-make razip
-
-# Install samtools, razip and bam library
-install -D -m755 samtools $PKG/usr/bin/samtools
-install -D -m755 razip $PKG/usr/bin/razip
-install -D -m644 libbam.a $PKG/usr/lib${LIBDIRSUFFIX}/libbam.a
-
-# Install bcftools its library and vsfutils
-cd bcftools
-install -D -m755 bcftools $PKG/usr/bin/bcftools
-install -D -m644 libbcf.a $PKG/usr/lib${LIBDIRSUFFIX}/libbcf.a
-install -D -m755 vcfutils.pl $PKG/usr/bin/vcfutils.pl
-
-# Include additional executables
-cd ../misc
-install -D -m755 ace2sam $PKG/usr/libexec/$PRGNAM/ace2sam
-install -D -m755 bamcheck $PKG/usr/libexec/$PRGNAM/bamcheck
-install -D -m755 maq2sam-long $PKG/usr/libexec/$PRGNAM/maq2sam-long
-install -D -m755 maq2sam-short $PKG/usr/libexec/$PRGNAM/maq2sam-short
-install -D -m755 md5fa $PKG/usr/libexec/$PRGNAM/md5fa
-install -D -m755 md5sum-lite $PKG/usr/libexec/$PRGNAM/md5sum-lite
-install -D -m755 wgsim $PKG/usr/libexec/$PRGNAM/wgsim
-
-# Include some scripts
-mkdir -p $PKG/usr/share/$PRGNAM
-cp -a \
- *.pl *.lua *.py plot-bamcheck \
- $PKG/usr/share/$PRGNAM
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --with-htslib=system \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --build=$ARCH-slackware-linux
-# Include bam header files
-cd ..
-mkdir -p $PKG/usr/include/bam
- for f in *.h ; do
- install -m644 $f "$PKG/usr/include/bam"
- done
-
-# Install manpage
-install -D -m644 $PRGNAM.1 $PKG/usr/man/man1/$PRGNAM.1
+make
+make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -124,18 +104,26 @@ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; r
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
- AUTHORS COPYING INSTALL NEWS \
+ AUTHORS LICENSE README INSTALL NEWS examples \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-cat $CWD/References > $PKG/usr/doc/$PRGNAM-$VERSION/References
-# Fix permissions in the package...
-find $PKG/usr/{doc,include,share} \
--type d -exec chmod 755 {} \; -o \
--type f -exec chmod 644 {} \;
+mkdir -p $PKG/usr/share/$PRGNAM-$VERSION
+
+cp -a \
+ misc/*.lua \
+ $PKG/usr/share/$PRGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
+# include samtools-API if set above
+if [ "$SAMLIB" = "yes" ] ; then
+ mkdir -p $PKG/usr/include/bam
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+ install -m644 libbam.a "$PKG/usr/lib${LIBDIRSUFFIX}"
+ install -m644 *.h "$PKG/usr/include/bam"
+fi
+
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/academic/samtools/samtools.info b/academic/samtools/samtools.info
index 79136533ae4cb..1d724a44e4f2e 100644
--- a/academic/samtools/samtools.info
+++ b/academic/samtools/samtools.info
@@ -1,10 +1,10 @@
PRGNAM="samtools"
-VERSION="0.1.19"
-HOMEPAGE="http://samtools.sourceforge.net/"
-DOWNLOAD="http://sourceforge.net/projects/samtools/files/samtools/0.1.19/samtools-0.1.19.tar.bz2"
-MD5SUM="ff8b46e6096cfb452003b1ec5091d86a"
+VERSION="1.9"
+HOMEPAGE="http://www.htslib.org"
+DOWNLOAD="https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2"
+MD5SUM="cca9a40d9b91b007af2ff905cb8b5924"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Petar Petrov"
-EMAIL="slackalaxy@gmail.com"
+REQUIRES="htslib"
+MAINTAINER="Rob van Nues"
+EMAIL="sborg63@disroot.org"
diff --git a/academic/samtools/slack-desc b/academic/samtools/slack-desc
index ce768600c2978..8f1c434e47e53 100644
--- a/academic/samtools/slack-desc
+++ b/academic/samtools/slack-desc
@@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
samtools: samtools (Sequence Alignment/Map Tools)
samtools:
-samtools: AM (Sequence Alignment/Map) format is a generic format for
-samtools: storing large nucleotide sequence alignments. SAM Tools provide
-samtools: various utilities for manipulating alignments in the SAM format,
-samtools: including sorting, merging, indexing and generating alignments
-samtools: in a per-position format.
-samtools:
-samtools: Home: http://samtools.sourceforge.net/
-samtools: References: /usr/doc/samtools-0.1.19/References
+samtools: SAM (Sequence Alignment/Map) format is a generic format for
+samtools: storing large nucleotide sequence alignments. The original samtools
+samtools: package has been split into three separate but tightly coordinated
+samtools: projects: htslib (C-library for handling high-throughput sequencing
+samtools: data); samtools (for handling SAM, BAM, CRAM) and bcftools (for
+samtools: handling VCF, BCF). Both samtools and bcftools are set up to use
+samtools: system-wide installed hstlib sources.
+samtools: Home: http://www.htslib.org
samtools: