スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ひでひでた
スポンサー広告  

IndentationError
なんか昨日今日と涼しいですね。クーラー要らず。うちの研究室は室内温度を28℃に保っているので外より暑いです。

さて、相変わらず Python 使ってプログラムしてるんですが、なかなか原因が分からないエラーが生じて時間を食われたので、もしかしたら需要があるかと思うのでここにメモしておきます。インデントするときに tab キー使う人は多いでしょうが、エディタの設定によっては tab キーによって入力される空白がスペースと同等ではない場合があるので要注意です。Python は tab とスペースを別物だと認識します。

例えば vi の場合なら、.vimrc ファイルで
set expandtab
としておかないと tab キーがスペースに置換されません。今日はこのせいで文法的に正しいと思われるコードに IndentationError が出たり、逆に明らかに正しくないコードがなぜか動いた上に期待した結果をはき出したりしてました。

こういうどうでもいいところでのエラーはほんと勘弁してほしいわ。
スポンサーサイト
ひでひでた
シミュレーションなど   0 0

期待はずれ
マーゴン氏来日につき、強風が吹き付ける一日でした。ちょっと楽しみにしていたような天気にはならなかった。
 今日は2から4限が授業でした。2限はY田T雄氏の出張授業。まあさすがに分子モーターや chemotaxis などの知っている話が多かったですが、ランジュバン方程式に従うような(ちょっと曖昧にしか覚えてないですが)アクチュエータ制御がされているロボットの運動はそれなりに自然に見えたのが面白かったです。石黒さんとのコラボらしい。それで、人間がものを認識するときの脳の状態も揺らいでいるとの話でした。
 彼の使う「ゆらぎ」という言葉が非常に広い意味を持ちすぎているように聞こえて不可解でした。例えば分子モーターの運動に関与する揺らぎは熱揺らぎと化学反応に伴う量子揺らぎであったり、cheomtaxis の場合はシグナル伝達物質の分子数が揺らぐということでどちらも明確に定量化可能なのに対し、一気にスケールを上げて脳とか生体レベルまでいくと何の揺らぎを考えているのかよくわかりません。
 生物を真面目に考えようとするなら様々なスケールにおけるゆらぎの関連を調べることは重要だと思うし、一分子から脳までの各スケールでの実験に関してトップランナーとして君臨し続けてきたのだから何か掴んでいるんだろうと期待して質問をしてみたのですが、残念ながらストレートな解答は得られませんでした。「京大生とか東大生は試験が得意だけど創造性が無くて、そこらへん阪大はちょうどいい」と、いかにもステレオタイプな事を言われたので若干が腹が立った上、先ほどの解答が解答だったし、はっきり言って講義も全体的にいまいちだったので微妙な印象しか残りませんでした。
 それでも、やっぱ自分の興味のあることはあの関連だよな、と再確認させられもしたので全くの無駄という訳ではありませんでした。シミュレーションでどう攻められるかな。
ひでひでた
日常生活   0 0

殻にこもる生活
今日は雨降りでした。これkらでかい台風がやってくる。
 昼過ぎから始まったゼミは午後7時くらいに終わりました。計算がどうのこうのというよりも、結局それをすることによって何が分かるのか、何が嬉しいのかを気にしつつ参加しています(ロジックは確実に追う)。この間までは2ヶ月間連続で発表担当だったのですが、それもようやく終わったので割と気楽な身分でいられます。
 PDB に登録されている NMR による構造解析のデータを読み取って、複数あるモデル間の RMSd を計算するプログラムを Python で書きました。これが初めての自作スクリプトです。Python でファイル処理するのは本当に楽。動的に型付けしているのが致命的に効いていると思います(とはいえクラスが持ってるデータが常に公開状態なのは不安。name mangling は面倒でここぞという使いどころがよく分からない)。今のところデータの出力形式に不満があるので、適当なモジュールを試しているところです。CSV モジュールをもっと知る必要がありそう。
 で、今後 Python だけで戦っていける気はしないので C++ も勉強しているのですが、もうコンパイルが面倒で面倒で嫌になります。ここ最近は iPython+vi で Pyhton シェルにひきこもる生活を送っているのが明らかな原因(笑)
 ここまでを振り返ってみると、まず C をやってプログラムの基本的なとこを知った後に Python に触れ、スクリプト言語の使いやすさと OOP を学びました。このタイミングで C++ をやるのは結構リーズナブルなんじゃないでしょうか。データの秘匿とかをちゃんとやってみたいし。C++ で書いたコードは Python で使えるので絶対無駄にはならないし。
 まあ先人たちが残したライブラリがあるだろ、という話もあるけど、やっぱ自分で作ってみないと面白くないよね。
