Nikkaji-knapsack-id-matching

提供:TogoWiki

移動: 案内, 検索

目次

日化辞 と KNApSAcK の化合物IDの対応情報の取得 (櫛田、山田、時松)

  • 目的: 日化辞RDFデータを日本の化合物データのHubとして利用するための取り組みの一環
    • KNApSAcK と日化辞の間のIDの対応を取り、日化辞にない 日化辞ID があれば日化辞に追加を要請する

CAS-RN と InChI を利用した 両データベース間の化合物の対応の課題

CAS-RN によるマッチングの問題点

  • CAS-RN はライセンスの問題で、積極的につけないデータベースが多い
    • 日化辞の場合も CAS-RN をつけるのを止めているので、古いエントリーにしか CAS-RN がついていない

InChI によるマッチングの問題点

  • 立体異性の表記などの問題で、同じ化合物であっても同じInChiにならない場合がある
    • DB 側で構造式の立体異性表記を一部または全部省略している場合
    • 構造式の立体異性表記のしかたにより、InChiに変換した時に立体情報の反転または消失が起きることがある
      • molファイル側の問題(表記法により、molファイルに異性情報がきれいに乗らないことがある)
      • InChIコンバータの挙動の違い(OpenBabelのコンバータと、InChIが提供するコンバータで微妙に結果が違う物がある)

PubChem でも上記の理由で一つの化合物が CID レベルでもInChIの違う複数の CID に分かれてしまう

  • 例:Kaempferol 7-neohesperidoside (CID_5483905) (BH15)
    • この CID には、BH15 で調査した時に9つの Same connectivity の CID があったが、いずれも Kaempferol 7-neohesperidoside の表記違いもしくは構造式の書き間違い、立体異性の省略などによる物と予測される(今は、22の same connectivity CID に増えている) 参考資料(BH15)
    • 余談:本エントリーには data sapplyer が間違った synonym (Kaempferol 7-rutinoside)を登録しており、このPubChemエントリーを参照したと思われる Wikipedia に Kaempferol 7-neohesperidoside の構造式で Kaempferol 7-rutinoside のエントリーが作成され、これが CID 5483905 にリンクされるという、エラーの拡大再生産が起きて訳がわからない状況。
    • InChIとInChI Keyについては、Connectivityのみなど緩めにかけた検索結果も参照する必要がある (参照:化合物SPARQLthon38)
  • Same Connectivityを見る場合、複数の化合物が入ることが多い
    • 例: Kaempferol 3-glucoside の場合、Same Connectivity を取ると Kaempferol 3-hexoside になるので、Kaempferol 3-galactoside などと同じSame connectivity になる。
    • MSの場合、Same connectivityで大きな問題はない

日化辞 と KNApSAcK の CAS-RN と InChI を用いた 比較による問題点の検討 (SPARQLthon37, SPARQLthon39, SPARQLthon40)

  • 比較データを検証して、問題の起きる頻度と事例の検討を行う

使用データ・手順

  • 日化辞 (約300万レコード)
    • CAS-RN
    • IUPAC-1.0.4 によるInChI変換
    • OpenBabelによるInChi変換
  • KNApSAcK (50899レコード)
    • CAS-RN
    • IUPAC-1.0.4 によるInChI変換
  • 下記の組み合わせについて、CASあるいはInChIが完全一致する組み合わせを確認
    • KNApSAcK(CAS-RN)-日化辞(CAS-RN)
    • KNApSAcK(IUPAC)-日化辞(IUPAC)
    • KNApSAcK(IUPAC)-日化辞(OpenBabel)

