Этот пример показывает различные способы исследовать и визуализировать необработанные микроданные массива. Пример использует микроданные массива от исследования экспрессии гена в мозгах мыши [1].
Браун, V.M et.al. [1] используемые микромассивы, чтобы исследовать шаблоны экспрессии гена в мозгу мыши, в которой фармакологическая модель болезни Паркинсона (PD) была вызвана с помощью метамфетамина. Необработанные данные для этого эксперимента доступны от веб-дополнения до [1] или от веб-сайта Автобуса Экспрессии гена с помощью инвентарного номера GSE30.
Файл mouse_h3pd.gpr
содержит данные для одного из микромассивов, используемых в исследовании, в частности от выборки, собранной из воксела H3 мозга в мыши модели болезни Паркинсона (PD). Файл использует формат файла GenePix® GPR. Выборка воксела была маркирована (зеленым) Cy3, и управление (RNA от общего количества, не voxelated, нормальный мозг мыши) было маркировано 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 }
Команда 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" показывает средние значения для фона зеленого канала.
figure maimage(pd,'B532 Median','title',{'Parkinson''s Model','Background Median Pixels','Green Channel'})
Можно теперь считать данные полученными для того же мозгового воксела в невылеченной контрольной мыши. В этом случае выборка воксела была маркирована Cy3, и управление (RNA от общего количества, не voxelated мозг) было маркировано 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
, чтобы показать псевдоцветные изображения переднего плана и фона, соответствующего необработанной мыши. Команда 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
Команда maimage
является простым способом быстро создать псевдоцветные изображения микроданных массива. Однако иногда удобно создать настраиваемые графики с помощью команды imagesc
, как показано ниже.
Используйте magetfield
, чтобы извлечь данные для среднего поля B532 и поля Indices, чтобы индексировать в Данные. Вы можете, связал интенсивность фонового графика дать больше контраста в изображении.
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')
Функция 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 - B635' и 'Медиана F532 - 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);
Можно затем удалить эти точки и перерисовать график loglog.
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)');
Вы вспомните, что фон микросхем не был универсален. Можно использовать совет печати (блок) нормализация, чтобы нормировать каждый блок отдельно. Функциональный 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' установлена в ложь, можно исследовать данные в интерактивном режиме, такие как выбор указывает, чтобы видеть имена связанных генов, нормировать данные, подсветить названия генов в отрегулированных или вниз отрегулированных списках или изменить значения факторных строк.
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] Браун, V.M., и др., "Мультиплексируйте трехмерное мозговое отображение экспрессии гена в модели мыши болезни Паркинсона", Исследование Генома, 12 (6):868-84, 2002.