非プログラマーのためのインフォマティクス入門。(仮)

非プログラマーがインフォマティクスについて勉強したことを記録します。主にKNIMEというソフトを使用しています。

非プログラマーのためのインフォマティクス入門。(仮)

【KNIME】ノード紹介:Try, Catch Errors 〜折角流した処理がエラーで止まるのを回避する〜

みなさん、いかがお過ごしですか?

はてなブログには、どのくらいのページビューがあったのかを見ることができる機能があります。なんだか最近、ちょっとずつアクセスが増えているようです。

嬉しいので、もっと色々と更新したいのですが、今年度から担当になった新しい業務を覚えるのが大変で、なかなか記事を書けずにいます。*1

ちょっとずつですが書き続けますので、気長にお付き合いいただければ幸いです。

 

さて、今回はKNIMEのお話です。

f:id:sumtat:20180621232917p:plain

ちょっと使い方に慣れて色々なことをフロー化していくと、「よーし、今日はこのフローを流して帰ろう!明日には終わってるだろから、朝になったら結果を見よう!」みたいなことがあると思います。

で、朝になってみたら

「うわー、途中でError吐いて、とまっとるやんけ」

みたいな、残念なことになってる…。

あるあるですよね!

なるべく堅牢なフローにするにはエラー対策は結構重要だと思います。そこで、今回はエラー回避に役立つTryとCatch Errorノードを紹介したいと思います。*2

*1:とはいうものの、今回のように更新していると、そんな暇があったら仕事を身につけろ・勉強しろ!などと叱咤激励を受けることもありそうですがね。別に仕事中にブログ書いてるわけじゃないんで許してくださいね。

*2:単純な例題が何かないかなーと考えても、なかなか出てこなくて記事を書くのに時間がかかりました。エラーを吐くケースを想像しようとしても中々出てこなかったりするので、実際の運用の際には、どこにエラーの可能性が潜んでいるかをよーく考えないといけないですね。 

続きを読む

第7回ケモインフォマティクス若手の会に行ってきました!

みなさん、こんにちは。

今回はKNIMEや、その他ツールの話はないです。ただの雑記。

先週のことですが、第7回ケモインフォマティクス若手の会に参加してきました!

f:id:sumtat:20180529221533p:plain

f:id:sumtat:20180529221600p:plain

f:id:sumtat:20180529221622p:plain

 私は若手とはお世辞にも言えない年齢ですが、"超ど素人" = "若手"と勝手に解釈して参加することにしてみました!

 共感できるタイプ・できないタイプがいると思いますが、まあそれは不安でしたよ。残念ながら私は、あんまりおしゃべりが上手な方ではないですし、若さもない・ケモインフォの知識もない…。社内でも、お前みたいなおっさんが未経験分野の担当になって何の役に立つ?な空気を感じることもあります。確かに一理あると思います。

 でも、だからこそ、ビビらずに外の世界に触れて、少しでもレベルアップしなくてはと思い参加を決めたわけです。

行って良かった!とても良い会だった!

 実に語彙不足な感想ですが、とても良い会だと思いました。お偉方・学会の自己満足のために、高圧的な感じで催されるものではなく、運営スタッフの方々が、地道に温めてきた感じの伝わる会でした。またDeNAさんのサポートも大きですね。

 実際のところ、なんだかよくわからない部分もありましたが、初学者でもわかるように噛み砕いた説明・講演を皆様が心がけてくださっていたり、また素人質問も遠慮なくできる雰囲気で、大変有り難かったです。*1

 懇親会では、いろんな方とお話ししたり、名刺の交換等させて頂きました。有難うございました。またこういう機会があれば、積極的に参加していきたいと思わせてくれる会でした!

*1:素人質問というと、"相手をボコボコにする前置き"みたいな感じでとらえられることがあるようですが、ここでの意味はそういうものではないです。「おいおい、その程度のこと質問してんじゃねーよ」みたいな強張った空気は流れていないという意味です。

【随時更新?】当ブログタイトル一覧 〜ブログの情報取得もKNIMEでやるよ〜

みなさまこんにちは。

先日、にほんごであそぼ(NHK)で草枕をとりあげていました。

に働けばかどが立つ。

じょうさおさせば流される。

意地をとおせば窮屈きゅうくつだ。

とかくに人の世は住みにくい。

(青空文庫より)

有名な冒頭部分ですね。日々のストレス、 大型連休ですっきりさせたいものです。

 

さてさて、当ブログですが、アクセス解析(はてなブログの機能)を見る限り、100~200PV/日くらいのアクセスがあるようです。ありがたいことです。折角多くの方に見ていただいているので、内容をまとめて見ることにしました。経緯はこんな感じ↓

