スキップしてメイン コンテンツに移動

投稿

2月, 2008の投稿を表示しています

「{{isbn '4501622601'}}」読者プレゼントしますよ!

このブログを読んでくれている,みなさまに素敵なお知らせ(かどうかわからんが)! 2/27に発売になる「{{isbn'4501622601」を2名様にプレゼントします.

*募集期間: 2008/02/19 - 2008/02/27 23時59分
*応募資格: 誰でも.ただしブログに感想を書いてね.
*応募方法: あなたのブログやWeb日記など公に誰もがアクセスできるところに『オープンソースで学ぶバイオインフォマティクスほしい』という文字列を含んだエントリを書き、この記事にトラックバックしてください。トラックバックのURLは http://itoshi.tv/d/tb.rb/20080219 です.トラックバックできない方はコメント欄にエントリのURLを書いてくださってもかまいません。はてなダイアリーではないので「オープンソースで学ぶバイオインフォマティクスほしい」と書いただけでは応募にはなりません.
*抽選方法: 2008/03/03に、トラックバックとコメントの中からランダムに2個のエントリを抽出します。トラックバック,コメントの先着順がIDになり,それをRのsample関数でランダム抽出します.

例: 応募者10人で1番と7番が当選.
<<<
$ R --vanilla -e 'sample(10)[1:2]'
> sample(10)[1:2]
[1] 1 7
>
>>>

*当選者への連絡: ブログのプロフィール等から連絡先が分かった場合には、3月3日に、dritoshi at gmail dot comからメールを送らせていただきます。連絡先が見つからなかった場合には、同日に該当エントリーに、コメントを残します。
*送付: 当選者には3月中に書籍を送付いたします。遅くなりますが、ご容赦ください。発送先は日本国内に限定させていただきます。
*提供: 俺

上の文章の一部はhttp://blog.masuidrive.jp/articles/2006/03/26/present-ajax-bookからぱくりましたw

このブログのRSSを登録しているひとの数ですがLDRで126人, Google Readerで83人, はてなRSSが37人,はてなアンテナが49, Bloglineが57人.Google Analytics に…

Rで長い計算が終ったらTwitterに知らせる

ネタで作ったら結構便利だったのでメモしておく.

計算が終ったらTwitterの@dritoshiに"Done."というダイレクトメッセージを送る.自分で自分にダイレクトメッセージが送れないみたいなので別なアカウントを取らないとだめっぽい.以下の例では@itoshilabという実験的なアカウントから送っている.

まずクライアントalert4twitter.rbを用意する.RubyとRuby Gemsとtwitter4rが必要.
<<<
#!/usr/bin/env ruby

require 'rubygems'
require 'twitter'

twitter = Twitter::Client.new(:login=>'itoshilab', :password=>'xxxxxxxxxx')
message = twitter.message(:post, 'Done.', 'dritoshi')
>>>

Rで書いたプログラムの最後で,上のプログラムをsystem関数で呼ぶ.

<<<
system("ruby alert4twitter.rb")
>>>

すると以下のようにダイレクトメッセージが送られる.

{{image 0, 'Done', nil, [417,88]}}

「{{isbn '4501622601'}}」バという本を書きました

[[プレゼント企画を始めました|http://itoshi.tv/d/?date=20080219]].

{{image 0, 'オープンソースで学ぶバイオインフォマティクス', nil, [257,371]}}

日本でオープンソースなバイオ系ツールを作っている作者達が集まって本を書きました.我々が実際に講義のテキストとして使うために書いたものです.本書の内容はすべて付録のバイオインフォマティクス向けLive DVD Linuxである[[KNOB|http://knob.sourceforge.jp/]]で実習できます.

内容は配列解析からバクテリアゲノム解析,遺伝子発現解析,遺伝子ネットワーク解析,ケモインフォマティクスなどです.ツールとしてはR + Bioconductor, BioRuby, ChemRuby, G-language, EMBOSS, BLASTなどです.

{{isbn '4501622601,
オープンバイオ研究会 編,
B5判,264頁,定価4,095円(税込)/東京電機大学出版局 刊,
ISBN: 9784501622602

2008年2月27日発売です.

Rで常微分方程式を解いてみた.Michaelis-Menten kineticsを例として

Rはもっぱら統計解析にのみ使っていたのだけど,[[@T_Hash|http://twitter.com/T_Hash/statuses/687249842]]にRで数式解けるの? みたいな==挑戦状==質問をされたのでやってみた.Runge-Kutta-Gill 法で[[Michaelis-Menten kinetics|http://en.wikipedia.org/wiki/Michaelis-Menten_kinetics]]の連立微分方程式を解いてみる.

参考: [[R で微分方程式:odesolve|http://clinical-pk-pd.cocolog-nifty.com/blog/2007/11/r_odesolve_fe42.html]]

ode solverはRのライブラリ[[odesolve|http://cran.r-project.org/src/contrib/Descriptions/odesolve.html]]に実装されているのでまずはインストールする.

install.packages("odesolve")
コードは以下の通り.
<<<
library(odesolve)

dydt <- function(t, y, p){
k10 <- p['k10']
k01 <- p['k01']
k20 <- p['k20']
E0 <- p['E0']

y1 <- -k10*E0*y[1]+(k10*y[1]+k01) *y[2]
y2 <- k10*E0*y[1]-(k10*y[1]+k01+k20)*y[2]
y3 <- k20*y[2]

list(c(y1,y2,y3))
}

params <- c(k10 = 1e3,
k01 = 1,
k20 = 0.05,
E0 = 0.5e-3)
times <- c(0, 0.1*(1:250))
y <- lsoda(c(1e-3,0,0), times, dydt, params)

S <- y[,2]
ES <- y[,3]
E <- params['E0'] - ES
P <- y[,4]

matplot…

!{{isbn '476282139X'}}

仕事の進めかた,特に問題発見や解決,タスクマネジメントなどについて良い本がないか,と最近何度か聞かれたので文章にしておきます.

いかに研究を進めていくか.現場では重要なスキルであってもシステマティックに教えているというのは聞いたことがないです.企業や大学の研究室(大学もそんなに変わらんよという声が聞こえてきそうですが)では事情が違うのかもしれませんが,研究所(センター)のようなところに飛び込んだ学生さんはろくに教育してもらえず,そのくせ即戦力として期待される場合が多いと思います(そして結果は自己責任wwwぜんぜん笑えないwww).

まあ意見できるほど立場にないのですが,僕も学部生の時代から今までずっと研究センター所属でした(TCAT(MBI, KDRIとコラボ)->RIKEN GSC->SMS RCGM->RIKEN CDB)ので,いわゆる「指導」らしいものを受けたことがあまりないです(受けたいと思っていなかったのだけどw).それで,優秀な先輩の方々の振舞を盗んだり,本を読んでみたりと,わりと試行錯誤してきたわけです.

そのような学生さんが仕事の進め方を自習するのに良さそうな本を挙げてみました.即戦力を期待されているわけですから,まず読みやすさ重視で選びました.また研究の現場に向けて書かれてものではない一般的に役に立ちそうな本を選んであります.

また今回は触れませんでしたが,別な重要な問題として,いかにオリジナリティを発揮するか,という問題もありますね.そんなものは教わるものではない,とか,DNAに書きこまれている,とかいう考えもあると思いますが,これだけ学生やポスドクの量が増えてくるとシステマティックな教育方法があっても良い気もしています.このあたりで参考になる本だとがあれば教えてくださいな.

さて思い浮んだのは以下の4冊ですね.

どうやって問題を発見し定義するか,について基本的な考え方が展開されています.警句のようなものが並んでいる感じです.具体的にどうすれば良いか,というところまで書いていませんが面白い例(表題のライト,ついていますかなど)などがいくつか出てきます.

こちらの本では問題解決のため思考方法と技術が具体的に2つずつ挙げられています.その方法とはゼロベース思考,仮説思考で,技術とはMECEとロジックツリーと言うものです.特にMECEは研究の現場…

!他の言語とセットでどうぞ

[[最もタメになる「初心者用言語」まとめ|http://generation1986.g.hatena.ne.jp/ukstudio/20080204/1202113687]] (リンクされた,THX)

うっかりTwitterで[[乗りおくれた! 最もタメになる「初心者用言語」は R。ってもう誰か書いた?|http://twitter.com/dritoshi/statuses/676548832]]とかつぶやいたら,
[[@dritoshi 書いて!|http://twitter.com/syou6162/statuses/676551442]]って言われたので,ムリがあるけど俺,がんばった.

[[R|http://www.r-project.org/]]

筋は悪くないよ.CLOSから取り入れた総称的関数が大活躍だし.なのにカッコカッコしてない! もちろんオブジェクト指向プログラミングもできるしユニットテストもあるよ.統計言語だからデータ構造も豊富! ガベコレもあるよ.無名関数もあるよ.例外処理,遅延評価,関数クロージャ,再帰もできるし,自在にベクトル計算ができるから複雑なループを作らなくてもいいよ.applyかわいいよapply

(なんかまともだ,ということしか言ってないな.初心者向けとかの話じゃないwww)

プログラムや関数を作ってみたけどデータがないよ,自分でなんとかしろって初心者に全然やさしくない.Rのほんどの関数にはサンプルデータが付いているよ.example()に関数を渡すだけで,その関数がサンプルデータを使って実行されるよ.
> example(t.test)

ソースを読むことがプログラミング上達にかかせないことは異論がないよね.R関数の多くはRで書かれている.しかも単に関数名を打つとそのコードがずらずら表示さえるよ.他の言語ではこうはいかないよね.

JSとかでグラフを書くライブラリとかがホッテンリストとかいっちゃうけどそのあたりは本職.データ構造が違っても同じ名前の関数で良い具合のグラフを出してくれるよ.総称的関数のおかげだね.あと地味に重要なことだけどGDとかImageMagickのインストールで泣くこともないよ.

Rはライブラリがすごく豊富.様々な統計解析から画像解析,SOAPのライブラリまでいろいろあるよ.PerlのCPANみたいに[[CRAN|http…