English site
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リクエストを正常に受信し処理を実行できた場合、HTTPステータス「200」を返却します。
従って、その他のHTTPステータスは、リクエスト失敗として扱ってください。

クライアント認証について

本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":[]}]}