GenBankのQualifierについて
 

qualifier ::= /<qualifier_name> | /<qualifier_name>=<value>

Qualifierは上記のような定義になっています。
単純そうなので解析プログラムの作成は非常に簡単と思っていましたが、valueの定義の中にLocationが含まれていました。

simple_value ::= <integer> | <location> | <reference_number> | "<text_string>" | <symbol>

先まで解析を進めないとLocationなのか、そうでないのかが判別できないのでちょっと面倒そうです。

->

結構、重大な問題でした。関係する定義は下記のようになっています。
value ::= <simple_value> | (<value_list>) | (<tagged_value_list>)
simple_value ::= <integer> | <location> | <reference_number> | "<text_string>" | <symbol>
value_list ::= <value> | <value_list>,<value>
これによると、(((((1.2)))))のような記述や(((((1..10)))))のような記述も可能です。 前者は(1.2)がLocation部ですが、後者は1..10がLocation部となります。 また、(((((((((1.2).3).4).5))))))などは((((1.2).3).4).5)がLocation部となります。

->

しばらく懸案事項でしたが、なんとか解決できました。


ORCHIDのホームページ
バイオ関連トップ
お問い合わせ先