Languages Translated

Languages Translated(語言轉換)

2012年8月9日 星期四

安裝BWA過程中可能出現的錯誤

Burrows-Wheeler Aligner (BWA)是一款開放原始碼的aligner
也是很多人會使用的NGS alignment程式
安裝BWA其實非常簡單

1.首先連上BWA的網站,進入下載頁面

   選一個你想下載的版本,複製連結

2.輸入 wget http://sourceforge.net/projects/bio-bwa/files/bwa-0.6.2.tar.bz2/download

   檔案非常小很快就可以下好

3.解壓縮下載好的壓所檔
   
    tar -jxvf bwa-0.6.2.tar.bz2

4.進入解壓縮好的資料夾

   cd bwa-0.6.2

5.編譯

    make

但是編譯的過程中可能也會碰到下面的錯誤

錯誤訊息如下:

gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwa.c -o bwa.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bamlite.c -o bamlite.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   utils.c -o utils.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwt.c -o bwt.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwtio.c -o bwtio.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwtaln.c -o bwtaln.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwtgap.c -o bwtgap.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bntseq.c -o bntseq.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   stdaln.c -o stdaln.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwaseqio.c -o bwaseqio.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwase.c -o bwase.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   kstring.c -o kstring.o
ar -csru libbwa.a bwa.o bamlite.o utils.o bwt.o bwtio.o bwtaln.o bwtgap.o bntseq                                                                             .o stdaln.o bwaseqio.o bwase.o kstring.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   QSufSort.c -o QSufSort.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwt_gen.c -o bwt_gen.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   is.c -o is.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwtmisc.c -o bwtmisc.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   bwtindex.c -o bwtindex.o
gcc -c -g -Wall -O2 -DHAVE_PTHREAD   ksw.c -o ksw.o
在包含自 ksw.c:29 的檔案中:
/usr/lib/gcc/i686-redhat-linux/4.4.6/include/emmintrin.h:32:3: 錯誤:#error "SSE                                                                             2 instruction set not enabled"
ksw.c:43: 錯誤:expected specifier-qualifier-list before 「__m128i」
ksw.c: In function 「ksw_qinit」:
ksw.c:55: 錯誤:「ksw_query_t」 沒具名為 「qp」 的成員
ksw.c:55: 錯誤:「__m128i」 未宣告 (在此函式內第一次使用)
ksw.c:55: 錯誤:(即使在一個函式內多次出現,每個未宣告的識別碼在其
ksw.c:55: 錯誤:所在的函式內只報告一次。)
ksw.c:55: 錯誤:expected expression before 「)」 token
ksw.c:56: 錯誤:「ksw_query_t」 沒具名為 「H0」 的成員
ksw.c:56: 錯誤:「ksw_query_t」 沒具名為 「qp」 的成員
ksw.c:57: 錯誤:「ksw_query_t」 沒具名為 「H1」 的成員
ksw.c:57: 錯誤:「ksw_query_t」 沒具名為 「H0」 的成員
ksw.c:58: 錯誤:「ksw_query_t」 沒具名為 「E」 的成員
ksw.c:58: 錯誤:「ksw_query_t」 沒具名為 「H1」 的成員
ksw.c:59: 錯誤:「ksw_query_t」 沒具名為 「Hmax」 的成員
ksw.c:59: 錯誤:「ksw_query_t」 沒具名為 「E」 的成員
ksw.c:73: 錯誤:「ksw_query_t」 沒具名為 「qp」 的成員
ksw.c:82: 錯誤:「ksw_query_t」 沒具名為 「qp」 的成員
ksw.c: In function 「ksw_sse2_16」:
ksw.c:98: 錯誤:「__m128i」 未宣告 (在此函式內第一次使用)
ksw.c:98: 錯誤:expected 「;」 before 「zero」
ksw.c:110: 錯誤:「zero」 未宣告 (在此函式內第一次使用)
ksw.c:110: 警告:隱含宣告函式 「_mm_set1_epi32」
ksw.c:111: 錯誤:「gapoe」 未宣告 (在此函式內第一次使用)
ksw.c:111: 警告:隱含宣告函式 「_mm_set1_epi8」
ksw.c:112: 錯誤:「gape」 未宣告 (在此函式內第一次使用)
ksw.c:113: 錯誤:「shift」 未宣告 (在此函式內第一次使用)
ksw.c:114: 錯誤:「H0」 未宣告 (在此函式內第一次使用)
ksw.c:114: 錯誤:「ksw_query_t」 沒具名為 「H0」 的成員
ksw.c:114: 錯誤:「H1」 未宣告 (在此函式內第一次使用)
ksw.c:114: 錯誤:「ksw_query_t」 沒具名為 「H1」 的成員
ksw.c:114: 錯誤:「E」 未宣告 (在此函式內第一次使用)
ksw.c:114: 錯誤:「ksw_query_t」 沒具名為 「E」 的成員
ksw.c:114: 錯誤:「Hmax」 未宣告 (在此函式內第一次使用)
ksw.c:114: 錯誤:「ksw_query_t」 沒具名為 「Hmax」 的成員
ksw.c:117: 警告:隱含宣告函式 「_mm_store_si128」
ksw.c:124: 錯誤:expected 「;」 before 「e」
ksw.c:125: 錯誤:「h」 未宣告 (在此函式內第一次使用)
ksw.c:125: 警告:隱含宣告函式 「_mm_load_si128」
ksw.c:126: 警告:隱含宣告函式 「_mm_slli_si128」
ksw.c:134: 警告:隱含宣告函式 「_mm_adds_epu8」
ksw.c:134: 錯誤:「S」 未宣告 (在此函式內第一次使用)
ksw.c:135: 警告:隱含宣告函式 「_mm_subs_epu8」
ksw.c:136: 錯誤:「e」 未宣告 (在此函式內第一次使用)
ksw.c:137: 警告:隱含宣告函式 「_mm_max_epu8」
ksw.c:138: 錯誤:「f」 未宣告 (在此函式內第一次使用)
ksw.c:139: 錯誤:「max」 未宣告 (在此函式內第一次使用)
ksw.c:161: 警告:隱含宣告函式 「_mm_movemask_epi8」
ksw.c:161: 警告:隱含宣告函式 「_mm_cmpeq_epi8」
ksw.c:167: 警告:隱含宣告函式 「_mm_srli_si128」
ksw.c:167: 警告:隱含宣告函式 「_mm_extract_epi16」
ksw.c: In function 「ksw_sse2_8」:
ksw.c:208: 錯誤:「__m128i」 未宣告 (在此函式內第一次使用)
ksw.c:208: 錯誤:expected 「;」 before 「zero」
ksw.c:219: 錯誤:「zero」 未宣告 (在此函式內第一次使用)
ksw.c:220: 錯誤:「gapoe」 未宣告 (在此函式內第一次使用)
ksw.c:220: 警告:隱含宣告函式 「_mm_set1_epi16」
ksw.c:221: 錯誤:「gape」 未宣告 (在此函式內第一次使用)
ksw.c:222: 錯誤:「H0」 未宣告 (在此函式內第一次使用)
ksw.c:222: 錯誤:「ksw_query_t」 沒具名為 「H0」 的成員
ksw.c:222: 錯誤:「H1」 未宣告 (在此函式內第一次使用)
ksw.c:222: 錯誤:「ksw_query_t」 沒具名為 「H1」 的成員
ksw.c:222: 錯誤:「E」 未宣告 (在此函式內第一次使用)
ksw.c:222: 錯誤:「ksw_query_t」 沒具名為 「E」 的成員
ksw.c:222: 錯誤:「Hmax」 未宣告 (在此函式內第一次使用)
ksw.c:222: 錯誤:「ksw_query_t」 沒具名為 「Hmax」 的成員
ksw.c:232: 錯誤:expected 「;」 before 「e」
ksw.c:233: 錯誤:「h」 未宣告 (在此函式內第一次使用)
ksw.c:236: 警告:隱含宣告函式 「_mm_adds_epi16」
ksw.c:236: 錯誤:「S」 未宣告 (在此函式內第一次使用)
ksw.c:237: 錯誤:「e」 未宣告 (在此函式內第一次使用)
ksw.c:238: 警告:隱含宣告函式 「_mm_max_epi16」
ksw.c:239: 錯誤:「f」 未宣告 (在此函式內第一次使用)
ksw.c:240: 錯誤:「max」 未宣告 (在此函式內第一次使用)
ksw.c:242: 警告:隱含宣告函式 「_mm_subs_epu16」
ksw.c:258: 警告:隱含宣告函式 「_mm_cmpgt_epi16」
make: *** [ksw.o] Error 1


