Визуализация изображений микромассивов

Обзор примера мыши

Этот пример смотрит на различные способы визуализировать микроданные массива. Данные прибывают из фармакологической модели болезни Паркинсона (PD) с помощью мозга мыши. Микроданные массива для этого примера от Брауна, V.M., Ossadtchi, A., Хан, A.H., Yee, S., Лакан, G., Melega, W.P., Cherry, S.R., Лихи, R.M., и Смит, D.J.; "Мультиплексируйте трехмерное мозговое отображение экспрессии гена в модели мыши болезни Паркинсона"; Исследование Генома 12 (6): 868-884 (2002).

Микроданные массива, используемые в этом примере, доступны в веб-дополнении к статье Брауна и др. и в файле mouse_a1pd.gpr, включенный с программным обеспечением Bioinformatics Toolbox™.

Микроданные массива также доступны на веб-сайте Автобуса Экспрессии гена в

GenePix® отформатированный GPR файл mouse_a1pd.gpr содержит данные для одного из микромассивов, используемых в исследовании. Это - данные из воксела A1 мозга мыши, в которой фармакологическая модель болезни Паркинсона (PD) была вызвана с помощью метамфетамина. Выборка воксела была маркирована (зеленым) Cy3, и управление, RNA от общего количества (не voxelated) нормальный мозг мыши, было маркировано (красным) Cy5. Отформатированные файлы GPR обеспечивают большой объем информации о массиве, включая среднее значение, медиану, и стандартное отклонение переднего плана и фоновую интенсивность каждого пятна в длине волны на 635 нм (красный, канал Cy5) и длине волны на 532 нм (зеленый, канал Cy3).

Исследование набора микроданных массива

Эта процедура иллюстрирует, как импортировать данные с сети в среду MATLAB®, с помощью данных из исследования об экспрессии гена в мозгах мыши как пример. См. Обзор Примера Мыши.

  1. Считайте данные из файла в структуру MATLAB. Например, в Окне Команды MATLAB, ввести

    pd = gprread('mouse_a1pd.gpr')
    

    Информация о структуре отображается в Окне Команды MATLAB:

    pd = 
             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]
    
  2. Доступ к полям структуры с помощью StructureName.FieldName. Например, можно получить доступ к полю ColumnNames структуры pd путем ввода

    pd.ColumnNames
    

    Имена столбцов показывают ниже.

    ans = 
        'X'
        'Y'
        'Dia.'
        'F635 Median'
        'F635 Mean'
        'F635 SD'
        'B635 Median'
        'B635 Mean'
        'B635 SD'
        '% > B635+1SD'
        '% > B635+2SD'
        'F635 % Sat.'
        'F532 Median'
        'F532 Mean'
        'F532 SD'
        'B532 Median'
        'B532 Mean'
        'B532 SD'
        '% > B532+1SD'
        '% > B532+2SD'
        'F532 % Sat.'
        'Ratio of Medians'
        'Ratio of Means'
        'Median of Ratios'
        'Mean of Ratios'
        'Ratios SD'
        'Rgn Ratio'
        'Rgn R²'
        'F Pixels'
        'B Pixels'
        'Sum of Medians'
        'Sum of Means'
        'Log Ratio'
        'F635 Median - B635'
        'F532 Median - B532'
        'F635 Mean - B635'
        'F532 Mean - B532'
        'Flags'
    
  3. Доступ к именам генов. Например, чтобы перечислить первые 20 названий генов, ввести

    pd.Names(1:20)
    

    Список первых 20 названий генов отображен:

    ans = 
        'AA467053'
        'AA388323'
        'AA387625'
        'AA474342'
        'Myo1b'
        'AA473123'
        'AA387579'
        'AA387314'
        'AA467571'
                ''
        'Spop'
        'AA547022'
        'AI508784'
        'AA413555'
        'AA414733'
                ''
        'Snta1'
        'AI414419'
        'W14393'
        'W10596'
    

Пространственные изображения микроданных массива

Эта процедура иллюстрирует, как визуализировать микроданные массива путем графического вывода карт изображения. Функциональный maimage может взять структуру микроданных массива и создать псевдоцветное изображение данных, расположенных в том же порядке как пятна на массиве. Другими словами, maimage строит пространственный график микромассива.

