2013年11月17日 星期日

c4Lab learning map


一般來說,生機系的大學部專題同學,會從IE開始,同學們在大一上的時候應該修過生機系的計算機程式語言,之後可考慮加修電機系的資料結構與程式設計或資工系的計算機程式設計網頁程式設計建議同學們自修,或選擇線上課程。c4Lab也可以啟動3~5週的網頁程式課程,大家一起學習HTML/CSS/PHP/MySQL

資料結構是銜接IECS的橋梁,建議上學期的時候選修資工系的演算法演算法設計與分析,然後考慮在下學期修生機系的資料結構與演算法實務,強化程式設計/資料結構/演算法三者之間的關聯性

對大量資料分析有興趣的同學(未來想到Google這一類的公司工作的話),至少要再選擇機器學習/資料探勘/人工智慧門課的其中一門,強化"從資料中學習"的基本概念,這個時期搭配選修一門機率統計學將更為理想。

對生命科學有興趣的同學,接下來的目標就是學習並設計生物資訊演算法(BI)想往這個研究領域發展的同學可以利用大學時期選修生物化學結構生物學概論或是一些與蛋白質功能相關的課程,諸如:分子辨識蛋白質化學及分子模蛋白質修飾機制與細胞訊息,加強對生物分子的基本認識(MB)

生物資訊(BI)的學習目標在於開發新的生物資訊演算法,除了得花時間熟悉現有的生物資訊演算法外,瞭解生命科學對資訊計算的需求(MB),是開發好的演算法的第一步,儲備應有的資訊技能(IE+CS)則更是不可缺少的第二,因此學習曲線相當長。開發生物資訊演算法幾乎沒有就業市場,有興趣往這個方向發展的學生幾乎已經快絕跡了,但基本上這是我對c4Lab所有碩班同學和博班同學的期待。

生物背景的同學,通常是從SB出發,因為有大量資料處理的需求,會選擇來c4Lab進行技術實習(rotation),因此主要建議學習的內容當然是BD,完整的學習NGS data (using Galaxy) microarray data analysis (using R),外加對biological databases的熟悉度,大約需要一整年的時間,目前建議選修的課程是:生醫資料探勘結構生物資訊學未來或許會有更合適的課程。台大校園內還有其他生物資訊的課程(如:生物資訊學導論生物資訊學),也是認識生物資訊方法與生醫資料庫的好管道。期間搭配一門統計應用軟體統計學之類的課程,將更為理想。

資訊背景的同學想對SB有進一步了解的話可以選修基因體與系統生物學學位學程的基因體與系統生物學基因體與系統生物學專題討論。瞭解SB對資訊計算的需求,也是BI研究領域的基本工。

若能把c4Lab的六大學習領域(IE+CS+MB+BI+BD+SB)全部搞定,就能成為地球上的稀有動物了。

近期推薦的線上課程:

2013年9月28日 星期六

Genome annotation

本週從MAKER2出發!

MAKER2於2011發表於BMC Bioinformatics,截至2013/9/28為止,在Google Scholar累積28篇論文引用之。在這些引用MAKER2的論文中,我們已經先看過A beginner's guide to eukaryotic genome annotation, 也用過了ParsEval: parallel comparison and analysis of gene structure annotations。其中值得閱讀的相關文獻有:

接著看PASA2,自Haas於2003年發表的工具PASA延續開發至今日的版本,近期主要的參考文獻有:
追蹤到SNAP與CEGMA:
ab initio prediction (e.g. Augustus)階段就加入RNA-seq資訊也是可以考慮的方法:
最後,另有一可能的解決方案,是直接從RNA-seq data著手:

2013年9月21日 星期六

NGS-based genome assembly and annotation

日前實驗室剛完成一個draft of a plant genome (including annotation)
所謂的draft,就是距離complete還很遙遠的意思!

