Telegram Group & Telegram Channel
UpSet плоты в R для визуализации пересечений списков

Сегодня разберемся, что это такое, как их строить и в каких случаях они нужны.
UpSet плоты - это остроумная альтернатива диаграммам Венна для большого числа пересечений.
Диаграммы Венна отражают все возможные пересечения, объединения, разности нескольких списков. Если этих множеств не больше пяти, то такие диаграммы позволяют визуально оценить взаимоотношения списков. Однако, диаграммы Венна плохо масштабируются, и в ситуации, когда надо показать больше 5 списков или множеств, неприменимы.

Для визуализации большого количества пересечений Lex с соавторами предложили концепцию UpSet плота [Lex et al., 2014]. Сейчас есть R-пакеты UpSetR и ComplexUpset в репозитории CRAN, есть реализации на Python, например py-upset, UpSetPlot.

Начнем разбор с R-пакета UpSetR. Для отрисовки графиков есть вариант вбить руками количество элементов в списках и прописать все пересечения и количество элементов в них, но очевидно, что это не оптимальный вариант (называется fromExpression()). Намного функциональнее подать на вход список интересующих векторов и использовать функцию fromList(). Эта функция создает матрицу пересечений списков, которая и используется для отрисовки upset-графика. Функция upset() позволяет настроить порядок отображения списков, выбрать только определенные пересечения и выбрать, отображать ли пустые множества. Библиотека опирается только на базовый R, дополнительные библиотеки не нужны. Это как плюс, так и минус, к тому же репозиторий пакета давно не обновлялся, и поэтому сейчас можно использовать более новый пакет ComplexUpset.

Пакет ComplexUpset представляет надстройку над пакетом UpSetR с использованием фишек пакета ComplexHeatmap и ggplot2. Вот здесь разобрано, как работает пакет, возможности кастомизации графиков в нем более гибкие, чем в старом пакете, к тому же интеграция с ggplot2, на мой взгляд, скорее преимущество, чем недостаток. Например, можно сопровождать график боксплотом, подкрашивать уровни пересечения (например, пересечения двух списков обозначить зеленым, трех списков - синим и так далее), выделять цветом наиболее интересные пересечения списков. Еще этот пакет можно использовать в Python, почитать подробнее можно здесь.

Резюмируя - UpSet плоты - это отличный вариант визуализации пересечений множества групп, который часто встречается в биоинформатических статьях.
В следующем посте прикрепляю примеры графиков upset и сравнение с диаграммами Венна.

#R #data_vis



group-telegram.com/stats_for_science/61
Create:
Last Update:

UpSet плоты в R для визуализации пересечений списков

Сегодня разберемся, что это такое, как их строить и в каких случаях они нужны.
UpSet плоты - это остроумная альтернатива диаграммам Венна для большого числа пересечений.
Диаграммы Венна отражают все возможные пересечения, объединения, разности нескольких списков. Если этих множеств не больше пяти, то такие диаграммы позволяют визуально оценить взаимоотношения списков. Однако, диаграммы Венна плохо масштабируются, и в ситуации, когда надо показать больше 5 списков или множеств, неприменимы.

Для визуализации большого количества пересечений Lex с соавторами предложили концепцию UpSet плота [Lex et al., 2014]. Сейчас есть R-пакеты UpSetR и ComplexUpset в репозитории CRAN, есть реализации на Python, например py-upset, UpSetPlot.

Начнем разбор с R-пакета UpSetR. Для отрисовки графиков есть вариант вбить руками количество элементов в списках и прописать все пересечения и количество элементов в них, но очевидно, что это не оптимальный вариант (называется fromExpression()). Намного функциональнее подать на вход список интересующих векторов и использовать функцию fromList(). Эта функция создает матрицу пересечений списков, которая и используется для отрисовки upset-графика. Функция upset() позволяет настроить порядок отображения списков, выбрать только определенные пересечения и выбрать, отображать ли пустые множества. Библиотека опирается только на базовый R, дополнительные библиотеки не нужны. Это как плюс, так и минус, к тому же репозиторий пакета давно не обновлялся, и поэтому сейчас можно использовать более новый пакет ComplexUpset.

Пакет ComplexUpset представляет надстройку над пакетом UpSetR с использованием фишек пакета ComplexHeatmap и ggplot2. Вот здесь разобрано, как работает пакет, возможности кастомизации графиков в нем более гибкие, чем в старом пакете, к тому же интеграция с ggplot2, на мой взгляд, скорее преимущество, чем недостаток. Например, можно сопровождать график боксплотом, подкрашивать уровни пересечения (например, пересечения двух списков обозначить зеленым, трех списков - синим и так далее), выделять цветом наиболее интересные пересечения списков. Еще этот пакет можно использовать в Python, почитать подробнее можно здесь.

Резюмируя - UpSet плоты - это отличный вариант визуализации пересечений множества групп, который часто встречается в биоинформатических статьях.
В следующем посте прикрепляю примеры графиков upset и сравнение с диаграммами Венна.

#R #data_vis

BY Статистика и R в науке и аналитике




Share with your friend now:
group-telegram.com/stats_for_science/61

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

"Your messages about the movement of the enemy through the official chatbot … bring new trophies every day," the government agency tweeted. Now safely in France with his spouse and three of his children, Kliuchnikov scrolls through Telegram to learn about the devastation happening in his home country. In 2018, Russia banned Telegram although it reversed the prohibition two years later. Official government accounts have also spread fake fact checks. An official Twitter account for the Russia diplomatic mission in Geneva shared a fake debunking video claiming without evidence that "Western and Ukrainian media are creating thousands of fake news on Russia every day." The video, which has amassed almost 30,000 views, offered a "how-to" spot misinformation. NEWS
from us


Telegram Статистика и R в науке и аналитике
FROM American