比較結果

  • 日化辞IDと対応が取れたKNApSAcK ID の数
    • KNApSAcK(CAS-RN)-日化辞(CAS-RN) 14325 ID
    • KNApSAcK(IUPAC)-日化辞(IUPAC) 22284 ID 23275 pair
    • KNApSAcK(IUPAC)-日化辞(OpenBabel) 19975 ID 20794 pair
  • CAS対応とInChI対応の比較
    • 全て完全一致 6126 ID (12.0 %)
    • InChI で複数対応があるが、そのうち1つがCASと一致 331 ID ( 0.7 %)
    • CAS と OpenBabel のみ一致、IUPACなし 2 ID ( 0.0 %)
    • CAS と IUPAC InChIのみ一致、OpenBabel なし 240 ID ( 0.5 %)
    • CAS で情報なし、OpenBabelとIUPACの対応は完全一致 12867 ID (25.3 %)
    • CAS で情報なし、OpenBabelとIUPACの対応は部分一致 103 ID ( 0.2 %)
    • CAS と InChI 不一致、OpenBabelとIUPACは完全一致 531 ID ( 1.0 %)
    • CAS と InChI 不一致、OpenBabelとIUPACは部分一致 11 ID ( 0.0 %)
    • CAS と InChI 不一致、OpenBabelとIUPACは片方なし 67 ID ( 0.1 %)
    • CASのみで情報あり 7017 ID (13.8 %)
    • OpenBabelのみで情報あり 2 ID ( 0.0 %)
    • IUPAC InChIのみで情報あり 2010 ID ( 3.9 %)
    • 全て対応情報なし 21592 ID (42.4 %)
  • 42.4 % が、何も対応取れていない!
    • CASのみで情報が取れている 7017 ID に着目してInChIを比較すれば、問題点が見えるか?
  • 例:Gibberellin (diterpenoids, plant hormone)
    • 双方のデータベースとも検索をかけると100以上の分子を収載している(KNApSAcK 129 ID)
    • CASのみし対応IDが取れないエントリーが多い
      • 全て完全一致 28 ID (21.7 %)
      • CAS で情報なし、OpenBabelとIUPACの対応は完全一致 11 ID ( 8.5 %)
      • CASのみで情報あり 44 ID (34.1 %)
      • 全て対応情報なし 46 ID (35.7 %)
    • CASのみで対応が取れる物について見てみると、立体構造の描画に大きな違いがありInChIの立体異性情報が部分的に欠落している
      • 例:KNApSAcK C00000004 と Nikkaji J4.736H (CAS_RN: 468-44-0)
      • KNApSAcK C00000004: InChI=1S/C19H24O5/c1-9-7-18-8-10(9)3-4-11(18)19-6-5-12(20)17(2,16(23)24-19)14(19)13(18)15(21)22/h10-14,20H,1,3-8H2,2H3,(H,21,22)/t10?,11-,12+,13-,14-,17-,18+,19-/m1/s1
      • Nikkaji J4.736H: InChI=1S/C19H24O5/c1-9-7-18-8-10(9)3-4-11(18)19-6-5-12(20)17(2,16(23)24-19)14(19)13(18)15(21)22/h10-14,20H,1,3-8H2,2H3,(H,21,22)/t10-,11-,12+,13-,14-,17-,18+,19-/m1/s1
    • 対応情報がない物についても手作業でとれる

比較結果とKNApSAcKのInChI変換のWarningとの関係 (SPARQLthon40)

  • KNApSAcKのInChI変換のWarning内容についての検討
    • KNApSAcK 約50,000件をInChi変換した際のlogを確認すると、10775件の構造についてWarningが出ていた。
    • Warningの内容を精査することにより、どこでInChI変換に問題がおきているかわかるか?
  • Warning内容
    • Omitted Undefined Stereo 7672
    • Ambiguous stereo: center(s) 1845
    • Ambiguous stereo: bond(s) 774
    • Charges were rearranged 67
    • Charges neutralized 2
    • Accepted unusual valence(s) 123
    • Proton(s) added/removed 683
    • Salt was disconnected 5
    • Metal was disconnected 18
    • 合計 11889 (複数のWarningが一つの構造につくこともあるので構造の総数とは一致しない)
  • Stereoに関するWarningについては、数は多いがIDマッチングがしているものでも一定数出ていたので、精査必要
  • Accepted unusual valence(s)については、KNApSAcKの化学構造を再検討した方がいい可能性が高い

InChI & InChIKey部分文字列のRDF化による化合物構造の検証

  • SPARQLthon40
  • SPARQLthon38で作成したInChIのRDF生成スクリプトを修正した。
    • このRDFは、InChIとInChIKeyを分割した文字列のトリプルが入っている。
  • 新しいスクリプトでつくったRDFをVirtuosoに入れ、必要な情報をSPARQLクエリで取得できることを確認した。
  • KNApSAcKデータには同位体を含む分子がない(たぶん)ためIsotopic_*のデータは0件でした。
prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dcterms: <http://purl.org/dc/terms/>
prefix sio: <http://semanticscience.org/resource/>
prefix inchi: <http://glyconavi.org/inchi/>

