Anatomography Web API サンプルコード - Perl - バージョンおよびTreeの指定はじめに
Anatomographyは、Elementと呼ばれる小さい単位のパーツをFMAのTreeを元に組み合わせて、より大きな概念のパーツを描画しています。 サンプルコード出力先ファイルは適宜変更して下さい。 #!/usr/bin/env perl use strict; use LWP::UserAgent; # リクエスト先URL my $serverURL = "http://lifesciencedb.jp/bp3d/API/"; # 描画リクエスト用のJSON文字列を作成 # Version 4.0、IS-A Treeにて描画 my $json = <<JSON; { "Common":{ "Version":"4.0", "TreeName":"isa" }, "Part":[ { "PartName":"anatomical entity", "PartColor":"F0D2A0", "PartOpacity":0.1 }, { "PartName":"bone organ", "PartColor":"FFFFFF" }, { "PartName":"region of wall of heart", "PartColor":"FF0000" } ] } JSON # 出力 open OUT, ">4.0_IS-A.png"; binmode(OUT); print OUT &getImage($json); # 作成したJSONを利用して描画リクエスト close OUT; # 描画リクエスト用のJSON文字列を作成 # 同じパーツをVersion 3.0、IS-A Treeにて描画 my $json = <<JSON; { "Common":{ "Version":"3.0", "TreeName":"isa" }, "Part":[ { "PartName":"anatomical entity", "PartColor":"F0D2A0", "PartOpacity":0.1 }, { "PartName":"bone organ", "PartColor":"FFFFFF" }, { "PartName":"region of wall of heart", "PartColor":"FF0000" } ] } JSON # 出力 open OUT, ">3.0_IS-A.png"; binmode(OUT); print OUT &getImage($json); # 作成したJSONを利用して描画リクエスト close OUT; # 描画リクエスト用のJSON文字列を作成 # 同じパーツをVersion 4.0、PART-OF Treeにて描画 # このパラメータでは何も描画できず、白い画像が返ってきます。 $json = <<JSON; { "Common":{ "Version":"4.0", "TreeName":"partof" }, "Part":[ { "PartName":"anatomical entity", "PartColor":"F0D2A0", "PartOpacity":0.1 }, { "PartName":"bone organ", "PartColor":"FFFFFF" }, { "PartName":"region of wall of heart", "PartColor":"FF0000" } ] } JSON # 出力 open OUT, ">4.0_PART-OF_01.png"; binmode(OUT); print OUT &getImage($json); # 作成したJSONを利用して描画リクエスト close OUT; # 描画リクエスト用のJSON文字列を作成 (Version 4.0、PART-OF Tree) # 似たような概念をPART-OF Treeのパーツから選び、Version 4.0、PART-OF Treeにて描画 $json = <<JSON; { "Common":{ "Version":"4.0", "TreeName":"partof" }, "Part":[ { "PartName":"human body", "PartColor":"F0D2A0", "PartOpacity":0.1 }, { "PartName":"skeletal system", "PartColor":"FFFFFF" }, { "PartName":"heart", "PartColor":"FF0000" } ] } JSON # 出力 open OUT, ">4.0_PART-OF_02.png"; binmode(OUT); print OUT &getImage($json); # 作成したJSONを利用して描画リクエスト close OUT; # 生成したJSONをパラメータとしてimageに対してGETリクエストするサブルーチン sub getImage () { my $json = shift; my $userAgent = LWP::UserAgent->new; my $request = HTTP::Request->new('GET', $serverURL."image?".$json); my $response = $userAgent->request($request); return $response->content; } 出力画像(Version 4.0, IS-A Tree) 出力画像(Version 3.0, IS-A Tree) 出力画像(Version 4.0, PART-OF Tree, 1枚目, 何も描画されていない白い画像) 出力画像(Version 4.0, PART-OF Tree, 2枚目) 以下、各ステップに関する説明です。 バージョンおよびTreeの設定
"Common":{ "Version":"4.0", "TreeName":"isa" }, 2013年5月現在、バージョンには"2.0"、"3.0"、"4.0"が指定(各々2.0、3.0、4.0に該当)でき、指定をしない場合、最新版(4.0)と解釈されます。 利用するTreeは、"isa"、"partof"のいずれか(各々IS-A、PART-OFに該当)が指定できます。 |