29042025 chemoinformatics
fmoutilをコンパイルする必要があったのだけど
gfortran fmoutil.f -o fmoutil
だとエラーが出るので一つオプションを追加する必要があった。
gfortran -std=legacy fmoutil.f -o fmoutil
それにしてもfortranは古のコードをよくコンパイルできるなぁと感心するのと、またコレの日々が繰り返されるのかとちょっと憂鬱ではある。
29042025 chemoinformatics
fmoutilをコンパイルする必要があったのだけど
gfortran fmoutil.f -o fmoutil
だとエラーが出るので一つオプションを追加する必要があった。
gfortran -std=legacy fmoutil.f -o fmoutil
それにしてもfortranは古のコードをよくコンパイルできるなぁと感心するのと、またコレの日々が繰り返されるのかとちょっと憂鬱ではある。
28042025 life
昨日長文を書いていたらうっかり消してしまった。
先週木曜日は、チームの人達に歓迎会を開いていただき楽しく飲みました。ちょっと立ち位置がわからなくて手探りな状態ですが、皆さんの人となりを少し理解したかなと思います。一次会のお店も良かったですが、二次会で行った梅田のハイボールが美味しくてオッ!となっていました。
金曜日は、昔から知り合いの方々とディープな焼き鳥屋での歓迎会でした。ワタシ好みのお店で食べ物が大変美味しかったです。また、メンバーもほとんど20年近く付き合いのある方々で今の会社に所属している人もいれば、他社の人もいたりしたんだけどいろいろなことを気兼ねなく話せてこういう関係性は大切なんだなぁと改めて感じました。ちなみに参加者の中にうどん屋に一緒に行った方がいたのでその話をふってみたけど覚えてなかったw。
土曜日は、いつもの立ち飲み屋に刺し身目当てに行ったのですが、ひょんなことからスパイスの話になり(ちょうど今もビリヤニを作っている)おすすめのスパイスショップを教えてもらって、帰ってから地図を確認したらまさかのうどん屋の隣であることがわかり、これは行かねばとなりました。
というわけで日曜日は自転車の点検をしてもらいつつ、うどん屋とスパイス屋に行ったのだけどまさかのスパイス屋がおやすみでした。うどん屋さんは堪能したのだけど、近いうちにもう一度行かないといけないことが決定しました。次はキーマカレーうどんを食べる!
27042025 chemoinformatics work life
To create an input file for FMO calculations, we need both the structural information of the protein with hydrogen atoms included and the charge information for each fragment. However, since PDB files do not contain hydrogen atoms by default, we must add them using an external tool. Additionally, because the PDB format does not provide a field for storing partial charges, we repurposed the temperature factor field for this purpose.
Since the mmCIF format allows partial charge attributes to be added without unnecessary hacks, I wrote the code in openMM and gemmi.
from openmm.app import * from openmm import * from openmm.unit import * from sys import stdout import gemmi pdb = PDBFile("1AKI.pdb") forcefield = ForceField('amber14-all.xml', 'amber14/tip3pfb.xml') modeller = Modeller(pdb.topology, pdb.positions) residues=modeller.addHydrogens(forcefield) system = forcefield.createSystem( modeller.topology, nonbondedMethod=PME, nonbondedCutoff=1.0*nanometer, constraints=HBonds) partial_charges = [] for force in system.getForces(): if isinstance(force, openmm.NonbondedForce): for atom_index in range(force.getNumParticles()): charge, sigma, epsilon = force.getParticleParameters(atom_index) partial_charges.append(str(charge)[:-2]) with open('tmp.cif', 'w') as f: PDBxFile.writeFile(modeller.topology, modeller.positions, f) doc = gemmi.cif.read('tmp.cif') block = doc.sole_block() loop = block.find_loop('_atom_site.type_symbol').get_loop() loop.add_columns(['_atom_site.partial_charge'], value='?') pcs = block.find_values('_atom_site.partial_charge') for n, x in enumerate(pcs): pcs[n] = partial_charges[n] doc.write_file('output.cif')
I’m getting tired of writing FMO input generators every time I change jobs, so I’ve decided to upload them to GitHub as open-source software.
22042025 life
ジョギングしようと思っていたのだけど先延ばしにしていたが、やっと走ってきました。ただ今回のルートは結構気を使う感じだったので次はないかな。
— kzfm (@fmkz___) April 20, 2025
走る気が起きなかった理由は
みたいな感じで、自転車でジョギングに適した公園に行って走るのがよいんじゃないかと思っているけど、そのような場所が見つかっていない。
もう少しウロウロしながらランナーの挙動を追いかけよう。
私は市場とか好きすぎて日本でも海外でも市場巡りをするんですが、元豊中在住者に豊南市場情報を教えてもらっていたら、実は昔豊中のうどん屋で地域Rコミュニティの懇親会やったぞっていう補足情報をいただいて、急激に当時のことを思い出しました。
2010年に豊中でうどんを食べたという事実を知らされ驚愕している、、、その当時は全く土地勘なかったので「うどんうまし」という記憶しか無いのだけど近所であったwhttps://t.co/Bb0QlcqNQS
— kzfm (@fmkz___) April 18, 2025
そういえばShiga.Rやったなー、しかも15年前にw。Blog書いておくとこういうときに記憶の補完になるので大変役立ちますね。
で、一個思い出したのは懇親会に参加していた立命の講師の方との会話で、
「ケモインフォとかIBISとかNeurIPSとかキャッチアップしといてケミストリーに転用すればいいから楽っちゃ楽ですよねー」
的なことを言ったら
「それってサイエンスティストとしていいんですかねーオリジナリティを出さないサイエンス楽しいですか?」
みたいな返しをされて、確かにそうだよなーと思い、なんとなく企業研究者だろうがオリジナリティの追求、SOTAを超える姿勢みたいなのを強く打ち出すようになった気がします。あとは前職の計算科学チームのレベルの高さにも恵まれてお互いプッシュし合って高みを目指すことも良かったように思います。
もう一点思い出したのは、「あの頃Rの地域コミュニティたくさんあったなー」ってことで始まりはTsukuba.Rだよなーと調べたら2008年くらいの話でした。Japan.Rも2010から続いているし、息が長いなぁと感心していました。
先週上司と1on1していて、「強いチームを作るためにどういうことをしていましたか?」って聞かれて
ぐらいしか思い浮かばなかったのだけど、よい社外コミュニティで意見をぶつけ合うっていうのもそうなんかなぁと重た次第なのでメモっておきます。
13042025 life
20年以上ぶりに一人暮らしをしていますが、快適に過ごすためにやったことをメモ
amazonのセールで買ったeufyを使ってます。さらに奴が存分に働けるようにあまりフロアにものを置かないようにしています。スマホで掃除の指示ができるしちょっと買い物に行っている間に掃除ができるので便利というか必須。
トイレとか玄関とか自分でスイッチのオンオフをする必要のない場所はこれに変えました。というか自宅がそうなっていて引っ越したときにトイレの電気の消し忘れが多発したので。しかもかなり安くなってた。
要は体重計ですがシャワーの際に必ず乗りますし、メーターが無いのがかなりよいです(体重の確認はスマホで)。体重の記録の確実な習慣化ができますしストレスフリーなので、体重計として考えるとちょっと高い買い物でしたが満足しています。
キッチン周りをどうするかが今後の課題
去年の夏くらいにインストールしようとしたら何故かインストールできなくてつらい思いをしたのだけど、今日再度インストールしたらうまく行ったのでメモ。
GAMESSのバージョンはJuly 15, 2024 R2 Patch 1です。これよりの前のバージョンではコンパイルがうまくいかなかった気がする。
基本的なインストール方法はこの通りです。
Configするときにgfortranのバージョンを聞かれますが、正直にバージョン(私のは14.2だった)を入力するとコケるので11.2とか古めの申告をしましょう。
あとはできたMakefileを弄ります。
これでインストールできるはず。
New Resolutionに書いた通り、来月から新しい環境で挑戦することにしました。
Try something new. Time is finite for everyone, and time wasted is time that will never come back. We have only one life to live, and it is our duty to live it happily and without regrets.
今月の初旬が最終出社日だったので、その後ははちょっと羽を伸ばしていました。急遽チェンマイに行くことにしたし、帰国後たくさんの送別会を開いていただいてありがたかったです。
現在の会社は8年いましたが、大変充実していたし、とても楽しく仕事ができました。ハイレベルなサイエンスに囲まれた環境のおかげもあって自分自身はすごく成長を実感できたし、たくさんの新しいことに挑戦して成果も残せたかなと。上司、部下、同僚の皆さんには大変感謝しております。
次の職場でもサイエンスをがっつり深めていきたいなーと思っています。
チェンマイ旅行も最終日。チェンマイ発の便が深夜なのでチェックアウト後辛いので、もう1泊分払って夜まで部屋を使えるようにした(これが正解だったように思う)
朝起きてジョークソムペットに行ってその後荷物の整理をしながらダラダラ過ごしてから、ドイステープでも行くかとソンテウ乗り場に行ったら誰もいなかったので、マッサージに行くことにした。90分で450バーツ(2000円くらい)なのでやすいのでないのかと思う(私は日本でマッサージを受けないので相場がわからん)。この3日間で50kmくらいは歩いたのでマーサージでリセットして快適。それでも魚のポケモンの色違いは一匹しかゲットしていない。
マッサージが終わってからもう一度ソンテウ乗り場に偵察に行ったら、2人ほど待ちがいたので加わることにした。運転手もこれ以上は増えそうにないと悟ったのか私が加わってすぐに出発してくれた。3人のソンテウは座るのは快適だったが道中揺れた。乗り物酔いしやすい人は無理だろなー。
ドイステープは一回行っておけばいいのではないでしょうか?
昼間の暑い中をソンテウで往復するだけでかなり体力を消耗した。
夕飯はちょっと早めにサパーンガイトートでガイトート。ローカル色強め。ビールと手羽ガイトートと胸ガイトート、スティッキーライスで125バーツだったのお安め。
その後、ホテルに戻ってちょっと休んだら、日の入りが近づいたのでワット・チェンマンに散歩。結構趣がありベンチもあって座れるし、ポケモンジムも2つくらいあるので飽きないため、この旅行中で3度ほど行っている。
というわけで、今はチェンマイ空港のラウンジでシンハービール飲みながらブログを書いている。これから上海経由で帰国だ。
本日は30kmくらい歩いた。朝はジョークソムペットなので略。
涼しいうちにアカアマコーヒーまで歩いて、コーヒー飲んだ、旨し。 途中で犬に追いかけられた。このあたりは繋がれてない飼い犬とか野良犬多め。
昼はLim Lao Ngow Fishball Noodleで汁なし麺
夜はアルンライでカレー。カレー自体が二人前くらいあるので量は多めだったらしい。今回は普通にチキンとポテトのカレー。あとサイウアを食べたかったので頼んだけど量が多かった。複数人で来るべき店かもしれん
そのままナイトマーケット行ってちょっと買い物をした。