Эта процедура использует данные из исследования экспрессии гена в мозгах мыши. Для списка имен полей в структуре MATLAB pd смотрите Исследование Набора Микроданных массива.

  1. Постройте средние значения для красного канала. Например, чтобы отобразить данные на графике из поля F635 Median, ввести

    figure
    maimage(pd,'F635 Median')
    

    Программное обеспечение MATLAB строит изображение, показывающее средние пиксельные значения для переднего плана красного (Cy5) канал.

  2. Постройте средние значения для зеленого канала. Например, чтобы отобразить данные на графике из поля F532 Median, ввести

    figure
    maimage(pd,'F532 Median')
    

    Программное обеспечение MATLAB строит изображение, показывающее средние пиксельные значения переднего плана зеленого (Cy3) канал.

  3. Постройте средние значения для красного фона. Поле B635 Median показывает средние значения для фона красного канала.

    figure
    maimage(pd,'B635 Median')
    

    Программное обеспечение MATLAB строит изображение для фона красного канала. Заметьте, что очень высокий фон уравнивает правую сторону массива.

  4. Постройте средние значения для зеленого фона. Поле B532 Median показывает средние значения для фона зеленого канала.

    figure
    maimage(pd,'B532 Median')
    

    Программное обеспечение MATLAB строит изображение для фона зеленого канала.

  5. Первый массив был для мыши модели болезни Паркинсона. Теперь читайте в данных для того же мозгового воксела, но для невылеченной контрольной мыши. В этом случае выборка воксела была маркирована Cy3, и управление, общий мозг (не voxelated), было маркировано Cy5.

    wt = gprread('mouse_a1wt.gpr')
    

    Программное обеспечение MATLAB создает структуру и отображает информацию о структуре.

    wt = 
             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]
    
  6. Используйте функциональный maimage, чтобы показать псевдоцветные изображения переднего плана и фона. Можно использовать функциональный subplot, чтобы поместить все графики на одну фигуру.

    figure
    subplot(2,2,1);
    maimage(wt,'F635 Median')
    subplot(2,2,2);
    maimage(wt,'F532 Median')
    subplot(2,2,3);
    maimage(wt,'B635 Median')
    subplot(2,2,4);
    maimage(wt,'B532 Median')
    

    Программное обеспечение MATLAB строит изображения.

  7. Если вы посмотрите на шкалу для фоновых изображений, вы заметите, что фоновые уровни намного выше, чем те для мыши PD и, кажется, существует что-то неслучайное влияние на фон канала Cy3 этого понижения. Изменение палитры может иногда обеспечивать больше понимания, что продолжается в графиках псевдоцвета. Для большего количества управления цветом попробуйте функцию colormapeditor.

    colormap hot
    

    Программное обеспечение MATLAB строит изображения.

  8. Функциональный maimage является простым способом быстро создать псевдоцветные изображения микроданных массива. Однако, если вы хотите больше управления графическим выводом, легко создать ваши собственные графики с помощью функционального imagesc.

    Сначала найдите номер столбца для интересующей области.

    b532MedCol = find(strcmp(wt.ColumnNames,'B532 Median'))
    

    Отображения программного обеспечения MATLAB:

    b532MedCol =
        16
    
  9. Извлеките тот столбец от поля Data.

    b532Data = wt.Data(:,b532MedCol);
    
  10. Используйте поле Indices, чтобы индексировать в Data.

    figure
    subplot(1,2,1);
    imagesc(b532Data(wt.Indices))
    axis image
    colorbar
    title('B532 Median')
    

    Программное обеспечение MATLAB строит изображение.

  11. Связанный интенсивность фона строит, чтобы дать больше контраста в изображении.

    maskedData = b532Data;
    maskedData(b532Data<500) = 500;
    maskedData(b532Data>2000) = 2000;
    
    subplot(1,2,2);
    imagesc(maskedData(wt.Indices))
    axis image
    colorbar
    title('Enhanced B532 Median')
    

    Программное обеспечение MATLAB строит изображения.

Статистика микромассивов

Эта процедура иллюстрирует, как визуализировать дистрибутивы в микроданных массива. Можно использовать функциональный maboxplot, чтобы посмотреть на распределение данных в каждом из блоков.

  1. В Окне Команды MATLAB ввести

    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')
    

    Программное обеспечение MATLAB строит изображения.

  2. Сравните графики.

    От диаграмм можно ясно видеть пространственные эффекты в фоновом режиме интенсивность. Числа блоков 1, 3, 5 и 7 находятся на левой стороне массивов и числах 2, 4, 6 и 8, находятся на правой стороне. Данные должны быть нормированы, чтобы удалить это пространственное смещение.

Графики поля точек микроданных массива

