したがって、タブ区切りのテキストファイルである2つのファイルがあり、2つの列に基づいて2つのファイルをマージしたいと思います。どちらのファイルもソートされておらず、ヘッダーは含まれません。もう一つのことは、Final.tsvが約200万行を含むほど巨大であるということです。
**`final.tsv`**
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000028 Cryptorchidism MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000083 Renal insufficiency MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000091 Abnormal renal tubule morphology MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000093 Proteinuria MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000121 Nephrocalcinosis MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000164 Abnormality of the dentition MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000189 Narrow palate MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000194 Open mouth MONDO:0010645 oculocerebrorenal syndrome
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000219 Thin upper lip vermilion MONDO:0010645 oculocerebrorenal syndrome
**om.tsv**
309000 LOWE OCULOCEREBRORENAL SYNDROME HP:0000028 OMIM:309000 XLR
309000 LOWE OCULOCEREBRORENAL SYNDROME HP:0000083 OMIM:309000 XLR
309000 LOWE OCULOCEREBRORENAL SYNDROME HP:0000093 OMIM:309000 XLR
309000 LOWE OCULOCEREBRORENAL SYNDROME HP:0000501 OMIM:309000 XLR
309000 LOWE OCULOCEREBRORENAL SYNDROME HP:0000505 OMIM:309000 XLR
したがって、ここでの作業は、Final.tsvファイルの列6と3をom.tsvファイルの列2と3と一致させることです。 2つの列を一致させるときは、2つのファイルをマージして一致するファイルに保存する必要があります。不一致がある場合は、行全体を別の不一致ファイルとして印刷する必要があります。また、キーワードに基づいて一致する場合は、大文字と小文字を区別しないアプローチが必要です。
たとえば、上記の内容に基づいて、眼脳症候群は低眼脳症候群と一致する必要があります。
Output
ClinVarVariant:208014 OCRL:exon 6-12 del HP:0000028 Cryptorchidism MONDO:0010645 oculocerebrorenal syndrome 309000 LOWE OCULOCEREBRORENAL SYNDROME HP:0000028 OMIM:309000 XLR
これらの複雑さを解決するために、さまざまな方法(たとえば、awk、Join、およびいくつかのPandasメソッド)が試みられています。どんな提案がありますか?よろしくお願いします! :)