Объединение таблиц, в которых записи имеют полное соответствие, но не имеют одинаковый текст - PullRequest
0 голосов
/ 19 июня 2020

Я использую две таблицы, которые описывают одни и те же концепции, но используют разные формулировки в записях, так что во многих случаях существует идеальное взаимно однозначное соответствие.

Можно ли выполнить соединение, используя список слов, которые соответствуют друг другу, но не равны? Например, одна организация использует слово protein, тогда как NCBI называет эти функции CDS. NCBI также ссылается на базы данных перекрестных ссылок по неидентичному тексту, UniProtKB - это их имя, но NCBI использует UniProtKB/Swiss_Prot.

Table: `gene_ontology`

    database    entry       type        go_id     
    ----------  ----------  ----------  ----------
    UniProtKB   P0A776      gene        GO:0016818
    UniProtKB   P37351      gene        GO:0004751
    UniProtKB   P14375      protein     GO:0006351


Table: `NCBI_xref`
        database              entry         type        locus_tag   
        --------------------  ------------  ----------  ------------
        UniProtKB/Swiss_Prot  P14375        CDS         b4004
        NCBI                  ABUW_RS19635  gene        ABUW_RS19635
        NCBI                  WP_000271233  CDS         ABUW_RS19635

Я бы хотел внутреннее соединение, но очевидно, что есть проблемы с нестандартным неймингом. Нижняя строка в gene_ontology должна совпадать с верхней строкой из NCBI_xref. Это связано с тем, что database и type соответствуют, а entry идентичны.

Должна быть возможность сгенерировать список синонимов между ними, но я бы предпочел не изменять или продублируйте данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...