Визуализация данных микромассивов

Этот пример показывает различные способы исследования и визуализации данных необработанных микромассивов. Пример использует данные микромассивов из исследования экспрессии генов в мозге мыши [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.