{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Математик среди биологов: заметки с тегом вормс",
    "_rss_description": "Я немного умею складывать, но от вычитания у меня всегда кружится голова",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/antonlyakh.ru\/blog\/tags\/vorms\/",
    "feed_url": "https:\/\/antonlyakh.ru\/blog\/tags\/vorms\/json\/",
    "icon": false,
    "author": {
        "name": "Антон Лях",
        "url": "https:\/\/antonlyakh.ru\/blog\/",
        "avatar": false
    },
    "items": [
        {
            "id": "511",
            "url": "https:\/\/antonlyakh.ru\/blog\/all\/spisok-rodov-diatomovyh-2-n\/",
            "title": "Список родов диатомовых. 2\/n",
            "content_html": "<p><a href=\"https:\/\/antonlyakh.ru\/blog\/all\/spisok-rodov-diatomovyh-1-n\/\">В прошлый раз мы выяснили<\/a>, что список родов диатомовых можно извлечь из <a href=\"marinespecies.org\">Вормса<\/a>, если уметь немного программировать. Рассказываю, что из этого получилось.<\/p>\n<p>После борьбы с сервером Вормса и поиском наиболее оптимального способа получения данных, мне удалось собрать номенклатурную информацию о 1375 родах диатомовых водорослей.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/antonlyakh.ru\/blog\/pictures\/list-of-diatoms-genera--v01.png\" width=\"502\" height=\"624\" alt=\"\" \/>\n<\/div>\n<p>Часть из них невалидна, то есть относится к ошибочным, неверно описанным или синонимичным названиям.<\/p>\n<h2>Номенклатура в JSON<\/h2>\n<p>Информацию о каждом таксоне Вормс возвращает в json-файле. В том числе файл содержит  номенклатурные данные о высших таксонах рода. То есть у каждого рода (и любого другого таксона) указано его положение в таксономическом дереве.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/antonlyakh.ru\/blog\/pictures\/worms-json-taxon.png\" width=\"502\" height=\"420\" alt=\"\" \/>\n<\/div>\n<p>Поэтому json-файл с данными о таксоне является самодостаточным: он не зависит от других файлов и содержит достаточно номенклатурных данных для определения названия, статуса и положения таксона в иерархическом древе. То есть json-файл это отдельная полноценная запись таксономической базы данных.<\/p>\n<p>Остается преобразовать полученные json-файлы в работоспособную базу.<\/p>\n<h2>JSON → Эксель<\/h2>\n<p>Данные о роде мы можем сохранить в виде строки текста, в которой значимые элементы отделены символом-разделителем. В качестве разделителя используем точку с запятой.<\/p>\n<p>В таком виде хранятся данные в csv файлах, которые умеет открывать Эксель. Поэтому, из всех собранных номенклатурных данных, мы можем сформировать многострочный csv-файл, в котором каждая строка будет соответствовать одному роду. Эксель сумеет его открыть и предоставит инструменты для фильтрации и выбора необходимых сведений. Простая номенклатурная база в Экселе будет работать (и смотреться) хорошо.<\/p>\n<p>Но Эксель мы не сможем нормально использовать на сервере. Поэтому для доступа к данным в вебе потребуется настоящая СУБД.<\/p>\n",
            "date_published": "2025-03-12T20:47:26+03:00",
            "date_modified": "2025-03-12T20:55:40+03:00",
            "image": "https:\/\/antonlyakh.ru\/blog\/pictures\/list-of-diatoms-genera--v01.png",
            "_date_published_rfc2822": "Wed, 12 Mar 2025 20:47:26 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "511",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/antonlyakh.ru\/blog\/pictures\/list-of-diatoms-genera--v01.png",
                    "https:\/\/antonlyakh.ru\/blog\/pictures\/worms-json-taxon.png"
                ]
            }
        },
        {
            "id": "510",
            "url": "https:\/\/antonlyakh.ru\/blog\/all\/spisok-rodov-diatomovyh-1-n\/",
            "title": "Список родов диатомовых. 1\/n",
            "content_html": "<p>Для работы мне потребовался список всех известных к настоящему времени родов диатомовых. Вот результаты попыток его получить.<\/p>\n<h2>Статьи<\/h2>\n<p>Рода диатомовых перечислены в некоторых публикациях. Например, в каталоге родов диатомовых 1999 года<\/p>\n<p><i>Fourtanier E. & Kociolek J.P.<\/i> (1999) Catalogue of diatom genera.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/antonlyakh.ru\/blog\/pictures\/Catalogue-of-diatom-genera-(1999)---title.png\" width=\"602\" height=\"530\" alt=\"\" \/>\n<\/div>\n<p>Из которого вырос каталог названий диатомовых 2009 года, тех же авторов.<\/p>\n<p><i>Fourtanier E. & Kociolek J.P.<\/i> (2009) Catalogue of diatom names.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/antonlyakh.ru\/blog\/pictures\/Catalogue-of-diatom-names-(2009)---title.png\" width=\"602\" height=\"709\" alt=\"\" \/>\n<\/div>\n<p>Но мне нужен электронный список — текстовый файл или отформатированная таблица. Извлечь список из пдф статей — сложная задача. Поэтому этот вариант мне не подходит.<\/p>\n<h2>Базы данных<\/h2>\n<p>Очевидно, что в наш век, когда нейросети потихоньку покоряют человечество, найти в интернете базу данных с полным списком родов определенного таксона не составляет никакого труда. И да, такие базы есть.<\/p>\n<p>Почти все названия диатомовых хранят:<\/p>\n<ul>\n<li>Альгабейз (<a href=\"algaebase.org\">algaebase.org<\/a>),<\/li>\n<li>Вормс (<a href=\"marinespecies.org\">marinespecies.org<\/a>),<\/li>\n<li>Диатомбейз (<a href=\"diatombase.org\">diatombase.org<\/a>).<\/li>\n<\/ul>\n<p>При этом Диатомбейз не является независимой базой — она извлекает данные из базы Вормса и копирует его интерфейс. То есть ее можно спокойно вычеркнуть, оставив Альгабейз и Вормс.<\/p>\n<p>Ни одна из оставшихся двух баз, ни Альгабейз, ни Вормс, не позволяет просто взять и получить список таксонов определенного ранга.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/antonlyakh.ru\/blog\/pictures\/algaebase-tree.png\" width=\"700\" height=\"762\" alt=\"\" \/>\n<\/div>\n<p>Для этого необходимо пробежать по дереву: от верха до нужного ранга, раскрывая по дороге все боковые ветви: над- и под-отделы и отделы, над- и под-классы и классы, надсемейства и семейства. Все без исключения.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/antonlyakh.ru\/blog\/pictures\/worms-tree.png\" width=\"700\" height=\"762\" alt=\"\" \/>\n<\/div>\n<p>При этом страничка с перечнем родов определенного высшего таксона представляет собой сложноструктурированный текст, из которого тоже не очень-то просто вычленить список родов.<\/p>\n<p>То есть вариант использования баз, в котором нужно ручками пролистать ветви таксономического дерева и повыковыривать названия родов тоже мне не подходит.<\/p>\n<h2>АПИ<\/h2>\n<p>Альгабейз не предоставляет никакой иной официальной возможности доступа к базе, кроме как через интерфейс веб-страницы. Майкл Гури зорко охраняет собранные таксономические данные.<\/p>\n<p>К счастью Вормс — это открытая система. Он предоставляет <a href=\"https:\/\/www.marinespecies.org\/rest\/\">АПИ для извлечения данных<\/a>.<\/p>\n<p>Но именно тот запрос, который должен вернуть названия всех таксонов заданного ранга, относящихся к конкретному родителю, в данный момент работает неправильно.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/AphiaRecordsByTaxonRankID\/{ID} \r\nGet the AphiaRecords for a given taxonRankID (max 50)<\/code><\/pre><p>Сейчас он возвращает только первые 50 названий (родов). Остальные остаются недоступными.<\/p>\n",
            "date_published": "2025-03-11T22:58:52+03:00",
            "date_modified": "2025-03-11T23:16:34+03:00",
            "image": "https:\/\/antonlyakh.ru\/blog\/pictures\/Catalogue-of-diatom-genera-(1999)---title.png",
            "_date_published_rfc2822": "Tue, 11 Mar 2025 22:58:52 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "510",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/antonlyakh.ru\/blog\/pictures\/Catalogue-of-diatom-genera-(1999)---title.png",
                    "https:\/\/antonlyakh.ru\/blog\/pictures\/Catalogue-of-diatom-names-(2009)---title.png",
                    "https:\/\/antonlyakh.ru\/blog\/pictures\/algaebase-tree.png",
                    "https:\/\/antonlyakh.ru\/blog\/pictures\/worms-tree.png"
                ]
            }
        }
    ],
    "_e2_version": 3559,
    "_e2_ua_string": "E2 (v3559; Aegea)"
}