msalign

Выравнивание peaks в сигнале к опорному peaks

Синтаксис

IntensitiesOut = msalign(X, Intensities, RefX)
... = msalign(..., 'Rescaling', RescalingValue, ...)
... = msalign(..., 'Weights', WeightsValue, ...)
... = msalign(..., 'MaxShift', MaxShiftValue, ...)
... = msalign(..., 'WidthOfPulses', WidthOfPulsesValue, ...)
... = msalign(..., 'WindowSizeRatio', WindowSizeRatioValue, ...)
... = msalign(..., 'Iterations', IterationsValue, ...)
... = msalign(..., 'GridSteps', GridStepsValue, ...)
... = msalign(..., 'SearchSpace', SearchSpaceValue, ...)
... = msalign(..., 'ShowPlot', ShowPlotValue, ...)
[IntensitiesOut, RefXOut] = msalign(..., 'Group', GroupValue, ...)

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

X Вектор значений единиц разделения для набора сигналов с peaks. Количество элементов в векторе равняется количеству строк в матрице Intensities. Модуль разделения может количественно определить длину волны, частоту, расстояние, время или m/z в зависимости от прибора, который генерирует данные сигнала.
Intensities Матрица значений интенсивности для набора пиков, которые имеют одну и ту же область значений единиц разделения. Каждая строка соответствует значению единицы разделения, и каждый столбец соответствует либо набору сигналов с peaks, либо времени удержания. Количество строк равняется количеству элементов в векторе X.
RefXВектор значений в единицах разделения известных эталонных масс в сигнале дискретизации.

Совет

Для эталонного peaks выберите соединения, которые, как ожидается, не будут иметь значительных сдвигов среди различных сигналов. Например, в масс-спектрометрии выбирают соединения, которые не подвергаются структурному преобразованию, такие как фосфорилирование. Это увеличивает точность выравнивания и позволяет вам обнаружить соединения, которые показывают структурные преобразования среди сигнала выборки.

RescalingValueУправляет перемасштабированием X. Варианты true (по умолчанию) или false. Когда falseсигнал выхода выравнивается только к ссылке peaks с помощью постоянных сдвигов. По умолчанию msalign оценивает коэффициент преобразования, если только RefX содержит только один эталонный пик.
WeightsValueВектор положительных значений с таким же количеством элементов, как и RefX. Вектор по умолчанию является таковыми (size (RefX)).
MaxShiftValueДвухэлементный вектор, в котором первый элемент отрицателен, а второй элемент положителен, который задает нижний и верхний пределы области значений в единицах разделения относительно каждого пика. Никаких пиковых сдвигов за эти пределы. По умолчанию это [-100 100].
WidthOfPulsesValueПоложительное значение, которое задает ширину в единицах разделения для всех Гауссовых импульсов, используемых для построения коррелирующего синтетического сигнала. Точка пика, где Гауссов импульс достигает 60.65% от его максимума устанавливается в ширину, заданную WidthOfPulsesValue. По умолчанию это 10.
WindowSizeRatioValueПоложительное значение, которое задает коэффициент масштабирования, который определяет размер окна вокруг каждого пика выравнивания. Синтетический сигнал сравнивается с входным сигналом только в этих областях, что экономит время расчета. Размер окна задается в единицах разделения WidthOfPulsesValue * WindowSizeRatioValue. По умолчанию это 2.5, что означает в пределах окна, Гауссовы импульсы имеют значение 4.39% от их максимума.
IterationsValueПоложительное целое число, которое задает количество итераций уточнения. На каждой итерации сетка поиска масштабируется для улучшения оценок. По умолчанию это 5.
GridStepsValueПоложительное целое число, которое задает количество шагов для сетки поиска. При каждой итерации область поиска делится на GridStepsValue^2. По умолчанию это 20.
SearchSpaceValue

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

  • 'regular' - По умолчанию. Равномерно расположенная решетка.

  • 'latin' - Случайный латинский гиперкуб с GridStepsValue^2 выборки.

ShowPlotValueУправляет отображением графика исходного и выровненного сигнала над эталонными массами, заданными RefX. Варианты true, false, или I, целое число, задающее индекс сигнала в Intensities. Если установлено значение true, первый сигнал в Intensities нанесен на график. По умолчанию это:
  • false - Когда заданы возвращаемые значения.

  • true - Когда значения возврата не заданы.

GroupValueУправляет созданием RefXOut, новый вектор значений единиц разделения, которые будут использоваться в качестве базовых масс для выравнивания peaks. Этот вектор создается путем корректировки значений в RefX, на основе выборочных данных из нескольких сигналов в Intensities, таким образом, общая перемена и масштабирование peaks сведено к минимуму. Варианты true или false (по умолчанию).

Совет