決定務實一點,先將該pipeline應用於較小的genome sequencing projects (e.g. fungal genomes)
以下分享c4Lab為達此一目的所累積的線上學習資源(如需上課錄音檔的密碼,歡迎來信索取):
  1. 結構生物資訊學 week 1 (Sep. 9, 2013) Introduction to NGS
  2. Monya Baker, De novo genome assembly: what every biologist should know, Nature methods, vol. 9, no. 4, 333-337, 2012.
  3. 結構生物資訊學 week 2 (Sep. 16, 2013) NGS-based genome assembly
  4. Mark Yandell and Daniel Ence, A beginner's guide to eukaryotic genome annotation, Nature Reviews: Genetics, vol. 13, 329-342, 2012.
  5. 結構生物資訊學 week 3 (Sep. 23, 2013) Gene prediction
  6. JGI Fungal Annotation Pipeline
  7. PASA in the Context of a Complete Eukaryotic Annotation Pipeline (Broad Institute)
  8. 結構生物資訊學 week 4 (Sep. 30, 2013) Gene annotation
結束四週的課程後,緊接著,植微系舉辦了一系列的相關演講,歡迎大家踴躍參加:

地點:植微系一號館308教室

10/5 (Sat) 15:00-16:00
Diversity of a gene family encoding putative effectors in the rice blast fungus 
(Dr. Daniel Ebbole)

10/5 (Sat) 16:00-17:00
Basic bioinformatics: how to use PERL for BLAST search and SNP detection 
(Dr. Daniel Ebbole)

10/6 (Sun) 09:30-10:45
Genomic analysis of conidiation in the Ascomycete fungi 
(Dr. Daniel Ebbole)

10/6 (Sun) 10:45-12:00
Fusarium pathogenomics: understanding fungal pathogenicity through genomics 
(Dr. Li-Jun Ma)

10/7 (Mon) 09:30-10:30
High performance computing for life science (Bioinformatics pipeline at Univ. of Massachusetts) 
(Dr. Li-Jun Ma)


2013年2月28日 星期四

BLAST

昨日下午在台大醫學院,很亢奮地講了三個小時的序列比對(sequence alignment);以前,我總試圖想把動態規劃法(dynamic programming)的觀念講清楚,為了講解為何一個位置只有(而且一定會有)三種可能性,常常耗掉至少半個小時仍徒勞無功;昨日,竟然連dynamic programming都還沒有碰,就講了三個小時,下課前,連BLAST都還沒有完整地講述,我想我真是可以出師了。

回程走在舟山路上,我不住在想,我到底講了什麼自以為重要的東西,它們真的都很重要嗎? 又有什麼也很重要的東西我還沒機會說? 以下是我有強調的觀念:

  • DNA序列是由四種字母組成的序列,RNA亦然;閱讀方向一律從5'end至3'end;
  • 蛋白質序列是由20種字母組成的序列;閱讀方向一律從N-terminal至C-terminal;
  • DNA是雙股螺旋,正股或反股都有可能有基因;
  • 正股和反股的閱讀方向相反;且配對的鹼基必為互補(A<=>T或C<=>G);
  • 真核生物的mRNA(messenger RNA)序列已經少掉了內含子(intron),如果未來要進行mRNA序列與genome sequence的比對,要注意開gaps的必要性;
  • mRNA序列和蛋白質序列有一定的編碼關係(codons),藉此可以進行DNA(或RNA)序列與蛋白質序列的比對;
  • 一條DNA序列因此會有六種讀法(reading frames),其中能順利產生蛋白質序列的讀法即為open reading frame (ORF);
  • 序列比對的目的在於產生兩條序列之間,各字母之間的對應關係(correspondence),在任何一條序列中,其字母的順序不得前後調換;此對應關係將被轉換成一個分數(或數種分數),旨於判斷哪一種alignment為最佳;
  • 所得之分數被期待能反應出兩序列之間的演化距離,分數達某特定門檻的序列比對結果,可以用來判斷此兩條序列是否同源(homology);同源序列暗示其彼此擁有相同功能/結構;
  • 各字母之間的對應,有既定的評分標準,相同字母之對應理應得到比不相同字母之對應(即演化中發生mutation)更高的分數,針對蛋白質序列的比對,常用的評分矩陣有二:(a) PAM (Point Accepted Mutation) tables;(b)BLOSUM (BLOck SUbstitution Matrix);see more about substitution matrix
  • 除了有些字母的對應會得到負分之外,alignment中出現gaps(常以"-"的符號表示之),也應該扣一些分數,gaps的出現反應出演化過程中可能發生的insertions和deletions(統合稱呼為indels);
  • 在生物序列的比對時,最常使用的gap評分方法是affine gap penalty;see more about gap penalties;在這邊需要理解的重要觀念是:open-gap penalty與extend-gap penalty的差異;
  • 接下來就得分區何謂:global alignment和local alignment;
  • 最後就是要回答,比對結果所得到的分數,是否具有統計意義? 常用的統計指標有z-score(假設normal distribution)與e-value(假設extreme-value distribution);
  • 如何利用z-score或e-value推斷兩序列之間具有同源性?