f:id:sumtat:20180503002750p:plain

ですが、ただまとめても面白くないので、KNIMEを使って当ブログのタイトル一覧を作ってみました。タイトルは当該記事のポイントを表している(はず)なので、このテーブルは簡易的な"まとめ"と呼べるのでは?と思います。*1

title URL
テスト http://sumtat.hatenablog.com/entry/2017/07/20/132123
データは前処理が9割? ~KNIMEとそのインストール~ http://sumtat.hatenablog.com/entry/2017/07/21/230317
KNIMEをフル装備化(無課金) http://sumtat.hatenablog.com/entry/2017/07/22/220723
【超入門(1/3)】KNIMEの使い方 〜エクセルファイルを読んでみよう(Excel Reader)〜 http://sumtat.hatenablog.com/entry/2017/07/23/161906
【超入門(2/3)】KNIMEの使い方 〜欲しい行だけ抽出しよう(Row filter, splitter)〜 http://sumtat.hatenablog.com/entry/2017/07/24/221257
【超入門(3/3)】KNIMEの使い方 〜エクセルファイルとして書き出してみよう(Excel Writer)〜 http://sumtat.hatenablog.com/entry/2017/07/25/223918
【KNIME】ノード紹介:Joiner 〜2つのテーブルをくっつけよう〜 http://sumtat.hatenablog.com/entry/2017/07/26/232316
【KNIME】ノード紹介:cell splitter 〜文字列を分割したい〜 http://sumtat.hatenablog.com/entry/2017/07/27/230632
【KNIME】ノード紹介:cell splitterとUngroupのコラボ 〜文字列を縦方向に分割したい〜 http://sumtat.hatenablog.com/entry/2017/07/28/220348
【メドケム】KNIMEで構造式を扱おう 〜sdfを読んでみよう〜 http://sumtat.hatenablog.com/entry/2017/07/28/232757
【KNIME】ノード紹介:GroupBy 〜同じものをひとまとめに〜 http://sumtat.hatenablog.com/entry/2017/07/29/224945
【KNIME】ノード紹介:String Manipulation 〜文字列変換の万能選手〜 http://sumtat.hatenablog.com/entry/2017/07/30/194126
エクセルファイルに構造式を入れたい http://sumtat.hatenablog.com/entry/2017/07/31/212058
【KNIME】ノード紹介:Transpose, Pivoting 〜表(table)の縦と横(行と列)を入れ替えたい〜 http://sumtat.hatenablog.com/entry/2017/08/01/222116
KNIMEでChemdrawファイルを読みたい 〜 Chemical Structures File Reader〜  http://sumtat.hatenablog.com/entry/2017/08/02/213444
【KNIME】ノード紹介:Column Rename 〜カラム名を変更したい〜 http://sumtat.hatenablog.com/entry/2017/08/03/215824
【KNIME】ノード紹介:Regex Split 〜文字列を分割したい part 2〜 http://sumtat.hatenablog.com/entry/2017/08/04/234705
【KNIME】ノード紹介:Value Counter 〜重複データを探せ〜 http://sumtat.hatenablog.com/entry/2017/08/05/230217
KNIMEで構造検索をしよう http://sumtat.hatenablog.com/entry/2017/08/06/235018
【メドケム】KNIMEでリガンド効率を計算するよ 〜言い換えれば、ただの四則演算〜 http://sumtat.hatenablog.com/entry/2017/08/07/234207
【KNIME】ノード紹介:concatenate 〜複数のテーブルをとにかく纏める〜 http://sumtat.hatenablog.com/entry/2017/08/09/042620
【KNIME】ノード紹介:Missing Value 〜欠損値を処理しよう〜 http://sumtat.hatenablog.com/entry/2017/08/09/230018
【KNIME】ノード紹介:Nominal Value Row Filter 〜欲しいカテゴリのrowを抽出したい〜 http://sumtat.hatenablog.com/entry/2017/08/11/232215
【超入門】KNIMEで変数を使うには 〜今日の日付をエクセルのシート名にして書き出してみよう〜 http://sumtat.hatenablog.com/entry/2017/08/13/094121
【KNIME】小ネタ:変数受け渡しに使う"赤線"の活用法 http://sumtat.hatenablog.com/entry/2017/08/14/081822
【超入門】Loopを回せ! 〜KNIMEを使って複数のファイルを一気に読んでみよう〜 http://sumtat.hatenablog.com/entry/2017/08/15/072039
【KNIME】小ネタ:** to variableノードを使わない変数の作り方 http://sumtat.hatenablog.com/entry/2017/08/16/133612
【KNIME】ノード紹介:Group Loop Start 〜カテゴリごとに処理したい〜 http://sumtat.hatenablog.com/entry/2017/08/19/073727
【KNIME】ノード紹介:Parallel Chunk Start 〜多重影分身するってばよ〜 http://sumtat.hatenablog.com/entry/2017/08/23/000830
Neural Network Consoleで活性値予測をしてみた http://sumtat.hatenablog.com/entry/2017/08/26/194049
KNIMEで明日の天気を調べよう! 〜REST APIの活用〜 http://sumtat.hatenablog.com/entry/2017/09/02/160249
KNIMEを使ってChEMBLから情報をとってくるンゴ http://sumtat.hatenablog.com/entry/2017/09/10/203510
KNIMEで化合物をクラスタリング&可視化してみよう http://sumtat.hatenablog.com/entry/2017/09/18/095508
InfocomさんがKNIME関連のページを更新したよ! http://sumtat.hatenablog.com/entry/2017/09/23/225041
【KNIME】ノード紹介:Copy/Move Files 〜一括でファイル名を変換しよう〜 http://sumtat.hatenablog.com/entry/2017/10/01/232419
"あ"さんにコメントを頂きました 〜オートフィル(excel)の実現〜 http://sumtat.hatenablog.com/entry/2017/10/12/233851
10年の歳月 http://sumtat.hatenablog.com/entry/2017/11/03/232109
家族が増えました http://sumtat.hatenablog.com/entry/2017/12/25/001558
あけましておめでとうございます&本のおすすめ http://sumtat.hatenablog.com/entry/2018/01/02/164116
【KNIME】お手軽に機械学習してみませんか? 〜random_forest_regression〜 http://sumtat.hatenablog.com/entry/2018/01/27/172253
【KNIME 】scikit-learnをKNIMEで動かすよ 〜t-SNEを題材に〜 http://sumtat.hatenablog.com/entry/2018/02/22/000256
【初心者レビュー】PyCharm使ったら、勉強が捗る!ちょいハードル下がる! http://sumtat.hatenablog.com/entry/2018/03/07/005826
【KNIME 】Excel?のMROUND関数と同じことをKNIMEでやってみよう! http://sumtat.hatenablog.com/entry/2018/04/04/233618

