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, который совместно использует ту же область значений разделительного модуля. Каждая строка соответствует разделительной стоимости единицы, и каждый столбец соответствует или набору сигналов с peaks или время задержания. Количество строк равняется числу элементов в векторном X.
RefXВектор разделительных стоимостей единицы известных ссылочных масс в демонстрационном сигнале.

Совет

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

RescalingValueУправляет перемасштабированием X. Выбором является true (значение по умолчанию) или false. Когда false, выходной сигнал выравнивается только к ссылочному peaks при помощи постоянных сдвигов. По умолчанию msalign оценивает повторно масштабирующийся фактор, если RefX не содержит только один ссылочный пик.
WeightsValueВектор положительных значений, с тем же числом элементов как RefX. Вектором по умолчанию является ones(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 построен. Значение по умолчанию:
  • ложь Когда возвращаемые значения заданы.

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

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

Совет

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

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

IntensitiesOut

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

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

Описание

Совет

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

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

Совет

Функция msalign работает лучше всего с тремя - пятью ссылочными peaks, которые вы знаете, появится в сигнале. Если вы используете один ссылочный пик (внутренний стандарт), существует возможность выравнивания демонстрационного 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. Вектором по умолчанию является ones(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 построен. Значение по умолчанию:

  • ложь Когда возвращаемые значения заданы.

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

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

Совет

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

Примеры

Пример 58. Выравнивание массового спектра с тремя или больше ссылочными 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')

Пример 59. Выравнивание массового спектра с одним ссылочным пиком

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

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

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

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


  3. Переключите спектр различием между RP, известной ссылочной массой 4000 m/z, и SP, экспериментальной массой 4051.14 m/z.

    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., Андрэйд-Сетто, L., Чжан, J.Y., и Хэнсон, R. (2007) Методы Обработки сигналов для Масс-спектрометрии. В Системной Биоинформатике: Технический Основанный на случае Подход, Г. Алтеровиц и М.Ф. Рамони, редакторы (Издатели Дома Artech).

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