Этот пример показывает различные способы исследования и визуализации данных необработанных микромассивов. Пример использует данные микромассивов из исследования экспрессии генов в мозге мыши [1].
Браун, В.М et.al. [1] использовали микромассивы, чтобы исследовать шаблоны экспрессии генов в мозге мыши, в которой фармакологическая модель болезни Паркинсона (PD) была индуцирована с использованием метамфетамина. Необработанные данные для этого эксперимента доступны на веб-сайте Gene Expression Omnibus с использованием номера присоединения GSE30 [1].
Файл mouse_h3pd.gpr
содержит данные для одной из микромассивов, используемых в исследовании, в частности, из выборки, собранной из воксельных H3 головного мозга на модели Паркинсона (PD) мыши. Файл использует формат GPR-файла GenePix ®. Выборка воксель маркируют Cy3 (зеленым) и контрольную (РНК из общего, не вокселированного, нормального мозга мыши) маркируют Cy5.
Форматированные файлы GPR обеспечивают большой объем информации о массиве, включая среднее, среднее и стандартное отклонение интенсивности переднего плана и фона каждого пятна на длине волны 635 нм (красный, Cy5 канал) и длине волны 532 нм (зеленый, Cy3 канал).
Область команды gprread
считывает данные из файла в структуру.
pd = gprread('mouse_h3pd.gpr')
pd = struct with fields: Header: [1x1 struct] Data: [9504x38 double] Blocks: [9504x1 double] Columns: [9504x1 double] Rows: [9504x1 double] Names: {9504x1 cell} IDs: {9504x1 cell} ColumnNames: {38x1 cell} Indices: [132x72 double] Shape: [1x1 struct]
Получить доступ к полям структуры можно используя dot
обозначение. Для примера обратитесь к первым десяти именам столбцов.
pd.ColumnNames(1:10)
ans = 10x1 cell array {'X' } {'Y' } {'Dia.' } {'F635 Median' } {'F635 Mean' } {'F635 SD' } {'B635 Median' } {'B635 Mean' } {'B635 SD' } {'% > B635+1SD'}
Вы также можете получить доступ к первым десяти именам генов.
pd.Names(1:10)
ans = 10x1 cell array {'AA467053'} {'AA388323'} {'AA387625'} {'AA474342'} {'Myo1b' } {'AA473123'} {'AA387579'} {'AA387314'} {'AA467571'} {0x0 char }
The maimage
команда может взять структуру данных микромассивов и создать псевдоколорное изображение данных, расположенных в том же порядке, что и пятна в массиве, то есть пространственный график микромассива. В поле «F635 Median» показаны средние пиксельные значения для переднего плана красного (Cy5) канала.
figure maimage(pd,'F635 Median','title',{'Parkinson''s Model','Foreground Median Pixels','Red Channel'})
Поле «F532 Median» соответствует переднему плану зеленого (Cy3) канала.
figure maimage(pd,'F532 Median','title',{'Parkinson''s Model','Foreground Median Pixels','Green Channel'})
Поле «B635 Median» показывает медианные значения для фона красного канала. Обратите внимание на очень высокие уровни фона в правой части массива.
figure maimage(pd,'B635 Median','title',{'Parkinson''s Model','Background Median Pixels','Red Channel'})
«B532 Median» показывает медианные значения для фона зеленого канала.
figure maimage(pd,'B532 Median','title',{'Parkinson''s Model','Background Median Pixels','Green Channel'})
Теперь можно рассмотреть данные, полученные для того же воксель мозга у необработанной контрольной мыши. В этом случае выборка воксель маркируют Cy3 и контрольную (РНК из общего, а не вокселированного мозга) маркируют Cy5.
wt = gprread('mouse_h3wt.gpr')
wt = struct with fields: Header: [1x1 struct] Data: [9504x38 double] Blocks: [9504x1 double] Columns: [9504x1 double] Rows: [9504x1 double] Names: {9504x1 cell} IDs: {9504x1 cell} ColumnNames: {38x1 cell} Indices: [132x72 double] Shape: [1x1 struct]
Использование maimage
показать псевдоколорные изображения переднего плана и фона, соответствующих необработанной мыши. The subplot
команда может использоваться для объединения графиков.
figure subplot(2,2,1); maimage(wt,'F635 Median','title',{'Foreground','(Red)'}) subplot(2,2,2); maimage(wt,'F532 Median','title',{'Foreground','(Green)'}) subplot(2,2,3); maimage(wt,'B635 Median','title',{'Background','(Red)'}) subplot(2,2,4); maimage(wt,'B532 Median','title',{'Background','(Green)'}) annotation('textbox','String','Wild Type Median Pixel Values', ... 'Position', [0.3 0.05 0.9 0.01],'EdgeColor','none','FontSize',12);
Если вы посмотрите на шкалу фоновых изображений, то заметите, что уровни фона намного выше, чем у PD-мыши, и, по-видимому, существует нечто неслучайное, влияющее на фон Cy3 канала этого слайда. Изменение палитры иногда может дать больше понимания того, что происходит на псевдоколорных графиках. Для получения дополнительной информации о цвете попробуйте colormapeditor
функция. Можно также щелкнуть правой кнопкой мыши по шкале палитры, чтобы вызвать различные опции для изменения палитры графика, включая интерактивную перемену палитры.
colormap hot
The maimage
команда является простым способом быстрого создания псевдоколорных изображений микромассива данных. Однако иногда удобно создавать настраиваемые графики с помощью imagesc
команда, как показано ниже.
Использование magetfield
чтобы извлечь данные для поля медианы B532 и поля Индексы для индексации в Данные. Можно связать интенсивность фонового графика, чтобы придать больше контраста в изображении.
b532Data = magetfield(wt,'B532 Median'); maskedData = b532Data; maskedData(b532Data<500) = 500; maskedData(b532Data>2000) = 2000; figure subplot(1,2,1); imagesc(b532Data(wt.Indices)) axis image colorbar title('B532, WT') subplot(1,2,2); imagesc(maskedData(wt.Indices)) axis image colorbar title('Enhanced B532, WT')
The maboxplot
функция может использоваться, чтобы просмотреть распределение данных в каждом из блоков.
figure subplot(2,1,1) maboxplot(pd,'F532 Median','title','Parkinson''s Disease Model Mouse') subplot(2,1,2) maboxplot(pd,'B532 Median','title','Parkinson''s Disease Model Mouse') figure subplot(2,1,1) maboxplot(wt,'F532 Median','title','Untreated Mouse') subplot(2,1,2) maboxplot(wt,'B532 Median','title','Untreated Mouse')
На прямоугольных графиках вы четко видите пространственные эффекты в интенсивности фона. Блоки с номерами 1,3,5 и 7 расположены на левой стороне массивов, а блоки с номерами 2,4,6 и 8 - на правой стороне.
В структуре данных микромассивов существует два столбца с метками «F635 Median - B635» и «F532 Median - B532.» Эти столбцы являются различиями между медианой переднего плана и медианой фона для канала 635 нм и канала 532 нм соответственно. Они дают меру фактических уровней выражения. Пространственный эффект менее заметен на этих графиках.
figure subplot(2,1,1) maboxplot(pd,'F635 Median - B635','title','Parkinson''s Disease Model Mouse ') subplot(2,1,2) maboxplot(pd,'F532 Median - B532','title','Parkinson''s Disease Model Mouse') figure subplot(2,1,1) maboxplot(wt,'F635 Median - B635','title','Untreated Mouse') subplot(2,1,2) maboxplot(wt,'F532 Median - B532','title','Untreated Mouse')
Вместо работы с данными в большей структуре часто легче извлечь данные в отдельные переменные.
cy5Data = magetfield(pd,'F635 Median - B635'); cy3Data = magetfield(pd,'F532 Median - B532');
Простой способ сравнения двух каналов - это loglog
график. Функция maloglog
используется для этого. Точки, которые выше диагонали на этом графике, соответствуют генам, которые имеют более высокие уровни экспрессии в H3 воксели, чем в мозге в целом.
figure maloglog(cy5Data,cy3Data) title('Loglog Scatter Plot of PD Model'); xlabel('F635 Median - B635 (Control)'); ylabel('F532 Median - B532 (Voxel H3)');
Warning: Zero values are ignored. Warning: Negative values are ignored.
Заметьте, как loglog
функция выдает некоторые предупреждения об отрицательных и нулевых элементах. Это связано с тем, что некоторые значения в столбцах 'F635 Median - B635' и 'F532 Median - B532' равны нулю или меньше нуля. Пятна, где это произошло, могут быть плохими пятнами или пятнами, которые не смогли гибридизироваться. Точно так же пятна с положительными, но очень маленькими различиями между передним и задним планами также считаются плохими пятнами. Эти предупреждения могут быть отключены с помощью warning
команда.
warnState = warning; % Save the current warning state warning('off','bioinfo:maloglog:ZeroValues'); warning('off','bioinfo:maloglog:NegativeValues'); figure maloglog(cy5Data,cy3Data) title('Loglog Scatter Plot of PD Model'); xlabel('F635 Median - B635 (Control)'); ylabel('F532 Median - B532 (Voxel H3)'); warning(warnState); % Reset the warning state
Альтернативой простому игнорированию или отключению предупреждений является удаление плохих точек из набора данных. Это может быть сделано путем нахождения точек, где красный или зеленый канал имеют значения, меньше чем или равные пороги значению, для примера 10.
threshold = 10; badPoints = (cy5Data <= threshold) | (cy3Data <= threshold);
Затем можно удалить эти точки и перерисовать график журнала.
cy5Data(badPoints) = []; cy3Data(badPoints) = []; figure maloglog(cy5Data,cy3Data) title('Refined Loglog Scatter Plot of PD Model'); xlabel('F635 Median - B635 (Control)'); ylabel('F532 Median - B532 (Voxel H3)');
График распределения может быть аннотирован путем маркировки различных точек соответствующими генами.
figure maloglog(cy5Data,cy3Data,'labels',pd.Names(~badPoints),'factorlines',2) title('Loglog Scatter Plot of PD Model'); xlabel('F635 Median - B635 (Control)'); ylabel('F532 Median - B532 (Voxel H3)');
Попробуйте использовать мышь, чтобы кликнуть по некоторым точкам выбросов. Вы увидите имя гена, связанное с точкой. Большинство выбросов находятся ниже линии y = x. На самом деле большинство точек находятся ниже этой линии. В идеале точки должны быть равномерно распределены по обеим сторонам этой линии. Порядок это произошло, точки должны быть нормированы. Можно использовать manorm
функция для выполнения глобальной средней нормализации.
normcy5 = manorm(cy5Data); normcy3 = manorm(cy3Data);
Если вы постройте график нормированных данных, то увидите, что точки распределены более равномерно вокруг линии y = x.
figure maloglog(normcy5,normcy3,'labels',pd.Names(~badPoints),'factorlines',2) title('Normalized Loglog Scatter Plot of PD Model'); xlabel('F635 Median - B635 (Control)'); ylabel('F532 Median - B532 (Voxel H3)');
Вы вспомните, что фон фишек был неоднородным. Можно использовать нормализацию print-tip (block), чтобы нормализовать каждый блок отдельно. Функция manorm
автоматически выполняет нормализацию блоков, если информация о блоках доступна в структуре данных микромассивов.
bn_cy5Data = manorm(pd,'F635 Median - B635'); bn_cy3Data = manorm(pd,'F532 Median - B532');
Вместо удаления негатива или точек ниже порога можно установить их на NaN. Это не изменяет размер или форму данных, но точки NaN не будут отображаться на графиках.
bn_cy5Data(bn_cy5Data <= 0) = NaN; bn_cy3Data(bn_cy3Data <= 0) = NaN; figure maloglog(bn_cy5Data,bn_cy3Data,'labels',pd.Names,'factorlines',2) title('Refined, Normalized Loglog Scatter Plot of PD Model'); xlabel('F635 Median - B635 (Control)'); ylabel('F532 Median - B532 (Voxel H3)');
Функция mairplot
используется для создания графика Интенсивность по сравнению с коэффициентом для нормализованных данных. Если для пары "имя-значение" 'PlotOnly' задано значение false, можно исследовать данные в интерактивном режиме, например, выбрать точки, чтобы увидеть имена связанных генов, нормализовать данные, подсветить имена генов в списках с повышенной или понижающей регуляцией или изменить значения линий фактора.
mairplot(normcy5,normcy3,'labels',pd.Names(~badPoints),'PlotOnly',true,... 'title','Intensity vs. Ratio of PD Model');
Можно использовать Normalize
опция для mairplot
для выполнения Lowess нормализации данных.
mairplot(normcy5,normcy3,'labels',pd.Names(~badPoints),'PlotOnly',true,... 'Normalize',true,'title', 'Intensity vs. Ratio of PD Model (Normalized)');
GenePix is a registered trademark of Axon Instruments, Inc.
[1] Brown, V.M., et al., «Multiplex трехмерная экспрессия гена мозга отображения в мышиной модели болезни Паркинсона», Genome Research, 12 (6): 868-84, 2002.