Emacs起動するとWrong type argument: number-or-marker-pというエラーが出るようになって暫く経つ

起動する度に出るのは嫌なので、探ったらここと一緒の部分だった。

多分このmacbookに「バッテリーの交換修理」という警告が出ているせいだろう…

そろそろ4年目だし、買い替えたいなぁ。でも新モデルまだでないんだよねー

El Capitanにアップグレードして効かなくなったコマンド履歴をなおした

職場のLinuxはzsh使っているんだけど、家のmacはbashを使っている。そしてこんな感じの設定をして快適に使っていたがEl Capitanにアップグレードしたらhistoryが効かなくなった(相当前のことだけど)

最近まであまりコード書いてなかったから不便はあってもイラつくことはなかったけど、コード書き始めるとこれが気になって気になって仕方ないw

ホームディレクトリに.bash_sessions_disableっていうファイルを作ればいいらしい。

つまり

touch ~/.bash_sessions_disable

って打つだけ。あとはターミナルを新規に開けばOK

なんじゃそりゃ

今飲んでいる薬

虫垂炎を薬で散らそうとしてるけど、微熱は続いてるし無理かも。

おくすり110番だとよくわからん部分が多いので添付文書

requests+pyqueryで気をつけること

requests+pyqueryで文字列の扱いに悩まされるのは主に二箇所ある。そしてその組み合わせのエラーが出るので悩ましい。

一点目はrequestsでの文字化け

requestsでcontentとtextの違いはtextはr.encodingでdecodeされたunicode文字列だということだ。なので正しくデコードされたunicode文字列を推定できればrequestsでの文字化け問題は解決する

だが常にunicode文字列をpyqueryに渡せばOKかというとそうでもない。

Unicode文字列をpyqueryに渡すと起きるエラー(Unicode strings with encoding declaration are not supported.)

常にUnicode文字列を渡すようにすると Unicode strings with encoding declaration are not supported. というエラーが散見されるようになる。これはpyqueryが内部的に使っているlxmlがヘッダーにエンコーディングが指定しているHTMLを渡すとそれにあわせてデコードしようとするらしく、既にユニコード文字列化されたHTMLもその作法にしたがってエラーになるというものだ。

というわけでこの場合はもとのstr文字列を渡さないといけないらしい。

これが結構面倒くさい。requestsでヘッダーにエンコーディングが指定されているかどうか知るオプションあるんかね?

虫垂炎になった

なったというか現在進行形だが。

金曜日の深夜に痛みで起きてからほとんど眠れなかった。次の日の朝に診察してもらったけど、初期の虫垂炎だった。初期であの痛みってことは進行したらどんだけキツイんだろうか?

医者には切除を薦められたけどとりあえず薬で散らす方向で様子を見ることにした。

治らないようだったら入院だろうから、読書用の小説とかたくさん買っておこうかなぁと。

「僕だけがいない街」のさわりが知りたくて1巻を買って読んだらいつの間にか全巻揃えていてしかも読みきっていたという…

Kindle恐るべし

ProductName 僕だけがいない街(1)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2013-05-18 )


ProductName 僕だけがいない街(2)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2013-07-10 )


ProductName 僕だけがいない街(3)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2014-01-04 )


ProductName 僕だけがいない街(4)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2014-06-04 )


ProductName 僕だけがいない街(5)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2014-12-29 )


ProductName 僕だけがいない街(6)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2015-07-04 )


ProductName 僕だけがいない街(7)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2015-12-26 )


ProductName 僕だけがいない街(8)<僕だけがいない街> (角川コミックス・エース)
三部 けい
KADOKAWA / 角川書店 / ?円 ( 2016-04-27 )


週末は学科の同窓会に行ってきた

行ったら同級生が一人しかいなかったというw

お昼は丸太町の花ももですだち蕎麦。これは美味しかった。お酒も飲みたいくらいw

1466599931 1466599929

夜はつくね製作所で。日本酒から入ったんだけど、懇親会で飲んでたからあまり入らなかった。

1466599934 1466599936

1466599938 1466599941

二枚目の写真が酒の肴としては最高だったがちょっと濃かった

1466599943 1466599945

次の日は今回の旅のメインの鯖寿司を求めてぐるっと一周

お昼はひさしぶりにますたにで。

1466599947

家に帰ってから鯖寿司三種食べ比べ。鱧寿司も買うべきだったんだろうけど、予算オーバーw ボーナス出たら季凛さんに鱧コース食べに行こうっとw

1466599950

お酒はKIDスパークリング(父の日だったからw)

1466599952

Bag of Fragments(BoF)を超えろ

先日Deep Learning創薬の駄文をのせてみたが、

深いニューラルネットワークで特徴抽出っていうのが、chemoinformaticsの文脈だと「フラグメントからファーマコフフォア構築」というのはその通りだと思うんだけど、それがBoW的なECFP4みたいなフィンガープリントでいいのだろうか?pharmacophoreとかCoMFA,CoMSIAみたいな表現に向かうような記述子で出発しないといけないんじゃないかなーと思う

以前@iwatobipenが触れていたNeuralFingerPrintもECFPの特徴抽出プロセスと類似の方法で距離を考慮してないからファーマコフォアにはいたらないと思う。精度がいいのは分散表現のところではないかなぁと思っている(つまり以下の説明)。

Standard fingerprints encode each possible fragment completely distinctly, with no notion of similarity between fragments. In contrast, each feature of a neural graph fingerprint can be activated by similar but distinct molecular fragments, making the feature representation more meaningful.

実際溶解性みたいな分子全体の特徴が重要な場合の予測は非常に改善されているが、薬理活性みたいな分子認識が重要なファクターになっているものはあんまり改善してないように思う。GitHubに実装があるし、精度もいいから予測モデル作る場合にはこれを使うけどね。