ひでひでた
日常生活   0 0

体調不良……
一日中寝ていたせいでこんな時間になっても寝れず。仕方なくブログの更新画面に向かっている。
 先週のあるタイミングで喉が痛みだし、次第に鼻の調子が悪くなってティッシュを使っているうちにフラフラし出して、結局金曜から月曜まで休みを取ることにしてしまった。まあ本来3連休だからオフィシャルには問題ないんだけど、研究ってそういうもんじゃないし、最近は進度がぐっと落ちていたこともあって精神的には全く休まらずにいる。クーラーにやられたんでしょうね。
 こちら京都は祇園祭の最中なので少しは見に行こうかとも思っていたんだけどね、そうもいかなくなってしまった。あー、自分、何してんだろ、って思いつつ過ごしています。

 そろそろこのブログも引っ越そうかなぁ、なんて考えてます。段落の見出しを分かりやすくしたり、ひょっとしたらコードを載せたり、そういうのは FC2 ではやりにくい。はてなダイアリーは向いていそうだったので、近々移転するかもしれません。
 いろいろよくわからない。
ひでひでた
日常生活   0 0

クラス
ただいま帰宅しました。今日は遅くなってしまったなぁ。本当はもっと仕事を進めてプログラムを完成させたかったところでしたが、ここ数日風邪っぽくて咳が出たりするので諦めました。ちょっと出勤するのが遅すぎた。ちなみに今の BGM は Alicia Keys です。最近プッシュされてのんかな。
 今日は副指導教官である M 先生と軽く面談。彼は率直に思ったことを投げてくる人でした。どれも素直で、かつ重要なコメントや質問ばかりだったので好感持てました。数年後には彼らの前で Ph.D ディフェンスしなきゃいけないことを考えるとちょっと気が重いけどね……。今後も都合が合えば相談に乗ってくださるようです。
 Python のクラスについて勉強し始めました。あれはめっちゃ面白い。動的型付けやディクショナリという基本的な仕組みが自然とクラスの継承や演算子のオーバーロードにつながっていくのには感心しました。試しに行列クラスを作ろうとしたんですけど、割り算を定義するときに逆行列が必要だと即座に気づいたのでやめました。数学用のライブラリは何があるかなーとか、 numpy 使おうかなーとか考えだして発散しそうだったので。Python のカプセル化はきっちりしていない点、長所なのか短所なのかはまだ分かりません。クラス自体を外部から書き換えられる(追記出来る)のはメリットなのか。
 明日こそはデータ処理用のプログラム作り終えないと。
ひでひでた
日常生活   0 0

ラジオな夜
最近ラジオ聞くようになりました。昼前から夜まで研究室にいて、うちに帰ってきたらぐたーっとしつつ mac 用の radiko で色々と聞きます。傍らには twitter クライアント。ついさっきまで流れていたのは Alicia Keys とかいう人の歌で、なんか僕にとっては懐かしい感じで良かったな。
 研究はぼちぼちです。今日は基本授業と自主ゼミでつぶれましたけど、90時間ほどマシンを走らせて出てきたデータを空き時間に眺めて、次どうしようかとよっしーと議論したり。今は40時間分の計算をがんばってもらっているところです。
 Python は相変わらず勉強を続けていて、この間の記事に書いた『初めての Python』に取りかかっています。ひとまず200ページ程度をこなしたのはいいものの、だいたい知っている内容の中に埋もれる形で面白いことが書いてあったりするのでどうも捗ったとは言えないのが現状です。ぶっちゃけ前の本は読まなくてもよかった気がしますね。早くクラスの章を読みたい。self とかを理解したいな。
 Python では画像解析がかなり出来るそうなので、その関係の勉強もしています。うちの研究室では実験により得た画像データも扱うことがあるため、その解析のために何かプログラムを作ってみたらおもしろいかもしれないという流れです。これは何とかなりそうな予感がしてます。軽量言語らしからぬ汎用性が Python の強みですね。
