pdbsuperpose

Наложите 3-D структуры двух белков

Синтаксис

pdbsuperpose(PDB1, PDB2)
Dist = pdbsuperpose(PDB1, PDB2)
[Dist, RMSD] = pdbsuperpose(PDB1, PDB2)
[Dist, RMSD, Transf] = pdbsuperpose(PDB1, PDB2)
[Dist, RMSD, Transf, PBD2TX] = pdbsuperpose(PDB1, PDB2)
... = pdbsuperpose(..., 'ModelNum', ModelNumValue, ...)
... = pdbsuperpose(..., 'Scale', ScaleValue, ...)
... = pdbsuperpose(..., 'Translate', TranslateValue, ...)
... = pdbsuperpose(..., 'Reflection', ReflectionValue, ...)
... = pdbsuperpose(..., 'SeqAlign', SeqAlignValue, ...)
... = pdbsuperpose(..., 'Segment', SegmentValue, ...)
... = pdbsuperpose(..., 'Apply', ApplyValue, ...)
... = pdbsuperpose(..., 'Display', DisplayValue, ...)

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

PDB1, PDB2

Структуры белка, представленные любым следующим:

  • Вектор символов или строка, задающая уникальный идентификатор для структуры белка, записывают в базе данных Protein Data Bank (PDB).

  • Переменная, содержащая PDB-отформатированную структуру MATLAB®, такой, как возвращено getpdb или pdbread.

  • Вектор символов или строка, задающая имя файла или, путь и имя файла. Файл, на который ссылаются, является PDB-отформатированным файлом. Если вы задаете только имя файла, тот файл должен быть на пути поиска файлов MATLAB или в Текущей папке MATLAB.

ModelNumValue

Двухэлементный числовой массив, элементы которого соответствуют моделям в PDB1 и PDB2 соответственно, когда PDB1 или PDB2 содержат многоуровневые модели. Это задает модели, чтобы рассмотреть в суперпозиции. По умолчанию первая модель в каждой структуре рассматривается.

ScaleValue

Задает, включать ли масштабирующийся компонент в линейное преобразование. Выбором является true или false (значение по умолчанию).

TranslateValue

Задает, включать ли компонент перевода в линейное преобразование. Выбором является true (значение по умолчанию) или false.

ReflectionValue

Задает, включать ли отражательный компонент в линейное преобразование. Выбор:

  • tRUE Включайте отражательный компонент.

  • ложь Исключите отражательный компонент.

  • 'best' — Значение по умолчанию. Май или не может включать отражательный компонент, в зависимости от лучшего подходящего решения.

SeqAlignValue

Задает, выполнить ли локальное выравнивание последовательности и затем использовать только фрагменты структур, соответствующих сегментам, которые выравниваются, чтобы вычислить линейное преобразование. Выбором является true (значение по умолчанию) или false.

Примечание

Если вы устанавливаете свойство 'SeqAlign' на true, можно также задать следующие свойства, используемые функцией swalign:

  • 'ScoringMatrix'

  • 'GapOpen'

  • 'ExtendGap'

Для получения дополнительной информации об этих свойствах смотрите swalign.

SegmentValue

Задает контуры и цепочку двух подпоследовательностей, чтобы рассмотреть для вычисления линейного преобразования. SegmentValue является массивом ячеек из символьных векторов со следующим форматом:

{'start1-stop1:chain1', 'start2-stop2:chain2'}

Можно не использовать контуры, чтобы указать на целую цепочку, такой как в {'chain1', 'start2-stop2:chain2'}. Можно задать только одну пару сегментов в любой момент времени, и заданные сегменты приняты, чтобы содержать то же количество альфа-атомов углерода.

ApplyValue

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

  • все Значение по умолчанию. Примените линейное преобразование к целой структуре PDB2.

  • 'chain' — Примените линейное преобразование к заданной цепочке только.

  • 'segment' — Примените линейное преобразование к заданному сегменту только.

DisplayValue

Задает, отобразить ли исходную структуру PDB1 и получившуюся преобразованную структуру PDB2TX в окне Molecule Viewer с помощью функции molviewer. Каждая структура представлена как отдельная модель. Выбором является true (значение по умолчанию) или false.

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

Dist