ここらへんも似た感じだと思う。如何にもトキシコフォアとかファーマコフォアが学習されるようなFigureが載ってるけど、Catalystとか使ってファーマコフォアモデルを組み立てたり、ドッキングシミュレーションをやりまくった経験からはこれは誤解されそうな説明だなぁと思った。

で本題。最近Molecular Graph Convolutions: Moving Beyond Fingerprintsという意欲作を読んで感動した。

ここまで書いたら中身の説明を書くのに疲れちゃったので興味のある方は是非読みましょう。著者もGoogleとStanfordの人だし、pubmedで出てこなかったらノーマークだったわ。

化合物(グラフとしての)の不変性を獲得するようなCNNのやり方参考になったがプーリングがsumっていうのがそれでいいのかなぁと思った。

f is a learned linear operator with a rectified linear activation function and g is a sum.

ファーマコフォアが記述できるようなDNNの方法ができれば、精度上がるだろうから、測定データさえ増やせるのなら有望じゃないかと思う。

さらにその結果からドッキングシミュレーションの評価関数を作れるだろうから、それを使ってリードホッピングにトライしてもいいから夢が広がる。

ドッキングの精度が高ければモデルでFMO実行してもそれなりに正しそうな結果が出るだろうから、結晶に頼らなくてもモデリングでいけそうだしな。

PyQueryの挙動がちょっとわからん

企業のプレスリリースをテキストマイニングしようと思うと色々大変なわけだ。そもそもプレスリリースの媒体がpdfを想定されているために、タイトルのみ本文無しという潔いRSSが多いしそういうのは購読しても嬉しくない。

というわけでプレスリリース一覧のページからpdfのURLを抜き出してpdfminerかましてデータ抽出やらないといけないしそっちのほうが逆に構造化されていてスクレイプしやすかったりする。

で、PyQueryを使ってガリガリやっていたのだが、何故かスクレイプできないサイトがあった。BeautifulSoupではちゃんとスクレイピング出来たのでエラーの原因が気になって調べてみたのでメモっておく

普通にrequestsでHTMLを取ってきてPyQueryに渡してやると :::sh >>> from pyquery import PyQuery as pq >>> import requests >>> tgpr = "http://www.transgenic.co.jp/pressrelease/" >>> d1 = pq(requests.get(tgpr).content) >>> d1 [<{http://www.w3.org/1999/xhtml}html>] >>> d1("a") []

aタグが一件も見つからない。しかし、urlオプションに直接サイトのURLを指定するときちんとparseされている

>>> pq(url="http://www.transgenic.co.jp/pressrelease/")
[<html>]
>>> d2 = pq(url="http://www.transgenic.co.jp/pressrelease/")
>>> len(d2("a"))
71

なんだこれは?となったのでドキュメントを漁ったらxmlパーサーでパースしてみてだめだったらhtmlパーサー使うぜって書いてあったので強引にxmlパーサーでparseさせてみた。

>>> d3 = pq(url="http://www.transgenic.co.jp/pressrelease/", parser="xml")
>>> d3
[<{http://www.w3.org/1999/xhtml}html>]
>>> len(d3("a"))
0

というわけで文字列を渡すときにはなぜかhtmlのパーサーでparseされていないっぽい。これはコードを追うべきですな。

67行目のetree.XMLSyntaxErrorという例外が投げられてないのではないかということになった。

まぁ別にわざわざrequests使う必要もないのでurlオプションにURL渡せばいいんだけどね。

次回のShizuoka.pyの懇親会はやきとり王将になりました

王将使うの多分初めてかな。懇親会は予約の締め切りがあるので参加される方はお早めに

昨日は久しぶりに#A君とあって一緒に黙々コーディングをしてたんだけど、A君重量級になってた…弱虫ペダルでいうと田所感が出てた(まじで運動しないと身体にくるぞw)

また@karky7@ando_ando_andoと鈴木屋でホルモンつつきながらプログラミング言語談義でもしたいなぁと思っていたけどなかなか難しいですね。

それから#A君にはgoに奪われた静岡市圏の勢力をPyhtonで奪還するというタスクが出来たので頑張ってください。たまにはコメヤスに酒を買いにいきたいし静岡で飲みたいなぁ。

で、もくもく会では2人でTDNetのクローラー動かないなー、おかしいなーと悩んでいたんだけど、selenium2.53.2とphantomjs2.1.1の組み合わせだとswitch_to_frameメソッドがきちんと動いてないっぽいですね。chromedriverだと動いたのでダウングレードして動く組み合わせを見つけるかバグフィックスされるの待たないといけませんな。

久々にもくもくしたけど楽しかった。ここ二三年一人でコーディングすることに慣れちゃったのと、技術を追いかけなくても余裕で生きていけるようなぬるま湯に浸かりきっていたので流石にまずいなーと感じたよ。

次回のShizuoka.pyでは

  • 不適切だが違法ではない♡クローラーを作ろう
  • はじめてならアコムをやめてジョブリブでキャッシングをしよう☆

という2つの発表をします。どちらもネタに走る予定なのであまり役に立たないかもしれないけどリハビリも兼ねているので大目に見てくださいw

HUNTER×HUNTER-モノクロ版-33

最新刊出てた。

そして後手番で石田流を目指す43飛戦法というのに興味があったので読んでる。

ProductName 振り飛車4→3戦法 (マイナビ将棋BOOKS)
戸辺 誠
マイナビ出版 / ?円 ( 2013-03-27 )


角交換四間飛車の出だしから気分で変更できるのが良さそう。ゴキ中は最初からゴキ中と戦型固定されるから気を使う。