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日 星期四

一個特別的島

一個特別的島

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

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




2010年10月30日 星期六

台北101-WASABI

生魚片跟日式炸物還不錯的店家

日式抹茶好喝 海鮮還可以接受

其他普通 甜點跟牛肉虛弱 價錢偏貴(果汁果凍OK)

最便宜大概是加完服務費680的假日特惠午餐(2 hrs)

喜歡生魚片跟海鮮的人可以吃到爽  但是東西種類不夠多是致命傷


左上的烤物我覺得黃金魚蛋不錯  鯛魚跟雞翅普通
右上的炸物不錯 炸蝦很脆 黃金馬鈴薯好吃 炸鰻魚串腸好吃
左下的快炒豆芽牛小排 奇怪的豆芽家有點老的牛小排 普通
右下白蘿蔔泥調千島  搭配炸蝦超好吃

右上的兩個有明太子的圓壽司 蝦壽司跟鰻魚壽司  (後兩者好吃)
右下是生魚片壽司  鮪魚赤身(紅)跟旗魚(橘)還有透抽(白)握壽司非常好吃
左上是溫泉蛋  可是我覺得不太熟(2~3分熟)  有點不符合我的胃口
左下是生魚片冷盤  鮪魚赤身跟旗魚真的超級好吃啦!!!!

鹽酥螃蟹也很好吃  烤杏鮑菇普通

黃金魚蛋跟白蘿蔔還魚皮煮的關東煮湯好喝

鮭魚握壽司(橘色)  有明太子的是透抽握壽司 還有鳳螺  味道都不錯

蟳蟹也很新鮮

旗魚入口即化的口感讓我一吃再吃  附帶一題嫩薑片不錯 很對味

秋蟹也很肥 母蟹有抱蛋  喜歡的人不要錯過

海鮮大合照

這邊很推的飲料之一  日式抹茶 好喝

現打芒果調的果汁還有石榴果醋

西瓜跟百香果

非常甜的明月冰心  雖然不難吃 但是我不愛太甜
還有日式花生跟芝麻麻糬

抹茶羊羹  紅豆糕跟泡芙  典型日式甜點

2010年10月22日 星期五

超簡單料理-五分鐘學會做pizza

pizza是簡單好吃的料理

吃起來方便又快速非常符合現代人的習慣

但是外面一個pizza隨隨便便都要個200~300以上

好不好吃都還是大問題  現在就教你

如何用最容易得到的材料 最簡單的做法做出pizza


以下是材料

1.厚片白吐司數片
2.起士數片(三明治起司OK)
3.玉米罐頭
4.番茄醬少許
5.法蘭克熱狗數條
6.墨魚少許
7.洋菇數顆
8.洋蔥一顆
9.粗粒黑胡椒
10.鹽

首先先確認一下厚片白吐司  我這邊是做四人份的所以一份材料四片


1.先把白吐司用平底鍋不佳遊用小火烤脆(烤麵包機可)

2.兩面翻烤數次,小心不要燒焦,將吐司立起來四個邊烤脆

3.烤好的吐司放起來備用

4.以麵包刀將土司斜對角對切

5.一份四片,切口排成對角

7.塗上番茄醬,推平

8.用起司覆蓋土司表面

9.洋蔥一顆切短絲備用

10.洋菇數顆切片備用

11.法蘭克熱狗切丁備用

12.生墨魚切絲洗乾淨去掉墨囊備用

13.鍋中放油熱鍋後,中火快炒洋蔥,洋蔥軟了之後加入洋菇拌炒一下起鍋放涼備用

14.墨魚絲燙到八分熟放冷備用

15.在剛剛放滿起司的土司片上舖滿一層玉米,再舖上洋蔥跟洋菇的拌炒物跟少許墨魚,最後再灑上法蘭克火腿丁,最後灑上粗粒黑胡椒

16.再蓋上數片起司

17.放入微波爐,家用一般微波爐強,微波2分鐘(請自行調整不要過久大概是會冒熱煙的程度)

