exponenta event banner

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

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

  • Символьный вектор или строка, указывающая уникальный идентификатор для записи структуры белка в базе данных банка данных белка (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 структура в окне просмотра молекул с помощью molviewer функция. Каждая структура представлена в виде отдельной модели. Варианты: true (по умолчанию) или false.

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

Dist

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

RMSD

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

Transf

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

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

  • b - Масштабный компонент.

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

Примечание

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

Совет

Вы можете использовать Transf выходные данные в качестве входных данных для pdbtransform функция.

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

Описание

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

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

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

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

Для вычисления линейного преобразования (преобразования, отражения, ортогонального вращения и масштабирования) рассматриваются координаты альфа-атомов углерода отдельных цепей для каждой структуры. По умолчанию считается, что первая цепь в каждой структуре вычисляет преобразование, и преобразование применяется ко всей молекуле. По умолчанию оригинал PDB1 структура и полученный в результате трансформированный PDB2 структуры отображаются как отдельные модели в окне просмотра молекул с помощью 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 структура в окне просмотра молекул с помощью molviewer функция. Каждая структура представлена в виде отдельной модели. Варианты: true (по умолчанию) или false.

Примеры

Пример 55. Наложение двух гемоглобиновых структур
  1. Используйте getpdb функция извлечения данных о структуре белка из базы данных банка данных белка (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