Задайте GroupValue на true только если Intensities содержит данные для большого количества сигналов, и вы не уверены в значениях единиц разделения, используемых для вашей ссылки peaks в RefX. Оставьте GroupValue установлено на false если вы уверены в значениях единиц разделения, используемых для эталонных достигать максимума в RefX.

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

IntensitiesOut

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

RefXOutВектор значений единиц разделения ссылки масс, вычисленных из RefX и выборочные данные из нескольких сигналов в Intensities, когда вы задаете GroupValue на true.

Описание

Совет

Используйте следующие синтаксисы с данными любого метода разделения, который производит сигнальные данные, такие как спектроскопия, ЯМР, электрофорез, хроматография или масс-спектрометрия.

IntensitiesOut = msalign(X, Intensities, RefX) выравнивает пики в необработанных, шумных сигнальных данных, представленных Intensities и X, для ссылок на peaks, предоставляемые RefX. Во-первых, он создает синтетический сигнал от опорного peaks, используя Гауссовы импульсы с центром в значениях единиц разделения, заданных RefX. Затем он смещает и масштабирует шкалу блока разделения, чтобы найти максимальное выравнивание между входными сигналами и синтетическим сигналом. (Он использует итерационный поиск сетки мультиразрешения, пока не найдет лучшие шкалы и сдвига для каждого сигнала.) После определения новой шкалы единиц разделения исправленные сигналы создаются путем повторной дискретизации их интенсивности при исходных значениях единиц разделения, создания IntensitiesOut, вектор или матрица скорректированных значений интенсивности. Способ повторной дискретизации сохраняет форму peaks.

Совет

The msalign функция лучше всего работает с тремя-пятью эталонными peaks, которые, как вы знаете, появятся в сигнале. Если вы используете один эталонный пик (внутренний стандарт), существует вероятность выравнивания peaks выборок к неправильным эталонным достигать максимума как msalign и шкалы, и сдвиги X вектор. Если используется один опорный пик, вам может потребоваться только сдвинуть X вектор. Для этого используйте IntensitiesOut = interp1 (X, Intensities, X- (ReferencePeak- ExperimentalPeak)).

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

... = msalign(..., 'Rescaling', RescalingValue, ...) управляет перемасштабированием X. Варианты true (по умолчанию) или false. Когда falseсигнал выхода выравнивается только к ссылке peaks с помощью постоянных сдвигов. По умолчанию msalign оценивает коэффициент преобразования, если только RefX содержит только один эталонный пик.

... = msalign(..., 'Weights', WeightsValue, ...) задает относительный вес для каждой массы в RefX, вектор ссылочных значений единиц разделения. WeightsValue является вектором положительных значений с таким же количеством элементов, как RefX. Вектор по умолчанию является таковыми (size (RefX)), что означает, что каждый эталонный пик взвешивается одинаково, так что более интенсивный эталонный peaks имеют больший эффект в алгоритме выравнивания. Если у вас менее интенсивный эталонный пик, можно увеличить его вес, чтобы подчеркнуть его больше в алгоритме выравнивания.

... = msalign(..., 'MaxShift', MaxShiftValue, ...) задает нижний и верхний пределы области значений в единицах разделения относительно каждого пика. Никаких пиковых сдвигов за эти пределы. MaxShiftValue является двухэлементным вектором, в котором первый элемент отрицателен, а второй элемент положителен. По умолчанию это [-100 100].

Примечание

Используйте эти значения, чтобы настроить робастность алгоритма. В идеале следует держать область значений в пределах максимального ожидаемого сдвига. Если вы пытаетесь исправить большие сдвиги путем увеличения пределов, вы увеличиваете возможность выбора неправильного peaks для выравнивания по ссылочным массам.

... = msalign(..., 'WidthOfPulses', WidthOfPulsesValue, ...) задает ширину в единицах разделения для всех Гауссовых импульсов, используемых для построения коррелирующего синтетического сигнала. Точка пика, где Гауссов импульс достигает 60.65% от его максимума задается ширина, заданная с помощью WidthOfPulsesValue. Выбор является любым положительным значением. По умолчанию это 10. WidthOfPulsesValue может также быть указателем на функцию. Функция оценивается по соответствующим значениям единиц разделения и возвращает переменную ширину для импульсов. Ее оценка должна дать разумные значения от 0 на max(abs(Range)); в противном случае функция возвращает ошибку.

Примечание

Настройка распространения Гауссовых импульсов управляет компромиссом между робастностью (более широкие импульсы) и точностью (более узкие импульсы). Однако распространение импульсов не связано с формой наблюдаемого peaks в сигнале. Цель импульсного спреда состоит в том, чтобы управлять алгоритмом оптимизации.

... = msalign(..., 'WindowSizeRatio', WindowSizeRatioValue, ...) задает коэффициент масштабирования, который определяет размер окна вокруг каждого пика выравнивания. Синтетический сигнал сравнивается с выборочным сигналом только в этих областях, что экономит время расчета. Размер окна задается в единицах разделения WidthOfPulsesValue * WindowSizeRatioValue. Выбор является любым положительным значением. По умолчанию это 2.5, что означает в пределах окна, Гауссовы импульсы имеют значение 4.39% от их максимума.

