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に該当)が指定できます。 |