あるファイルの2つの列を別のファイルの2つの列と比較します。 Pythonやバッシュ?

あるファイルの2つの列を別のファイルの2つの列と比較します。 Pythonやバッシュ?

したがって、タブ区切りのテキストファイルである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メソッド)が試みられています。どんな提案がありますか?よろしくお願いします! :)

ベストアンサー1

おすすめ記事