Этот шаблон используется для рисования ветвящихся деревьев, где метки узлов и оснований являются кликабельными ссылками. Такие диаграммы особенно подходят для представления эволюционных деревьев ( кладограмм ).
{{ clade | label1 = База | 1 = Узел }}
производит
{{ клад | 1 = {{ клад | метка1 = [[ Поддерево1 ]] | 1 = Лист1 | метка2 = Поддерево2 | 2 = [[ Лист2 ]] }} }}
производит
{{ клад | 1 = {{ клад | метка1 = Поддерево1 | 1 = Лист1 | метка2 = Поддерево2 | 2 = Лист2 }} } }
производит
Обратите внимание, что порядок параметров не имеет значения. Точно такой же вывод выдает
{{ клад | 1 = {{ клад | 2 = Лист2 | 1 = Лист1 | метка1 = Поддерево1 | метка2 = Поддерево2 }} } }
Шаблон клада имеет множество функций для настройки внешнего вида. Для их оптимального использования требуется некоторое понимание того, как работает шаблон. Кладограмма создается с использованием вложенных таблиц HTML, а линии кладограммы являются границами ячеек ( <td>
тегов). Каждый шаблон клада создает таблицу HTML с элементами, показанными следующим образом:
Внешний вид кладограммы можно настроить, изменив атрибуты границ элементов HTML-ячейки, используя параметры |state=
, |color=
как |thickness=
показано ниже:
Кладограммы также можно генерировать справа налево с помощью {{ cladeR }} , как показано ниже.
Распространенным методом представления филогенетических данных является использование формата Newick . Многие опубликованные статьи предоставляют данные в формате Newick в своих дополнительных материалах, а несколько таксономических и фиогенетических веб-сайтов предоставляют возможность загрузки (например, Open Tree of Life ). Эти строки Newick можно использовать для создания кладограмм несколькими способами.
Во-первых, данные формата Newick можно использовать для генерации разметки структуры кладов с помощью текстового редактора или одного из нескольких инструментов.
Филогенетическое дерево, показанное справа, представлено следующим кодом Newick и {{ Clade }}
((a,b),(c,d))
{{clade |1={{clade |1=a |2=b}} |2={{clade |1=c |2=d }} }} }}
Ручная процедура конвертации в текстовом редакторе:
К счастью, существует ряд методов автоматизации этой задачи.
использовать константу N => "\n" ; использовать константу T => "\t" ; my $tree = '((a,b),(c,d));' ; # получить последовательность $tree =~ s/[\n\r]//g ; # освободить эти пробелы $tree =~ s/\:[\.\d]+//g ; # освободить эти длины while ( $tree =~ m/\(/ ) { foreach my $clade ( $tree =~ m/\(([^\(\)]+)\)/g ) { my @branches = split /\,/ , $clade ; s/(\t+)/$1\t/g for @branches ; die 'ОШИБКА: вырожденный/пустой узел!' . N if $#branches < 1 ; $tree =~ s/\(\Q$clade\E\)/${\join('','{{clade',N,map(T.'|'.($_+1).'='.$branches[$_].N,0..$#branches),T.'}}')}/ ; # подставить } pos ( $tree ) = 0 ; } $tree =~ s/(\t*)\t\}\}/$1\}\}/g ; # ленивое исправление распечатать $tree ;
Данные формата Newick также можно добавить с помощью |newickN=
, где N относится к дочернему узлу (как и в случае с другими параметрами).
Например, следующая строка Newick
((лев,ягуар,леопард),((сибирский,бенгальский)тигр,снежный барс))пантера
можно поместить в код клады, как в следующем примере:
Данные формата Newick, предоставленные Open Tree of Life и другими источниками, обычно содержат посторонние данные кодирования. Их можно удалить с помощью параметров |newickN-pattern=
и |newickN-replace=
, которые предоставляют шаблон Lua (похожий на Regex) и замену. Следующий код использует данные формата Newick для рода Prionailurus , загруженные с помощью Open Tree of Life (исходные данные):
{{ клад | newick1 = (Prionailurus_planiceps_ott86166,(((Prionailurus_bengalensis_chinensis_ott198595,Prionailurus_bengalensis_euptilurus_ott547362,Prionailurus_bengalensis_bengalensis_ott5557509,Prionailurus_bengalensis_rabori_ott7067613)Prionailurus_bengalensis_ott280108,Prionailurus_iriomotensis_ott418475),Prionailurus_viverrinus_ott862641),Prionailurus_rubiginosus_ott507541)Prionailurus_ott570215 | newick1-pattern1 = ([%a_]*)_?(ott[%d]*) | newick1-replace1 = ''%1'' | newick1-pattern2 = Prionailurus_ | newick1-replace2 = P._ | newick1-pattern3 = bengalensis_ | newick1-replace3 = b._ }}}}
производит
Вы можете вкладывать шаблоны и использовать ссылки вокруг текста. Вы можете использовать неразрывные пробелы ( ) для получения пробелов или для создания меток с пробелами.
Вся кладограмма может быть помещена в рамку, так что текст красиво обтекает ее. Вы можете использовать {{ Cladogram }} для создания рамки.
{{ кладограмма | заголовок = Пример | подпись = Пример {{ tl | кладограмма }} | клады = {{ клады | стиль = размер шрифта:85%; высота строки:85%; | label1 = [[ Неорниты ]] | 1 = {{ клады | label1 = [[ Палеогнатовые ]] | 1 = | label2 = [[ Неогнатовые ] ] | 2 = {{ клады | 1 = [[ Неоавы ] ] | label1 = | | label2 = [ [ Галлоансеры ] ] | 2 = {{ клады | 1 = [ [ Гусеобразные ] ] | label2 = | 2 = [[ Курообразные ]] }} }} } } } } }}
Когда одна сестра представлена как листовой узел, а другая как помеченный субклад, они не кажутся на одном уровне. Рассмотрим эту кладограмму:
Хотя Banksia subser. Sphaerocarpae и Banksia subser. Leptophyllae являются сестрами, их названия не выровнены в кладограмме. Если это считается нежелательным, одним из решений является использование метки в обоих случаях, как показано ниже, которая теперь показывает сестер на одном уровне.
Другой «трюк» — ввести фиктивную кладу. Красная линия в следующем примере показывает, где была вставлена дополнительная клада:
Чтобы достичь этого, вместо того, чтобы
{{ клад | 1 = Сестра1 | метка2 = Сестра2 | 2 = {{ клад | 1 = таксон1 | 2 = таксон2 }} } }
который отображается как:
использовать
{{ клад | 1 = Сестра1 | 2 = {{ клад <!--дополнительная фиктивная клад--> | метка1 = Сестра2 | 1 = {{ клад | 1 = таксон1 | 2 = таксон2 }} } } } }
который отображается как:
Чтобы вставить цветную «скобку» вокруг набора листовых узлов, которые следуют друг за другом в сгенерированной кладограмме:
barbeginN=colour
barN=colour
barendN=colour
Обратите внимание на использование неразрывного пробела (
) для перемещения вертикальной черты из текста листа.
Горизонтальные линии можно опустить, используя across. Таким образом, следующее создает простые вертикальные полосы:|barN=colour
Вы можете использовать любой из способов указания цветов в HTML , например, стандартные названия цветов, обозначения из трех или шести шестнадцатеричных цифр, такие как #FC3 или #F3C630, или rgb()
обозначения.
Правила доступности требуют, чтобы страницы не полагались только на цвет, поэтому особенно важно добавлять метки, если у вас больше одной скобки/полоски и вам нужно ссылаться на них по отдельности. Доступно несколько методов.
|grouplabelN=
параметр. Это добавляет метку справа от правой скобки или полосы, как показано в следующем примере. Правый столбец иллюстрирует, как |grouplabel=
добавляет ячейку HTML справа от конечного листа.В приведенном выше примере grouplabel использовался для маркировки полосы, отмечающей всю кладу. Он предоставил альтернативу labelA. Однако, если полоса применяется только к некоторым терминалам, |grouplabelN=
может использоваться для маркировки парафилетических групп. Следующий пример также демонстрирует использование для |grouplabelstyleN=
применения стиля CSS к grouplabel, в данном случае цвета.
Параметр |grouplabel=
можно использовать для добавления нескольких меток с помощью шаблона {{ clade labels }} . Этот шаблон использует абсолютное позиционирование CSS для определения размещения метки. При применении к |grouplabel1=
параметру на внешнем кладе он ведет себя очень похоже на {{ barlabel }} . Простой пример маркировки двух групп показан ниже:
Параметр |grouplabel=
может содержать любой Wikitext или разрешенный HTML-контент, и это обеспечивает большую гибкость в настройке кладограмм. Следующий пример использует |grouplabel=
для добавления альтернативной топологии с помощью {{ cladeR }} :
Если на вашей кладограмме скобки/полоски не отображаются так, как вы ожидали, проверьте следующее:
barN
и т. д. N должно быть таким же, как номер потомка в его кладе. Таким образом, обычно следует писать , например .|N=label for leaf|barN=colour for bar
|2=[[Passeridae]]|bar2=midnightblue
Метки, созданные |labelN=
, где N
1, 2, ..., могут привести к плохой компоновке результирующей кладограммы. (Это не относится к тексту листьев, т.е. тексту, созданному |N=
.) Чтобы избежать проблем:
Кладограммы рисуются путем генерации скрытых таблиц. Горизонтальные и вертикальные линии, составляющие дерево, на самом деле являются краями ячеек таблицы. Затем таблицы рисуются браузером или пользовательским агентом с использованием его внутренних алгоритмов. Поскольку они различаются от браузера к браузеру, созданные деревья не будут выглядеть одинаково во всех браузерах.
В частности, по состоянию на январь 2017 года [обновлять]существует два алгоритма для размещения таблиц с пустыми ячейками, используемые двумя группами браузеров. Большинство браузеров теперь используют алгоритм, который создает кладограммы, подобные двум слева на диаграмме. Safari (как под MacOS, так и под iOS) использует другой алгоритм, создавая кладограммы, подобные двум справа на диаграмме.
В настоящее время не существует автоматизированного «исправления» этих различий.
Если есть возможность выбора порядка конечных узлов (листьев) дерева, кладограммы выглядят лучше всего в браузере типа Safari, если как можно больше ветвей находится внизу кладограммы. Обычно это достигается путем расположения конечных узлов вниз на странице в порядке их эволюционного расхождения. Сравните нижнюю строку диаграммы с верхней строкой.
Существует множество известных ошибок в отображении таблиц в программном обеспечении, которое создает книги Википедии ; см. страницу отзывов об инструменте для книг. По состоянию на июль 2011 года [обновлять]они приводят к тому, что линии в кладограммах не отображаются в книгах. (Кладограммы реализованы в виде таблиц HTML, что позволяет использовать сложное, но трудно преобразуемое форматирование. Для альтернативного способа включения кладограмм книг попробуйте изображения.)
Существуют ограничения по размеру и сложности кладограмм, которые можно нарисовать:
Поскольку кладограммы строятся путем вложения шаблонов {{ clade }} друг в друга, более крупные кладограммы могут превышать глубину расширения, разрешенную программным обеспечением Wikimedia. Кладограмма справа терпит неудачу на двадцатом вложенном шаблоне клады.
Есть два способа обойти это ограничение:
Этот подход использует шаблон {{ clade sequence }} для перечисления таксонов в таксономической последовательности . В следующем примере шесть таксонов перечислены последовательно в шаблоне, а кладограмма имеет первый как первую ветвь, второй — следующую и так далее, пока последние два не станут сестрами. Поскольку все таксоны добавляются в одном вызове шаблона, это учитывается только один раз в пределе 20. Недостатком является то, что невозможно отформатировать каждый уровень независимо.
Второй пример показывает, что некоторую подструктуру можно добавить к каждому уровню при обычном использовании шаблона {{ clade }} .
Этот метод использует параметры |target=
и |subclade=
для «модуляризации» филогенетического дерева. Каждое поддерево обрабатывается параллельно, поэтому они не вносят вклад в глубину расширения аддитивным образом. Ограничение применяется к каждому дереву, но можно использовать много поддеревьев.
Базовая структура проиллюстрирована ниже. Основное дерево имеет два субклада, A и B, а субклад B вызывает третий.
Кодирование основано на ряде соглашений.
|subcladeA=
, |subcladeB=
, ... |subcladeZ=
содержат поддеревья в структуре клада, которые будут подставлены в основное дерево.|targetA=
, |targetB=
, ... |subcladeZ=
содержат цели, где будут заменены поддеревья. Например, |targetA={SUBCLADE_A
} указывает, что цель {SUBCLADE_A}
будет заменена содержимым .|subcladeA=content
{SUBCLADE_A}
и {SUBCLADE_B}
для |subcladeA=
и |subcladeB=
соответственно.|1=
, |label2=
и т. д.).Пример большого филогенетического дерева, разделенного на несколько поддеревьев, можно найти в {{ Phylogeny/APG IV }} .
Иногда с большими филогенетическими деревьями трудно увидеть древесину для деревьев. Кладограмма может превышать высоту экрана, что затрудняет просмотр общей структуры, а важные небольшие клады слишком трудно увидеть. Способ обойти это — свернуть большие клады и развернуть их интерактивно.
Следующий пример демонстрирует простой пример, иллюстрирующий этот принцип:
Предупреждение. Сворачиваемые элементы Wikimedia требуют javascript и в настоящее время отключены в мобильном представлении. В таких случаях будет показана вся кладограмма. Как и в случае с любыми большими филогенетическими деревьями, редакторы должны решить, делает ли наличие меньшего, менее инклюзивного дерева более ясным то, что нужно.