biograph object

Структура данных, содержащая родовые взаимосвязанные данные, используемые для реализации ориентированного графа

Описание

Объект биографика является структурой данных, содержащей родовые взаимосвязанные данные, используемые для реализации ориентированного графа. Узлы представляют белки, гены или любую другую биологическую сущность, и ребра представляют взаимодействия, зависимости или любые другие отношения между узлами. Объект биографика также хранит информацию, такую как свойства цвета и характеристики текстовой метки, используемую для создания 2-D визуализации графика.

Вы создаете объект биографика, используя функцию конструктора объектов biograph. Вы можете просмотреть графическое представление объекта биографика, используя view способ.

Сводные данные по методам

Ниже приведены методы объекта биографика:

allshortestpaths (biograph)Найдите все кратчайшие пути в объекте биографика
conncomp (biograph)Найдите сильно или слабо связанные компоненты в объекте биографика
dolayout (biograph)Вычислите положения узлов и траектории ребер
get (biograph)Получение информации об объекте биографика
getancestors (biograph)Найдите предков узла в объекте биографика
getdescendants (biograph)Найдите потомки узла в объекте биографика
getedgesbynodeid (biograph)Получите указатели на ребра в объекте биографика
getmatrix (biograph)Получите матрицу соединения из объекта биографика
getnodesbyid (biograph)Получите указатели на узлы
getrelatives (biograph)Найти родственников узла в объекте биографика
getweightmatrix (biograph)Получите матрицу связи с весами от объекта биографика
isdag (biograph)Тест на циклы в объекте биографика
isomorphism (biograph)Найдите изоморфизм между двумя объектами биографика
isspantree (biograph)Определите, является ли дерево, созданное из объекта биографика, покрывающим деревом
maxflow (biograph)Вычислите максимальный поток в объекте биографика
minspantree (biograph)Нахождение минимального покрывающего дерева в объекте биографика
set (biograph)Установите свойство объекта биографика
shortestpath (biograph)Решите задачу кратчайшего пути в объекте биографика
topoorder (biograph)Выполните топологический вид ориентированного ациклического графика, извлеченного из объекта биографика
traverse (biograph)Биографик Траверса путем следования за смежными узлами
view (biograph)Рисунок из объекта биографика

Ниже приведены методы объекта узла:

getancestors (biograph)Найдите предков узла в объекте биографика
getdescendants (biograph)Найдите потомки узла в объекте биографика
getrelatives (biograph)Найти родственников узла в объекте биографика

Сводные данные свойств

Объект биографика содержит два вида объектов, объекты узлов и объекты ребер, которые имеют свои собственные свойства. Список свойств объектов узлов и объектов ребер см. в следующих таблицах.

Свойства объекта биографика

СвойствоОписание
ID Вектор символов для идентификации объекта биографика. По умолчанию это ''.
LabelВектор символов для маркировки объекта биографика. По умолчанию это ''.
DescriptionВектор символов, который описывает объект биографика. По умолчанию это ''.
LayoutType

Вектор символов, который задает алгоритм для механизма размещения. Варианты:

  • 'hierarchical' (по умолчанию) - использует топологический порядок графика для присвоения уровней, а затем размещает узлы сверху вниз, минимизируя при этом пересекающиеся ребра.

  • 'radial' - Использует топологический порядок графика, чтобы присвоить уровни, а затем размещает узлы изнутри за пределами круга, минимизируя при этом пересекающиеся ребра.

  • 'equilibrium' - Вычисляет размещение путем минимизации энергии в динамической системе пружин.

EdgeType

Вектор символов, задающий отображение ребер. Варианты:

  • 'straight'

  • 'curved' (по умолчанию)

  • 'segmented'

Примечание

Изогнутые или сегментированные ребра возникают только при необходимости, чтобы избежать обструкции узлами. Биографики с LayoutType равно 'equilibrium' или 'radial' невозможно создать изогнутые или сегментированные ребра.

