<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Математик среди биологов: заметки с тегом вормс</title>
<link>https://antonlyakh.ru/blog/tags/vorms/</link>
<description>Я немного умею складывать, но от вычитания у меня всегда кружится голова</description>
<author>Антон Лях</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Антон Лях</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Я немного умею складывать, но от вычитания у меня всегда кружится голова</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Список родов диатомовых. 2/n</title>
<guid isPermaLink="false">511</guid>
<link>https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-2-n/</link>
<pubDate>Wed, 12 Mar 2025 20:47:26 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-2-n/</comments>
<description>
&lt;p&gt;&lt;a href="https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-1-n/"&gt;В прошлый раз мы выяснили&lt;/a&gt;, что список родов диатомовых можно извлечь из &lt;a href="marinespecies.org"&gt;Вормса&lt;/a&gt;, если уметь немного программировать. Рассказываю, что из этого получилось.&lt;/p&gt;
&lt;p&gt;После борьбы с сервером Вормса и поиском наиболее оптимального способа получения данных, мне удалось собрать номенклатурную информацию о 1375 родах диатомовых водорослей.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/list-of-diatoms-genera--v01.png" width="502" height="624" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Часть из них невалидна, то есть относится к ошибочным, неверно описанным или синонимичным названиям.&lt;/p&gt;
&lt;h2&gt;Номенклатура в JSON&lt;/h2&gt;
&lt;p&gt;Информацию о каждом таксоне Вормс возвращает в json-файле. В том числе файл содержит  номенклатурные данные о высших таксонах рода. То есть у каждого рода (и любого другого таксона) указано его положение в таксономическом дереве.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/worms-json-taxon.png" width="502" height="420" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Поэтому json-файл с данными о таксоне является самодостаточным: он не зависит от других файлов и содержит достаточно номенклатурных данных для определения названия, статуса и положения таксона в иерархическом древе. То есть json-файл это отдельная полноценная запись таксономической базы данных.&lt;/p&gt;
&lt;p&gt;Остается преобразовать полученные json-файлы в работоспособную базу.&lt;/p&gt;
&lt;h2&gt;JSON → Эксель&lt;/h2&gt;
&lt;p&gt;Данные о роде мы можем сохранить в виде строки текста, в которой значимые элементы отделены символом-разделителем. В качестве разделителя используем точку с запятой.&lt;/p&gt;
&lt;p&gt;В таком виде хранятся данные в csv файлах, которые умеет открывать Эксель. Поэтому, из всех собранных номенклатурных данных, мы можем сформировать многострочный csv-файл, в котором каждая строка будет соответствовать одному роду. Эксель сумеет его открыть и предоставит инструменты для фильтрации и выбора необходимых сведений. Простая номенклатурная база в Экселе будет работать (и смотреться) хорошо.&lt;/p&gt;
&lt;p&gt;Но Эксель мы не сможем нормально использовать на сервере. Поэтому для доступа к данным в вебе потребуется настоящая СУБД.&lt;/p&gt;
</description>
</item>

<item>
<title>Список родов диатомовых. 1/n</title>
<guid isPermaLink="false">510</guid>
<link>https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-1-n/</link>
<pubDate>Tue, 11 Mar 2025 22:58:52 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/spisok-rodov-diatomovyh-1-n/</comments>
<description>
&lt;p&gt;Для работы мне потребовался список всех известных к настоящему времени родов диатомовых. Вот результаты попыток его получить.&lt;/p&gt;
&lt;h2&gt;Статьи&lt;/h2&gt;
&lt;p&gt;Рода диатомовых перечислены в некоторых публикациях. Например, в каталоге родов диатомовых 1999 года&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Fourtanier E. &amp; Kociolek J.P.&lt;/i&gt; (1999) Catalogue of diatom genera.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/Catalogue-of-diatom-genera-(1999)---title.png" width="602" height="530" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Из которого вырос каталог названий диатомовых 2009 года, тех же авторов.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Fourtanier E. &amp; Kociolek J.P.&lt;/i&gt; (2009) Catalogue of diatom names.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/Catalogue-of-diatom-names-(2009)---title.png" width="602" height="709" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Но мне нужен электронный список — текстовый файл или отформатированная таблица. Извлечь список из пдф статей — сложная задача. Поэтому этот вариант мне не подходит.&lt;/p&gt;
&lt;h2&gt;Базы данных&lt;/h2&gt;
&lt;p&gt;Очевидно, что в наш век, когда нейросети потихоньку покоряют человечество, найти в интернете базу данных с полным списком родов определенного таксона не составляет никакого труда. И да, такие базы есть.&lt;/p&gt;
&lt;p&gt;Почти все названия диатомовых хранят:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Альгабейз (&lt;a href="algaebase.org"&gt;algaebase.org&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;Вормс (&lt;a href="marinespecies.org"&gt;marinespecies.org&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;Диатомбейз (&lt;a href="diatombase.org"&gt;diatombase.org&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;При этом Диатомбейз не является независимой базой — она извлекает данные из базы Вормса и копирует его интерфейс. То есть ее можно спокойно вычеркнуть, оставив Альгабейз и Вормс.&lt;/p&gt;
&lt;p&gt;Ни одна из оставшихся двух баз, ни Альгабейз, ни Вормс, не позволяет просто взять и получить список таксонов определенного ранга.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/algaebase-tree.png" width="700" height="762" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Для этого необходимо пробежать по дереву: от верха до нужного ранга, раскрывая по дороге все боковые ветви: над- и под-отделы и отделы, над- и под-классы и классы, надсемейства и семейства. Все без исключения.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/worms-tree.png" width="700" height="762" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;При этом страничка с перечнем родов определенного высшего таксона представляет собой сложноструктурированный текст, из которого тоже не очень-то просто вычленить список родов.&lt;/p&gt;
&lt;p&gt;То есть вариант использования баз, в котором нужно ручками пролистать ветви таксономического дерева и повыковыривать названия родов тоже мне не подходит.&lt;/p&gt;
&lt;h2&gt;АПИ&lt;/h2&gt;
&lt;p&gt;Альгабейз не предоставляет никакой иной официальной возможности доступа к базе, кроме как через интерфейс веб-страницы. Майкл Гури зорко охраняет собранные таксономические данные.&lt;/p&gt;
&lt;p&gt;К счастью Вормс — это открытая система. Он предоставляет &lt;a href="https://www.marinespecies.org/rest/"&gt;АПИ для извлечения данных&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Но именно тот запрос, который должен вернуть названия всех таксонов заданного ранга, относящихся к конкретному родителю, в данный момент работает неправильно.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/AphiaRecordsByTaxonRankID/{ID} 
Get the AphiaRecords for a given taxonRankID (max 50)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Сейчас он возвращает только первые 50 названий (родов). Остальные остаются недоступными.&lt;/p&gt;
</description>
</item>


</channel>
</rss>