テーブルを作ったフローについて解説を書きました。

興味のある方はご覧ください!

*1:と思ったが、実際作って見たらダサかった。もう少し見やすくした方がいいですね。反省しています。

続きを読む

【KNIME 】Excel?のMROUND関数と同じことをKNIMEでやってみよう!

新年度がスタートしましたね!

私はこの春から、新しいことに挑戦することになりました。これまでは薬品を混ぜたり、フラスコや試験管を触ったりする仕事をしていたのですが(いらすとやイメージだとこんな感じ↓)

f:id:sumtat:20180404222235p:plain

4月からは、computerを使って化学する世界で頑張ることになりました。in silicoとかケモインフォマティクスとか、そういう感じのワード紹介される分野です。ゼロからのスタートなので不安も多いですが頑張ろうと思います。

同業?の方々との繋がりができることも期待しています。*1

 

さて、今日"Ari"さんからコメントを頂きました。

時間をキーに2つのテーブルを結合させようとしているのですが、片方のテーブルは5分きざみ、もう片方は30分きざみとなっています。時間をまるめる、mroundのような機能をご存知でしたら教えてください。

 ちょっと実際の状況がイメージできなかったのですが、

f:id:sumtat:20180404223902p:plain
f:id:sumtat:20180404223916p:plain
連結前のテーブル

上のような2つのテーブルを

f:id:sumtat:20180404224213p:plain

こんな感じにしたいというようなことでしょうか?的外れだったらごめんなさい!

これをExcelのMROUND関数を使った風にして作成してみます。

*1:製薬会社の合成は、社外の方との横の繋がりを作りにくいんですよね。どうしても仕事の話をしようとすると構造式が無いとなかなか深い話はできないですが、構造出しちゃうとターゲットや社内の状況がダダ漏れになっちゃう。

続きを読む

【初心者レビュー】PyCharm使ったら、勉強が捗る!ちょいハードル下がる!

こんにちは。花粉が飛んでいますね。

 

さて、KNIMEの使い方を主な題材としている本ブログですが、前回

こんな記事を書いてみました。

記事内でも触れましたが、私プログラミングとか全然やったことないです。なので、pythonコード書く部分は結構時間かかりました。既存ライブラリを使ってるだけなので特に頭を使うこともなく簡単なはずなんですが、

  • お作法がわからん場合が多い
  • ライブラリ名、関数(class)名を知らない

