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

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

あけましておめでとうございます&本のおすすめ

みなさま、あけましておめでとうございます。

それぞれ素敵な新年を迎えらえていることと思います。我が家も新メンバーを迎えて1ヶ月。バタバタしながらも無事に2018年をスタートさせることができました!

…2018年1月1日、0:00は息子のオムツ交換をしていましたが。

 

さて、ブログを書き始めて約半年が経ちました。

f:id:sumtat:20180102143234p:plain

およそ約16,000回、私の書いた記事を読んでいただけたようです。自分の書いたものを読むために、こんなに沢山の方の時間を割いていただけている。とても嬉しいことです。

どんな人に読んでもらえているのかな?少しは役に立ってるのかな?など思いを巡らせています。コメントをくださった方もいらっしゃいました。ブログを通じて、新しいネットワークができること期待している部分もあります。

  • 何をすればいいか分かりませんが、KNIMEのユーザー会ができたらいいなとか
  • pythonやrdkitなどの先生的な人と繋がれたらなとか
  • 子育てとか、その他もろもろ。

気が向けば、なんでもいいので是非コメントいただけると嬉しいです!

更新ペースに随分とむらはありますが、今後とも宜しくお願いします。

 

今回は本の紹介をしようと思います。

 

なるほどわかった コンピューターとプログラミング 

なるほどわかった コンピューターとプログラミング

なるほどわかった コンピューターとプログラミング

  • 作者: ロージー・ディキンズ,阿部和広,ショー・ニールセン,福本友美子
  • 出版社/メーカー: ひさかたチャイルド
  • 発売日: 2017/02/22
  • メディア: 大型本
  • この商品を含むブログを見る
 

 子供のために買った仕掛け絵本です。ペラペラめくったりするやつです。めくる部分がとても沢山あって、子供(2歳)は喜んで読んでいます遊んでいます。子供はペラペラめくやつ、好きなんですよね!

ちょっと内容を紹介します。

例えば「中はどうなっているの?」のページではマシンの基本的な作りについて解説がしてあります。RAM, ROM, CPUなど読めばどんなものかわかります。2017年2月が第1刷の本です。高望みかもしれませんが、GPUについて書いてあるともっとよかった!(GPGPUの考え方についても) 

f:id:sumtat:20180102152357j:plain
f:id:sumtat:20180102152424j:plain

 

「コンピューターはどう考えるの?」のページではビット・バイトの意味から、文字コードや画像とピクセルについても言及されています。

f:id:sumtat:20180102153717j:plain

 

あのですね、はっきり言って子供が読むには内容が難しすぎます。

が、しかし!この辺りのことに疎い大人が読むにはとても良いと思います。

あえて書きましょう。私の周りの一部オジサマ(管理者)には是非読ませたいです。

  • AIはどこに売っていますか?
  •  GPUってのがそんなに重要なの?高価なCPUの入ったマシンあるよね?
  • ブラウザって何?インターネットのこと?

このレベルの人、結構います。でも、【コンピュータにデータ入れればすぐに色々上手くいくんでしょ?】【遊んでないでとにかく手を動かしましょう(PC作業以外)】みたいなことを平気で言ってくるわけです。

サルでもわかる系サイトは結構沢山あります。でもきっと上記に該当の方は、そのようなサイトにはたどり着けないでしょう。また、本を買うとしても、ちょっと背伸びしたやつを買ってしまいそうな気がします。中途半端に会議資料などだけで分かった気になっていると

DHMOという化学物質は有害である」と同レベル発言も飛び出しかねません。

この本は完全に子供向け(小学生くらいかなぁ?)なので超超入門書になると思います。自分で読んだら、自分の子供や親戚などに譲ってもよいと思います。

私の姪っ子(小学5年生)はとても興味をもって読んでいましたよ!

 

2018年はKNIME関連の内容を引き続き記事にすると共に、Deepchem関連の話や子育ての話など、内容を増やしながらブログの更新をしていこうと思います。

 

今年も宜しくお願いします!

家族が増えました

お久しぶりです。

いろいろと忙しくしていて、更新ができませんでした。

 

はい、先日子供が生まれました!

 

わりと初期からバタバタしていていて、

切迫流産→切迫早産という流れで、出血もずっと止まらないし、なかなか不安な日々を過ごしていましたが、無事にゴールすることができました。

…最終的には逆子だったので、帝王切開になるというフルコースでしたが。

f:id:sumtat:20171224224559j:plain

上の子は2歳になります。少し重たくなってきたなーとは思ってましたが、新生児と並べると、結構でかくなったと実感しました。

 

今年の妻は災難続きで、

  1. 年初に虫垂炎で入院
  2. つわりで苦しみ始めたあたりで、切迫流産のため入院
  3. 帝王切開のため入院

一年で3回も入院してしまいました。 

出産に関しても里帰りとかではないので、上の子と私と二人で過ごさなければいけない日々が結構あったわけですが、子供は大泣きもせず、むしろ私が助けられたくらいです。サイズだけではなく、中身もしっかり成長しているようで驚きました。 