遇到這個錯誤的時候

請進入bwa-0.6.2.資料夾中  打開 Makefile修改內容

輸入 vim Makefile

>


CC=                     gcc
CXX=            g++
CFLAGS=         -g -Wall -O2
CXXFLAGS=       $(CFLAGS)
AR=                     ar
DFLAGS=         -DHAVE_PTHREAD #-D_NO_SSE2 #-D_FILE_OFFSET_BITS=64
LOBJS=          bwa.o bamlite.o utils.o bwt.o bwtio.o bwtaln.o bwtgap.o bntseq.o stdaln.o \
                        bwaseqio.o bwase.o kstring.o
AOBJS=          QSufSort.o bwt_gen.o \
                        is.o bwtmisc.o bwtindex.o ksw.o simple_dp.o \
                        bwape.o cs2nt.o \
                        bwtsw2_core.o bwtsw2_main.o bwtsw2_aux.o bwt_lite.o \
                        bwtsw2_chain.o fastmap.o bwtsw2_pair.o
...........



請將
DFLAGS=         -DHAVE_PTHREAD #-D_NO_SSE2 #-D_FILE_OFFSET_BITS=64

修改為

DFLAGS=         -DHAVE_PTHREAD -D_NO_SSE2 #-D_FILE_OFFSET_BITS=64