Значение, представляющее меру по несходству, данную суммой квадратичных невязок между PDB1 и PDB2. Для получения дополнительной информации смотрите procrustes в документации Statistics and Machine Learning Toolbox™.

RMSD

Скаляр, представляющий среднеквадратичное расстояние между координатами структуры PDB1 и преобразованной структуры PDB2, рассматривая только атомы раньше, вычислял линейное преобразование.

Transf

Линейное преобразование, вычисленное, чтобы наложить цепочку PDB2 к цепочке PDB1. Transf является структурой MATLAB со следующими полями:

  • T Ортогональное вращение и отражательный компонент.

  • b Компонент шкалы.

  • c Компонент перевода.

Примечание

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

Совет

Можно использовать Transf вывод, как введено к функции pdbtransform.

PDB2TX PDB-отформатированная структура MATLAB, которая представляет координаты в преобразованной структуре белка PDB2.

Описание

pdbsuperpose(PDB1, PDB2) вычисляет и применяет линейное преобразование, чтобы наложить координаты структуры белка, представленной в PDB2 координатам структуры белка, представленной в PDB1. PDB1 и PDB2 являются структурами белка, представленными любым следующим:

  • Вектор символов или строка, задающая уникальный идентификатор для структуры белка, записывают в базе данных PDB.

  • Переменная, содержащая PDB-отформатированную структуру MATLAB, такой, как возвращено getpdb или pdbread.

  • Вектор символов или строка, задающая имя файла или путь и имя файла. Файл, на который ссылаются, является PDB-отформатированным файлом. Если вы задаете только имя файла, тот файл должен быть на пути поиска файлов MATLAB или в Текущей папке MATLAB.

Альфа-координаты атома углерода одной цепочек для каждой структуры, как рассматривается, вычисляют линейное преобразование (перевод, отражение, ортогональное вращение, и масштабирующийся). По умолчанию первая цепочка в каждой структуре, как рассматривается, вычисляет преобразование, и преобразование применяется к целой молекуле. По умолчанию исходная структура PDB1 и получившаяся преобразованная структура PDB2 отображены как отдельные модели в окне Molecule Viewer с помощью функции molviewer.

Dist = pdbsuperpose(PDB1, PDB2) возвращает меру по несходству, данную суммой квадратичных невязок между PDB1 и PDB2. Для получения дополнительной информации смотрите procrustes.

[Dist, RMSD] = pdbsuperpose(PDB1, PDB2) также возвращает RMSD, среднеквадратичное расстояние между координатами структуры PDB1 и преобразованной структуры PDB2, полагая, что только атомы раньше вычисляли линейное преобразование.

[Dist, RMSD, Transf] = pdbsuperpose(PDB1, PDB2) также возвращает Transf, линейное преобразование, вычисленное, чтобы наложить цепочку PDB2 к цепочке PDB1. Transf является структурой MATLAB со следующими полями:

  • T Ортогональное вращение и отражательный компонент.

  • b Компонент шкалы.

  • c Компонент перевода.

Примечание

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

[Dist, RMSD, Transf, PBD2TX] = pdbsuperpose(PDB1, PDB2) также возвращает PBD2TX, PDB-отформатированная структура MATLAB, которая представляет координаты в преобразованной структуре белка PDB2.

... = pdbsuperpose(..., 'PropertyName', PropertyValue, ...) вызывает pdbsuperpose с дополнительными свойствами, которые используют имя свойства / пары значения свойства. Можно задать одно или несколько свойств в любом порядке. Каждый PropertyName должен быть заключен в одинарные кавычки и нечувствительный к регистру. Это имя свойства / пары значения свойства следующие:

... = pdbsuperpose(..., 'ModelNum', ModelNumValue, ...) задает модели, чтобы рассмотреть в суперпозиции, когда PDB1 или PDB2 содержат многоуровневые модели. ModelNumValue является двухэлементным числовым массивом, элементы которого соответствуют моделям в PDB1 и PDB2 соответственно. По умолчанию первая модель в каждой структуре рассматривается.

... = pdbsuperpose(..., 'Scale', ScaleValue, ...) задает, включать ли масштабирующийся компонент в линейное преобразование. Выбором является true или false (значение по умолчанию).

