t_kahi’s blog

KNIMEやCellProfiler、創薬に関する記事と,日々のメモです

【KNIME】〈前編〉QuickFormが便利!PubMed APIで論文の要旨を取得する

こんばんは,@PKです.

PubMed APIを使って論文の情報をKNIME上で取得する,という内容について以前ブログで紹介しました.
【KNIME】PubMedの検索結果(タイトル・出版年月日・アブストラクト等)をKNIMEを使ってまとめて取得する - t_kahi’s blog

今日は少し発展させて,QuickFormノードを使って,PubMed検索ワード入力を簡単に行い,論文アブストラクトを取得する ということを紹介したいと思います.
QuickForm?なんのこと?と思う方も多いと思うので(最近まで自分も全く使っていませんでした),下記の動画を見ていただきたいです

youtu.be

この動画では,QuickFormノードを活用してPubMed検索を行っている様子を示しています.
最初に灰色のメタノードをクリックすると,入力画面が出てくるので,簡単に検索ワードや取得したいIDの数を記入することができます.
この入力画面の設定をすることができるのがQuickFormです!

こちらの動画で示したKNIME Wrkflowについて,2回の記事にわけてご紹介していきます.
QuickFormについては今回(前編)で,残りのPubMed APIの部分やInteractive viewの部分を後編でご紹介したいと思います.

KNIME Workflowの概要

それではKNIME Workflowの概要です.
f:id:t_kahi:20190626211312p:plain

このWorkflowは大きく4つに分かれています.

  1. QuickFormを使ってデータを入力できる「Wrapped Metanode」
  2. PubMed APIを使って論文情報を取得する「Simple Metanode」
  3. Interactive viewで表を表示してほしいデータを選択できる「Wrapped Metanode」
  4. 選んだデータを出力する「Excel Writer」

今回はMetanodeとQuickFormについてと,1番の部分をお話していきます.

Metanodeについて

動画上ではたった4つのノードしか見せませんでしたが,上図で示したように,2種類の灰色のノードは「Metanode」と言い,内部にWorkflowを組み込まれています.
Meta Nodes | KNIME
実はこのメタノードには「Simple Metanode」と「Wrapped Metanod」の二種類があります.
f:id:t_kahi:20190626212736p:plain

「Simple Metanode」は内部にWorkflowを組み込むことができる単純なMetanodeです.
一方で,「Wrapped Metanod」は,Workflowを組み込むだけでなく,QuickFormやInteractive viewを使うことができます.

これらの「Metanode」をうまく使うことで,よりデータの入力や可視化を簡単にすることができます.

両者のMetanodeの使い方は以下で詳細に説明されています.
Simple Metanodes and Wrapped Metanodes | KNIME

QuickFormとは

QuickFormはWorkflow内でユーザーがパラメータの入力や変更を容易にしてくれるノードです.

Quickform Nodes
QuickForm Nodes are used in KNIME client to facilitate the parameterization of workflows. Input nodes provide the ability to define Flow Variables, while Output nodes are used to provide feedback to users during workflow execution. When used in conjunction with the KNIME WebPortal, QuickForms will be rendered in the browser allowing non-experts to execute workflows interactively without needing to know about the underlying technology.
Quickform Nodes | KNIME

様々なタイプのQuickFormノードがKNIMEには用意されています.

nodepit.com

今回はこの中の「List Box Input」と「String Input」を使用してWorkflowを組んでみました.

List Box Input — NodePit
String Input — NodePit

QuickFormを使用したデータ入力について

それではQuickFormを利用している「Wrapped Metanode」のsub-workflowについて紹介します.
f:id:t_kahi:20190626215250p:plain 上図のように,「List Box Input」と「String Input」をそれぞれを「String Manipulation」につなげ,PubMed APIのQueryを作成しています.

「List Box Input」と「String Input」の設定はそれぞれ以下のようになっており, 共通する設定として,

  • Label : QuickFormで表示するときのタイトル
  • Description : ヘルプ?で表示できる説明文
  • Default Value : 初期値

などがあります.

f:id:t_kahi:20190626215835p:plain

「List Box Input」は「Column Rename」でカラム名を変えて「String Manipulation」に繋げ,「String Input」はFlow variableでつなげています.

上記の設定を行い実行した後に,Metanodeをクリックすることで以下のようなQuickForm画面が現れます.
f:id:t_kahi:20190626221453p:plain

ヘルプをクリックすると先ほどDescriptionで設定した文字を見ることができます.
なんて便利なんだ!!!

「String Manipulation」では,QuickFormで入力したワードを使って,PubMed APIのQueryを作成します.

join("https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=",$search$,"&retmax=",$${Snew variable}$$)

ここで作成したQueryを使って,論文アブストラクトの取得を後編で行っていきます.

まとめ

予想以上にQuickFormが便利でしたのでこのような記事を書きました.
後編で残りのWorkflowを紹介していきます!