mitsuhashi / rdf_converter_medgen

RDF converter for MedGen
0 stars 0 forks source link

NAMES.csvのパースに失敗している #3

Open mitsuhashi opened 6 months ago

mitsuhashi commented 6 months ago

NAMES.csvのパースに失敗していて主語にカンマが入ってしまっている場合がある。

全部列挙

rdf_portal@vs66:/mnt/nas05/togodx/medgen/20240312$ grep medgen:C NAMES.ttl.bk | grep ","
medgen:C0442784,N4.5,SNOMEDCT_US
medgen:C1515587,del(16q23-24.2),NCI
medgen:C1515609,del(7q31.1),NCI
medgen:C1515613,del(8q24.1),NCI
medgen:C1515661,inv(14)(q11;q32.1),NCI
medgen:C1515666,inv(3)(q21.3;q26.2),NCI
medgen:C1515710,t(11;19)(q23;p13.1),NCI
medgen:C1515711,t(11;19)(q23.3;p13.3),NCI
medgen:C1515714,t(v;11q23.3),NCI
medgen:C1515717,t(12;21)(p13.2;q22.1),NCI
medgen:C1515723,t(14;19)(q32;q13.1),NCI
medgen:C1515739,t(1;19)(q23;p13.3),NCI
medgen:C1515741,t(1;22)(p13.3;q13.1),NCI
medgen:C1515742,t(1;22)(p36.1;q12),NCI
medgen:C1515764,t(3;3)(q21.3;q26.2),NCI
medgen:C1515775,t(5;14)(q31.1;q32.3),NCI
medgen:C1515781,t(6;9)(p23;q34.1),NCI
medgen:C1515784,t(7;14)(q35;q32.1),NCI
medgen:C1515789,t(7;9)(q34;q34.3),NCI
medgen:C1515800,t(9;11)(p21.3;q23.3),NCI
medgen:C1515809,t(9;22)(q34.1;q11.2),NCI
medgen:C1515813,t(X;17)(p11.2;q25),NCI
medgen:C1515815,t(X;1)(p11.2;p34),NCI
medgen:C1515816,t(X;1)(p11.2;q21),NCI
medgen:C1631070,6/4.5,SNOMEDCT_US
medgen:C1711143,t(12;19)(q13;q13.3),NCI
medgen:C1711144,t(13;22)(q22;q13.3),NCI
medgen:C1711145,t(15;19)(q13;p13.1),NCI
medgen:C1711150,t(3;14)(p14.1;q32),NCI
medgen:C2828339,t(16;16)(p13.1;q22),NCI
medgen:C3897145,inv(16)(p13.1;q22),NCI
medgen:C4331810,t(8;9)(p22;p24.1),NCI
medgen:C5237408,del(17p13.1),NCI
medgen:C5238351,t(8;16)(p11.2;p13.3),NCI
medgen:C5238352,inv(16)(p13.3;q24.3),NCI
medgen:C5238353,t(10;11)(p12.3;q23.3),NCI
medgen:C5238354,t(10;11)(p12.1;q23.3),NCI
medgen:C5239093,t(10;11)(p11.2;q23),NCI
medgen:C5239100,t(3;12)(q23;p12.3),NCI
medgen:C5420796,t(12;22)(q13.12;q12),NCI
medgen:C5420797,t(12;22)(q13.3;q12),NCI
medgen:C5420805,inv(X)(p11.4;p11.22),NCI
medgen:C5421333,del(12p13.2),NCI
medgen:C5447683,del(11p15.5),NCI
medgen:C5669861,del(11q22.3),NCI
medgen:C5669906,NC_000006.12:g.135097497_135097499del,NCI

NAMES.csv

rdf_portal@vs66:~/rdf_portal-rdf/work/rdf-medgen_download/foo$ grep C1515723 NAMES.csv
C1515723,t(14;19)(q32;q13.1),NCI,N
rdf_portal@vs66:~/rdf_portal-rdf/work/rdf-medgen_download/foo$ grep C0442784 NAMES.csv
C0442784,N4.5,SNOMEDCT_US,N
rdf_portal@vs66:~/rdf_portal-rdf/work/rdf-medgen_download/foo$

修正前

mitsuhashi@db01:/mnt/nas05/togodx/medgen/20240312$ grep -A 6 C1515723 NAMES.ttl.bk
medgen:C1515723,t(14;19)(q32;q13.1),NCI
  a mo:ConceptID ;
  dct:identifier "C1515723,t(14;19)(q32;q13.1),NCI" ;
  rdfs:label "N" ;
  mo:name [
    rdfs:label "N" ;
    dct:source mo:Unknown ;
    mo:suppress mo:Unknown
  ] .
mitsuhashi@db01:/mnt/nas05/togodx/medgen/20240312$
mitsuhashi commented 6 months ago

ローカルで以下のようにparserを変更して対応した。

parser変更箇所

rdf_portal@vs66:~/rdf_portal-rdf/work/rdf-medgen/rdf_converter_medgen$ git diff
diff --git a/rdf_converter_medgen.rb b/rdf_converter_medgen.rb
index 6c63eef..17ce85b 100644
--- a/rdf_converter_medgen.rb
+++ b/rdf_converter_medgen.rb
@@ -1,6 +1,7 @@
 #!/usr/bin/env ruby

 require 'optparse'
+require 'csv'

 module MedGen

@@ -50,17 +51,10 @@ module MedGen
     end

     def self.parse(line)
-      if /^(\S+),([^\".]+),(.+),(\w)[\r\n]*?$/ =~ line
-        [$1, $2, $3, $4]
-      elsif  /^(\S+),\"(.+)\",(.+),(\w)[\r\n]*?$/ =~ line
-        [$1, $2, $3, $4]
-      elsif /^(\S+),\"(.+)[\r\n]*?$/ =~ line
-        [$1, $2, "Unknown", "Unknown"]
-      elsif /^(\S+),(.+)[\r\n]*?$/ =~ line
-        [$1, $2, "Unknown", "Unknown"]
-      else
-        raise "Parse error on NAMES.\n"
-      end
+      row = CSV.parse(line).first
+      row[2] = "Unknown" unless row[2]
+      row[3] = "Unknown" unless row[3]
+      row
     end

     def self.construct_turtle(cui, name, source, suppress)
rdf_portal@vs66:~/rdf_portal-rdf/work/rdf-medgen/rdf_converter_medgen$

修正後


mitsuhashi@db01:/mnt/nas05/togodx/medgen/20240312$ grep -A 6 C1515723 NAMES.ttl
medgen:C1515723
  a mo:ConceptID ;
  dct:identifier "C1515723" ;
  rdfs:label "t(14;19)(q32;q13.1)" ;
  mo:name [
    rdfs:label "t(14;19)(q32;q13.1)" ;
    dct:source mo:NCI ;
    mo:suppress mo:N
  ] .
mitsuhashi@db01:/mnt/nas05/togodx/medgen/20240312$