生信技能樹的轉錄組學習開班了, 第一個任務是 安裝軟體 , 于是我花了一個下午時間和Linux鬥智鬥勇。
系統準備
windows10: Unbuntu on windows10
微軟的良心
軟體準備
我的習慣:
- 家目錄下建立src檔案夾,用于存放軟體包
- 家目錄下建立biosoft檔案夾,用于安裝軟體
為了提高下載下傳速度,我們需要替換
/etc/apt/source.list
中預設鏡像源。方法參考自
中國科學技術大學開源鏡像站# 備份
cd /etc/apt/
sudo cp source.list source.list.bk
# 替換
sudo sed -i 's/http/https/g' sources.list
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' sources.list
# 更新
sudo apt-get update
sudo apt-get upgrade
選擇合适的鏡像站,讓你的速度飛起來
sratookit
功能: 下載下傳,操作,驗證NCBI SRA中二代測序資料
網址:
https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software步驟:
cd src
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2-1/sratoolkit.2.8.2-1-ubuntu64.tar.gz
tar -zxvf sratoolkit.2.8.2-1-ubuntu64.tar.gz
mv sratoolkit.2.8.2-1-ubuntu64 ~/biosoft
# 加入環境變量
echo 'PATH=$PATH:~/biosoft/sratoolkit.2.8.2-1-ubuntu64/bin' >> ~/.bashrc
# 測試
prefetch -v
# 嘗試下載下傳,預設存放在家目錄下的ncbi檔案夾中
prefetch -c SRR390728
閱讀官方文章進一步了解:
- 如何開啟ascp加速下載下傳
- vdb-config更改基本設定
fastqc
功能: 可視化展示二代測序資料品質
網站:
http://www.bioinformatics.babraham.ac.uk/projects/fastqc/# 判斷系統是否安裝java
java -version
# 安裝java, 請改成openjdk-9-jdk,下面的是錯誤示範
sudo apt install openjdk-9-jre-headless
# 驗證
java -version
# openjdk version "9-internal"
# OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
# OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)
# 安裝fastqc
cd src
wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
unzip fastqc_v0.11.5.zip
mv FastQC/ ~/biosoft/
cd ~/biosoft/FastQC/
chmod 770 fastqc
# 添加環境變量, 我用sed修改
sed -i '/^PATH/s/\(.*\)/\1:~\/biosoft\/FastQC\//' ~/.bashrc
source ~/.bashrc
fastqc -v
# FastQC v0.11.5
拓展:
- 了解fastqc結果中各個圖的含義
- 掌握如何從fastqc的結果中提取資料
- 學習sed的用法, http://dongweiming.github.io/sed_and_awk/
samtools
SAM: 存放高通量測序比對結果的标準格式
功能: Reading/writing/editing/indexing/viewing SAM/BAM/CRAM format
網站:
http://samtools.sourceforge.net/安裝:
cd src
# prerequsite
## system requirement
sudo apt install autoconf libz-dev libbz2-dev liblzma-dev libssl-dev
### zlib2
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && make && sudo make install && cd .. && rm -rf zlib-1.2.11
### bzip2
wget http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar -zxvf bzip2-1.0.6.tar.gz && cd bzip2-1.0.6 && make && sudo make install && cd .. && rm -rf bzip2-1.0.6
### curses
sudo apt-get install libncurses5-dev
### htslib
git clone https://github.com/samtools/htslib.git
cd htslib
autoreconf
# building samtools
git clone https://github.com/samtools/samtools.git
cd samtools
autoconf -Wno-syntax
./configure
make && make install prefix=$HOME/biosoft/samtools
## add PATH
sed '/^PATH/s/\(.*\)/\1:~\/biosoft\/samtools\/bin/' .bashrc -i
source ~/.bashrc
samtools --help
順便安裝bcftools
cd src
git clone https://github.com/samtools/bcftools.git
make && make install prefix=$HOME/biosoft/bcftools
make clean
sed '/^PATH/s/\(.*\)/\1:~\/biosoft\/bcftools\/bin/' .bashrc -i
source ~/.bashrce
bcftools -h
因為用的是github,是以以後更新就用下面指令
cd htslib; git pull
cd ../bcftools; git pull
make clean
make
吐槽: 編譯的時候需要安裝好多前置包,真麻煩!
HISAT2
功能: 将測序結果比對到參考基因組上
http://ccb.jhu.edu/software/hisat2/index.shtmlcd src
wget ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip
unzip hisat2-2.1.0-source.zip
# 編譯hisat2
cd hisat2-2.1.0
make
rm -f *.h *.cpp
cd ../
mv hisat2-2.1.0 ~/biosoft/hisat2
# add to PATH
sed '/^PATH/s/\(.*\)/\1:~\/biosoft\/hisat2/' ~/.bashrc -i
source ~/.bashrc
# test
hisat2 -h
吐槽: 居然沒有make install !!!
- HISAT2支援
,也就是可以內建SRATOOLS的,但是需要安裝額外包,可以看文章自己折騰。--sra-acc <SRA accession number>
HTSeq
功能: 根據比對結果統計基因count
# prerequsites
sudo apt-get install python-pip
pip install --upgrade pip
sudo apt-get install build-essential python2.7-dev python-numpy python-matplotlib
## 驗證, 保證無報錯
python -V
## python
python
>>> import numpy
>>> import matplotlib
## install HTSeq
pip install htseq
## 驗證
python
>>> import HTSeq
教程:
推薦:
- 推薦安裝一個ipython,學習ipython如何使用
- 将軟體包安裝到目前使用者目錄下
pip install --user xxx
R
Ubuntu 14.04的自帶R版本跟不上時代的變化,然後自己編譯的坑有太多,是以先用Linux處理資料,然後在Windows下分析資料。這樣就很輕松了。一些需要編譯的軟體包,還可以用RTools。
R:
https://cran.r-project.org/Rstudio:
https://www.rstudio.com/二進制版本: R官方提供了Ubuntu最新版本更新方法,如下
# 添加Secure APT
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
# 添加deb到source.list
vi source.list
deb https://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu xenial/
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe
# 更新并安裝
sudo apt-get update
sudo apt-get install r-base
# (optional)如果要自己編譯R
sudo apt-get install r-base-dev
安裝之後建議修改一下R包鏡像源,提高下載下傳速度。
vi ~/.Rprofile
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
編譯部分:新手階段不要輕易嘗試,如果你能順利搞定,你的Linux能力已經過關了
如何處理
./configure
中出現的問題:
- configure: error: No F77 compiler found
sudo apt-get install gfortran
- configure: error: --with-readline=yes (default) and headers/libs are not available
# 其實可以--with-readlines=no, 但是還是把東西裝了吧
install libreadline-dev
- configure: error: --with-x=yes (default) and X11 headers/libs are not available
# 因為是CLI模式,不需要GUI
./configure --with-x=no
- configure: error: pcre >= 8.20 library and headers are required
sudo apt-get install libpcre3 libpcre3-dev
注: 上面安裝其他軟體時用到的包,其實也有一部分是R所需要的,如果出錯的話,也是谷歌+必應+百度一個一個解決。
./configure --with-x=no --prefix=$HOME/biosoft/R3.4.1
最後配置成功後會出現如下結果:
R is now configured for x86_64-pc-linux-gnu
Source directory: .
Installation directory: /usr/local
C compiler: gcc -g -O2
Fortran 77 compiler: f95 -g -O2
Default C++ compiler: g++ -g -O2
C++98 compiler: g++ -g -O2
C++11 compiler: g++ -std=gnu++11 -g -O2
C++14 compiler: g++ -std=gnu++14 -g -O2
C++17 compiler:
Fortran 90/95 compiler: gfortran -g -O2
Obj-C compiler:
Interfaces supported:
External libraries: readline, curl
Additional capabilities: NLS
Options enabled: shared BLAS, R profiling
Capabilities skipped: PNG, JPEG, TIFF, cairo, ICU
Options not enabled: memory profiling
Recommended packages: yes
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages
這些警告無傷大雅,畢竟CLI看不了PDF。
make
然後我發現一個錯誤
error: jni.h: No such file or directory
原因是之前的
openjdk-9-jre-headless
無頭, 不完整,是以需要重新安裝一個完整的
# 先解除安裝
sudo apt-get remove openjdk-9-jre-headless
# 後安裝最完整java環境
sudo apt-get install openjdk-9-jdk
然後重新
make && make install
我以為自己不會遇到問題了,結果
installing doc ...
/usr/bin/install: 無法擷取'NEWS.pdf' 的檔案狀态(stat): 沒有那個檔案或目錄
/usr/bin/install: 無法擷取'NEWS.pdf' 的檔案狀态(stat): 沒有那個檔案或目錄
Makefile:121: recipe for target 'install-sources2' failed
MDZZ!本來就沒有考慮到x11子產品,不能搞pdf,你和我說報錯!于是我默默去百度一下,給出的方法是忽略錯誤
make install -i
謝天謝地,終于通過了!!!添加環境變量測試一下吧
sed '/^PATH/s/\(.*\)/\1:~\/biosoft\/R-3\.4\.1\/bin\//' .bashrc -i
R
> .libPath()
[1] "/home/xzg/biosoft/R-3.4.1/lib/R/library"
# 安裝Hadley大神的包壓壓驚
install.packages("tidyverse")
一點經驗
以後在Ubuntu安裝軟體之前,先保證如下被安裝了。
## build-essential
sudo apt-get install build-essential
## java
sudo apt install openjdk-9-jdk
## 各種包
sudo apt install autoconf libz-dev libbz2-dev liblzma-dev libssl-dev
### zlib2
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && make && sudo make install && cd .. && rm -rf zlib-1.2.11
### bzip2
wget http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar -zxvf bzip2-1.0.6.tar.gz && cd bzip2-1.0.6 && make && sudo make install && cd .. && rm -rf bzip2-1.0.6
### curses
sudo apt-get install libncurses5-dev
- R編譯需要的Java必須是完全體,是以必須是 openjdk-9-jdk,不然無限報錯
-
可以忽略系統報錯,繼續走下去,很多時候一點小錯是沒有關系的make -i
- 如果
寫錯了,然後最後安裝的地方錯了, 不能簡單的把軟體包挪個位置就行了,至少要把目錄内的./configure --prefix=/path/to/where
和R-3.4.1/bin/R
的路徑進行修改。R-3.4.1/lib/R/bin/R
- make得要好好學習,有些時候不能
一套走下來,有點作者可能沒有定義install./configure && make && make install prefix=/path/to/where
- 我們遇到的問題基本上無數前人已經填坑了,是以谷歌百度必應總能找到, 如果你想偷懶,那你可以加入我的知識星球,向我提問。
我的知識星球