SELECT DISTINCT ?id ?Version ?inchi ?inchikey ?value ?key_value 
FROM <http://www.glyconavi.org/SPARQLthon40/iupac-inchi/KNApSAcK>
WHERE {
?s dcterms:identifier ?id .
?s sio:CHEMINF_000200 [ sio:SIO_000300 ?inchi ; rdf:type sio:CHEMINF_000396 ] .
?s sio:CHEMINF_000200 [ sio:SIO_000300 ?inchikey ; rdf:type sio:CHEMINF_000399 ] .
?s sio:CHEMINF_000200 / inchi:Version ?Version .

# inchi:Connections
# inchi:H_atoms
# inchi:Main_layer
# inchi:Charge
# inchi:Protons
# inchi:Charge_layer
# inchi:Stereo_dbond
# inchi:Stereo_sp3
# inchi:Stereo_sp3_inverted
# inchi:Stereo_type
# inchi:Stereo_layer
#0 inchi:Isotopic_atoms
#0 inchi:Isotopic_exchangeable_H
#0 inchi:Isotopic_stereo_dbond
#0 inchi:Isotopic_stereo_sp3
#0 inchi:Isotopic_stereo_sp3_inverted
#0 inchi:Isotopic_stereo_type
# inchi:Isotopic_layer

?s sio:CHEMINF_000200 / sio:SIO_000028 / sio:SIO_000028 [ rdf:type inchi:Connections ; sio:SIO_000300 ?value  ] .

#0 inchi:Skeleton
#0 inchi:Stereo_isotopic_substitution_information
#0 inchi:Kind_of_InChIKey
#0 inchi:InChI_version
#0 inchi:Number_of_protons
?s sio:CHEMINF_000200 / sio:SIO_000028 [ rdf:type inchi:Number_of_protons ; sio:SIO_000300 ?key_value  ] .

}
LIMIT 1
  • 日化辞のInChI,InChIKeyを取得するSPARQLクエリ
    • 日化辞InChI-RDFはNBDC生命科学系データベースアーカイブデータ(最終更新年月日 2015/07/30時点のデータを利用)
SELECT DISTINCT ?id ?inchi ?inchikey
FROM <http://www.glyconavi.org/iupac-inchi/NIKKAJI>
WHERE {
?s <http://vocab.jst.go.jp/terms/sti#InChI> ?inchi .
?s <http://vocab.jst.go.jp/terms/sti#InChIKey> ?inchikey .
?s <http://purl.org/dc/terms/identifier> ?id .
}
limit 5
  • KNApSAcKのInChIKey RSQSQJNRHICNNH-AMNRFOROSA-N よりSkeleton部分 RSQSQJNRHICNNH と部分一致するNikkajiのIDとInChI,InChIKeyのリストをSPARQLで取得する。
  • LIMIT 1しかできない。クエリ最適化が必要
  • 多分1〜2万件くらいの日化辞IDが得られると予想される
  • 以下のクエリでは10件は得られるが、100件は "Virtuoso S1T00 Error SR171: Transaction timed out"となる
    • virtuoso.iniのMaxQueryExecutionTimeを変更して検討中
LIMIT毎の結果
LIMIT 10 23.847 sec
LIMIT 50 3 min 58 sec
LIMIT 60 5 min 13 sec
prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dcterms: <http://purl.org/dc/terms/>
prefix sio: <http://semanticscience.org/resource/>
prefix inchi: <http://glyconavi.org/inchi/>

SELECT DISTINCT ?knapsack_id  ?knapsack_inchi ?knapsack_inchikey ?Skeleton ?nikkaji_inchikey ?nikkaji_inchi ?nikkaji_id 
WHERE {

GRAPH <http://www.glyconavi.org/SPARQLthon40/iupac-inchi/KNApSAcK> {
   ?s sio:CHEMINF_000200 [ sio:SIO_000300 ?knapsack_inchikey ; rdf:type sio:CHEMINF_000399 ] .
   ?s sio:CHEMINF_000200 / sio:SIO_000028 [ rdf:type inchi:Skeleton ; sio:SIO_000300 ?Skeleton  ] .
}

