2 заметки с тегом

вормс

Список родов диатомовых. 2/n

В прошлый раз мы выяснили, что список родов диатомовых можно извлечь из Вормса, если уметь немного программировать. Рассказываю, что из этого получилось.

После борьбы с сервером Вормса и поиском наиболее оптимального способа получения данных, мне удалось собрать номенклатурную информацию о 1375 родах диатомовых водорослей.

Часть из них невалидна, то есть относится к ошибочным, неверно описанным или синонимичным названиям.

Номенклатура в JSON

Информацию о каждом таксоне Вормс возвращает в json-файле. В том числе файл содержит номенклатурные данные о высших таксонах рода. То есть у каждого рода (и любого другого таксона) указано его положение в таксономическом дереве.

Поэтому json-файл с данными о таксоне является самодостаточным: он не зависит от других файлов и содержит достаточно номенклатурных данных для определения названия, статуса и положения таксона в иерархическом древе. То есть json-файл это отдельная полноценная запись таксономической базы данных.

Остается преобразовать полученные json-файлы в работоспособную базу.

JSON → Эксель

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

В таком виде хранятся данные в csv файлах, которые умеет открывать Эксель. Поэтому, из всех собранных номенклатурных данных, мы можем сформировать многострочный csv-файл, в котором каждая строка будет соответствовать одному роду. Эксель сумеет его открыть и предоставит инструменты для фильтрации и выбора необходимых сведений. Простая номенклатурная база в Экселе будет работать (и смотреться) хорошо.

Но Эксель мы не сможем нормально использовать на сервере. Поэтому для доступа к данным в вебе потребуется настоящая СУБД.

Список родов диатомовых. 1/n

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

Статьи

Рода диатомовых перечислены в некоторых публикациях. Например, в каталоге родов диатомовых 1999 года

Fourtanier E. & Kociolek J.P. (1999) Catalogue of diatom genera.

Из которого вырос каталог названий диатомовых 2009 года, тех же авторов.

Fourtanier E. & Kociolek J.P. (2009) Catalogue of diatom names.

Но мне нужен электронный список — текстовый файл или отформатированная таблица. Извлечь список из пдф статей — сложная задача. Поэтому этот вариант мне не подходит.

Базы данных

Очевидно, что в наш век, когда нейросети потихоньку покоряют человечество, найти в интернете базу данных с полным списком родов определенного таксона не составляет никакого труда. И да, такие базы есть.

Почти все названия диатомовых хранят:

При этом Диатомбейз не является независимой базой — она извлекает данные из базы Вормса и копирует его интерфейс. То есть ее можно спокойно вычеркнуть, оставив Альгабейз и Вормс.

Ни одна из оставшихся двух баз, ни Альгабейз, ни Вормс, не позволяет просто взять и получить список таксонов определенного ранга.

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

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

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

АПИ

Альгабейз не предоставляет никакой иной официальной возможности доступа к базе, кроме как через интерфейс веб-страницы. Майкл Гури зорко охраняет собранные таксономические данные.

К счастью Вормс — это открытая система. Он предоставляет АПИ для извлечения данных.

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

/AphiaRecordsByTaxonRankID/{ID} 
Get the AphiaRecords for a given taxonRankID (max 50)

Сейчас он возвращает только первые 50 названий (родов). Остальные остаются недоступными.