最終更新日:2015.6.10.

WABI VECSCREEN の使用方法

VECSCREENのjobの投入
VECSCREENの結果の取得
サンプルスクリプト
複数配列のベクター配列のチェック

VECSCREEN の job の投入

以下のパラメーターを POST します。
format, result は必須です。
result に mail を指定した場合は address も必須となります。

パラメーター 説明
format request ID を返す際の応答データの形式。
text, json, xml, bigfile, imagefile, requestfile が受け付けられますが、job投入時に意味があるのは text, json, xml の3つです。
querySequence vecscreen 実行時に vecscreen に渡す配列ファイル。
FASTAフォーマットを使用します。
database vecscreen実行時に使用するデータベース。
UniVec(多数のベクターだけでなくリンカー・アダプター・プライマー配列から、効率的な検索のために冗長な部分を除いて作成された塩基配列データベース。データベースに含まれる配列は、少数の疑陽性ヒットを許容することで contamination の検出を最大にするように選ばれています。)
または UniVec_Core(疑陽性のヒット数を最小にするように選ばれた UniVec のサブセット。)を指定します。
parameters 出力ファイルのフォーマットの指定として、"-f 0"(HTML format, with alignments (default)), "-f 1"(HTML format, no alignments), "-f 2"(Text list, with alignments), "-f 3"(Text list, no alignments)のいずれかを記述します。
result 結果通知方法。
www, mail のいずれか。
mail の場合、job 完了時に address に記述したメールアドレスに対して検索終了の通知が送信されます。
www の場合は何もしないので、POST 時に返された request ID を使って GET で job の状態を調べる。
address result で mail を指定した場合に検索終了の通知を受け取るメールアドレス。

VECSCREEN の結果の取得

パラメータ 説明
GET vecscreen/{id}?info=status job が走っている、キューにたまっている、終わっている、存在しない、ということを返します。
GET vecscreen/{id}?info=request プログラム実行条件を返します。
存在しない場合は、エラーを返します。
GET vecscreen/{id}?info=result job が終わっていたら結果(multiple alignment, profile alignment を実行した場合は alignment の結果、-TREE を実行した場合は .ph ファイル、-BOOTSTRAP を実行した場合は .phb ファイル、-CONVERT を実行した場合はフォーマット変換後のファイル)を返します。
終わってない・存在しない場合は、エラーを返します。

サンプルスクリプト

vecscreen-client.pl

#!/usr/bin/perl
 
# usage: perl wabi-client conf.json
 
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON qw/encode_json decode_json/;
 
# JSONファイルから値を取り出す。
my $json_file = $ARGV[0];
 
open IN, $json_file or die;
my $json_in = '';
while () {
	chomp;
	$json_in .= $_;
}
close IN;
my $data_ref = decode_json($json_in);
my %data = %$data_ref;
 
my $format = 'text';
my $url = $data{'urlStr'};
my $fasta_file = $data{'fasta'};
my $database = $data{'database'};
my $parameters = $data{'parameters'};
my $result = $data{'result'};
my $address = $data{'address'};
 
open FASTA, $fasta_file or die;
my $fasta = '';
while () {
	$fasta .= $_;
}
close FASTA;
 
# 取り出した値をPOSTする。
my %post_data = (
	'querySequence' => $fasta,
	'format' => $format,
	'database' => $database,
	'parameters' => $parameters,
	'result' => $result,
	'address' => $address
);
 
my $request = POST($url, \%post_data);
 
my $ua = LWP::UserAgent -> new;
my $res = $ua -> request( $request );
 
my $request_id = '';
if ($res->is_success) {
	my $content = $res->content;
	if ($content =~ /requestId: (.*)/) {
		$request_id = $1;
	}
} else {
	die $res->status_line;
}
print "request-ID: $request_id\n";
 
# request-IDでGETする。
my $status = '';
while (1) {
	$request = GET($url . $request_id);
	$res = $ua -> request( $request );
	if ($res->is_success) {
		my $content = $res->content;
		if ($content =~/status: (.*)/) {
			$status = $1;
		}
	} else {
		die $res->status_line;
	}
	print "$status\n";
	if ($status eq 'waiting') {
		sleep(10);
	} elsif ($status eq 'running') {
		sleep(10);
	} elsif ($status eq 'finished') {
		last;
	}
}
 
# 検索結果を取得する。
$request = GET($url . $request_id . '?info=result');
$res = $ua -> request( $request );
if ($res->is_success) {
	open OUT, ">${request_id}.txt" or die;
	print OUT $res->content;
	close OUT;
	print "Search result is outputed to ${request_id}.txt\n";
} else {
	die $res->status_line;
}

複数配列のベクター配列のチェック

conf.json

{
  "urlStr": "http://ddbj-staging.nig.ac.jp/wabi/vecscreen/",
  "fasta": "/home/hoge/script/vec.fasta",
  "database": "UniVec",
  "parameters": "-f 0",
  "result": "www",
  "address": ""
}

vec.fasta

>1
tgaattcgagctcggtacccggggatcctctagagtcgacctgcaggcatgcaagcttggc
>2
ggaattcgagctcggtacccggggatcctctagagtcgacctgcaggcatgcaagcttggc
>3
agaattcgagctcggtacccggggatcctctagagtcgacctgcaggcatgcaagcttggc
>4
cgaattcgagctcggtacccggggatcctctagagtcgacctgcaggcatgcaagcttggc

multi fastaデータをvecscreenにかけてベクター配列の有無をチェックする

hoge@huga ~/script $ perl vecscreen-client.pl vecscreen_conf.json
request-ID: wabi_vecscreen_2013-1009-1446-20-728-899018
waiting
finished
Search result is outputed to wabi_vecscreen_2013-1009-1446-20-728-899018.txt

出力された wabi_vecscreen_2013-1009-1446-20-728-899018.txt は、ジョブ実行時に parameters を "-f 0" としているので実際は html ファイルである。

ページの先頭へ戻る