... = pdbsuperpose(..., 'Translate', TranslateValue, ...) задает, включать ли компонент перевода в линейное преобразование. Выбором является true (значение по умолчанию) или false.

... = pdbsuperpose(..., 'Reflection', ReflectionValue, ...) задает, включать ли отражательный компонент в линейное преобразование. Выбором является true (включайте отражательный компонент), false (исключают отражательный компонент), или 'best' (может или может не включать отражательный компонент, в зависимости от лучшего подходящего решения). Значением по умолчанию является 'best'.

... = pdbsuperpose(..., 'SeqAlign', SeqAlignValue, ...) задает, выполнить ли локальное выравнивание последовательности и затем использовать только фрагменты структур, соответствующих сегментам, которые выравниваются, чтобы вычислить линейное преобразование. Выбором является true (значение по умолчанию) или false.

Примечание

Если вы устанавливаете свойство 'SeqAlign' на true, можно также задать следующие свойства, используемые функцией swalign:

  • 'ScoringMatrix'

  • 'GapOpen'

  • 'ExtendGap'

Для получения дополнительной информации об этих свойствах смотрите swalign.

... = pdbsuperpose(..., 'Segment', SegmentValue, ...) задает контуры и цепочку двух подпоследовательностей, чтобы рассмотреть для вычисления линейного преобразования. SegmentValue является массивом ячеек из символьных векторов со следующим форматом: {'start1-stop1:chain1', 'start2-stop2:chain2'}. Можно не использовать контуры, чтобы указать на целую цепочку, такой как в {'chain1', 'start2-stop2:chain2'}. Можно задать только одну пару сегментов в любой момент времени, и заданные сегменты приняты, чтобы содержать то же количество альфа-атомов углерода.

... = pdbsuperpose(..., 'Apply', ApplyValue, ...) задает степень, к которой должно быть применено линейное преобразование. Выбором является 'all' (примените линейное преобразование к целой структуре PDB2), 'chain' (применяют линейное преобразование только к заданной цепочке), или 'segment' (применяют линейное преобразование только к заданному сегменту). Значением по умолчанию является 'all'.

... = pdbsuperpose(..., 'Display', DisplayValue, ...) задает, отобразить ли исходную структуру PDB1 и получившуюся преобразованную структуру PDB2TX в окне Molecule Viewer с помощью функции molviewer. Каждая структура представлена как отдельная модель. Выбором является true (значение по умолчанию) или false.

Примеры

Пример 69. Накладывание двух структур гемоглобина
  1. Используйте функцию getpdb, чтобы получить данные о структуре белка от базы данных Protein Data Bank (PDB) для двух структур гемоглобина.

    str1 = getpdb('1dke');
    str2 = getpdb('4hhb');
    
  2. Наложите первую модель двух структур гемоглобина, применив преобразование к целой молекуле.

    d = pdbsuperpose(str1, str2, 'model', [1 1], 'apply', 'all');
    
  3. Наложите две структуры гемоглобина (каждый содержащий четыре цепочки), вычислив и применив цепочку линейного преобразования цепочкой. Не отображайте структуры.

    strtx = str2;
    chainList1 = {str1.Sequence.ChainID};
    chainList2 = {str2.Sequence.ChainID};
    for i = 1:4
        [d(i), rmsd(i), tr(i), strtx] = pdbsuperpose(str1, strtx,  ...
                               'segment', {chainList1{i}; chainList2{i}}, ...
                               'apply', 'chain', 'display', false);
    end
Пример 70. Накладывание двух цепочек структуры Thioredoxin

Наложите цепочку B на цепочке thioredoxin структуры (PDBID = 2trx), и затем примените преобразование только к цепочке B.

[d, rmsd, tr] = pdbsuperpose('2trx', '2trx', 'segment', {'A', 'B'}, ...
                             'apply', 'chain')

d =

    0.0028

rmsd =

    0.6604

tr = 

    T: [3x3 double]
    b: 1
    c: [109x3 double]
Пример 71. Накладывание двух структур кальмодулина

Наложите две структуры кальмодулина согласно линейному преобразованию, полученному с помощью два 20 сегментов длиной в остаток.

pdbsuperpose('1a29', '1cll', 'segment', {'10-30:A', '10-30:A'})

ans =

    0.1945

Смотрите также

| | | | |

Представленный в R2008b