ひでひでた
日常生活   0 0

書評:みんなの Python
最近取り組んでいた
みんなのPython 改訂版みんなのPython 改訂版
(2009/04/11)
柴田 淳

商品詳細を見る
を大体読み終わったので書評してみます。全体で15章構成ですが、GUI アプリケーションの作り方が書かれている14章と次世代のバージョンである Python 3 の解説を行っている15章は読んでいません。
 本書は入門書らしい入門書です。細部には深入りせず、ひとまずこの言語を使うのに必要な基本文法や Python の特徴が説明されており、読後にはそれなりに実用的なコードを書き始めることが出来るようになるでしょう。「公立高校で使うような数学の教科書」というのが僕の印象を端的に説明するフレーズです。事実を単に列挙する傾向があり、「なぜ」を問えない空気があるように感じました。
 長所は、初めてプログラム言語を学ぶような初心者であっても分かる程度に平易な記述が行われていることです。イメージ優先で説明がなされ、それをサポートするような図が豊富に載せられています。また、さすがに邦書だけあってユニコードに関しての解説は詳細です(Python はデフォルトでユニコードをサポートしています)。
 逆に、他の言語を学んだことのある人が新しく Python を勉強する場合には、本書の記述は冗長すぎます。他言語との違いは所々でコメントされていますが満足いくような分量ではありません。また、Python はオブジェクト指向言語ですが、初めてオブジェクト指向を学ぶ人にとってこの本の説明は親切とは言えないと思います。実際、僕はCしか学んだことがありませんが、本書を読んだ今でもオブジェクト指向が何なのかよく分かっていないままです。
 個人的にテンションが上がったのは、クラスの継承とメソッドのオーバーライド(9章)、Python におけるオブジェクトの考え方(12 章)を学んだ時でした。親から子に性質を継承し、さらに適宜改変出来るこの仕組みはマジ熱い。「Python においては、型とアトリビュートを持つものがオブジェクトである」という一文は非常にしっくりきました。第1章の初めで述べられている「Pythonは覚えやすい、使いやすい」というのは、このようなシンプルな仕組みに支えられてのことだと分かりました。結局、この本は12章を理解出来れば大体のことが分かったと言えると思います。
 本書を読み終われば、次は膨大なライブラリに登録されているモジュールを使って具体的に何が出来るかとか、より高速に実行可能なプログラムを作るにはどうしたらいいかと考えるための基礎が出来るでしょう。
ひでひでた
書評   0 0

PyDev 導入
寝る前に今日のまとめ的なことを少し。
 もうちょっとで『みんなのPython』を読み終えられそうです。OOP の説明に入ってからどうも分からないなと思っていたのですが、結局 Python では型とアトリビュートを持っているものが全てオブジェクトであると書かれているのを見て割とすっと入ってきた気がしました。C のセンスで言うと全然違うものを同じように扱うことが出来るのね。それで文法がシンプルになってるけれど、ライブラリが充実している上に色々な実装があるから幅広く使えると。十徳ナイフみたいなもんですかね。
 勉強するときに相変わらず便利な iPython はコードを真面目に書こうと思ったら不便ですね。そんな訳でしばらく前に導入した Eclipse の Indigo さんに PyDev を入れました。もうこれがめっちゃ便利で、プログラムが大きくなればなるほど手放せなくなるんだろうなと思わざるを得ない機能性でした。ただ pylab がうまく import されないようなので何とかしないと。PYTHONPATH をちゃんと設定しないといかんのかな。解決したらまた書きます。それでは good night.
