Я хочу преобразовать следующий файл, созданный 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 то, что я сделал при поиске и замене, что, как мне кажется, может быть не лучшим способом сделать это. Любая помощь приветствуется.