Scale Положительное число, которое после масштабирования координат узла. По умолчанию это 1.
LayoutScaleПоложительное число, которое масштабирует размер узлов перед вызовом размещения двигателя. По умолчанию это 1.
EdgeTextColorТрехэлементный числовой вектор значений RGB. По умолчанию это [0, 0, 0], который задает черный.
EdgeFontSizeПоложительное число, устанавливающее размер краевого шрифта в точках. По умолчанию это 8.
ShowArrowsУправление отображением стрел с ребрами. Варианты 'on' (по умолчанию) или 'off'.
ArrowSizeПоложительное число, которое устанавливает размер стрел в точках. По умолчанию это 8.
ShowWeightsУправление отображением текста, указывающего вес ребер. Варианты 'on' или 'off' (по умолчанию).
ShowTextInNodes

Вектор символов символов, который задает свойство узла, используемое для маркировки узлов, когда вы отображаете объект биографика, используя view способ. Варианты:

  • 'Label' - Использует Label свойство объекта узла (по умолчанию).

  • 'ID' - Использует ID свойство объекта узла.

  • 'None'

NodeAutoSize

Управление предварительным вычислением размера узла перед вызовом механизма размещения. Варианты 'on' (по умолчанию) или 'off'.

Примечание

Установите значение off если вы хотите применить различные размеры узлов путем изменения Size свойство.

NodeCallbackПользовательский коллбэк для всех узлов. Введите имя функции, указателя на функцию или массива ячеек с несколькими указателями на функцию. После использования view для отображения объекта биографика в Biograph Viewer можно дважды щелкнуть узел, чтобы активировать первый коллбэк, или щелкнуть правой кнопкой мыши и выбрать коллбэк для активации. По умолчанию это анонимная функция, @(node) inspect(node), в котором отображается диалоговое окно Property Inspector.
EdgeCallbackПользовательский коллбэк для всех ребер. Введите имя функции, указателя на функцию или массива ячеек с несколькими указателями на функцию. После использования view для отображения объекта биографика в Biograph Viewer можно щелкнуть правой кнопкой мыши и выбрать коллбэк для активации. По умолчанию это анонимная функция, @(edge) inspect(edge), в котором отображается диалоговое окно Property Inspector.
CustomNodeDrawFcnУказатель на функцию настраиваемой функции для рисования узлов. По умолчанию это [].
NodesДоступная только для чтения вектор-столбец с указателями на объекты узлов объекта биографика. Размер вектора следующее число узлов. Свойства объектов узла см. в разделе «Свойства объекта узла».
EdgesДоступные только для чтения векторы-столбцы с указателями на объекты кромок биографика объекта. Размер вектора - это количество ребер. Свойства объектов ребра см. в разделе «Свойства объекта ребра».

Свойства объекта узла

СвойствоОписание
IDВектор символов, заданный при создании объекта биографика, либо NodeIDs входной параметр или внутренне biograph функция конструктора. Вы можете изменить это свойство, используя set метод, но каждый объект узла ID должен быть уникальным.
LabelВектор символов для маркировки узла, когда вы отображаете объект биографика, используя view способ. По умолчанию это ''.
DescriptionВектор символов, который описывает узел. По умолчанию это ''.
PositionДвухэлементный числовой вектор x- и y-координаты, например [150, 150]. Если вы не задаете это свойство, значение по умолчанию первоначально [], затем, когда алгоритмы размещения выполняются, это становится двухэлементным числовым вектором x- и y-координаты, вычисляемые механизмом размещения.
Shape

Вектор символов, который задает форму узлов. Варианты:

  • 'box'(по умолчанию)

  • 'ellipse'

  • 'circle'

  • 'rect' или 'rectangle'

  • 'diamond'

  • 'trapezium'

  • 'invtrapezium'

  • 'house'

  • 'invhouse'

  • 'parallelogram'

Size Двухэлементный числовой вектор, вычисленный перед вызовом механизма размещения с помощью фактических размера и формы шрифта узла. По умолчанию это [10, 10].
Color Трехэлементный числовой вектор значений RGB, который задает цвет заливки узла. По умолчанию это [1, 1, 0.7], который задает желтый цвет.
LineWidth Положительное число. По умолчанию это 1.
LineColor Трехэлементный числовой вектор значений RGB, который задает цвет контура узла. По умолчанию это [0.3, 0.3, 1], который задает синий.
FontSize Положительное число, устанавливающее размер шрифта узла в точках. По умолчанию это 8.
TextColor Трехэлементный числовой вектор значений RGB, который задает цвет меток узла. По умолчанию это [0, 0, 0], который задает черный.
UserDataРазличные пользовательские данные, которые необходимо связать с узлом. Узел не использует это свойство, но вы можете получить доступ и указать его используя get и set функций. По умолчанию это [].

