Mendeleyに放り込んだ論文を簡単にLaTeXで\citeする

卒論提出一週間前なわけですが、今日も元気にLaTeXと戯れています。 LaTeX楽しいですね。

メイン作業環境のMacBook AirにOfficeを入れてないので以前はVAIOにテキストを転送してわざわざWordに起こしていたのですが、LaTeXに触れてからはしばらくWordには戻れそうもありません。

LaTeXの恩恵は手軽な数式挿入やレイアウト設定などがメジャーどころですが、個人的には引用文献まわりのシステムに心奪われました。 そう、bibファイル読み込みからの\citeするだけでじゃんじゃん文献目録ができていくやつです。

続きを読む

ハーレー浄水器を交換したら塩素が消滅した話

いくら美味しいと宣伝されてる東京の水道水*1といえど、けっこうマズい。 北海道から来た友人は「とても飲めたもんじゃないです」とバッサリいっていたので、やはり大雪山系の水には勝てない。あたりまえだ。

f:id:pioneerboy:20140109001257j:plain

我が家では20年来ハーレーの浄水器を愛用してるわけですが、相当の激務なので7年に一度本体を交換する必要があります。面白いことに交換部品と一緒に塩素検査のDPD試薬が添付されてきたので、交換する前と後、そして無濾過の水道水のそれぞれに添加してみました。

f:id:pioneerboy:20140109001322j:plain f:id:pioneerboy:20140109001343j:plain

左から無濾過、交換前、そして交換後の水にDPD試薬を加えたものです。

いやー無濾過はすごいですね。控えめに見積もっても0.4ppm(民間室内プールの平均)くらいの発色です。 そりゃまずいわ。

交換前もうっすらピンク色ですが、交換後は完全無色です。 本当は実験室の吸光度計でOD測りたいところですが、まあいいでしょう。

濾過器すごいね、というお話でした。

*1:さすがにペットボトルで買う気にはならんだろう…

RPy2を使ってPythonからRを呼び出してデータ解析

Pythonで書いたコードの中でRを呼び出す必要に迫られたので、備忘録を兼ねてやり方を記録しておきます。

この前から取り組んでいるPPiプロジェクトの一環で、タンパク質相互作用ネットワークを超幾何分析してスコアを記録しよう、みたいな話になった。

超幾何分析自体の話はbeyond the scopeすぎるので専門家に譲るとして、分析そのものはphyperというR言語の関数でちゃちゃっとできる。

phyper(q, m, n, k, lower.tail = FALSE, log.p = FALSE)

q:調べる蛋白質のモジュール内のリンク数

m:モジュール内のリンクの総数

n:モジュール外のリンクの総数

k:調べるタンパク質の全リンク数

マニュアル(英語)

それで、この前Pythonで生成したファイルにRを走らせるのが一番単純な手法かもしれないけど、面倒だしスマートじゃないので、やはりPythonコードのなかでRを動かしたいところ。

少し調べると、PythonとRの連携はRPy2というパッケージが人気の模様。 ちゃんとPython 3.xでも動作するということで、試してみる。

まずは$ sudo pip install rpy2 みたいな感じでローカルにRPy2をインストール。

それからPythonコードで読み込みます。

from rpy2.robjects import r

Rの関数の引数としてPython側の変数を使いたいものの、どうもうまくいかない。 調べてみると直接使わずにR側の新しい変数にポートして活用するらしい。

r.assign('RVariable', PyVariable)

という感じ。 これを引数に使う変数全部に対して行って、いよいよ関数にぶちこみます。

r('関数名(引数1,引数2,...)')

実際のコードでは、まずnamelist1wholelistからそれぞれモジュール内のリンクの総数moduleedgesとタンパク質相互採用ネットワーク全体のリンク数wholeedgesを計算し、wholeedgesからmoduleedgesを引くことでモジュール外のリンクの総数nonmoduleedgesを得ました。

それから、モジュール内のタンパク質の名簿であるpnamelistをループで回して、各タンパク質のモジュール内リンク数と総リンク数をそれぞれRにポートし、最後にそれをもとに超幾何分析を行ってdict型に収納、という手順を踏みました。

from rpy2.robjects import r
moduleedges = len(namelist1)
wholeedges = len(wholelist)
nonmoduleedges = wholeedges - moduleedges

from rpy2.robjects import r
#超幾何分析結果を収納するdictを用意
hypergeo = {}
#pythonの変数をRの変数にポート
r.assign('module', moduleedges)
r.assign('nonmodule', nonmoduleedges)

#モジュール内の各タンパクについて超幾何分析
for x in pnamelist:
    r.assign('intralink', intralink[x])
    r.assign('wholelink', wholelink[x])
    p = r('phyper(intralink, module, nonmodule, wholelink, lower.tail = FALSE, log.p = FALSE)')
#dictに分析結果を収納
    hypergeo[x] = p[0]

あとは前回のようにcsvに出力して終わり。

僕以外にも統計分析にはRを使うけどそれ以外は全部Python、みたいな人は多いらしく、今回使ったRPy2のようにPythonの中でネイティブなRを走らせる以外にも、Rの大人気グラフ作成パッケージggplot2をPythonで再現する試みとかいろいろあるみたいです。

やっぱりデータ分析分野はR言語で書かれた遺産が多いので、うまく使っていきたいところです。

今回参考にしたウェブサイト

バイオインフォマティクスによる遺伝子発現解析

R: The Hypergeometric Distribution

http://rpy.sourceforge.net/rpy2/doc-2.1/html/

http://www.okada.jp.org/RWiki/?Python%20%A4%C7%A1%A1R

生物系学部4年生が2013年に買って良かったもの

今年もいろいろ買いましたなあ。

Macbook Air 2013

ずっとVAIO使ってて、Macに若干苦手意識があったものの、今年からわりとプログラム書いたりし始めてVirtual BoxのUbuntuを立ち上げるのが面倒になってMacに書い変えました。最初はサブ機で使おうと思っていたのに、結局VAIOはほとんど放置。

f:id:pioneerboy:20131017225255j:plain

Macbook Air 13inch (Mid-2013)届きました! - 雨に煙る

Roost

これがなかったらMacbook Airの魅力も半減しているところ。どこへ行くにも持って行っています。

f:id:pioneerboy:20131026113655j:plain

最強ノートパソコンスタンド"Roost"が届いたよ - 雨に煙る

土屋鞄のショルダーバック

春先にバイトのボーナスで買って以来、かばんはこれひとつ。すこし味が出てきたかな? f:id:pioneerboy:20131231154134j:plain

iPad Air

論文読んだりRSSフィードチェックしたりマンガ読んだり、iPhoneから仕事を奪いまくっています。Twitterだけはお気に入りクライアントのThe WorldがiPad未対応なのでiPhoneメイン。

f:id:pioneerboy:20131116142920j:plain

iPad Airをお迎えしました - 雨に煙る

ハンドプレッソ

好きなときに電源いらずでエスプレッソを飲める、なかなか頼りになる手動エスプレッソメーカー。 やっぱり粉をタンピングするのが億劫になるのでカフェポッドと併用した方がいいですね。

f:id:pioneerboy:20131012165636j:plain

ハンドプレッソでカフェラテがぶがぶする - 雨に煙る

PCメガネ

JINSでしばらく前にフレームだけ買ってたヱヴァンゲリヲンコラボのアスカモデルに、あとからPCレンズを入れてもらいました。やや目の疲労が軽減された気がしますが、プラシーボかもしれません。

f:id:pioneerboy:20140105110356j:plain

Related Posts Plugin for WordPress, Blogger...