hmmprofstruct

Создайте или отредактируйте скрытую структуру профиля модели Маркова (HMM)

Синтаксис

Model = hmmprofstruct(Length)
Model = hmmprofstruct(Length, Field1, Field1Value, Field2, Field2Value, ...)
NewModel = hmmprofstruct(Model, Field1, Field1Value, Field2, Field2Value, ...)

Входные параметры

LengthКоличество совпадающих состояний в модели.
ModelMATLAB® структура, содержащая поля для параметров профиля HMM, созданного с помощью hmmprofstruct функция.
FieldВектор символов или строка, содержащая имя поля в структуре Model. Имена полей см. в таблице ниже.
FieldValueЗначение, сопоставленное с Field. Описание приведено в таблице ниже.

Выходные аргументы

ModelСтруктура MATLAB, содержащая поля для параметров профиля HMM.

Описание

Model = hmmprofstruct(Length) возвращает Model, структуру MATLAB, содержащую поля для параметров профиля HMM. Length задает количество совпадающих состояний в модели. Все другие обязательные параметры устанавливаются на значения по умолчанию.

Model = hmmprofstruct(Length, Field1, Field1Value, Field2, Field2Value, ...) возвращает структуру профиля HMM с использованием заданных параметров. Для всех остальных обязательных параметров заданы значения по умолчанию.

NewModel = hmmprofstruct(Model, Field1, Field1Value, Field2, Field2Value, ...) возвращает обновленную структуру профиля HMM с использованием заданных параметров. Все другие параметры взяты из входа Model.

Структура профиля HMM

Структура MATLAB Model содержит следующие поля, которые являются обязательными и необязательными параметрами профиля HMM. Все значения вероятностей находятся в области значений [0 1].

Область Описание
ModelLengthЦелое число, задающее длину профиля (количество состояний MATCH).
AlphabetВектор символов или строка, задающая алфавит, используемый в модели. Варианты 'AA' (по умолчанию) или 'NT'.

Примечание

AlphaLength 20 для 'AA' и 4 для 'NT'.

MatchEmission

Вероятности излучения символов в состояниях MATCH.

Одно из следующих:

  • Матрица размера ModelLength-by- AlphaLength, где каждая строка соответствует распределению выбросов для определенного состояния MATCH. По умолчанию - равномерные распределения.

  • Структура, содержащая количество остатков, таких как возвращенные aacount или basecount.

InsertEmission

Вероятности излучения символов в состоянии INSERT.

Одно из следующих:

  • Матрица размера ModelLength-by- AlphaLength, где каждая строка соответствует распределению выбросов для определенного состояния INSERT. По умолчанию - равномерные распределения.

  • Структура, содержащая количество остатков, таких как возвращенные aacount или basecount.

NullEmission

Вероятности излучения символов в состояниях MATCH и INSERT для модели NULL.

Одно из следующих:

  • A 1-by- AlphaLength Вектор-строка. По умолчанию задается равномерное распределение.

  • Структура, содержащая количество остатков, таких как возвращенные aacount или basecount.

Примечание

Модель NULL используется, чтобы вычислить отношение логарифмических шансов в каждом состоянии и избежать переполнения при распространении вероятностей через модель.

Примечание

Вероятности NULL также известны как фоновые вероятности.

BeginX

Вероятности перехода BEGIN.

Формат: 1-by- (ModelLength + 1) Вектор-строка:

[B->D1 B->M1 B->M2 B->M3 .... B->Mend]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода из состояния BEGIN равнялась 1:

sum(Model.BeginX) = 1

Для профилей фрагментов:

sum(Model.BeginX(3:end)) = 0

По умолчанию это [0.01 0.99 0 0 ... 0].

MatchX

Вероятности перехода состояния MATCH.

Формат: 4-бай- (ModelLength - 1) матрица:

[M1->M2 M2->M3 ... M[end-1]->Mend;
 M1->I1 M2->I2 ... M[end-1]->I[end-1];
 M1->D2 M2->D3 ... M[end-1]->Dend;
 M1->E  M2->E  ... M[end-1]->E  ]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода из каждого состояния MATCH равнялась 1:

sum(Model.MatchX) = [ 1 1 ... 1 ]

Для профилей фрагментов:

sum(Model.MatchX(4,:)) = 0

По умолчанию это repmat([0.998 0.001 0.001 0],ModelLength-1,1).

InsertX

INSERT состояния вероятности перехода.

Формат: 2-бай- (ModelLength - 1) матрица:

[ I1->M2 I2->M3 ... I[end-1]->Mend;
  I1->I1 I2->I2 ... I[end-1]->I[end-1] ]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода от каждого состояния INSERT равнялась 1:

sum(Model.InsertX) = [ 1 1 ... 1 ]

По умолчанию это repmat([0.5 0.5],ModelLength-1,1).

DeleteX

Вероятность перехода DELETE.

Формат: 2-бай- (ModelLength - 1) матрица:

[ D1->M2 D2->M3 ... D[end-1]->Mend ;
  D1->D2 D2->D3 ... D[end-1]->Dend ]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода из каждого состояния DELETE равнялась 1:

sum(Model.DeleteX) = [ 1 1 ... 1 ]

По умолчанию это repmat([0.5 0.5],ModelLength-1,1).

FlankingInsertX

Состояния фланцевой вставки (N и C), используемые для выравнивания профиля LOCAL.

Формат является матрицей 2 на 2:

[N->B  C->T ;
 N->N  C->C]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода от состояний Flanking Insert равнялась 1:

sum(Model.FlankingInsertsX) = [1 1]

Примечание

Чтобы принудительно выполнить глобальное выравнивание, используйте:

Model.FlankingInsertsX = [1 1; 0 0]

По умолчанию это [0.01 0.01; 0.99 0.99].

LoopX

Переходные вероятности состояний цикла, используемые для выравнивания нескольких ударов.

Формат является матрицей 2 на 2:

[E->C  J->B ;
 E->J  J->J]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода из состояний Цикла равнялась 1:

sum(Model.LoopX) = [1 1] 

По умолчанию это [0.5 0.01; 0.5 0.99].

NullX

Пустые вероятности перехода, используемые для обеспечения счетов со значениями логарифмических шансов, также для переходов состояния.

Формат представляет собой вектор-столбец 2 на 1:

[G->F ; G->G]

Примечание

При необходимости, hmmprofstruct нормализует данные таким образом, чтобы сумма вероятностей перехода из состояний Нуля равнялась 1:

sum(Model.NullX) = 1

По умолчанию это [0.01; 0.99].

IDNumberНеобязательно. Присвоенный пользователем идентификационный номер.
DescriptionНеобязательно. Присвоенное пользователем описание модели.

Модель профиля HMM

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

Следующий рисунок является диаграммой состояний для профиля HMM длины четыре. Состояния INSERT, MATCH и DELETE находятся в центральном разделе.

  • Состояние INSERT представляет избыток одного или нескольких символов в целевой последовательности, которые не включены в профиль.

  • Состояние MATCH означает, что целевая последовательность выровнена по профилю в определенном месте.

  • Состояние DELETE представляет погрешность или отсутствие символов в целевой последовательности (также известной как состояние молчания, поскольку оно не излучает никаких символов).

Фланкирующие состояния (S, N, B, E, C, T) используются для правильного моделирования концов последовательности, для глобального, локального или фрагментного выравнивания профиля. S, B, E, и T молчат, в то время как N и C используются для вставки обозначений на боковые стороны.

Примеры

Пример 36. Создание структуры профиля HMM

Создайте структуру профиля HMM с 100 состояниями MATCH, используя алфавит аминокислоты.

hmmProfile = hmmprofstruct(100,'Alphabet','AA')

hmmProfile = 

        ModelLength: 100
           Alphabet: 'AA'
      MatchEmission: [100x20 double]
     InsertEmission: [100x20 double]
       NullEmission: [1x20 double]
             BeginX: [101x1 double]
             MatchX: [99x4 double]
            InsertX: [99x2 double]
            DeleteX: [99x2 double]
    FlankingInsertX: [2x2 double]
              LoopX: [2x2 double]
              NullX: [2x1 double]
Пример 37. Редактирование структуры профиля HMM
  1. Используйте pfamhmmread функция для создания структуры профиля HMM из pf00002.ls, файл в формате HMM PFAM, входящий в состав программного обеспечения.

    hmm02 = pfamhmmread('pf00002.ls');
  2. Измените структуру профиля HMM, чтобы принудительно создать глобальное выравнивание путем установки нулевого нуля вероятностей циклического перехода в состояниях фланцевой вставки.

    hmm02 = hmmprofstruct(hmm02,'FlankingInsertX',[0 0;1 1]);
    hmm02.FlankingInsertX
    
    ans =
    
         0     0
         1     1
Представлено до R2006a