ひでひでた
日常生活   2 0

Python
Python、いいですね。ハマり始めている。
 とにかくライブラリの充実っぷりがすごいです。それとインターフェイス。iPython+Numpy+Scipy+Matplotlib で無敵って感じ。Scipy のおかげで FFT もメソッドを呼び出すだけで実行出来るし、Matplotlib があれば gnuplot は必要なさそうです。ただし、(普段使っている OS である)Ubuntu の apt-get で Scipy を入れると肝心の blas とかを使ってくれなくなるとの情報もあるので注意が必要。何にせよ、書くのが簡単でテキスト処理するには便利です。
 今のところ
みんなのPython 改訂版みんなのPython 改訂版
(2009/04/11)
柴田 淳

商品詳細を見る
を使って勉強してます。1日30ページずつくらい進んでいて、今日でようやく半分終わりました。明日からクラスとかをやります。この本についてはそのうちレビューを書こうかな。Cなど他の言語を学んだことのある人にとっては分かりやすい本ではないと思います。もちろん悪いところばかりという訳ではないよ。
 Python の勉強をするときには日本語の資料が他の言語に比べて少ないのがネックかなぁ。日英関係なく参考に出来そうなサイトをいくつか見つけたのでここに載っけておきます。
 Python Scientific Lecture Notes には、特に科学者向けの丁寧かつ実際的な解説があります。なんか海外のグループが作った資料を翻訳してくれているらしい。その資料自体も PDF ファイルとして落とせるので、資料は紙でっていう僕みたいな人にもお勧め出来ます。言語自体の勉強をするって感じではない。あ、資料という意味では、van Rossum 自身が書いたチュートリアルがどこかに落ちていましたが場所は忘れました。
 Python Tutorial は名前通りのサイト。英語だけど一番丁寧なんじゃないでしょうか。
 IronPython.net では .NET で使える IronPython をダウンロード出来ますが、ブラウザ上で手取り足取り Python の仕様を教えてもらうことも可能です。ブラウザにシェルがくっついてる感じ。英語です。
 それと、言語自体を勉強するという趣旨では
初めてのPython 第3版初めてのPython 第3版
(2009/02/26)
Mark Lutz

商品詳細を見る
が詳細に書かれていて良いと思います。今日本屋で買ったばかりです。O'Reilly の例の大きな判型かつ400ページは下らない分厚いものですが、正直言って上に挙げた本よりはずっと楽しく読めるので苦にはなりません。
 まあ今んとここんな感じかな。ちょっとシミュレーション関連で文字と数値が混ざったテキストを処理しないといけなくなってきたので、Python はちょうどいいのかもしれないですね。やり始めたきっかけは先輩が使っていたからというだけだったのだけど。クラスとか、OOP を学び始めるのに Python を選ぶのが良いのかは分からないです。
ひでひでた
シミュレーションなど   0 0

おひさ
久しぶりのブログ更新。僕はそれなりに元気にやっています。
 何ヶ月ぶりかは忘れてしまったくらいだけど、今日は書ける気がしたのでエディタに向かっています。使うのはもちろん OmmWriter で。ここ数日の京都は日中の最高気温が連日30度を超えていますが、モニタに今映っているのは一面の雪原とまばらに生えた枯木です。弱冷房を入れているのでそれほど違和感は無い(笑)
 さて、前回の記事から相当な時間が経っていることと対応して書きたい内容も増えたのですが、今日の朝9時からラボのミーティングがある都合上のんびりとタイプし続ける訳にもいかないので、いくつか項目を選んでみます。