GRAPH <http://www.glyconavi.org/iupac-inchi/NIKKAJI> {
	?nikkaji_s <http://vocab.jst.go.jp/terms/sti#InChIKey> ?nikkaji_inchikey .
        FILTER ( ?knapsack_inchikey != ?nikkaji_inchikey &&  contains(str(?nikkaji_inchikey), ?Skeleton ))
	?nikkaji_s <http://purl.org/dc/terms/identifier> ?nikkaji_id .
	?nikkaji_s <http://vocab.jst.go.jp/terms/sti#InChI> ?nikkaji_inchi .
}
?s sio:CHEMINF_000200 [ sio:SIO_000300 ?knapsack_inchi ; rdf:type sio:CHEMINF_000396 ] .
?s sio:CHEMINF_000200 [ sio:SIO_000300 ?knapsack_inchikey ; rdf:type sio:CHEMINF_000399 ] .
?s dcterms:identifier ?knapsack_id .
}
LIMIT 10
  • 化学構造の骨格は同じで立体化学などが異なると思われるリストが取得できた。
骨格は同じだけど構造が異なる例
KNApSAcK C00002769 FSBUXLDOLNLABB-MQAZSWENSA-N
日化辞 J362.655E FSBUXLDOLNLABB-ISAKITKMSA-N
  • データが取得できたら、この日化辞データのRDFをつくる。(予定)
  • KNApSAcKと日化辞のRDFを使って何処が異なるか検討する予定

SPARQLによるInChIKey部分文字列検索による日化辞とKNApSAcKのID取得(山田) SPARQLthon41

  • SPARQLクエリによる一括取得はあきらめて、一件ごとに変更する。
    • KNApSAcKのユニークSkeletonの数:45417 / KNApSAcKの化合物数:51245 検索する。
  • 分子構造一致(立体等の情報は無視)検索の検討〜InChIKey前半部分の利用したSPARQLクエリ例
prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dcterms: <http://purl.org/dc/terms/>
prefix sio: <http://semanticscience.org/resource/>
prefix inchi: <http://glyconavi.org/inchi/>

SELECT DISTINCT ?id ?Skeleton ?nikkaji_id ?nikkaji_inchikey str (?inchikey) AS ?knapsackinchikey
FROM NAMED <http://www.glyconavi.org/SPARQLthon40/iupac-inchi/KNApSAcK>
FROM NAMED <http://www.glyconavi.org/iupac-inchi/NIKKAJI>
WHERE {

GRAPH <http://www.glyconavi.org/SPARQLthon40/iupac-inchi/KNApSAcK> {
  ?s dcterms:identifier ?id .
  ?s sio:CHEMINF_000200 / sio:SIO_000028 [ rdf:type inchi:Skeleton ; sio:SIO_000300 ?Skeleton  ] .
  ?s sio:CHEMINF_000200 [ sio:SIO_000300 ?inchikey ; rdf:type sio:CHEMINF_000399 ] .
}

GRAPH <http://www.glyconavi.org/iupac-inchi/NIKKAJI> {
 ?nikkaji_s <http://vocab.jst.go.jp/terms/sti#InChIKey> ?nikkaji_inchikey .
 ?nikkaji_s <http://purl.org/dc/terms/identifier> ?nikkaji_id .
}

FILTER ( ?inchikey != ?nikkaji_inchikey )
FILTER ( contains(str(?nikkaji_inchikey), ?Skeleton ))
VALUES (?Skeleton) { ( "FSBUXLDOLNLABB") }

}
  • KNApSAcKのID取得とInChI、InChIKeyを取得するSPARQLクエリ
prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dcterms: <http://purl.org/dc/terms/>
prefix sio: <http://semanticscience.org/resource/>
prefix inchi: <http://glyconavi.org/inchi/>

SELECT DISTINCT ?id ?inchi ?inchikey ?Skeleton 
FROM <http://www.glyconavi.org/SPARQLthon40/iupac-inchi/KNApSAcK>
WHERE {
 ?s dcterms:identifier ?id .
 ?s sio:CHEMINF_000200 [ sio:SIO_000300 ?inchi ; rdf:type sio:CHEMINF_000396 ] .
 ?s sio:CHEMINF_000200 [ sio:SIO_000300 ?inchikey ; rdf:type sio:CHEMINF_000399 ] .
 ?s sio:CHEMINF_000200 / sio:SIO_000028 [ rdf:type inchi:Skeleton ; sio:SIO_000300 ?Skeleton  ] .
}

