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).

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

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

ModelNumValue

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

ScaleValue

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

TranslateValue

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

ReflectionValue

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

  • true - Включить компонент отражения.

  • false - Исключить компонент отражения.

  • 'best' - По умолчанию. Может включать или не включать отражающий компонент в зависимости от наилучшего решения.

SeqAlignValue

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

Примечание

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

  • 'ScoringMatrix'

  • 'GapOpen'

  • 'ExtendGap'

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

SegmentValue

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

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

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

ApplyValue

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

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

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

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

DisplayValue

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

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

Dist

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

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.

  • Переменная, содержащая структуру MATLAB в формате PDB, например, возвращенная 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, структуру MATLAB в формате PDB, которая представляет координаты в преобразованном 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.

Примеры

Пример 55. Наложение двух структур гемоглобина
  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
Пример 56. Наложение двух цепей структуры тиоредоксина

Наложите цепь B на цепь A структуры тиоредоксина (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]
Пример 57. Наложение двух структур кальмодулина

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

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

ans =

    0.1945
Введенный в R2008b