18.成品出爐,一份大概夠3~4個人食用

簡單好吃又方便,希望大家會喜歡!!!

2010年10月14日 星期四

超簡單料理-五分鐘學會義大利海鮮燉飯

海鮮燉飯是非常簡單也非常好吃的料理
材料不難取得又可以讓你享有餐廳級的美味
絕對是閒閒在家可以自己試做的料理喔
下面教你五分鐘學會怎麼弄燉飯

材料

1.生米少許(可以水洗一下 不要泡)
2.洋蔥半顆到一顆
3.文蛤數顆
4.羊肉片少許(可有可無 其他肉亦可)
5.洋菇或是蘑菇數顆
6.小白菜少許(可有可無)
7.花枝圈少許(可有可無)
8.義式香料(個人喜好)
9.高湯(我是用濃縮的干貝雞湯)
10.蝦皮
11.奶油(要求者可拿來代替油)
12.粗粒黑胡椒跟起士粉

步驟
1.白米用水沖一下,沖完就把水瀝掉

2.洋蔥切條,洋菇切片,小白菜跟肉片切絲,文蛤吐完沙瀝乾,花枝圈洗乾淨

3.鍋子開火放入油(可用奶油代替),中火讓油微熱

4.放入蝦皮爆香,蝦皮呈金黃色之後加入洋蔥條拌炒,火不要太大

5.洋蔥炒到微成金黃,放入洋菇切片跟小白菜私,火略大拌炒,不用太久,起鍋備用

6.鍋內放入少量油,開大火熱鍋,油熱了放入肉絲,花枝圈跟文蛤快炒

7.肉微變色時加入剛剛起鍋備用的材料,拌炒

8.加入白米稍微翻炒之後加入少量的水(水量要看米量 大概加入後可以蓋住米的水就夠了)

9.轉小火蓋鍋蓋悶煮3分鐘(要注意水收乾就可以了)

10.高湯倒出備用

11.慢慢加入少量高湯同時一邊翻鍋內的燉飯避免燒焦(中火)

12.高湯一收乾就在加入新的高湯到高湯用完(500cc的高湯就很夠了)

13.收乾並加入香料(因人而異可加可不加 我沒加)

14.調大火煎到燉飯底部微焦(因人而異 我偏好這樣的口感)

15.起鍋灑上粗粒黑胡椒跟起士粉,美味的料理完成

接下來就可以享用美味的料理了
希望大家吃的愉快

點圖放大

飯粒顆顆分明並帶有嚼勁跟高湯鮮甜的口感是燉飯最好吃的原因

點圖放大

2010年9月7日 星期二

成立五都動保處連署活動貼紙

成立五都動保處連署活動貼紙
因為是本人自己弄得 可能有點難看 請大家見諒
可設定連到網站或是連到Facebook的聯署頁面
連到網站

原始code如下


<a href="http://faeatw.blogspot.com/"target="_blank">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIkXSslOZ8Wr0JG1s-4jaasbJy7oHoEGk1F1vuSsO0HOLzAwwksu8mRZmUisTyNN0oBXZVyNBmeOCyr0c7ywl5GTUZ-SRuQVo9nd6OKfCKD2ktChF5Il92KPvzbqLTt2loQuS6Dhttprl9/s1600/5paper.jpg" width="150" height="150" border="0" /></a>


連到Facebook連署頁面版
原始code如下


<a href="http://www.facebook.com/event.php?eid=146890212002970&index=1"target="_blank">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIkXSslOZ8Wr0JG1s-4jaasbJy7oHoEGk1F1vuSsO0HOLzAwwksu8mRZmUisTyNN0oBXZVyNBmeOCyr0c7ywl5GTUZ-SRuQVo9nd6OKfCKD2ktChF5Il92KPvzbqLTt2loQuS6Dhttprl9/s1600/5paper.jpg" width="150" height="150" border="0" /></a>




大小長寬請調width 跟 height兩個選項  建議一樣長比較不會形變