使用ggplot2: stat_function 簡化函數畫圖

在R裡面有很多可以用來畫函數的方法,像是curve就是一個簡單懶人函式,其實ggplot2裡頭有一個超好用的函式,不需要像一般ggplot2必須輸入一個data.frame的data.set,只要把想要畫圖的function定義好即可。這邊有documentation的連結

ggplot()+stat_function( aes(x=0:2), fun = 自訂函式,  args = list())

aes內的x設定要帶入函數的範圍,也是圖x軸的邊界,fun後面則放入想要畫圖的函式,args裡面可以把原本function中其他的參數指定好,這樣就可以開始畫圖了,下面用簡單的例子展現一下他的方便!

 

screenshot.png

screenshot.png

寫出漂亮的R程式碼

就像文章會有固定的寫法,程式語言也是,練習寫得簡潔易讀,是需要多加練習的,可以參考Hadley Wicham在Advance R裡寫關於寫作style的建議,另一個則是google 的 R style rule。整體來說是很簡單的。

分成以下幾類來改善R code 的撰寫:

  • 檔案名稱
    • 將檔案名稱以底線連接,且最好檔名要讓人一眼知道裡面是什麼
      • 好的命名
        • predict_ad_revenue.R
      • 壞的命名
        • foo.R
  • 變數(identifiers)的名字
    • 可以分成兩種,函數的名稱或是其他一般的變數名稱
      • 一般變數:盡量不要用底線連接,而是用逗點來連接
        • 好的命名
          • variable.name
        • 壞的命名
          • variable_name
      • 函數名稱:加入大寫,不要用逗點或是底線
        • 好的命名
          • CalculateAvgClicks
        • 壞的命名
          • calculate_avg_clicks
  • 每行的長度
    • 不要超過80個字碼
  • 縮進(indentation)
    • 不要混用tab和space,最好的方式是使用 2 spaces
  • 空白格(spacing)
    • 在所有運算符號前面加上一個空白格如(=+<-..etc.)

Ensembl API(二):安裝 API

假如不害怕英文的話,這邊有很詳細的官方安裝簡介還有影片

screenshot.png

Ensembl資料主要是用MySQL所搭建的關聯資料庫,而Ensembl API則是寫好的各種Perl package來讀取裡頭儲存之資料,在上一篇有介紹過,Ensembl資料庫有三大主要資料庫:Core、Compara和Variation,每個資料庫都有不同的API需要安裝,當然,Ensembl團隊有準備好可以直接全部API安裝的方式,這邊的API不只是單純可以用來Query Ensembl資料庫,也可以用來搭建自己資料庫使用Ensembl的Schema來管理和運作,這部分又更進階了些。

 

舉例如何安裝Ensembl API

  • 下載他們的壓縮檔

           mkdir src
           cd src
           wget  ftp://ftp.ensembl.org/pub/ensembl-api.tar.gz
           wget  http://bioperl.org/DIST/BioPerl-1.6.1.tar.gz

  • 解壓縮

            tar zvxf ftp://ftp.ensembl.org/pub/ensembl-api.tar.gz 
            tar zvxf  http://bioperl.org/DIST/BioPerl-1.6.1.tar.gz

  • 重設環境變數
    PERL5LIB=${PERL5LIB}:${HOME}/src/bioperl-1.6.1
    PERL5LIB=${PERL5LIB}:${HOME}/src/ensembl/modules
    PERL5LIB=${PERL5LIB}:${HOME}/src/ensembl-compara/modules
    PERL5LIB=${PERL5LIB}:${HOME}/src/ensembl-variation/modules
    PERL5LIB=${PERL5LIB}:${HOME}/src/ensembl-funcgen/modules
    export PERL5LIB
    

另外一種安裝方式,可以使用git來安裝,這種方式比較scalable,是可以來練習一下!