東京大学大学院に入学しました
お久しぶりです。
さて、このブログを書き始めてから数回「米国大学院受験」というカテゴリーで記事を書いてきたわけですが、結果的には希望がかなわず、東京大学の大学院に入学することになりました。
本当は「アメリカの大学院に進学しました」みたいなドヤ顔記事を載せてちやほやされたかったのですが、その願望を満たすのはもう少し後回しということになりました。
いろんな人に「やっぱりアメリカに行くべきだよ」と言われてきましたし、自分でもまだその夢は持っていますが、今回の受験にはいろんな要素が足りなかったのだと思います。なので、そこまでショックは受けていません(最初のRejection Letterが来た時は凹みましたが…)。
まずは、やっぱりGPAが足りなかったというのが大きいと思います。トップスクールと呼ばれる大学に応募してくる学生の中で、3.2というのはかなり低い層になってしまうのは、自分でもわかっていました。 そんなことなので、GREとかStatement of Purpose(自己推薦文)とかで追い上げようと思っていたわけですが、それらの出来もまあまあ、上の中くらいだったので今ひとつパンチに欠けたのでしょう。
Easy Aばかりを履修して意図的に高GPAをつくることより、チャレンジングな科目を履修して勉強する姿勢は後悔していませんが、やっぱり成績が必要なときに勝負しづらくなるのだということをもうちょっと意識しておくべきでした。
いまは、所属することになった研究室に顔を出して、修士課程の研究テーマを考えている最中です。 日本では有数の良い研究室に入学できた幸運を噛み締めつつ、修士を終えた後に海外進学も視野に入れてきっちり勉強して遊ぶ所存です。
そんなわけなので、もしこのブログを読んでくださっている方で海外の院進学に挑戦される方は、じっくり時間をかけて応募書類を磨いてください。GREの勉強も同様です。GPAは……数年スパンじゃないとどうしようもないですね(๑˃̵ᴗ˂̵)و
首尾よく合格された方は僕にこっそり秘訣を教えろください。
ハーレー浄水器を交換したら塩素が消滅した話
いくら美味しいと宣伝されてる東京の水道水*1といえど、けっこうマズい。 北海道から来た友人は「とても飲めたもんじゃないです」とバッサリいっていたので、やはり大雪山系の水には勝てない。あたりまえだ。
我が家では20年来ハーレーの浄水器を愛用してるわけですが、相当の激務なので7年に一度本体を交換する必要があります。面白いことに交換部品と一緒に塩素検査のDPD試薬が添付されてきたので、交換する前と後、そして無濾過の水道水のそれぞれに添加してみました。
左から無濾過、交換前、そして交換後の水に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,...)')
実際のコードでは、まずnamelist1
とwholelist
からそれぞれモジュール内のリンクの総数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/