離開並存檔 ESC + :wq

在bwa-0.6.2資料夾中重新編譯

make

就可以完成安裝


linux下如何安裝Boost

如果是進行sequencing 相關的bioinformatic的人  多多少少會接觸到Illumina的資料

Illumina本身也有推出一套可以進行alignment的軟體  稱之為CASAVA

該軟體現階段更新至 version 1.8.2版本  而該軟體就需要用到Boost

這也是本人第一次遇到要安裝Boost

其實安裝boost這個C++函式庫的方式並不難,
但是對於一個linux新手來說還是會搞得一個頭兩個大


下面就是一步一步的用最精簡的方式完成boost的安裝

首先進入Boost網站中下載的頁面,選擇最新的Current Release

點入Download的頁面中,會有四種壓縮格式bz, 7z, zip及gzip, 我這邊使用gzip格式說明

首先進入LINUX中


1.首先下載檔案

wget http://sourceforge.net/projects/boost/files/boost/1.50.0/boost_1_50_0.tar.gz/download

2.解壓縮

tar -xzvf boost_1_50_0.tar.gz

3.進入解壓縮完的資料夾

cd  boost_1_50_0

4. 導出boost的編譯器

執行   ./bootstrap.sh

5. 進行編譯安裝(預設安裝在/usr/include)

./bjam " "-sTOOLS=gcc" "--includedir=/usr/include" "--libdir=/usr/lib/boost" install


接下來就完成了

如果有要使用ABySS這個程式進行de novo assembly

那boost也將是你必須安裝的程式





2012年5月31日 星期四

一個特別的島

一個特別的島

風景簡單 四面是海 礁石沙灘隨處可見
氣候簡單 不是大風就是太陽 下雨也是又快又大
生態簡單 滿島仙人掌 大型動物扣掉牛狗貓大概只有人
語言簡單 台語在幾乎通行無阻 但是腔調你不一定能聽懂
裝扮簡單 每個人都曬得黑黑的 包著頭巾袖套 分辨不出是誰
情感簡單 有話直說 虛偽的客套不屬於這裡

但是一切的簡單同時出現在一起就是不簡單
而這份不簡單就出現在澎湖
一個你一定聽過 卻不一定了解的島