InChIKey部分文字列を用いた Same Connectivityリスト取得による、Nikkaji-KNApSAcK ID対応キュレーションの検討(時松) SPARQLthon41

  • InChIKeyのSkelton部分の情報から、同一Skelton(Same Connectivity)を持つ化合物を容易に取ることができる(上記山田さんのSparql)
  • 数の少ない側のKNApSAcKをQueryとして、Nikkajiから対応候補のIDリストを取る
  • Query側のKNApSAcK(50899 molecule) のSkelton数
    • KNApSAcK 50737 molecule, 45391 Skelton(same connectivity)
    • (162 molecule については、化合物構造を取れていない)
  • Skelton ごとの molecule 数
    • 10 molecule ( 2)
    • 9 molecule ( 2)
    • 8 molecule ( 5)
    • 7 molecule ( 4)
    • 6 molecule ( 15)
    • 5 molecule ( 36)
    • 4 molecule ( 144)
    • 3 molecule ( 439)
    • 2 molecule ( 3184)
    • 1 molecule (42100)

=== 大きなSkelton groupについて、山田さんが書いた同一Skeltonを持つKNApSAcKとNikkajiのエントリーを取り出すSparql(上述)に投げて検討

  • 10 molecule skelton
    • "SkeletonOfInChIkey=JMIAZDVHNCCPDM" Virtuoso 42000 Error The estimated execution time 4233 (sec) exceeds the limit of 4000 (sec)
    • "SkeletonOfInChIkey=BIPAHAFBQLWRMC" Virtuoso 42000 Error The estimated execution time 4233 (sec) exceeds the limit of 4000 (sec).
  • 9 molecule skelton
    • "SkeletonOfInChIkey=GYOGHROCTSEKDY" 124.646 sec
    • "SkeletonOfInChIkey=NEMWYOKGHGSVSC" Virtuoso 42000 Error The estimated execution time 5923 (sec) exceeds the limit of 4000 (sec)
  • 8 molecule skelton
    • "SkeletonOfInChIkey=GRTOGORTSDXSFK" 111.968 sec
    • "SkeletonOfInChIkey=HKMBLJVHVBJAIH" 108.502 sec
    • "SkeletonOfInChIkey=MOJZMWJRUKIQGL" 106.517 sec
    • "SkeletonOfInChIkey=UKSPRKDZNYSFRL" 102.981 sec
    • "SkeletonOfInChIkey=XFZJEEAOWLFHDH" 106.840 sec
  • 大きいものについては結果を得るために改善が必要
  • 出力結果について検討中

SPARQLによるInChIKeyのSkeletonの情報を利用した日化辞とKNApSAcKのマッピング表の作成(櫛田、時松、山田) SPARQLthon42

  • 山田さんが作製したプログラムを用いて、日化辞化合物のInChIのレイヤーおよびInChIKeyのSkeleton情報のRDFを作成。これをKNApSAcKの同様なSkeletonなど情報ともにNBDCの日化辞テスト用トリプルストア(非公開)に収納。
    • 日化辞のInChIのレイヤーおよびInChIKeyのSkeleton情報のRDFサンプル
<http://stirdf.jst.go.jp/cde/nikkaji/J92.353B>
a jst:Chemical ;
cheminf:CHEMINF_000200
<http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChI>, <http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChIKey> ;
dcterms:identifier "J92.353B" .