... = msalign(..., 'Iterations', IterationsValue, ...) задает количество итераций уточнения. На каждой итерации сетка поиска масштабируется для улучшения оценок. Варианты являются любым положительным целым числом. По умолчанию это 5.

... = msalign(..., 'GridSteps', GridStepsValue, ...) задает количество шагов для сетки поиска. При каждой итерации область поиска делится на GridStepsValue^2. Варианты являются любым положительным целым числом. По умолчанию это 20.

... = msalign(..., 'SearchSpace', SearchSpaceValue, ...) задает тип пространства поиска. Варианты:

  • 'regular' - По умолчанию. Равномерно расположенная решетка.

  • 'latin' - Случайный латинский гиперкуб с GridStepsValue^ 2 выборки.

... = msalign(..., 'ShowPlot', ShowPlotValue, ...) управляет отображением графика исходного и выровненного сигнала над эталонными массами, заданными RefX. Варианты true, false, или I, целое число, задающее индекс сигнала в Intensities. Если установлено значение true, первый сигнал в Intensities нанесен на график. По умолчанию это:

  • false - Когда заданы возвращаемые значения.

  • true - Когда значения возврата не заданы.

[IntensitiesOut, RefXOut] = msalign(..., 'Group', GroupValue, ...) управляет созданием RefXOut, новый вектор значений единиц разделения для использования в качестве базовых масс для выравнивания peaks. Этот вектор создается путем корректировки значений в RefX, на основе выборочных данных из нескольких сигналов в Intensities, таким образом, общая перемена и масштабирование peaks сведено к минимуму. Варианты true или false (по умолчанию).

Совет

Задайте GroupValue на true только если Intensities содержит данные для большого количества сигналов, и вы не уверены в значениях единиц разделения, используемых для вашей ссылки peaks в RefX. Оставьте GroupValue установлено на false если вы уверены в значениях единиц разделения, используемых для эталонных достигать максимума в RefX.

Примеры

Пример 44. Выравнивание формообразующего Спектра с тремя или более Ссылок Peaks
  1. Загрузите MAT-файл, включенный в программное обеспечение Bioinformatics Toolbox™, который содержит выборочные данные, эталонные массы и данные о параметрах для синтетической пиковой ширины.

    load sample_lo_res
    R = [3991.4 4598 7964 9160];
    W = [60 100 60 100];
  2. Отображение цветного изображения массовых спектров перед выравниванием.

    msheatmap(MZ_lo_res,Y_lo_res,'markers',R,'range',[3000 10000])
    title('before alignment')

  3. Выравнивание спектров по эталонным массам и отображение цветного изображения масс-спектров после выравнивания.

    YA = msalign(MZ_lo_res,Y_lo_res,R,'weights',W);
    msheatmap(MZ_lo_res,YA,'markers',R,'range',[3000 10000])
    title('after alignment')

Пример 45. Выравнивание массового Спектра с одной Ссылкой пиком

Не рекомендуется использовать msalign функция, если у вас есть только один эталонный пик. Вместо этого используйте следующую процедуру, которая сдвигает X входной вектор, но не масштабирует его.

  1. Загрузите выборочные данные и просмотрите первый спектр выборки.

    load sample_lo_res
    MZ = MZ_lo_res;
    Y = Y_lo_res(:,1);
    msviewer(MZ, Y)

  2. Используйте высокий пик около 4000 м/z в качестве ссылки пика. Чтобы определить значение m/z опорного пика, щелкните, а затем щелкните, удерживая мышью, чтобы увеличить пик. Щелкните правой кнопкой мыши по центру пика и затем щелкните Add Marker, чтобы пометить пик со значением m/z.


  3. Сдвиньте спектр на различие между RP, известную контрольную массу 4000 м/z и SP, экспериментальная масса 4051,14 м/з.

    RP = 4000;
    SP = 4051.14;
    YOut = interp1(MZ, Y, MZ-(RP-SP));
  4. Постройте график исходного спектра в красном цвете и сдвиньте спектр в синем цвете и увеличьте изображение на ссылку пике.

    plot(MZ,Y,'r',MZ,YOut,'b:')
    xlabel('Mass/Charge (M/Z)')
    ylabel('Relative Intensity')
    legend('Y','YOut')
    axis([3600 4800 -2 60])

Ссылки

[1] Monchamp, P., Andrade-Cetto, L., Zhang, J.Y., and Henson, R. (2007) Signal Processing Methods for Mass Spectrometry. В Systems Bioinformatics: Инженерный кейс-основанный подход, G. Alterovitz и M.F. Ramoni, eds. (Artech House Publishers).

Представлено до R2006a