■上洛して3ヶ月
 3月に東京を離れて以来、丸3ヶ月以上が経ちました。早いものです。3月下旬の自室は床が極端に冷えており鉄筋コンクリートの存在を感じずにはいられませんでしたが、今やクーラー無しでは寝られなくなってしまっています。
 元々は実験をするつもりでこちらに来たのですが、紆余曲折を経て、基本的にはシミュレーションを専門に研究することに決めました。シミュレーションといっても色々あるでしょうけど、僕がいまやっているのは生体分子シミュレーションです。つまり、タンパク質や核酸の挙動を全原子の運動を計算することによって解析するということです。
今のところは直接の指導教官である准教授のよっしーが研究しているタンパク質の構造変化などをテーマに計算機に向かっています。「基本的には」と断ったのは、もし何か簡単な実験に関わることが出来るならやりたいといまだに思っているということと、今後自分で行うであろう理論的な予測を自分自身で実験的に検証出来れば素晴らしいと妄想しているからです。まあ、どうなるこっちゃ。
 シミュレーションは楽しいです。これまで学んできた統計物理により良くアクセス出来ることと、実際上生物学に理論的にアプローチする有効な手段になっていることがよく分かるからです。また、プログラム自体の勉強も楽しい。いまは C++ と Python を習得しようとしているところ。言語仕様を学ぶこと自体も楽しいですけど、早く何か作りたいと気が急いてしまうことも多いです。
 東京時代は学問的な面で何の成果も出さずに終わってしまいましたが、あの2年間で学んだ(非平衡)統計力学の諸々の知識はいよいよ役立ってきていますし、そもそも、自分が最も関心を持って付き合っていけるものが何か判断することが出来たのが最大の収穫だったと最近では思えるようになりました。そして何より、学問に向かうときの一番底にある姿勢のようなもの(ちょっと言葉にするのが難しい)を研究室の空気から学べたのが幸せなことでした。研究者としての基本スタンスは東京時代に植えられたと言っていいと思います(特に、ラボの後輩を見ているとそう感じる)。

■コラボ
 研究は基本的にはひとりで進めます。マシンに軌道の計算をさせたり、出てきたデータを可視化してみたり、実験データや(生物学者のいう意味での)モデルを眺めて理論的な裏付けが出来ないかと考えたり。これは誰でも同じだと思いますが、僕の場合は上司が実験家だという意味でちょっと特別な状況に置かれています。日常的にコラボレーションしてる。
 彼としては実験的に手が届かない部分の情報が欲しい。そこは僕がシミュレーションします。ただ、シミュレーションすることはするが、実際の攻めどころは折に触れて議論します。「こんな量を見たい」と言われれば「こういうシミュレーションをしてあの理論を使ったらよさそう」とか答えたりしながら進んでいくのが普段の様子です。
今のところは僕の知ってる道具で何とか解析出来る範囲かなぁ。全然足りてないなとは常々。もちろん理論的な点は自分一人では不安なのでMD専門の先生とたまにディスカッションさせていただいています。彼は彼でまた実験を良く分かっているのが素晴らしい。
 要するに、必要な情報を様々な手段で得つつ個人プレーによって研究を進めるというのが基本スタンスです。

■この業界で生きていく、ということ
 それにしても、実際に生物学者たちの前で毎月最低1回はトークをするようになると彼らとの違いってのがはっきりしてきて面白くもあり大変でもあります。しかも毎度毎度英語だからしんどい。
 あまり抽象的なものはいかんのですね。数字やら理論やらから結局どのようなものが「見える」ようになるのか、そこが一番大事みたい。生物物理のように学際的な領域に身を置いて生きていくためには、お互いがどのような理解の仕方をするのか分かっておく必要があるようです。ここら辺を日々体感出来るのは結構貴重なことかな。

■まとめ
 何にせよ、新しいラボでの生活はそれなりに順調です。ここ1週間ほどは使っているシミュレーションソフトのソースを読むだけで一向に研究が進まずフラストレーションが溜まっているんですが、よっしーと議論して自分のアイディアを認めてもらえたり、友達と晩飯食べたり出来るのが楽しいので何とかやっていけています。
 今月中にある程度のまとまった成果を出したいです。
ひでひでた
日常生活   0 0

| HOME |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。