ネットワークのない環境でKnimeにNodeを入れるには
会社でKnimeを使ったりする場合、会社の構造式やデータを流出させないためにネットワークに接続されていない環境でデータ処理するケースもあったりします。
Knimeのインストールファイルは公式HPからダウンロード出来るので、そのファイルを移してインストールすればいいんですが、Extensionsはどこでしょう?
どうしたらいいかというと、こことか
ここから
対応するversionのNodeをZip fileでダウンロードしてきます。
次にFile > Preferences > Instal/Update > Available Software sitesへと進みます。Add > Archiveからダウンロードしたファイルを選択し、適当な名前をつけてAddし、最後にApply and Closeします。
あとはFile > Install KNIME Extensionsからいつも通りInstallするだけです。
KnimeからExtensionsを直接インストールしたり、NodePitを使ったり出来ない場合にはこんな感じです。
端書き
夢を見た。
スイスから帰ってくる途中の夢だった。
現実にはもう日本で仕事を再開してるし、実際のシーンとは全然関係なかった。
向こうに未練がない訳ではないけれど、見るからには何かしら頭の隅っこの方で考えてる虫がいるんだろう。
日本に帰ってきてからもモヤモヤしてる日々が少し続いているので、言葉にして頭ん中の整理を手伝ってあげたい。
縁あって、某有名製薬会社のマネージャーの人と少しだけ話す機会があったことを思い出した。
確かスコットランド出身で、学位取得後はどっかでポスドクをした後に企業に就職、そして転職で現職だったと思う。
旦那さんは高校の教師だと言っていた。自分が先にスイスに来た後もなかなか職が見つからず、当時の半年くらい前にやっと就職が決まったところだと、拙い英語の私にも話してくれた。子供の話はしなかった。生活が変わると大変だよね、って話をした。
皆さん優しいのと、日本企業の留学制度なんて知らないので、ポスドクしてるっていうとうちのオープンポジション紹介しようか?とか時々聞いてもらえる。外資はリストラが日常茶飯事というけれど、新しい人を受け入れるために常に<10%くらいはオープンポジションを作っておくらしい。リストラ自体も別に気軽にする訳ではもちろんないだろう。部署がなくなるなら話は別だが、その人がいなくなっても仕事が続く場合はリクルートコストも発生する。プロジェクトの進捗には余計なタスクでしかなく、メンバーが能力を最大限発揮してくれた方が話は当然スムーズだ。
外部からのプロジェクトリーダー採用も結構盛んだったりする。
例えば新規技術なんかがわかりやすいけど、自社にない技術チームを組織する時に経験ある人をよそから引っ張ってきて仕事を思いっきり任せてしまう。化学で言えば、単なる(と言ったら聞こえが悪いかもしれないが)SARのプロジェクトリーダーは社内の生え抜き研究員がapply出来ない、外部でのポスドク経験者限定なんてのも増えてきてるらしい。自社にないアプローチや人材へのアンテナがものすごい。仮にプロジェクトがポシャった後のキャリアはどうなるんだろう。即クビなんてことはさすがにないと思うけど、そういうのももっと聞いておけばよかった。
中国も近年はこの流れに追随しているらしい。有名どころで言えば、WuxiなんかはポスドクでJACS, ACIE数報持っててやっと研究員ポストが手に入るくらいなんだとか。
スイスやドイツは共通機器、いわゆるコファシリティが充実している。
技術員、いわゆるテクニシャンも多く、給与は日本よりも高めの印象がある。というか、日本は研究職全体の給与が低く、専門性が軽視されている印象を受ける。ちなみに技術員といってもPh. D.を持っている人も結構いる。単にルーチンワークをこなす要員ではなく、技術課題を解決したり、最適な方法を提案するための知識や経験が求められることもある。NMRやLCMS、X rayなんかはわかりやすい。他にも研究インフラ周り以外でもPh. D.を持ってる人が多かった。
Ph. D.以外は認めないとか、もっと日本もPh. D.を増やそうということが言いたい訳ではない。
Ph. D.は専門的知識・技能を持つ免許や保証のようなものであり、その有無で職務と給与が明確に分かれる。ただそれだけのもので、熟練のテクニシャンから見たら新米のPh. D.なんて、という話はもちろんよくある。肝心なのは、それでもPh. D.、もっというとポスドクまでのキャリアカリキュラムに価値があると見なされて、育成するために対価給与がしっかり払われることだ。修士は学費を払って研究の現場を広く学ぶ過程であり、博士は研究者としてトレーニングを受けると同時に、研究を実施遂行し、より深淵へと共に進むことで給与を得るPIのフォロワーの一人となる。ちなみにクビもある。完全ではないが、自立も求められる。
疑問の一つは、日本の産業界や教育界はなんでこれに追随しなかったんだろうといこと。チャンスはいくらでもあったはずだと思う。
スイスに限らず、やはり研究をするなら主言語は英語だ。
Zurichはドイツ語圏だけど、仏伊蘭澳英露印中くらいなら平気でみんなapplyしてくる。母国語ではないとは言え、必要なコミュニケーションは十分取れる。
陸が続いてるのも大きい。特にEU圏は就労ビザも要らない。休暇も基本的に自由に取れるし、人口も過密じゃないから移動コストが圧倒的に低い。
日本を出るということが選択肢として当たり前にはまだ存在してない。
当たり前だけど、日本は日本語多すぎ。他の言語に触れる機会が少なすぎ。日本以外の世界に触れる機会が少なすぎ。
だらだら書いて疲れたから今日はここまで。
なんかこんな世の中になってしまったから余計に難しいんだけど、会社の外の人たちともっと繋がりを作っておきたいなぁ。なんか窮屈だ。
Knimeを使ってVirtual Libraryを作るWork Flow
Grüezi,
今回は久しぶりにLibraryっぽいお話を。
端的に言うと、こちらのWork Flowの解説です。
右側のDownload Work FlowからDownloadしてしまえばOK何ですが、ケミストにも使いやすいように少しだけカスタマイズします。
と言うわけで今回の内容はこちら。
- Work Flow全体像
- Marvin Sketch
- RDKit Functional Group Filter
- Row sampling
- RDKit Two Component Reaction (Enumerate)
Work Flow全体像
オリジナルでは先頭にFile readerのNodeを使っていたと思います。それでも全然OKです。最初に構造式を読み込みたいだけなので、SDF readerでもChemical Structure readerでも何でもいいかと思います。
それとオリジナルではTwo Component ReactionではSMARTSで化学反応を指定していました。しかし私はもちろんSMARTSの記述なんて調べるだけでも半日くらいかかります多分。と言うわけで、Enumerationする反応式もMarvin Sketchを使ってしまいます。
Marvin Sketch
フリーで使える構造式描画ソフトでお馴染みのMarvinですが、KnimeでもフリーでNodeが使えます。今回はこんな感じで実際に記載しましたが、File > Openから任意の構造式ファイルが読み込めます。SDFやSmilesはもちろん、 cdxも対応してるので、非常に優秀なNodeだと思います。数が多いときはSDF Readerとかの方が使いやすそうです。
次がちょっと重要で、Change structure outputにチェックをいれてsdfを指定します。それと、output molecules as separate rowsを選択しておきます。この後のWork Flowで使うBuilding BlockはTable上ではバラバラにしておきたいからです。
RDKit Functional Group Filter
一つ前のRDKit from MoleculeはSDFファイルをRDKitに変換しているだけです。次に必要な構造をfilteringしておきます。オリジナルのまんまですが、Primary Amineは拾ってSecondary Amineは除くようになってます。下段ではカルボン酸を拾ってます。
そもそもBuilding Blockごとにファイルを用意して読み込んでおけば、ここのステップは省略出来ます。官能基を選抜出来るので、Work Flowの中に置いておくだけでも邪魔にはなりませんけどね。
Row sampling
Row samplingは、Building Blocks数が多い時に上限を設定してランダムサンプリングしてくれます。
RDKit Two Component Reaction (Enumerate)
今回の要がこいつです。Reactants 1と2をソースにReactionに基づいた構造を発生させます。オリジナルではカルボン酸とアミンの縮合ですが、SMARTSで書いてあるので私にはさっぱり意味がわかりません...
そこでここでもオススメしたいのがMarvin SketchのNodeです。使い方はReaxysなんかと一緒です。まずは実施したい化学式をシンプルに描画した後、対応する原子をarrow toolでmappingしていきます。
今回はこんな感じになればOKです。
そしてOutput optionsを設定します。今回はStructure typeがRxnCellで、output as one row containing all molecules in oneをチェックします。Nodeの解説に書いてあるまんまです。
後はRDKit Canon SMILESまで全て実行します。こんな感じでoutputされればOKです。
Work Flowの最後にCDKのMolecular Properties Nodeとかを置いてあげると、rotatable bondやheavy atomなどdiscreptorを計算してくれます。
多段階反応も基本的には同じ流れで構築出来ます。仮にBuilding Blockを100個ずつ揃えた3成分連結反応なら、100*100*100=1,000,000化合物があっという間に出来上がりです。こいつをVirtual Screeningに流したらVirtual Hitが見つかってくるわけですが、現実にAffinityがあったり活性を示すかは全然別の話なので工夫が必要になってくるわけです。
今までSchrödingerのMaestroでこれをやってましたが、Ligprepなしの2次元で作るだけならKnimeの方が軽くて早いですね。
Degronを探せ2 -Zinc Finger degron-
Grüezi,
前回の記事で晒した素人感は一切無視して、Degronについて少しずつ深掘りします。
今回の文献はこちら。PDB ID: 6H0F 6H0G
今回使っている結晶構造のDegronはZinc Fingerの構造を持っています。CRBNとPomalidomide及びPOIの重ね合わせがこちらです。
左側のSphereで表示されたZn原子にCysteinが2残基、Histidineが2残基しっかりbindingしています。結合距離は2Åでかなり硬いです。このようにHisとCysがZnを摘んだようなmotifをC2H2 ZF domainとか呼びます。そして今回はこのloop部分がGlyをもつDegronなので、Zinc Finger (ZF) Degronな訳です。
今回著者らは、この部分構造に着目しました。6572個のZinc fingerをIMiDs存在下で分解されるかscreeningしたわけです。結果、11個のZinc Fingerが分解され、そのうち6個は全長が分解されました。
次にタンパクの配列を解析したわけですが、結晶が得られているIKZF3と同じ位置にC2H2とGが配置されていることがわかりました。また、IKZF3に変異を入れて被分解能を確認したところ、C2H2やGはZinc Fingerの構造維持に必要なものの、分解に必要なアミノ酸は別の部分だということが判りました。
いやー同じこと考えてる人なんて世の中にたくさんいるもんだなぁと感心しましたw
ひとまず、Molecular GlueはSBDDアプローチ以外にもInfomaticsアプローチが有効であることは間違いなさそうです。
じゃあSBDDアプローチは出来ないのか?ってのも一つ疑問です。前述したように、CRBNとPOIであるIKZF3はPPIしてる訳ですが、リガンドのIMiDsをPOIと相互作用するようにデザインしたら...?
まだまだMedicinal Chemistの需要は無くならなさそうですね。
Medicinal Chemistryへの理解が残っていればの話ですが。
ではまた次回。
Degronを探せ
Grüezi,
今日は勉強したことのメモ書きを少し。
PROTACsのようなdegraderの文献を読んでいると、時々Molecular Glueというのを見かけます。PROTACがbifunctional moleculeであるのに対して、Glueは、例えばCereblonに結合したIMiDsの先にPOIのPPIを誘起します。PROTACのデザインはあくまで鍵穴モデルの延長であるのに対して、GlueはまだLogical designが難しいと言われています。というわけで、どれくらい難しそうかを見てみましょう。
今回はこちらの文献を参考にしてます。
ACS Med. Chem. Lett. 2019, 10, 1592-1602.
PDB ID: 5HXB 5FQD 6H0F
これらのCereblon, IMiDs, それとPOI (CK1a, GSPT1, and Ikaros/Aiolos)の部分構造を重ね合わせたのがこちら。
リガンドのIMiDsとCereblonの結合部位が割とよく重なっていると思いますが、POIはバラバラです。次に少し拡大してpolar contactを表示したのがこちら。
リガンドはPOIと相互作用してませんね...。Cereblonを消してもう少し近寄ります。
IMiDsの左側にGlyを含むループ構造がそれぞれ見てとれるかと思います。Cartoonだとよく重なって見えますが、側鎖を表示するとGly以外は全く違う配列です。
このように、「構造的かつ機能的に一見関係ないが、鍵となる位置にGlyを含む特定のループ構造」をDegronと呼びます。Molecular GlueはSubstrate Receptorに対して、このDegronを持つ基質タンパクのPPIを誘起するそうです。
「Backbornの特徴が似ているだけのPOIとPPIを引き起こす分子を設計」することなんて出来るんでしょうか...。これがMolecular Glueの発見がSerendipityに依存すると言われる所以です。
Molecular GlueはPROTACと比較して圧倒的にDrug-likeと言えますが、PROTACの方がこれまでの創薬経験の延長で戦えるので、参入障壁が低いと言えると思います。
ただし、Zinc Finger Degronのように、Ubiquitinationを受けることが知られているドメインもいくつか報告されています。
KNIMEでText miningでも勉強した方がいいかもですね。
(訂正)今回紹介した3つのPOIがそもそもzinc fingerを持ってるっぽいですね。素人丸出しでごめんなさい。次までに勉強しておきます。
alias を作って快適PyMOL生活
どこかで一度話題にした気もしますが、PyMOL(python?)のコマンドにはデフォでaliasという機能が組み込まれてます。簡単に言うと、コマンドラインに2,3文字入れてtabキーを叩くと、該当するコマンドを補完するか、候補のコマンドを表示してくれます。
実はこれ、自分でも作れます。
今回はこちらのページを参考にしました。
今回の内容はざっとこんな感じです。
Alias example
alias xxx, yyyみたいなコマンドを打つと、次からxxxと言うコマンドでyyyのFunctionになります。
何言ってんだよって感じなので、実際にやってみましょう。
今回参考にした文献は、たまたま読んだこちらです。
(2019) Nat Chem Biol 15: 672-680
とりあえずPDB ID: 6HR2 と6HAX, 6HAYを読み込んでおきます。
続いて、次のコマンドを実行します。
alias nice, as cartoon; show sticks, organic; show spheres, inorganic
ええ、まんまサイトからパクってます。
次にコマンド niceを実行すると…
と言う具合にalias nice, 以降のコマンドをまとめて実行してくれるわけです。
今回のコマンドは水が消えただけですね。
へぇ、それで?
ルーチンのコマンドをPyMOL>File>Edit pymolrcに書き込んで、デフォルトでエイリアス化してしまいましょう。こんな感じです。(#keetane should be replaced with your own user name)
Alias example for default setting at .pymolrc.pml
cd /Users/username/Desktop
set cartoon_transparency, 0.5
set transparency, 0.6
set surface_color, white
set sphere_scale, 0.2
set label_color, gray
alias al, alignto; zoom
alias sp, split_chains enabled; alignto; zoom
alias cc, util.color_chains("(enabled and name CA)",_self=cmd)
alias see, zoom byres organic around 8 and chain A
alias sol, as cartoon; show sticks, organic; show spheres, inorganic organic
alias del, as cartoon; show sticks, organic; show spheres, inorganic organic solvent
alias line, show lines, byres organic around 4
alias hb, select ligand, organic and enabled; cmd.dist("ligand_polar_conts","(ligand)","(byobj (ligand)) and (not (ligand))",quiet=1,mode=2,label=0,reset=1);cmd.enable("ligand_polar_conts")
alias well, show surface, byres organic expand 4
alias 5, create a5, byres organic expand 5 and enabled; disable !a5
alias 4, create a4, byres organic expand 4 and enabled; disable !a4
alias tag, label enabled and name ca, "%s%s" % (resn,resi)
alias untag, hide label
alias pick, cmd.mouse('forward')
alias ch, capture; save image.png
Practice
実際に使ってみましょう。
新たに作ったalを実行するとこんな感じです。
タンパクを重ね合わせてzoomしました。
次にccを実行して主鎖ごとに色を変えます。
さらにseeを実行してligandにzoomします。
del/solの実行で溶媒の表示を切り替えます。
今回のaliasは基本的にアクティブになっているオブジェクトに適応されるので、今は3つのオブジェクトの水が全部表示されててごちゃごちゃしてます。
disable !6HAY
で6HAY以外を非表示にします。
lineを実行して周辺残基を確認します。
hbを実行してリガンドからのpolar contactを表示します。これは、Action>find>polar contacts>to other atoms in objectと同じに設定してあります。
tag/untagの実行で側鎖のラベルの表示を切り替えます。
例えばここの水酸基はS111とH115が相互作用してそうです。
wellを実行してポケットのくぼみを観察してみます。
pickを実行してマウスモードを切り替えます。3-bottun Editingに切り替えて原子をPickしていくと、原子間距離、角度、二面角の順番に表示してくれます。
今まであんなにコマンド打ってたのはなんだったの…というくらいにはサクッと出来ました。
Hint: 今回のコマンドはsol, del, line, wellは全てのオブジェクトに適用されます。
前回記事で水分子を上手く扱えないかなぁとモヤっとしてたので、自己解決出来ました。
なるほど。
Pymol上の溶媒分子をどうするか
Grüezi,
最近湿度が高いですね。電車に乗るたびにもっとPhysical distanceが欲しいと感じて止みません。
そんな訳で今回のお題は溶媒、つまり水分子です。
Pymol上でいくつかのPDBファイルを重ねて表示することがあると思います。その時に、溶媒の水分子ってごちゃついて鬱陶しいことがあります。しかし彼らは、こちらから指定してあげないと表示の切り替えは出来ません。という訳で水分子をどう扱うか、特にコマンドを使って出来る方法を少しまとめてみます。
今回参考にした文献は、たまたま読んだこちらです。
J. Med. Chem. 2015, 58, 20, 8182
PDB ID: 6CEP と6CEOを読み込んでおきます。
それぞれ表示したら水の位置が違いますよね。
溶媒を一括で削除する
delete solvent (and enabled)
and enabledがないと、セッション全体に適用されます。復元できないので、水を確認したい時には手遅れになります。
溶媒単独のオブジェクトを作る
create solvent, solvent (and enabled)
extract solvent, solvent (and enabled)
前者は溶媒のオブジェクトを別個に作成しますが、表示のon/offには使えません。後者は抜き出すので、オブジェクトのon/offで表示を切り替えられます。表示のon/offはenable/disable コマンドです。
溶媒単独の選択オブジェクトを作る
select sol, solvent
hide everything, sol
show spheres, sol
選択オブジェクトを作成し、hideとshowで切り替えます。
対象をsession全体にしておけば、objectごとに切り替える必要はないかと思います。コマンド打つのめんどいですが。
MaestroのSplit風に管理する
(disable !5cep)
extract s5cep, solvent and 5cep
extract l5cep, organic and 5cep
group g5cep, enabled
だから何って話ですが、PDBごとに溶媒を管理しようと思うとこんな感じです。
色が変わったのはPyMOLが落ちただけなので気にしないでください…
Presetを使う(番外編)
ligand site > cartoon
コマンド使ってませんが、すっきり見える方法の一つです。
インハウスで複合体共結晶がたくさん取れてきた時とか、皆さんどうしてるんですかね?
いい方法があったら教えてください。