以上是針對生物序列比對的基本觀念,有此基礎之後,才能開始介紹目前最常使用的序列比對演算法:BLAST。

2013年1月30日 星期三

A new beginning

今天在Nature Biotechnology的網頁中搜尋自己的名字
出現了它:
http://www.nature.com/nbt/journal/vaop/ncurrent/full/nbt.2486.html

由於最近正在寫一篇與這個主題相關的論文
我需要認真閱讀它
想藉由讀它的過程,順便邊向大家介紹這個研究主題
或許能讓我的閱讀更有意義些,也更有趣些!!

首先,這篇論文探討的是transcription factor sequence specificitiy
通訊作者是:
Timothy R Hughes
希望有一天我能有機會和Prof. Hughes見面,基於個人對他的好奇心,就這篇論文而言,其實Tim大可不必將DREAM5的參與者都列為共同作者的,但他卻這麼做了,這個事件在我心中埋入一個種子,目前正在萌芽,我想有一天我可能會承認它徹底地改變了我。

這篇論文首先探討從in vitro protein binding microarray (PBM) data建立TF binding specificity model的可能性,一共比較了26種方法;接著進一步瞭解這些model與in vivo實驗之一致性。

"Ideally, sequence specificity models should predict the relative affinity (or dissociation constant) for different individual sequences and/or the probability of occupancy at any position in the genome."


2013年1月14日 星期一

Computing for biologists 到底有多難?

最近在總圖遊蕩時,看到這本書:

Practical computing for biologists
by HADDOCK and DUNN

想知道它是否對學生的學習有幫助,因此借回來看看!

以下是個人閱讀建議:

Chapter 1: getting set up

本章節首先談論一個非常重要的問題:如何處理純文字檔案 (極重要!!)

純文字是DOS時代很常見的檔案格式,因此,在那個純樸的年代,接觸過電腦的人或許都知道該怎麼開啟純文字檔進行編輯,但自從式窗介面與Office普及之後,Word與Excel成為編輯檔案與整理資料的主流,很多我們看起來不算花俏的排版卻早已嵌入了一堆使用者看不見的控制碼。就視覺化的效果而言,這些字型與字體大小或行距等排版效果的作用很大,但對資料處理者來說,最重要的資訊其實是資料本身,因此,大部分資料分析工具所訂定的檔案交換格式,皆是以純文字的方式呈現。舉例來說,生物序列所使用的 FASTA format,即是我們在交換序列檔案的時後的首選,幾乎所有的序列分析工具都接受FASTA檔,唯有我們遵守FASTA格式的規範,別人才能正確解讀我們所提供的訊息。

既然純文字檔如此地重要,選擇一個好用的純文字編輯軟體就能事半功倍,本書的第一章中有介紹一些常用軟體,因此,沒有用過純文字編輯器的同學們一定要參考一下這個章節的啦!!

除了提及純文字檔的重要性之外,作者還提醒我們另一個地雷,那就是所謂的換行符號(return),由於Windows系統和Linux系統所使用的換行符號不一樣,如果沒有小心處理,常常會造成程式無法正確解讀資料或無法正常執行。

基於上述兩個重點,因此,在此非常推薦Chapter 1的內容!!

2013年1月10日 星期四

直接跳到NGS吧!

Next-generation sequencing (NGS) 像大浪般捲來

尚不知會帶我們漂向何處

但可以確定的是,我們都將在這波浪潮中,適者生存

先推薦幾本你可能會需要的書吧:

Practical Computing for Biologists
by Steven Haddock, Casey Dunn