<http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChI>
sio:SIO_000300 "InChI=1S/C26H35N3O6/c1-7-29(8-2)14-13-27-26(31)20(15-18-11-9-10-12-21(18)32-3)28-25(30)19-16-22(33-4)24(35-6)23(17-19)34-5/h9-12,15-17H,7-8,13-14H2,1-6H3,(H,27,31)(H,28,30)/b20-15+" ;
inchi:Version "1S" ;
sio:SIO_000028 <http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChI_Main_layer> ;
sio:SIO_000028 <http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChI_Stereo_layer> ;
rdfs:seeAlso <http://info.identifiers.org/inchi/InChI=1S/C26H35N3O6/c1-7-29(8-2)14-13-27-26(31)20(15-18-11-9-10-12-21(18)32-3)28-25(30)19-16-22(33-4)24(35-6)23(17-19)34-5/h9-12,15-17H,7-8,13-14H2,1-6H3,(H,27,31)(H,28,30)/b20-15+> ;
rdf:type cheminf:CHEMINF_000396 .
<http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChI_Main_layer>
sio:SIO_000028 [ sio:SIO_000300 "C26H35N3O6" ; rdf:type cheminf:CHEMINF_000042 ] ;
sio:SIO_000028 [ sio:SIO_000300 "c1-7-29(8-2)14-13-27-26(31)20(15-18-11-9-10-12-21(18)32-3)28-25(30)19-16-22(33-4)24(35-6)23(17-19)34-5" ; rdf:type inchi:Connections ] ;
sio:SIO_000028 [ sio:SIO_000300 "h9-12,15-17H,7-8,13-14H2,1-6H3,(H,27,31)(H,28,30)" ; rdf:type inchi:H_atoms ] ;
sio:SIO_000028 [ sio:SIO_000300 "C26H35N3O6/c1-7-29(8-2)14-13-27-26(31)20(15-18-11-9-10-12-21(18)32-3)28-25(30)19-16-22(33-4)24(35-6)23(17-19)34-5/h9-12,15-17H,7-8,13-14H2,1-6H3,(H,27,31)(H,28,30)" ; rdf:type inchi:Main_layer ] .
<http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChI_Stereo_layer>
sio:SIO_000028 [ sio:SIO_000300 "b20-15+" ; rdf:type inchi:Stereo_dbond ] ;
sio:SIO_000028 [ sio:SIO_000300 "b20-15+" ; rdf:type inchi:Stereo_layer ] .

<http://stirdf.jst.go.jp/cde/nikkaji/J92.353B_standard_InChIKey>
sio:SIO_000300 "NKDMADWJOGOELA-HMMYKYKNSA-N";
sio:SIO_000028 [ sio:SIO_000300 "NKDMADWJOGOELA" ; rdf:type inchi:Skeleton ] ;
sio:SIO_000028 [ sio:SIO_000300 "HMMYKYKN" ; rdf:type inchi:Stereo_isotopic_substitution_information ] ;
sio:SIO_000028 [ sio:SIO_000300 "S" ; rdf:type inchi:Kind_of_InChIKey ] ;
sio:SIO_000028 [ sio:SIO_000300 "A" ; rdf:type inchi:InChI_version ] ;
sio:SIO_000028 [ sio:SIO_000300 "N" ; rdf:type inchi:Number_of_protons ] ;
rdfs:seeAlso <http://info.identifiers.org/inchikey/NKDMADWJOGOELA-HMMYKYKNSA-N> ;
rdf:type cheminf:CHEMINF_000399 .
prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dcterms: <http://purl.org/dc/terms/>
prefix sio: <http://semanticscience.org/resource/>
prefix inchi: <http://glyconavi.org/inchi/>

SELECT DISTINCT ?knapsack_id  ?knapsack_inchi ?knapsack_inchikey ?Skeleton ?nikkaji_inchikey ?nikkaji_inchi ?nikkaji_s
#SELECT count(distinct ?nikkaji_s)
WHERE {

GRAPH <http://nikkaji.biosciencedbc.jp/iupac-inchi/KNApSAcK> {
   ?s sio:CHEMINF_000200 [ sio:SIO_000300 ?knapsack_inchikey ; rdf:type sio:CHEMINF_000399 ] .
   ?s sio:CHEMINF_000200 / sio:SIO_000028 [ rdf:type inchi:Skeleton ; sio:SIO_000300 ?Skeleton  ] .
   ?s sio:CHEMINF_000200 [ sio:SIO_000300 ?knapsack_inchi ; rdf:type sio:CHEMINF_000396 ] .
   ?s dcterms:identifier ?knapsack_id .
}

GRAPH <http://nikkaji.biosciencedbc.jp/InChI_Layer> {
   ?nikkaji_s sio:CHEMINF_000200 [ sio:SIO_000300 ?nikkaji_inchikey ; rdf:type sio:CHEMINF_000399 ] .
   ?nikkaji_s sio:CHEMINF_000200 / sio:SIO_000028 [ rdf:type inchi:Skeleton ; sio:SIO_000300 ?nikkaji_Skeleton  ] .
   ?nikkaji_s sio:CHEMINF_000200 [ sio:SIO_000300 ?nikkaji_inchi ; rdf:type sio:CHEMINF_000396 ] .
}

FILTER ( ?Skeleton = ?nikkaji_Skeleton )

}

