Преобразовать словарь видов, контролируемый UNIPROT, в JSON? - PullRequest
0 голосов
/ 12 июля 2020

Я хочу преобразовать следующий файл, созданный UNIPROT, в JSON: https://www.uniprot.org/docs/speclist.txt, используя Javascript или Python, чтобы его можно было использовать в некоторых программах, которые я создаю.

Интересующие нас данные в приведенном выше файле структурированы следующим образом:

Code    Taxon    N=Official (scientific) name
        Node     C=Common name
                 S=Synonym
_____ _ _______  ____________________________________________________________
AADNV V  648330: N=Aedes albopictus densovirus (isolate Boublik/1994)
                 C=AalDNV
AAV2  V   10804: N=Adeno-associated virus 2
                 C=AAV-2
AAV2S V  648242: N=Adeno-associated virus 2 (isolate Srivastava/1982)
                 C=AAV-2
ABAMA E  118452: N=Abacion magnum
                 C=Millipede
ABANI E   72259: N=Abaeis nicippe
                 C=Sleepy orange butterfly
                 S=Eurema nicippe

Где:

  • column1 - это code
  • column2 - это kingdom (обратите внимание, что заголовок отсутствует) и представлен одной буквой следующим образом:

A для архей

B для бактерий

E для эукариот

V для вирусов

O для других

  • column3 - это узел таксономии (taxnode)
  • column4 - это имя следующим образом: N=name C=common S=synonym имена

Я вручную преобразовал файл в желаемый результат с помощью Regex и нашел и заменил в VS Код. Таким образом, приведенный выше пример даст желаемый результат в виде массива Javascript объектов (Примечание - я знаю, что это не JSON).

  [
    {
      code: "AADNV",
      kingdom: "Viruses",
      taxnode: "648330",
      name: "Aedes albopictus densovirus (isolate Boublik/1994)",
      common: "AalDNV",
    },
    {
      code: "AAV2",
      kingdom: "Viruses",
      taxnode: "10804",
      name: "Adeno-associated virus 2",
      common: "AAV-2",
    },
    {
      code: "AAV2S",
      kingdom: "Viruses",
      taxnode: "648242",
      name: "Adeno-associated virus 2 (isolate Srivastava/1982)",
      common: "AAV-2",
    },
    {
      code: "ABAMA",
      kingdom: "Eukaryota",
      taxnode: "118452",
      name: "Abacion magnum",
      common: "Millipede",
    },
    {
      code: "ABANI",
      kingdom: "Eukaryota",
      taxnode: "72259",
      name: "Abaeis nicippe",
      common: "Sleepy orange butterfly",
      synonym: "Eurema nicippe",
    },
  ]

Но это нужно сделать программно, как список источников обновляется каждые несколько месяцев, чтобы добавить в него новые виды. До сих пор я пробовал кодировать logi c то, что я сделал при поиске и замене, что, как мне кажется, может быть не лучшим способом сделать это. Любая помощь приветствуется.

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