Свойства пограничного объекта

СвойствоОписание
ID Вектор символов, автоматически сгенерированный из узла IDs, когда объект биографика создается biograph функция конструктора. Вы можете изменить это свойство, используя set метод, но каждый краевой объект ID должен быть уникальным.
Label Вектор символов для маркировки ребра. По умолчанию это ''.
Description Вектор символов, который описывает ребро. По умолчанию это ''.
WeightЗначение, которое представляет вес (стоимость, расстояние, длину или емкость), сопоставленный с ребром. По умолчанию это 1.
LineWidth Положительное число. По умолчанию это 0.5.
LineColor Трехэлементный числовой вектор значений RGB, который задает цвет ребра. По умолчанию это [0.5, 0.5, 0.5], который определяет серый цвет.
UserDataРазличные пользовательские данные, которые необходимо связать с ребром. Ребро не использует это свойство, но вы можете получить доступ и указать его используя get и set функций. По умолчанию это [].

Примеры

свернуть все

В этом примере показано, как создать объект биографика, получить доступ и обновить его свойства.

Создайте объект биографика с пользовательскими идентификаторами узла.

cm = [0 1 1 0 0;1 0 0 1 1;1 0 0 0 0;0 0 0 0 1;1 0 1 0 0];
ids = {'M30931','L07625','K03454','M27323','M15390'};
bg1 = biograph(cm,ids)
Biograph object with 5 nodes and 9 edges.

Задайте ID свойство объекта.

bg1.ID = 'mybg';

Используйте get функция для отображения идентификаторов узла.

get(bg1.nodes,'ID')
ans = 5x1 cell
    {'M30931'}
    {'L07625'}
    {'K03454'}
    {'M27323'}
    {'M15390'}

Отображение всех свойств и их текущих значений 5-го узла и 5-ого ребра объекта.

bg1.nodes(5)
             ID: 'M15390'
          Label: ''
    Description: ''
       Position: []
          Shape: 'box'
           Size: [10 10]
          Color: [1 1 0.7000]
      LineWidth: 1
      LineColor: [0.3000 0.3000 1]
       FontSize: 9
      TextColor: [0 0 0]
       UserData: []
bg1.edges(5)
             ID: 'L07625 -> M15390'
          Label: ''
    Description: ''
         Weight: 1
      LineWidth: 0.5000
      LineColor: [0.5000 0.5000 0.5000]
       UserData: []

Установите LineWidth свойство 5-го узла для 2.

bg1.nodes(5).LineWidth = 2.0;
bg1.nodes(5)
             ID: 'M15390'
          Label: ''
    Description: ''
       Position: []
          Shape: 'box'
           Size: [10 10]
          Color: [1 1 0.7000]
      LineWidth: 2
      LineColor: [0.3000 0.3000 1]
       FontSize: 9
      TextColor: [0 0 0]
       UserData: []

Также используйте getnodesbyid функция для создания указателя для 5-го узла и установки его Shape свойство для 'circle'.

nh1 = getnodesbyid(bg1,'M15390')
             ID: 'M15390'
          Label: ''
    Description: ''
       Position: []
          Shape: 'box'
           Size: [10 10]
          Color: [1 1 0.7000]
      LineWidth: 2
      LineColor: [0.3000 0.3000 1]
       FontSize: 9
      TextColor: [0 0 0]
       UserData: []
nh1.Shape = 'circle';

Задайте LineColor свойство 5-ого ребра.

bg1.edges(5).LineColor = [0.7 0.0 0.1];

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

eh1 = getedgesbynodeid(bg1,'L07625','M15390')
             ID: 'L07625 -> M15390'
          Label: ''
    Description: ''
         Weight: 1
      LineWidth: 0.5000
      LineColor: [0.7000 0 0.1000]
       UserData: []

Используйте указатель для задания LineWidth свойство или любые другие свойства ребра.

eh1.LineWidth = 2.0;

Просмотрите объект биографика.

view(bg1)

Figure Biograph Viewer 1 contains an axes. The axes contains 28 objects of type line, patch, text.

Введенный в R2006b