Skip to content

Instantly share code, notes, and snippets.

@adefelicibus
Last active April 3, 2024 20:49
Show Gist options
  • Star 20 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save adefelicibus/f6fd06df1b4bb104ceeaccdd7325b856 to your computer and use it in GitHub Desktop.
Save adefelicibus/f6fd06df1b4bb104ceeaccdd7325b856 to your computer and use it in GitHub Desktop.
Install samtools, bcftools and htslib on linux

Install Samtools, BCFTools and htslib on linux

Install some build dependencies

sudo apt-get install autoconf automake make gcc perl zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev libncurses5-dev
$ wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2 -O samtools.tar.bz2
$ tar -xjvf samtools.tar.bz2
$ cd samtools-{version}
$ make
$ sudo make prefix=/usr/local/bin install
# if you have old version such as 0.x from samtools, you may remove it and create a link to new version
$ sudo apt remove samtools
$ sudo ln -s /usr/local/bin/bin/samtools /usr/bin/samtools
# Or, you can just use the path to call samtools
$ /usr/loca/bin/bin/samtools -h
$ wget https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2 -O bcftools.tar.bz2
$ tar -xjvf bcftools.tar.bz2
$ cd bcftools-{version}
$ make
$ sudo make prefix=/usr/local/bin install
$ sudo ln -s /usr/local/bin/bin/bcftools /usr/bin/bcftools
$ wget https://github.com/samtools/htslib/releases/download/1.3.2/htslib-1.3.2.tar.bz2 -O htslib.tar.bz2
$ tar -xjvf htslib.tar.bz2
$ cd htslib-{version}
$ make
$ sudo make install
@Farah74
Copy link

Farah74 commented Mar 14, 2017

Hi ,

I'm trying to update my samtools (v0.1.18) to (v1.3.1), but got stuck here.

$ sudo make prefix=/usr/local/bin install

[sudo] password for biouser:

I've downloaded the Linux when I was in the RNASeq course before. I've tried to email them but the email was not sent. How can I proceed without typing in the password?

Thank you.

@musohail1
Copy link

Hello Colleagues,

I tried to install SAMtools using above protocol but when I used command 'make' it gave me following error

bam_tview_curses.c:41:20: fatal error: curses.h: No such file or directory
compilation terminated.
Makefile:133: recipe for target 'bam_tview_curses.o' failed
make: *** [bam_tview_curses.o] Error 1

PLEASE GUIDE

@samesense
Copy link

@musohail1 You need to install ncurses. For example, on debian/ubuntu:
sudo apt-get install libncurses5-dev libncursesw5-dev

@zsewa
Copy link

zsewa commented Mar 27, 2019

Hi adefelicibus,
thanks for the guide.

There are some typos in the install guide for samtools.
samtools is written as samtoos in some places.

Also consider adding the commands to install the build dependencies (according to https://github.com/samtools/samtools/blob/develop/INSTALL):

sudo apt-get update  # Ensure the package list is up to date
sudo apt-get install autoconf automake make gcc perl zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev libncurses5-dev

Altogether my propose for the samtools section would be:

$ sudo apt-get update && sudo apt-get install -y autoconf automake make gcc perl zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev libncurses5-dev
$ wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2 -O samtools.tar.bz2
$ tar -xjvf samtools.tar.bz2
$ cd samtools-{version}
$ make
$ sudo make prefix=/usr/local/bin install
# if you have old version such as 0.x from samtools, you may remove it and create a link to new version
$ sudo apt remove samtools
$ sudo ln -s /usr/local/bin/bin/samtools /usr/bin/samtools
# Or, you can just use the path to call samtools
$ /usr/local/bin/bin/samtools -h

Thanks and have a nice time

@lowrymj
Copy link

lowrymj commented Dec 7, 2020

@zsewa Your proposal worked perfectly. I was struggling with the installation of dependencies. I appreciate your contribution!

@MjelleLab
Copy link

error in text: $ /usr/loca/bin/bin/samtools -h
should be: $ /usr/local/bin/bin/samtools -h

@phancanhtrinh
Copy link

After I run this: $ sudo make prefix=/usr/local/bin install
I got result below. It might be run well. But when I call samtools --- Command 'samtools' not found, but can be installed with:
Please help me

mkdir -p -m 755 /usr/local/bin/bin /usr/local/bin/bin /usr/local/bin/share/man/man1
install -p samtools /usr/local/bin/bin
install -p misc/ace2sam misc/maq2sam-long misc/maq2sam-short misc/md5fa misc/md5sum-lite misc/wgsim /usr/local/bin/bin
install -p misc/blast2sam.pl misc/bowtie2sam.pl misc/export2sam.pl misc/fasta-sanitize.pl misc/interpolate_sam.pl misc/novo2sam.pl misc/plot-ampliconstats misc/plot-bamstats misc/psl2sam.pl misc/sam2vcf.pl misc/samtools.pl misc/seq_cache_populate.pl misc/soap2sam.pl misc/wgsim_eval.pl misc/zoom2sam.pl /usr/local/bin/bin
install -p -m 644 doc/samtools*.1 misc/wgsim.1 /usr/local/bin/share/man/man1

Thank you very much!

@adefelicibus
Copy link
Author

@phancanhtrinh have you installed the dependencies?
Algo, I didn't understand why you needed to make the directories in the first row.
Could you post here all the commands you used?
You can algo install all these packages using conda

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment