Replace TXSearch

= 生物名の検索 =

KAZUO HARA

検索ビューア（開発中）
http://133.39.115.67/~kazuo-h/NCBI_Taxonomy/cgi-bin/taxonomy_search.cgi

ToDo
 * taxonomy ID でデータを参照するようにする
 * 生物アイコンだけではなく，wikipedia などから画像を収集して表示する
 * genbank common names なども表示する

TXSearch の目的
主な目的は，DDBJ に塩基配列を登録するとき，生物名の表記を NCBI taxonomy の統制語（= scientific name ?）に統一すること，つまり，登録者が NCBI taxonomy を検索して適切な生物名の表記を選択できるようにすることです．

ここで，登録者が TXSearch を利用して，生物名統制語を検索するようすを，以下のように想定します：

登録者が生物名の表記に思い当たりがある場合は， それと完全一致する表記が NCBI taxonomy に登録されているかどうかを確認する． 完全一致する表記が 統制語として登録されているなら，それを登録に用いる． 類義語（synonym）として登録されているなら，それに対応する統制語を登録に用いる

登録者が生物名の表記に思い当たりがない場合は， 関連語をいくつか用意し，それらの一部を含む（部分一致する）生物名を候補として得る． その上で，候補の中から適切な表記を選ぶ．

replace の目的
部分一致検索によって得る生物名の候補数が多い場合（10件以上ヒットするような場合）， その中から適切なものを選び出すための判断材料が必要になります． 判断材料となりうるものを以下に挙げます


 * （1）候補自身の属性（統制語，類義語，ルートノードまでの祖先のスペルアウト，NCBI が定める taxonomy id, division 名等）
 * （2）候補の NCBI taxonomy 全体における位置の把握を助けるもの，すなわち，NCBI taonomy 系統樹を用いたビュー

現状では（1）のみであるため，（2）を追加することが今回の replace の主な目的です．

また，現状では日本語表記がありません． DBCLS で開発された「学名と和名の対応」を用い（Species Dictionary が用いているもの），日本語表記を付与することにします．

さらに，「生物アイコン」を系統樹のビューに用います．

細かい変更点としては， 現状では，統制語としてヒットした表記，類義語としてヒットした表記をそのまま別々に検索結果として列挙しているようですが， それらが統制語として同一であるならば，一つにまとめることにします．

論点

 * NCBI taonomy の全体を把握できるような系統樹とはどんなものでしょうか

多くの人が知っている，あるいは，文献に多く登場するいくつかの生物名を，ランドマークとして表示する系統樹が，そのようなものになると考えられます．利用者は，興味ある生物名の NCBI taxonomy 全体における位置を，ランドマークとの相対位置により把握できます． ただし，ランドマークとしてどんな生物名を選ぶかによって，NCBI taxonomy 全体の見え方が変わることに注意する必要があります．


 * 「部分一致検索」をどう定義しますか

検索クエリ内の単語をどれか一つ含む表記を，検索結果とします． たとえば「homo sapiens」を検索クエリとした場合，「homo」，「sapiens」のいずれかを含む表記すべてを検索結果とします．

実装上の論点

 * 実装に用いる言語は何ですか

作業者が使用に慣れている ruby + cgi で行います．


 * NCBI taxonomy の検索の高速化はどのように行いますか

ruby で高速にアクセスできるようにするため，NCBI taxonomy を tokyocabinet の HDB の形のデータベースに変換します．tokyocabinet を使う理由は，簡単に使えるからです．


 * 系統樹ビューにどのような特徴を持たせますか

画像を使用せず（「生物アイコン」以外は），アスキー文字で系統樹を描きます．このため，系統樹はコピー＆ペースト可能です（ただし，等幅フォント以外を用いると，描画が乱れます）．

できるだけコンパクト（行数を減らす）にするために，検索ヒットした統制語とランドマークだけを系統樹のなかでスペルアウトします．それらの祖先などは「●」と記すに留めます．結果，検索ヒット件数＋ランドマーク数の行からなる系統樹が表示されます．

系統樹中の「●」は，マウスオーバーすることで，それに対応する統制語を表示できます．

系統樹中の「●」をクリックすることで，その直下の子を展開して見ることができます（もう一度クリックすると展開を閉じられます）．ただし，「○」となっている場合は，子が存在しないため展開できません．

系統樹中の「●」や「○」の色がグレーでない場合は，特別な意味を持ちます． すなわち，薄い赤＝ランドマークの統制語，青＝検索でヒットした統制語，オレンジ＝子を展開中の統制語，です．

系統樹中で，統制語（文字列）をクリックすると，その統制語を検索クエリとする，新たな結果（完全一致）が表示されます．

Ver120718? に対するコメント

 * 1) データのaggregationで作った場合には　ユーザが必ず目にするどこかにまとめてStarting Materialのバージョン等のリストを書いておきましょう
 * 2) * A.NCBI taxonomy as of xxxx, B.DBCLS生物名辞書 version 、C.DBCLS生物アイコン version (API?)
 * 3) *Relations used in this work: B literally mapped to A ?  C mapped to A ?  by KH
 * 4) 「キーワードで概念IDを探す部分」　と　「概念IDを与えて(たたいて）その特徴（ツリー上の位置や親子等)を返す部分」はそれぞれ別でしょうね. 前半が弱いのは他の概念もまとめて検索全体についてどこかでやりたいもんです. RDFチームか？　後半はこのままでいいと思います