Эта процедура иллюстрирует, как визуализировать уровни экспрессии в микроданных массива. Существует два столбца в структуре микроданных массива, маркировал 'F635 Median - B635' и 'F532 Median - B532'. Эти столбцы являются различиями между средним передним планом и средним фоном для канала nm 635 и 532 канал nm соответственно. Они дают меру фактических уровней экспрессии, несмотря на то, что, поскольку данные должны сначала быть нормированы, чтобы удалить пространственное смещение в фоновом режиме, необходимо быть осторожны относительно использования этих значений без дальнейшей нормализации. Однако в этом примере никакая нормализация не выполняется.

  1. Вместо того, чтобы работать с данными в большей структуре, часто легче извлечь номера столбцов и данные в отдельные переменные.

    cy5DataCol = find(strcmp(wt.ColumnNames,'F635 Median - B635'))
    cy3DataCol = find(strcmp(wt.ColumnNames,'F532 Median - B532'))
    cy5Data = pd.Data(:,cy5DataCol);
    cy3Data = pd.Data(:,cy3DataCol);
    

    Отображения программного обеспечения MATLAB:

    cy5DataCol =
        34
    
    cy3DataCol =
        35
    
  2. Простой способ сравнить два канала с графиком loglog. Функциональный maloglog используется, чтобы сделать это. Точки, которые являются выше диагонали в этом графике, соответствуют генам, которые имеют более высокие уровни экспрессии в вокселе A1, чем в мозгу в целом.

    figure
    maloglog(cy5Data,cy3Data)
    xlabel('F635 Median - B635 (Control)');
    ylabel('F532 Median - B532 (Voxel A1)');
    

    Программное обеспечение MATLAB отображает следующие сообщения и строит изображения.

    Warning: Zero values are ignored
    (Type "warning off Bioinfo:MaloglogZeroValues" to suppress
     this warning.)
    Warning: Negative values are ignored.
    (Type "warning off Bioinfo:MaloglogNegativeValues" to suppress
     this warning.)
    

    Заметьте, что эта функция дает некоторые предупреждения об отрицательных и нулевых элементах. Это вызвано тем, что некоторые значения в 'F635 Median - B635' и столбцах 'F532 Median - B532' являются нулем или еще меньше, чем нуль. Пятна, где это произошло, могут быть дефектами или пятнами, которым не удалось гибридизировать. Точки с положительными, но очень небольшими, различиями между передним планом и фоном должны также считаться дефектами.

  3. Отключите отображение предупреждений при помощи команды warning. Несмотря на то, что предупреждения могут быть недовольными, это - хорошая практика, чтобы заняться расследованиями, почему предупреждения произошли, а не просто проигнорировать их. Может быть некоторая систематическая причина, почему они плохи.

    warnState = warning;          % First save the current warning
                                    state.
                                  % Now turn off the two warnings.
    warning('off','Bioinfo:MaloglogZeroValues');
    warning('off','Bioinfo:MaloglogNegativeValues');
    figure
    maloglog(cy5Data,cy3Data)      % Create the loglog plot
    warning(warnState);            % Reset the warning state.
    xlabel('F635 Median - B635 (Control)');
    ylabel('F532 Median - B532 (Voxel A1)');
    

    Программное обеспечение MATLAB строит изображение.

  4. Альтернатива простому игнорированию или отключению предупреждений должна удалить дефекты из набора данных. Можно сделать это путем нахождения точек, где или красный или зеленый канал имеет значения, меньше чем или равные пороговому значению. Например, используйте пороговое значение 10.

    threshold = 10;
    badPoints = (cy5Data <= threshold) | (cy3Data <= threshold);
    

    Программное обеспечение MATLAB строит изображение.

  5. Можно затем удалить эти точки и перерисовать график loglog.

    cy5Data(badPoints) = []; cy3Data(badPoints) = [];
    figure
    maloglog(cy5Data,cy3Data)
    xlabel('F635 Median - B635 (Control)');
    ylabel('F532 Median - B532 (Voxel A1)');
    
    

    Программное обеспечение MATLAB строит изображение.

    Этот график показывает распределение точек, но не дает индикации, о которой гены соответствуют который точки.

  6. Добавьте генные метки в график. Поскольку некоторые точки данных были удалены, соответствующие генные идентификаторы должны также быть удалены из набора данных, прежде чем можно будет использовать их. Самый простой способ сделать, который является wt.IDs(~badPoints).

    maloglog(cy5Data,cy3Data,'labels',wt.IDs(~badPoints),...
             'factorlines',2)
    xlabel('F635 Median - B635 (Control)');
    ylabel('F532 Median - B532 (Voxel A1)');
    

    Программное обеспечение MATLAB строит изображение.

  7. Попытайтесь использовать мышь, чтобы кликнуть по некоторым точкам выброса.

    Вы будете видеть генный ID, сопоставленный с точкой. Большинство выбросов ниже строки y = x. На самом деле большинство точек ниже этой строки. Идеально точки должны быть равномерно распределены по обе стороны от этой строки.

  8. Нормируйте точки, чтобы равномерно распределить их по обе стороны от строки. Используйте функциональный manorm, чтобы выполнить глобальную среднюю нормализацию.

    normcy5 = mannorm(cy5Data);
    normcy3 = manorm(cy3Data);
    

    Если вы отобразите нормированные данные на графике, то вы будете видеть, что точки более равномерно распределяются о строке y = x.

    figure
    maloglog(normcy5,normcy3,'labels',wt.IDs(~badPoints),...
             'factorlines',2)
    xlabel('F635 Median - B635 (Control)');
    ylabel('F532 Median - B532 (Voxel A1)');
    

    Программное обеспечение MATLAB строит изображение.

  9. Функциональный mairplot используется, чтобы создать Интенсивность по сравнению с графиком Отношения для нормированных данных. Эта функция работает таким же образом функциональным maloglog.

    figure
    mairplot(normcy5,normcy3,'labels',wt.IDs(~badPoints),...
             'factorlines',2)
    

    Программное обеспечение MATLAB строит изображение.

  10. Можно кликнуть по точкам в этом графике видеть имя гена, сопоставленного с графиком.