forked from samtools/samtools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
101 lines (72 loc) · 3.93 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Samtools implements various utilities for post-processing alignments in the
SAM, BAM, and CRAM formats, including indexing, variant calling (in conjunction
with bcftools), and a simple alignment viewer.
Building samtools
=================
The typical simple case of building Samtools using the HTSlib bundled within
this Samtools release tarball is done as follows:
cd .../samtools-1.9 # Within the unpacked release directory
./configure
make
You may wish to copy the resulting samtools executable into somewhere on your
$PATH, or run it where it is.
Rather than running-in-place like that, the next simplest typical case is to
install samtools etc properly into a directory of your choosing. Building for
installation using the HTSlib bundled within this Samtools release tarball,
and building the various HTSlib utilities such as bgzip is done as follows:
cd .../samtools-1.9 # Within the unpacked release directory
./configure --prefix=/path/to/location
make all all-htslib
make install install-htslib
You will likely wish to add /path/to/location/bin to your $PATH.
See INSTALL for full building and installation instructions and details.
Building with HTSlib plug-in support
====================================
Enabling plug-ins causes some parts of HTSlib to be built as separate modules.
There are two advantages to this:
* The static library libhts.a has fewer dependencies, which makes linking
third-party code against it easier.
* It is possible to build extra plug-ins in addition to the ones that are
bundled with HTSlib. For example, the hts-plugins repository
<https://github.com/samtools/htslib-plugins> includes a module that
allows direct access to files stored in an iRODS data management
repository (see <https://irods.org/>).
To build with plug-ins, you need to use the --enable-plugins configure option
as follows:
cd .../samtools-1.9 # Within the unpacked release directory
./configure --enable-plugins --prefix=/path/to/location
make all all-htslib
make install install-htslib
There are two other configure options that affect plug-ins. These are:
--with-plugin-dir=DIR plug-in installation location
--with-plugin-path=PATH default plug-in search path
The default for --with-plugin-dir is <prefix>/libexec/htslib.
--with-plugin-path sets the built-in search path used to find the plug-ins. By
default this is the directory set by the --with-plugin-dir option. Multiple
directories should be separated by colons.
Setting --with-plugin-path is useful if you want to run directly from
the source distribution instead of installing the package. In that case
you can use:
cd .../samtools-1.9 # Within the unpacked release directory
./configure --enable-plugins --with-plugin-path=$PWD/htslib-1.9
make all all-htslib
It is possible to override the built-in search path using the HTS_PATH
environment variable. Directories should be separated by colons. To
include the built-in path, add an empty entry to HTS_PATH:
export HTS_PATH=:/my/path # Search built-in path first
export HTS_PATH=/my/path: # Search built-in path last
export HTS_PATH=/my/path1::/my/path2 # Search built-in path between others
Using an optimised zlib library
===============================
Samtools has been minimally tested against both the Intel-optimised and
CloudFlare-optimised zlibs and shown to work.
They can be downloaded from:
https://github.com/jtkukunas/zlib # Intel
https://github.com/cloudflare/zlib # CloudFlare
Neither Samtools nor HTSlib needs recompiling to use these optimised libraries,
but the LD_LIBRARY_PATH environment variable should be set to a directory
containing the libz.so.1 file.
Benchmarks comparing the various zlibs are available at:
http://www.htslib.org/benchmarks/zlib.html
It is recommended that you perform your own rigorous tests for an entire
pipeline if you wish to switch to one of the optimised zlib implementations.