など低経験値が引き起こす問題が結構あります。

で、少しずつ慣れていこう!と思って、もう一度復習してたんですが、

qiita.com

こんな記事が目について、PyCharmをインストールしみました。右も左もわからない私に、"最強"とかキャッチーなフレーズ。食いついてしまいました。

 

結果、入れてよかったです。

前回のtSNEのコードは何も見なくてもかけるようになりました。

インストールの方法とかは、色々と記事がありましたので割愛しますが、ど素人の私が覚えたいくつかの使い方を紹介します。

続きを読む

【KNIME 】scikit-learnをKNIMEで動かすよ 〜t-SNEを題材に〜

 みなさん、年度末が近づいてきました。色々と忙しい日々ですが体調には気をつけないといけません(私は、先日発熱しました…)。

 

さてさて、今回はKNIME上でpython書いて、scikit-learnを動かしてみます。

で紹介した可視化を、t-SNEを使ってやってみます。

 

その前に!

KNIME上でpython、どうやって使うの?に軽くふれます。

まず、python3を使いたければ、KNIME3.5以上が良い気がします(3.4でもいけそうですが)。

File >> preferencesと進んで、検索窓にpythonと入れれば、下のような設定画面にたどり着きます。ここに使いたいpythonの実行ファイルを指定すればOKです。私の場合はanacondaを使ってpython環境を用意しているので、所望のenvのbinの中のpythonを指定しています。

f:id:sumtat:20180220235834p:plain

ここで、私のようなど素人+化合物情報を扱いたい&windowsユーザーの方!!!

RDKitってのを入れることになると思います。anaconda環境であれば

conda install -c rdkit rdkit

をすればinstallできますし、ターミナル・コマンドプロンプトやjupyterでは動くはずです。でもでも、KNIME上だと多分動かないです。同じようなことを言っている人がいましたので、リンクを貼っておきます。

私もlinux(centos7)、mac(sierra)では特に気になりませんでしたが、win7ではうまくいきませんでしたので、システム環境変数のPathに、anaconda系の足りない部分を強引に追記しました(強引だと思うので自己責任でお願いしますね)。

環境変数の足りない部分は

import os

print(os.environ["PATH"])

をrdkitが動く環境と、動かない環境(KNIME)でくらべてやればわかると思います。*1

 

前置きはこのくらいにします。

今回の全体像は次のようなものです。

 

f:id:sumtat:20180221215506p:plain

以前と同様にNS5Bポリメラーゼ阻害剤関する5つの文献に記載されている化合物を、構造ベースでクラスタリングしていきます。過去記事ではKNIMEのMDSノードを利用して次元を削減し(対distance matrix)可視化を行いましたが、今回はdistance matrixを挟まず、fingerprintに対して直接t-SNEを用いて次元を落とし、可視化してみます。

t-SNE

次元削減法の一つで、人気なんだそうです。下記サイトが雰囲気を掴みやすかったです。

perplexityという調整可能なパラメータ…(中略)…は、おおざっぱに言うと、データの局所的な特性と全体的な特性のどちらをより考慮するか、そのバランスを表しています。

と書かれており、このパラメータを動かしながら可視化をやってみます。

*1:ここにたどり着くのに数時間かかった。動かすための環境を用意するので一苦労です。

続きを読む

【KNIME】お手軽に機械学習してみませんか? 〜random_forest_regression〜

久しぶりに記事を書きます。二児の親となり、家のことを忙しくしつつ、最近は機械学習をかじり始めました。始めたといっても、いろいろを触って、動かしてみている程度。きっちり取り組んでいる方には怒れらてしまいそうですが、様々なツールも出回り、コモディティ化が進んでいるなかで、まったくいじったことがないというのも良くないと思いまして。

今回は、"学習用データがある場合"に可能&お手軽簡単に数値予測ができるKNIMEのノード を紹介しようと思います。

 

Random Forest Learner & Predictor (regression)

 最近の流行は、やっぱりdeeplearningだと思うのですが、それだけが全てではないです。現在、私もDeepChemを使ってDLに挑戦していますが、wetのケミストが気楽にアクセスできる感じではありません(プログラミング経験のある方なら、何とかなるかもしれませんが)。

そんな中、今回の方法

KNIMEを使って、ECFP4を入力としてRandom Forestで回帰する

は殆ど頭を使うことがないので誰でも使える!と断言できます(但し、得られる結果については個人で判断してくださいね)。では早速KNIMEのフローを見ていきます。

f:id:sumtat:20180127152027p:plain

続きを読む