Building Bioinformatics Solutions: with Perl, R and MySQL
by Conrad Bessant, Ian Shadforth, Darren Oakley

Bioinformatics for High Throughput Sequencing
by Naiara Rodriguez-Ezpeleta, Michael Hackenberg, Ana M. Aransay
台大圖書館有電子書

2013年1月9日 星期三

好ㄟ!! Clustering!!

我對Clustering有著一般人無法想像的情感

在博一(1999年)的時候,老師給我的第一個研究主題就是:開發分群演算法

當時,身邊幾乎沒有人知道什麼是cluster analysis, clustering 

我奉命做一次完整的survey

當時,也沒有資料探勘這樣的課程,更別說是教科書 
(Ian H. Witten 和 Eibe Frank 寫的Data Mining 幾乎可以說是第一本資料探勘的教科書,第一版的出版日期是1999 十月,現在已經有第三版了)

於是我走圖書館,找到大約6~7本與cluster analysis相關的書籍 (有一些還得去數圖才借的到)

一口氣把這些有限的資源都搬回實驗室,開始啃讀

老實說,蠻懷念這樣的年代,這樣的研究步調

現在不一樣了,電子書當道,坐在家裡的電腦前就能享用

幸或不幸?

Cluster Analysis
by Brian S. Everitt et al.   
台大圖書館有電子書 




雖然有點久遠,但如果有興趣的話,仍然可以參考一下這部經典之作:
Data clustering: a review
by A. K. Jain et al.

2013年1月4日 星期五

原來是這樣,為什麼我以前不知道呢?

 老實說,知識的累積需要時間,除非你有超能力 ...

看看別人在做什麼?

有時候,會看到和c4Lab興趣很相似的實驗室,有時候,會看到自己很想成為的那樣的人 ...

2013年1月3日 星期四

R與生物資訊

 要往下走之前,得先確定你已經會使用R的一些基本功能,如:
  1. 讀檔:e.g. read.table, ...
  2. 安裝套件:e.g. install.packages, library, ...
  3. 產生序列:e.g. seq, rep, ...
  4. 畫圖:e.g. plot, ...
  5. 對物件的基本操作:e.g. class, names, dim, length, ...
並瞭解R對資料處理的基本結構,如:
  1. vector
  2. matrix
  3. list
  4. data.frame 
也知道如何利用loop (e.g. for)處理批次作業。更重要的是,你應該要知道如何利用help去尋找或瞭解新功能的使用方法。

有了這些基礎後,才能順利進入R在生物資訊上的應用。如果還沒有準備好,或許你可以先看一下:如何開始,然後再繼續往下。

可以參考的書籍如:

R Programming for Bioinformatics
by Robert Gentleman
台大圖書館有電子書
(檢視目錄後,發現其中與生物資訊直接相關的內容並不多)

Bioinformatics and Computational Biology Solutions Using R and Bioconductor
edited by Robert Gentleman, et al.
台大圖書館有電子書
(從目錄看來,有不少蠻實用的參考資訊)

Analysis of Phylogenetics and Evolution with R
by Emmanuel Paradis
台大圖書館有電子書

以上為不負責任的推薦(我還沒機會認真看過)

我常使用的分析方法
  1. clustering: hcluster, Mclust, kmeans
  2. classification: knn.cv, knn
  3. feature selection: t.test
  4. visualization: pheatmap 
話說回來,如果你還不太知道什麼是生物資訊,那麼這裡分享的書籍資訊可能對你幫助不大,先去瞭解一下生物資訊是什麼吧!!

2013年1月2日 星期三

如何開始?

對學習生物資訊的同學們來說,R是一個最容易上手的分析工具。

R (The R Project for Statistical Computing) 是一個免費的分析軟體,其中包含大部分現有統計、資料探勘與機器學習領域中常用的方法,使用者除了直接呼叫現有功能涵式外,也能自己撰寫程式完成客製化的分析流程。

想學好R的同學,我特別推薦從這本書開始:
by Norman Matloff

以下為不負責任的推薦

Getting started with R: An introduction for biologists
by Andrew P. Beckerman and Owen L. Petchey
台大圖書館有電子書