下の子も、最終的には3450gとしっかりとしたサイズで生まれてくれました。それに加えて驚きなのは、だいたい生後3週間が経過した今日の体重が4400gもあり急激な成長をしています! 

私も、子供のご飯をつくったり、保育園の色々や、その他諸々…、少しは上達した気がしますが、これからは二児の父。もっと上手くできるように頑張ります。

  

他にも新しいことを始めてみようと思って、この1週間くらいはDeepChemに手を出してみることにしました。

まずlinuxのインストール。centos7を選択しました。biosの設定をあれこれしたり、nouveauを無効化したり…。まず環境を作るのに四苦八苦でした。とりあえず動くようになりましたが、graphconvについては正しく理解できるようにちゃんと勉強が必要だなと感じているところです。コードの書き方に関しても、deepchem内ではkeras風のnnを使ったり、tensorflow風の書き方が必要なものもあったり…。お手軽ホホイのホイとはやはり行きませんね。

これまで私、コーディングなんてしたことないですからね。

 こんなことをしているうちにChainer Chemistryとかも公開されたりとか、本当に変化が速い分野だなと感じています。やってみようと思っても、cupyがうまく入らなくてgpuで計算できないし。めげずに頑張ろ。

 

KNIMEのコーナー:桁数をそろえて、頭をゼロで埋めるには

すこしは役に立つかもしれない情報を。

先日、社内の同僚から質問をされました。

「入力数字の桁数が異なるものが混在しているデータの先頭にゼロを加えて、桁数を統一したいのですが、どうしたらいいですか?」

という質問されました。例えば6桁に揃えたい場合、

  • 1 → 000001
  • 123 → 000123
  • 123456 → 123456

ということをやりたいという意味です。

 "KNIMEを使った場合"と"エクセルと使った場合*1"を教えたら、わりと喜んでもらえましたので今回のネタにします。

 

String Manipulationの活用

おなじみ、String Manipulationを使います。

元のデータが下のキャプチャのようなものだったとします。

注)簡単にするために、属性をstringにしてあります。必要があれば、number to stringノードを使ったり、string manipulation内で"string"を書き足してください。

f:id:sumtat:20171224235344p:plain

string manipulationノードにつなげて、こんな感じの内容にします。

f:id:sumtat:20171224235923p:plain

substr(join("000000",$before$), length(join("000000",$before$))-6)

  • substr:右上の例のとおり、左から何文字削るかを指定できる
  • join:文字列をつなげる(例をさがせばわかるよ)
  • length:文字列の長さを返してくれる

つまりですね、

