- NEDO「カーボンリサイクル実現を加速するバイオ由来製品生産技術の開発」プロジェクト参画者専用ページ
-
こちらは、NEDO「カーボンリサイクル実現を加速するバイオ由来製品生産技術の開発」プロジェクトの参画者専用のページです。
本ページでご紹介しているAPI機能は一般の方はご利用いただけません。
APIマニュアル
はじめに
本マニュアルでは、ゲノム配列情報から微生物の機能を推定するデータベース(MiFuP)の、WebAPI機能(本API)を説明します。
この成果は、国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の委託業務の結果得られたものです。
This service is based on results obtained from a project commissioned by the New Energy and Industrial Technology Development Organization (NEDO).
クライアント認証について
本API利用時は、APIリクエストにカスタムヘッダ「X-mifupapi-token」を追加し、事前に発行を受けたアクセストークンを設定しください。
カスタムヘッダやアクセストークンを指定していない場合、またはアクセストークンが誤っている場合、HTTPステータス「403」を返却します。
API一覧
本APIは、MiFuPのトップページURL「https://www.nite.go.jp/nbrc/mifup/」を起点に、下表のAPI名を加えたURLで機能提供します。
API名 | メソッド | 概要 |
---|---|---|
api/potentials/submit | POST | 微生物のゲノム配列・CDS配列から推定機能を検索する処理を、本システムに要求します。 |
api/potentials/status | GET | 「submit」で要求した検索処理の、処理状態を取得します。 |
api/potentials/result | GET | 「submit」で要求した検索処理の、処理結果を取得します。 |
リファレンス
api/potentials/submit
URL
(POST)https://www.nite.go.jp/nbrc/mifup/api/potentials/submit
説明
微生物のゲノム配列・CDS配列から推定機能を検索する処理を、本システムに要求します。
要求を受けた検索処理はシステムに登録され、検索状態と結果照会に使用できるID(ジョブID)がレスポンス返却されます。
リクエスト
以下のリクエストヘッダ、パラメータ、ファイルを指定し、APIをリクエストしてください。
・リクエストヘッダ
ヘッダ名 名前 必須 指定例 説明 X-mifupapi-token アクセストークン ◯ 123abc456defg 事前に提供を受けた、アクセストークンを指定します。 ・パラメータ
下表のパラメータを、クエリ文字列で指定します。パラメータ名 名前 必須 指定例 説明 seq_type クエリ種別 ◯ genome 機能を検索するために指定する塩基配列ファイルの種類に応じた、以下の種別名を指定します。
ゲノム塩基配列のファイルを指定する場合=genome
CDS塩基配列のファイルを指定する場合=nuc
CDSアミノ酸配列のファイルを指定する場合=pep・ファイル
機能を検索したい微生物のゲノム塩基配列、またはCDS配列(塩基配列、アミノ酸配列どちらでも可)の、FASTA形式の塩基配列ファイルを指定します。
リクエストのMIMEタイプを「Content-Type:multipart/form-data」とし、リクエストボディにパラメータ名「file」でファイルを指定してください。
レスポンス
レスポンスデータは、JSON形式で返却します。
正常時(HTTPステータスが200の場合)、異常時(HTTPステータスが400系、500系の場合)に返却するレスポンスデータを、以下に説明します。
・レスポンスデータ(正常時)
JSON項目名 名前 データ型 指定例 説明 job_id ジョブID 文字列 123abc 受け付けた検索処理のIDです。このIDは、検索処理の状態取得、結果取得時に使用します。 status ステータスコード 数値 900 本システムが、検索処理を受け付けた状態を表すステータスコード値(900)です。 message メッセージ 文字列 Job submitted APIへのリクエスト処理結果を表すメッセージです。 ・レスポンスデータ(異常時)
JSON項目名 名前 データ型 指定例 説明 message メッセージ 文字列 Illegal value. APIへのリクエスト処理結果を表すメッセージです。
実行例
APIの実行例を、サンプルコードとして例示します。
【実行例】
ゲノム塩基配列のファイル「my_inputfile.fasta」を指定し、機能検索をリクエストします。
API利用のために提供されたアクセストークンは、「my_accesstoken123」です。
・Curlコマンド
【サンプルコード】$ curl -X POST -F file=@my_inputfile.fasta -H X-mifupapi-token:my_accesstoken123 "https://www.nite.go.jp/nbrc/mifup/api/potentials/submit?seq_type=genome"
【実行結果】
{"job_id":"abc123def","status":900,"message":"Job submitted."}
・JavaScript
【サンプルコード】function sample_submit() { var apiPath = "https://www.nite.go.jp/nbrc/mifup/api/potentials/submit"; var url = apiPath + "?seq_type=genome" var myFile = $("#myFile")[0].files[0]; const fd = new FormData(); fd.set("file", myFile); $.ajax({ url : url, headers : {"X-mifupapi-token": "my_accesstoken123"}, cache : false, contentType : false, processData : false, data : fd, method : "POST", type : "POST", async : true }) .done(function(data, textStatus, jqXHR){ alert(JSON.stringify(data)); }) .fail(function(jqXHR, textStatus, errorThrown){ alert(JSON.stringify(jqXHR.responseJSON)); }); }
【実行結果】
{"job_id":"abc123def","status":900,"message":"Job submitted."}
・PHP
【サンプルコード】<?php $client = new SampleClient(); $client->sample_submit(); class SampleClient { public function sample_submit() { $ch = curl_init(); $url = 'https://www.nite.go.jp/nbrc/mifup/api/potentials/submit'; $url = $url.'?seq_type=genome'; $filePath = './my_inputfile.fasta'; $finfo = finfo_open(FILEINFO_MIME_TYPE); $finfo = finfo_file($finfo, $filePath); $cfile = new CURLFile($filePath, $finfo, basename($filePath)); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_HTTPHEADER => array('Content-Type: multipart/form-data', 'X-mifupapi-token:my_accesstoken123'), CURLOPT_POST => true, CURLOPT_POSTFIELDS => [ 'file' => $cfile, ], ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $body = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); echo $body; } } ?>
【実行結果】
{"job_id":"abc123def","status":900,"message":"Job submitted."}
・Python
【サンプルコード】#using: python3.7 import requests def sample_submit(): myFile = open(r"my_inputfile.fasta", "rb") files = {"file": ("input.fas", myFile, "application/octet-stream")} myHeaders = {"X-mifupapi-token": "my_accesstoken123"} myURL = "https://www.nite.go.jp/nbrc/mifup/api/potentials/submit" myURL = myURL + "?seq_type=genome" r = requests.post(myURL, headers=myHeaders, files=files) if r.status_code == 200: print(r.json()) else: print('error') sample_submit()
【実行結果】
{"job_id":"abc123def","status":900,"message":"Job submitted."}
・Perl
【サンプルコード】use strict; use utf8; use Encode; use JSON; use LWP::UserAgent; use HTTP::Request::Common; my $ua = new LWP::UserAgent; my $res=$ua->request( POST( 'https://www.nite.go.jp/nbrc/mifup/api/potentials/submit?seq_type=genome', "X-mifupapi-token" => 'my_accesstoken123', Content_Type => 'multipart/form-data', Content => [ 'file' => ['my_inputfile.fasta', './my_inputfile.fasta'] ] ) ); if ($res->is_success) { my $result = JSON->new->utf8(0)->decode(decode_utf8($res->content)); print $result->{status}."\n"; print $result->{message}."\n"; print $result->{job_id}."\n"; } else { my $result = JSON->new->utf8(0)->decode(decode_utf8($res->content)); print $result->{message}."\n"; }
【実行結果】
900 Job submitted. abc123def
・Java
【サンプルコード】// using: OpenJDK-1.5, httpcomponents-client-4.5.13 import java.io.File; import java.nio.charset.Charset; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class Main { public static void main(String[] args) { sample_submit(); } private static void sample_submit() { try { String filePath = "my_inputfile.fasta"; var client = HttpClients.createDefault(); var uriBuilder = new URIBuilder("https://www.nite.go.jp/nbrc/mifup/api/potentials/submit"); uriBuilder.addParameter("seq_type", "genome"); var request = new HttpPost(uriBuilder.build()); request.addHeader("X-mifupapi-token", "my_accesstoken123"); File file = new File(filePath); FileBody fileBody = new FileBody(file, ContentType.DEFAULT_BINARY); var builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); builder.addPart("file", fileBody); request.setEntity(builder.build()); var response = client.execute(request); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { var resBody = EntityUtils.toString(response.getEntity(), Charset.forName("UTF-8")); System.out.println(resBody); } } catch (Exception e) { e.printStackTrace(); } } }
【実行結果】
{"job_id":"abc123def","status":900,"message":"Job submitted."}
・C#
【サンプルコード】// using: .NETFramework-4.8 using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Web; class Program { static void Main(string[] args) { sample_submit(); } static void sample_submit() { string filePath = @"my_inputfile.fasta"; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (var clientHandler = new HttpClientHandler()) { using (var client = new HttpClient(clientHandler)) { var paramQuery = HttpUtility.ParseQueryString(string.Empty); paramQuery["seq_type"] = "genome"; var requestContent = new MultipartFormDataContent(); var fileContent = new StreamContent(File.OpenRead(filePath)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { Name = "file", FileName = Path.GetFileName(filePath) }; requestContent.Add(fileContent); client.DefaultRequestHeaders.Add("X-mifupapi-token", "my_accesstoken123"); var requestUB = new UriBuilder("https://www.nite.go.jp/nbrc/mifup/api/potentials/submit"); requestUB.Query = paramQuery.ToString(); var response = client.PostAsync(requestUB.Uri, requestContent).Result; if (response.IsSuccessStatusCode) { var responseContent = response.Content; string responseString = responseContent.ReadAsStringAsync().Result; Console.WriteLine(responseString); } } } } }
【実行結果】
{"job_id":"abc123def","status":900,"message":"Job submitted."}
api/potentials/status
URL
(GET)https://www.nite.go.jp/nbrc/mifup/api/potentials/status
説明
本APIで要求した、推定機能を検索する処理の現在の処理状態を取得します。
リクエスト
以下のリクエストヘッダ、パラメータを指定し、APIをリクエストしてください。
・リクエストヘッダ
ヘッダ名 名前 必須 指定例 説明 X-mifupapi-token アクセストークン ◯ 123abc456defg 事前に提供を受けた、アクセストークンを指定します。 ・パラメータ
下表のパラメータを、クエリ文字列で指定します。パラメータ名 名前 必須 指定例 説明 job_id ジョブID ◯ abc123def 推定機能の検索処理要求時にレスポンス返却された、ジョブIDを指定します。
レスポンス
レスポンスデータは、JSON形式で返却します。
正常時(HTTPステータスが200の場合)、異常時(HTTPステータスが400系、500系の場合)に返却するレスポンスデータを、以下に説明します。
・レスポンスデータ(正常時)
JSON項目名 名前 データ型 指定例 説明 status ステータスコード 数値 901 現在の、検索処理の状態を表すステータスコード値です。 message メッセージ 文字列 in progress ステータスコード値の意味を表すメッセージです。 ・レスポンスデータ(異常時)
JSON項目名 名前 データ型 指定例 説明 message メッセージ 文字列 Illegal value. APIへのリクエスト処理結果を表すメッセージです。
ステータスコード一覧
処理の状態を表すステータスコード値と、メッセージは以下の通りです。
ステータスコード | メッセージ | 意味 |
---|---|---|
900 | submitted | 検索処理を受け付け、まだ処理を開始していない状態です。 |
901 | in progress | 検索処理を実行している最中です。 |
1 | succeed | 検索処理が完了し、推定機能が見つかりました。 |
2 | no hit | 検索処理は完了したが、推定機能は見つかりませんでした。 |
実行例
APIの実行例を、サンプルコードとして例示します。
【実行例】
機能検索のリクエスト時に返却されたジョブID「abc123def」を指定し、現在の処理状態を取得します。
API利用のために提供されたアクセストークンは、「my_accesstoken123」です。
・Curlコマンド
【サンプルコード】$ curl -X GET -H X-mifupapi-token:my_accesstoken123 "https://www.nite.go.jp/nbrc/mifup/api/potentials/status?job_id=abc123def"
【実行結果】
{"status":901,"message":"in progress"}
・JavaScript
【サンプルコード】function sample_status() { var apiPath = "https://www.nite.go.jp/nbrc/mifup/api/potentials/status"; var url = apiPath + "?job_id=abc123def" $.ajax({ url : url, headers : {"X-mifupapi-token": "my_accesstoken123"}, cache : false, contentType : false, processData : false, method : "GET", type : "GET", async : true }) .done(function(data, textStatus, jqXHR){ alert(JSON.stringify(data)); }) .fail(function(jqXHR, textStatus, errorThrown){ alert(JSON.stringify(jqXHR.responseJSON)); }); }
【実行結果】
{"status":901,"message":"in progress"}
・PHP
【サンプルコード】<?php $client = new SampleClient(); $client->sample_status(); class SampleClient { public function sample_status() { $url = 'https://www.nite.go.jp/nbrc/mifup/api/potentials/status'; $url = $url.'?job_id=abc123def'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-mifupapi-token:my_accesstoken123')); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $body = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); echo $body; } } ?>
【実行結果】
{"status":901,"message":"in progress"}
・Python
【サンプルコード】#using: python3.7 import requests def sample_status(): myHeaders = {"X-mifupapi-token": "my_accesstoken123"} myURL = "https://www.nite.go.jp/nbrc/mifup/api/potentials/status" myURL = myURL + "?job_id=abc123def" r = requests.get(myURL, headers=myHeaders) if r.status_code == 200: print(r.json()) else: print('error') sample_status()
【実行結果】
{"status":901,"message":"in progress"}
・Perl
【サンプルコード】use strict; use utf8; use Encode; use JSON; use LWP::UserAgent; use HTTP::Request::Common; my $ua = new LWP::UserAgent; my $res=$ua->request( GET( 'https://www.nite.go.jp/nbrc/mifup/api/potentials/status?job_id=abc123def', "X-mifupapi-token" => 'my_accesstoken123' ) ); if ($res->is_success) { my $result = JSON->new->utf8(0)->decode(decode_utf8($res->content)); print $result->{status}."\n"; print $result->{message}."\n"; } else { my $result = JSON->new->utf8(0)->decode(decode_utf8($res->content)); print $result->{message}."\n"; }
【実行結果】
901 in progress
・Java
【サンプルコード】// using: OpenJDK-1.5, httpcomponents-client-4.5.13 import java.nio.charset.Charset; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.URIBuilder; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class Main { public static void main(String[] args) { sample_status(); } private static void sample_status() { try { String jobID = "abc123def"; var client = HttpClients.createDefault(); var uriBuilder = new URIBuilder("https://www.nite.go.jp/nbrc/mifup/api/potentials/status"); uriBuilder.addParameter("job_id", jobID); var request = new HttpGet(uriBuilder.build()); request.addHeader("X-mifupapi-token", "my_accesstoken123"); var response = client.execute(request); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { var resBody = EntityUtils.toString(response.getEntity(), Charset.forName("UTF-8")); System.out.println(resBody); } } catch (Exception e) { e.printStackTrace(); } } }
【実行結果】
{"status":901,"message":"in progress"}
・C#
【サンプルコード】// using: .NETFramework-4.8 using System.Net; using System.Net.Http; using System.Web; class Program { static void Main(string[] args) { sample_status(); } static void sample_status() { string jobID = "abc123def"; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (var clientHandler = new HttpClientHandler()) { using (var client = new HttpClient(clientHandler)) { var paramQuery = HttpUtility.ParseQueryString(string.Empty); paramQuery["job_id"] = jobID; client.DefaultRequestHeaders.Add("X-mifupapi-token", "my_accesstoken123"); var requestUB = new UriBuilder("https://www.nite.go.jp/nbrc/mifup/api/potentials/status"); requestUB.Query = paramQuery.ToString(); var response = client.GetAsync(requestUB.Uri).Result; if (response.IsSuccessStatusCode) { var responseContent = response.Content; string responseString = responseContent.ReadAsStringAsync().Result; Console.WriteLine(responseString); } } } } }
【実行結果】
{"status":901,"message":"in progress"}
api/potentials/result
URL
(GET)https://www.nite.go.jp/nbrc/mifup/api/potentials/result
説明
本APIで要求し検索された、推定機能の検索結果データを取得します。
リクエスト
以下のリクエストヘッダ、パラメータを指定し、APIをリクエストしてください。
・リクエストヘッダ
ヘッダ名 名前 必須 指定例 説明 X-mifupapi-token アクセストークン ◯ 123abc456defg 事前に提供を受けた、アクセストークンを指定します。 ・パラメータ
下表のパラメータを、クエリ文字列で指定します。パラメータ名 名前 必須 指定例 説明 job_id ジョブID ◯ abc123def 推定機能の検索処理要求時にレスポンス返却された、ジョブIDを指定します。 format フォーマット json 返却する検索結果データの、データフォーマットを指定します。
指定できるフォーマットは、以下の通りです。(未指定時はjson)
検索できた機能をCSV形式の表データとして返却=csv
検索できた機能のアミノ酸配列データとして返却=faa
検索できた機能と、その機能の要素として含まれるアミノ酸配列データの、JSON形式構造化データとして返却=json
レスポンス
レスポンスデータは、JSON形式で返却します。
正常時(HTTPステータスが200の場合)、異常時(HTTPステータスが400系、500系の場合)に返却するレスポンスデータを、以下に説明します。
・レスポンスデータ(正常時)
JSON項目名 名前 データ型 指定例 説明 status ステータスコード 数値 901 現在の、検索処理の状態を表すステータスコード値です。 message メッセージ 文字列 in progress ステータスコード値の意味を表すメッセージです。 result 検索結果データ 文字列orオブジェクト配列 - ステータスコードが”1”(succeed)の場合、リクエストで指定されたフォーマットの検索結果データを返却します。その他の場合はNullです。 ・レスポンスデータ(異常時)
JSON項目名 名前 データ型 指定例 説明 message メッセージ 文字列 Illegal value. APIへのリクエスト処理結果を表すメッセージです。
JSON形式の検索結果データ項目
リクエスト時にJSON形式フォーマットを指定した場合に返却される、検索結果データのJSON項目を説明します。
項目名 | データ型 | 例 | 説明 |
---|---|---|---|
function_name | 文字列 | Streptomycin resistance | クエリ配列から推定された機能の名前です。 |
function_id | 文字列 | NFUNC_0054 | 機能定義のIDです。 |
require | オブジェクト配列 | - | 機能発揮に必須な、遺伝子情報群のオブジェクト配列です。 |
[require]->pattern | 文字列 | A | 機能発揮に必須な、構成遺伝子セットのパターン名です。 |
[require]->hits | 真偽値 | true | クエリ配列内に、機能発揮に必須な構成遺伝子セットがすべてそろっている場合、True。そろっていなければFalseを指定します。 |
[require]->assigned_rule | オブジェクト配列 | - | 遺伝子情報のオブジェクト配列です。 |
[require]->[assigned_rule]->rule_name | 文字列 | ANT6 | 遺伝子IDです。 |
[require]->[assigned_rule]->rule_id | 文字列 | NRULE_0151 | 遺伝子定義のIDです。 |
[require]->[assigned_rule]->protein_name | 文字列 | Aminoglycoside 6-adenylyltransferase | この遺伝子にコードされているタンパク質の名称です。 |
[require]->[assigned_rule]->assinged_cds | オブジェクト配列 | - | CDSのオブジェクト配列です。 |
[require]->[assigned_rule]->[assinged_cds]->cds_id | 文字列 | NC_011140.1_11 | CDSのIDです。 |
[require]->[assigned_rule]->[assinged_cds]->cds_seq | 文字列 | MEVNKTMRTEN… | アミノ酸配列です。 |
participant | オブジェクト配列 | - | 機能発揮に任意な、遺伝子情報群のオブジェクト配列です。 |
[participant]->* | - | - | 「require」配下と同様の項目のため、省略します。 |
実行例
APIの実行例を、サンプルコードとして例示します。
【実行例】
機能検索のリクエスト時に返却されたジョブID「abc123def」を指定し、JSON形式で検索結果を取得します。
機能検索の処理は「推定機能あり」で完了しています。
API利用のために提供されたアクセストークンは、「my_accesstoken123」です。
・Curlコマンド
【サンプルコード】$ curl -X GET -H X-mifupapi-token:my_accesstoken123 "https://www.nite.go.jp/nbrc/mifup/api/potentials/result?job_id=abc123def&format=json"
【実行結果】
{"status":1,"message":"succeed", "result":[{"function_name":"SampleFunction","function_id":"SMPL_0001","require":[{"hits":true,"assigned_rule":[{"rule_name":"RULE01","rule_id":"NRULE_9999","protein_name":"SampleProtein99","assinged_cds":[{"cds_id":"XX_1234.9_99","cds_seq":"MEVNKTMRT*"}]}],"pattern":"A"}],"participant":[]}]}
・JavaScript
【サンプルコード】function sample_result() { var apiPath = "https://www.nite.go.jp/nbrc/mifup/api/potentials/result"; var url = apiPath + "?job_id=abc123def&format=json" $.ajax({ url : url, headers : {"X-mifupapi-token": "my_accesstoken123"}, cache : false, contentType : false, processData : false, method : "GET", type : "GET", async : true }) .done(function(data, textStatus, jqXHR){ alert(JSON.stringify(data)); }) .fail(function(jqXHR, textStatus, errorThrown){ alert(JSON.stringify(jqXHR.responseJSON)); }); }
【実行結果】
{"status":1,"message":"succeed", "result":[{"function_name":"SampleFunction","function_id":"SMPL_0001","require":[{"hits":true,"assigned_rule":[{"rule_name":"RULE01","rule_id":"NRULE_9999","protein_name":"SampleProtein99","assinged_cds":[{"cds_id":"XX_1234.9_99","cds_seq":"MEVNKTMRT*"}]}],"pattern":"A"}],"participant":[]}]}
・PHP
【サンプルコード】<?php $client = new SampleClient(); $client->sample_result(); class SampleClient { public function sample_result() { $url = 'https://www.nite.go.jp/nbrc/mifup/api/potentials/result'; $url = $url.'?job_id=abc123def'; $url = $url.'&format=json'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-mifupapi-token:my_accesstoken123')); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $body = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); echo $body; } } ?>
【実行結果】
{"status":1,"message":"succeed", "result":[{"function_name":"SampleFunction","function_id":"SMPL_0001","require":[{"hits":true,"assigned_rule":[{"rule_name":"RULE01","rule_id":"NRULE_9999","protein_name":"SampleProtein99","assinged_cds":[{"cds_id":"XX_1234.9_99","cds_seq":"MEVNKTMRT*"}]}],"pattern":"A"}],"participant":[]}]}
・Python
【サンプルコード】#using: python3.7 import requests def sample_status(): myHeaders = {"X-mifupapi-token": "my_accesstoken123"} myURL = "https://www.nite.go.jp/nbrc/mifup/api/potentials/result" myURL = myURL + "?job_id=abc123def" myURL = myURL + "&format=json" r = requests.get(myURL, headers=myHeaders) if r.status_code == 200: print(r.json()) else: print('error') sample_status()
【実行結果】
{"status":1,"message":"succeed", "result":[{"function_name":"SampleFunction","function_id":"SMPL_0001","require":[{"hits":true,"assigned_rule":[{"rule_name":"RULE01","rule_id":"NRULE_9999","protein_name":"SampleProtein99","assinged_cds":[{"cds_id":"XX_1234.9_99","cds_seq":"MEVNKTMRT*"}]}],"pattern":"A"}],"participant":[]}]}
・Perl
【サンプルコード】use strict; use utf8; use Encode; use JSON; use LWP::UserAgent; use HTTP::Request::Common; my $ua = new LWP::UserAgent; my $res=$ua->request( GET( 'https://www.nite.go.jp/nbrc/mifup/api/potentials/result?job_id=abc123def&format=json', "X-mifupapi-token" => 'my_accesstoken123' ) ); if ($res->is_success) { my $result = JSON->new->utf8(0)->decode(decode_utf8($res->content)); print $result->{status}."\n"; print $result->{message}."\n"; if ($result->{status} == 1) { print $result->{result}[0]{function_name}."\n"; } } else { my $result = JSON->new->utf8(0)->decode(decode_utf8($res->content)); print $result->{message}."\n"; }
【実行結果】
1 succeed SampleFunction
・Java
【サンプルコード】// using: OpenJDK-1.5, httpcomponents-client-4.5.13 import java.nio.charset.Charset; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.URIBuilder; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class Main { public static void main(String[] args) { sample_status(); } private static void sample_result() { try { String jobID = "abc123def"; var client = HttpClients.createDefault(); var uriBuilder = new URIBuilder("https://www.nite.go.jp/nbrc/mifup/api/potentials/result"); uriBuilder.addParameter("job_id", jobID); uriBuilder.addParameter("format", "json"); var request = new HttpGet(uriBuilder.build()); request.addHeader("X-mifupapi-token", "my_accesstoken123"); var response = client.execute(request); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { var resBody = EntityUtils.toString(response.getEntity(), Charset.forName("UTF-8")); System.out.println(resBody); } } catch (Exception e) { e.printStackTrace(); } } }
【実行結果】
{"status":901,"message":"in progress","result":[{"function_name":"SampleFunction","function_id":"SMPL_0001","require":[{"hits":true,"assigned_rule":[{"rule_name":"RULE01","rule_id":"NRULE_9999","protein_name":"SampleProtein99","assinged_cds":[{"cds_id":"XX_1234.9_99","cds_seq":"MEVNKTMRT*"}]}],"pattern":"A"}],"participant":[]}]}
・C#
【サンプルコード】// using: .NETFramework-4.8 using System.Net; using System.Net.Http; using System.Web; class Program { static void Main(string[] args) { sample_status(); } static void sample_result() { string jobID = "abc123def"; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (var clientHandler = new HttpClientHandler()) { using (var client = new HttpClient(clientHandler)) { var paramQuery = HttpUtility.ParseQueryString(string.Empty); paramQuery["job_id"] = jobID; paramQuery["format"] = "json"; client.DefaultRequestHeaders.Add("X-mifupapi-token", "my_accesstoken123"); var requestUB = new UriBuilder("https://www.nite.go.jp/nbrc/mifup/api/potentials/result"); requestUB.Query = paramQuery.ToString(); var response = client.GetAsync(requestUB.Uri).Result; if (response.IsSuccessStatusCode) { var responseContent = response.Content; string responseString = responseContent.ReadAsStringAsync().Result; Console.WriteLine(responseString); } } } } }
【実行結果】
{"status":901,"message":"in progress","result":[{"function_name":"SampleFunction","function_id":"SMPL_0001","require":[{"hits":true,"assigned_rule":[{"rule_name":"RULE01","rule_id":"NRULE_9999","protein_name":"SampleProtein99","assinged_cds":[{"cds_id":"XX_1234.9_99","cds_seq":"MEVNKTMRT*"}]}],"pattern":"A"}],"participant":[]}]}