OFFSET 0
LIMIT 50000
  • さらに上記をエクセルで編集した結果
    • 黄色の行は、KNApSAcKと日化辞のInChIKeyが完全一致するもの。赤色は、KNApSAcKと日化辞のInChIKeyのSkeletonが一致するが、InChIKey全体では完全一致しないもの。
      • KNApSAcKの化合物数:51,245 ---(A)
        • 日化辞と同じSkeletonを持つKNApSAcK化合物数:39,889 ---(B)
          • 日化辞と同じInChIKeyを持つKNApSAcK化合物数:24,893 ---(C)
          • 日化辞と同じSkeletonを持つが、InChIKeyは一致しないKNApSAcK化合物数:14,996 ---(D), D = B - C
        • 日化辞と同じSkeleton(InChIKey)を持たないKNApSAcK化合物数:11,356 ---(E), E = A - B
  • 山田さんのSPARQLとの比較。
    • 山田さんのSPARQLでは、トリプルストアに日化辞のInChIKeyの情報のみが格納されていて、SPARQLを使って日化辞のInChIKeyからSkeletonの情報を抽出している。
      • 例、FILTER ( ?knapsack_inchikey != ?nikkaji_inchikey && contains(str(?nikkaji_inchikey), ?Skeleton )) の箇所
    • このとき、(おそらく)検索に負荷がかかり、Skeleton部分が一致するKNApSAcKと日化辞化合物の対応表を取得しようとした場合、検索結果全件を取得することができなかった。
    • 今回、InChIKeyのSkeleton情報のRDFをトリプルストアに格納することで、SPARQL検索の負荷が軽減され、約40,000件のSkeleton部分が一致するKNApSAcKと日化辞化合物の対応表を取得することができた。
  • KNApSAcKのInChI立体情報問題により漏れているKNApSAcK-Nikkaji間の対応関係の見積り(時松)
    • BH15.15で作成したAth Flavonoids Candidate InChIを利用して、InChIの立体情報の問題でどの程度ID対応を取り漏らしているか検討する
    • 使用データ:BH15.15で作成した Ath Flavonoids Candidate InChI のうち KNApSAcK IDを持ち立体情報を正確に保有している146分子のInChI
    • (手順)
      • (1) 櫛田さん取得のデータからAth Flavonoids Candidate 146分子のKNApSAcK IDに対応する部分を抽出
      • (2) Skeltonが一致するものがなく同一Skeltonの候補分子があるものについて、BH15.15で作成したInChIでマッチするものがあるかどうか検索
      • (3) 同一Skeltonの候補がSparqlで取れなかったものについて、NikkajiRDFを検索して再確認
      • (4) (2),(3) で候補を拾えなかったものについて、Nikkaji Web による文字列検索、構造検索などで漏れを確認
    • (結果)
      • (1) Nikkaji ID とれた: 54 (37.0%)、Skeltonのみ:68(46.6%)、SkeltonからSpqrqlでとれない:24(16.4%)
        • アントシアニン母核を持つ化合物が全く取れていないなど、SPARQL検索のどこか(データorクエリ)に問題がありそう
      • (2) 68 のうち 67 については、BH15.15で作成したInChIで対応するInChIをもつNikkaji IDを取得できた。
        • やはりKNApSAcKから変換したInChIの立体異性情報が正確でないことによる取得漏れはかなり大きい
      • (3) 25 のうち 19 について、BH15.15で作成したInChIと対応するNikkaji IDを取得(うち2つは、元のKNApSAcK InChIでも取得可能)
        • やはりSPARQL検索のどこか(データorクエリ)に問題があるが現状未解明
      • (4) 以上の過程で候補がない 6 分子のうち、手作業で 1 分子について対応すると思われるNikkaji IDを発掘
      • (結果データのまとめ)立体修正前は 146分子中 56分子(38.4%)しかNikkaji IDがつかなかったものが、立体情報の見直しで 85分子(58.2%)についてIDがマッチするようになり、146分子中141分子(96.6%)についてKNApSAcKとNikkajiの間でID対応が取れる
    • (まとめ)
      • KNApSAcK molファイルの立体変換で取り落としている KNApSAcK-Nikkaji ID対応は予想通りかなり多い
  • 今後の対応
    • KNApSAcK-Nikkaji ID対応のフローの検討
      • Same Conectivity(同一Skelton)のNikkaji IDを候補として取ってきて確認するしかないか?
    • 日化辞に登録されていないInChI(InChIKey)を持つKNApSAcK化合物(上記Eに相当)の新規登録を検討(櫛田)。