元の文字列の左側にゼロを6個足して(ここまでがjoin

足した後の文字列の長さを数えて(ここまでがlength)

数えたものから6を引いて、オーバーした桁数だけ左から削る(ここがsubstr)

という感じで実現可能です。

f:id:sumtat:20171225000345p:plain

こういう機能がKNIMEのノードとしては用意されていませんが、だいたいのことはなんとかなるものです。パズルみたいで面白いので、是非皆様もいろいろとtryしてみてください。

 

夜は二人の子供が同時に泣くこともあったりで、なかなか更新ができないかも?ですが、今後とも宜しくお願いします。

 

 

 

*1:詳しくは触れませんが、処理を行いたい列を選択後、【セルの書式設定】>>【表示形式タブ内の、ユーザー定義を選択】>>【"種類"のところに、揃えたい桁数分のゼロを手打ちする】ことで可能です。

10年の歳月

段々と寒くなってきました。体調はいかがでしょうか?

私は、熱を出してしまいました。まだ調子はイマイチですが、今日はお買い物をしてしまいました。

f:id:sumtat:20171103223715j:plain

f:id:sumtat:20171103223736j:plain

 

そうです。

iPhone Xを買っちゃいました!

店舗受け取りにしていたのですが、私の住んでいるところはクソ田舎なんで、発売日当日に朝から買いに来ていたのは私だけでした。

新しいデバイスは楽しいですね。

となりにおまけがくっついていますが、これは私が初めて買ったスマートフォンiPhone 3G】です。日本で初めてのiPhoneだったのではないでしょうか?だいたい10年前の製品です。

大きさや厚さ、色々違いますが基本的な部分はほとんど一緒です。性能面では当時の私からは想像もできないくらいの進化を遂げています。

 

この10年で、私はこんなに進化していません。

次の10年、時代に置き去りにされないよう頑張らないとですね!

(もう既に置いていかれてるのかもしれませんが…)

 

f:id:sumtat:20171103225108j:plain

ディスプレイのサイズも違いますね。10年前の端末で自分のブログを見るというのも感慨深い!

 

熱で会社も休んでたので、webを色々見ながら横になっていました。

KNIME関連では、またinfocomさんがページ内容を更新したようです(ここ数日の話だと思う)。

 

Example Workflows | KNIME | インフォコム株式会社

Exampleというコーナーが出来ていて、KNIMEに最初から入っているExample Workflowについて解説しています。

フローの解説なので、詳細な設定などには殆ど言及されていません。KNIMEに触れたことの無い方にはちょっと何言ってるか分からないかもしれませんが、よくまとまっていると思います。上からっぽくてごめんなさい。

f:id:sumtat:20171103230140p:plain

一部を抜粋させて頂きました。

ここで色とりどりの枠が、たくさん書かれていますね。

これ、どうやって書くかご存知ですか?

 

f:id:sumtat:20171103230414p:plain

作業エリアで右クリックすると"New Workflow Annotation"というのが出てくるので、これを選択します。

f:id:sumtat:20171103230556p:plain

黄色の枠が出て来ましたね!

この上でダブルクリックすれば、メモ書きを入力することもできますし、さらに右クリックをすると文字サイズや枠の色などなど、色々と変更することができますよ!

場所もドラッグすれば好きなところに配置可能です。

f:id:sumtat:20171103230838p:plain

 

ひとつ小技を紹介します!

この黄色枠を、作業エリアのずーーーーーーっと右下に動かして配置しちゃいます。

f:id:sumtat:20171103231348p:plain

 

こうしておくと、作業エリアが広がるんです!

段々となれてくると、フローは長くなりがちです。そしてそのうち作業エリアが狭く感じる時が訪れると思います。そんな時はこの小技を使うと、だいぶ便利になりますよ!

 

今回は私の趣味と、KNIMEの地味な小技の紹介でした。

それでは、また次回! 

"あ"さんにコメントを頂きました 〜オートフィル(excel)の実現〜

みなさん、こんばんは。

私は普段お酒をあまり飲みませんが、今日はなんとなくむしゃくしゃしたのでビールを飲みました。ほろ酔いで書いていきます(わたしはよなよなエールが好きです)。

 

f:id:sumtat:20171012233338j:plain

 

さて、タイトルの通り、"あ"さんよりコメントを頂きました!

とても嬉しいです!

コメント内で、次のような質問をいただきました。

エクセルチックに絶対参照しながらフィルハンドルを引っ張るような操作はknimeで実現できないでしょうか。

 コメント欄ではうまくお返事できないかなと思い、記事にしてみることにしました。的外れな内容だったら、"あ"さん、ごめんなさい! 

続きを読む

【KNIME】ノード紹介:Copy/Move Files 〜一括でファイル名を変換しよう〜

みなさん、こんにちは。10月になりましたね!

 

 今回の内容なんですが、一般的に使えそうな・TIPS的な感じのやつを考えた結果、ファイル名の一括変換に関して書いてみようと思います。

 

 Webで調べると、ファイル名の最後に連番をつけるような方法がよく紹介されています。Google先生の一番上に出てきたのは

121ware.com > サービス&サポート > Q&A > Q&A番号 018542

上記リンクの内容でした。

 

 KNIMEを使って同じこともできますが、それでは面白くないので、この記事では

ファイルの最終更新日と容量をファイル名に追加

をしてみようと思います。

<処理前>

f:id:sumtat:20171001195615p:plain

<処理後>

f:id:sumtat:20171001200502p:plain

(キャプチャの時間がずれているのは、ファイルを名前を変えて複製したからです)

 

さて、KNIMEのフローを見ていきましょう!

続きを読む

InfocomさんがKNIME関連のページを更新したよ!

もうすぐ9月もおしまいですね。

上半期の終わりということで、何かと慌ただしい時期かと思いますが頑張っていきましょう!

 

さて、今回はKNIMEの使い方に関する内容ではありません。期待していた方、申し訳有りません(1人でもいて欲しい…)。

で、何を書きたいかというと

 

まず1つ目

コメントをいただきましたーーーー!

とてもとても嬉しいです。

 

chemoinfoのノードも充実しているのでKnimeいいですね!(iwatobipenさん)

 そうなんです。私のようにコーディングもできず、ナスの底をガリガリするくらいしか能のない人間でも、KNIMEのおかげで、そこそこの量のデータ(化合物情報を含む)を扱うことができます。 

 

最近knimeを使い始めました。記事楽しみにしています。(あさん)

 泣ける。社交辞令でも楽しみにしてもらえるなんて!触りはじめるきっかけになっているのなら、もっと泣ける。ブログを書くのも今回が初めてですし、うまく内容をまとめられているか不安はありますが、今後も頑張りますね!

 

続きを読む

KNIMEで化合物をクラスタリング&可視化してみよう

みなさん、こんにちは。

私は急な気温の変化と、ブタクサ?花粉で体調がイマイチです。

心はあまり元気でないので、せめて体は元気で過ごしたいものです。

 

 さて、今回は何について書こうかなーと考えていたのですが、前回、ChEMBLからとってきた情報を使ってクラスタリングでもしてみようかなと思います。

f:id:sumtat:20170917232938p:plain

 上記のように、前回はNS5Bポリメラーゼ阻害剤関する1697化合物ついて、文献名と活性値を持つテーブルを作成しました。これを構造ベースでクラスタリングしていきます。結果をわかりやすくするために、記載されている化合物数が多い文献上位5件に関して作業をしていきます。

 

全体のフローとしてはこんな感じです↓

f:id:sumtat:20170917233759p:plain

それではスタートです!

続きを読む